[GH-ISSUE #9772] Ollama (python) Docker Parallel Requests not working #52902

Closed
opened 2026-04-29 01:19:08 -05:00 by GiteaMirror · 8 comments
Owner

Originally created by @ArsalanYounus007 on GitHub (Mar 14, 2025).
Original GitHub issue: https://github.com/ollama/ollama/issues/9772

What is the issue?

Hello,
Thank you for reading this. I have built an docker app and base image is used FROM ollama/ollama:0.5.7

My app calls ollama server multiple times (because 1 single prompt was too complex for small models)
But the problem that I am facing is I am unable to send concurrent calls to the server so that it may speed up my overall processing.
Below is the sample snippet of what I am trying to do...

import asyncio
from ollama import AsyncClient
import logging

logging.basicConfig(level=logging.INFO)
logger = logging.getLogger(__name__)

async def async_ollama_chat(model: str, messages: list) -> dict:
    """Async version of ollama.chat."""
    client = AsyncClient()
    try:
        response = await client.chat(
            model=model,
            messages=messages
        )
        return response
    except Exception as e:
        logger.error(f"Error in async_ollama_chat: {str(e)}")
        raise

async def process_section(key: str, model: str, messages: list) -> tuple:
    """Process a single section."""
    try:
        response = await async_ollama_chat(model, messages)
        logger.info(f"Completed section: {key}")
        return key, response
    except Exception as e:
        logger.error(f"Error processing section '{key}': {str(e)}")
        return key, {}

async def main():
    # Sample configuration
    sections = {
        "section1": {
            "model": "llama2",
            "messages": [{"role": "user", "content": "Hello"}]
        },
        "section2": {
            "model": "llama2",
            "messages": [{"role": "user", "content": "World"}]
        }
    }

    # Process sections concurrently
    tasks = [process_section(key, config["model"], config["messages"]) 
            for key, config in sections.items()]
    results = await asyncio.gather(*tasks)
    
    # Print results
    for key, result in results:
        print(f"Section {key}: {'Success' if result else 'Failed'}")

if __name__ == "__main__":
    asyncio.run(main())

The problem is that the calls to the model still are sequential.

Can you please help this issue?

Relevant log output

[GIN] 2025/03/14 - 17:32:01 | 200 |  8.746444903s |       127.0.0.1 | POST     "/api/chat"
[GIN] 2025/03/14 - 17:32:04 | 200 |  2.497799875s |       127.0.0.1 | POST     "/api/chat"
[GIN] 2025/03/14 - 17:32:05 | 200 |  1.855538579s |       127.0.0.1 | POST     "/api/chat"
[GIN] 2025/03/14 - 17:32:14 | 200 |  8.286862443s |       127.0.0.1 | POST     "/api/chat"
[GIN] 2025/03/14 - 17:32:15 | 200 |  1.321989394s |       127.0.0.1 | POST     "/api/chat"
[GIN] 2025/03/14 - 17:32:19 | 200 |  4.131923305s |       127.0.0.1 | POST     "/api/chat"

OS

Docker

GPU

Nvidia

CPU

Intel

Ollama version

0.5.7

Originally created by @ArsalanYounus007 on GitHub (Mar 14, 2025). Original GitHub issue: https://github.com/ollama/ollama/issues/9772 ### What is the issue? Hello, Thank you for reading this. I have built an docker app and base image is used FROM ollama/ollama:0.5.7 My app calls ollama server multiple times (because 1 single prompt was too complex for small models) But the problem that I am facing is I am unable to send concurrent calls to the server so that it may speed up my overall processing. Below is the sample snippet of what I am trying to do... ``` import asyncio from ollama import AsyncClient import logging logging.basicConfig(level=logging.INFO) logger = logging.getLogger(__name__) async def async_ollama_chat(model: str, messages: list) -> dict: """Async version of ollama.chat.""" client = AsyncClient() try: response = await client.chat( model=model, messages=messages ) return response except Exception as e: logger.error(f"Error in async_ollama_chat: {str(e)}") raise async def process_section(key: str, model: str, messages: list) -> tuple: """Process a single section.""" try: response = await async_ollama_chat(model, messages) logger.info(f"Completed section: {key}") return key, response except Exception as e: logger.error(f"Error processing section '{key}': {str(e)}") return key, {} async def main(): # Sample configuration sections = { "section1": { "model": "llama2", "messages": [{"role": "user", "content": "Hello"}] }, "section2": { "model": "llama2", "messages": [{"role": "user", "content": "World"}] } } # Process sections concurrently tasks = [process_section(key, config["model"], config["messages"]) for key, config in sections.items()] results = await asyncio.gather(*tasks) # Print results for key, result in results: print(f"Section {key}: {'Success' if result else 'Failed'}") if __name__ == "__main__": asyncio.run(main()) ``` The problem is that the calls to the model still are sequential. Can you please help this issue? ### Relevant log output ```shell [GIN] 2025/03/14 - 17:32:01 | 200 | 8.746444903s | 127.0.0.1 | POST "/api/chat" [GIN] 2025/03/14 - 17:32:04 | 200 | 2.497799875s | 127.0.0.1 | POST "/api/chat" [GIN] 2025/03/14 - 17:32:05 | 200 | 1.855538579s | 127.0.0.1 | POST "/api/chat" [GIN] 2025/03/14 - 17:32:14 | 200 | 8.286862443s | 127.0.0.1 | POST "/api/chat" [GIN] 2025/03/14 - 17:32:15 | 200 | 1.321989394s | 127.0.0.1 | POST "/api/chat" [GIN] 2025/03/14 - 17:32:19 | 200 | 4.131923305s | 127.0.0.1 | POST "/api/chat" ``` ### OS Docker ### GPU Nvidia ### CPU Intel ### Ollama version 0.5.7
GiteaMirror added the bug label 2026-04-29 01:19:08 -05:00
Author
Owner

@rick-github commented on GitHub (Mar 14, 2025):

Have you set OLLAMA_NUM_PARALLEL in the docker environment?

<!-- gh-comment-id:2725551839 --> @rick-github commented on GitHub (Mar 14, 2025): Have you set [`OLLAMA_NUM_PARALLEL`](https://github.com/ollama/ollama/blob/main/docs/faq.md#how-does-ollama-handle-concurrent-requests) in the docker environment?
Author
Owner

@ArsalanYounus007 commented on GitHub (Mar 14, 2025):

My bad, I did not provide this information.
Below is my start.sh file that starts the Ollama server

#!/bin/sh

OLLAMA_NUM_PARALLEL=10 OLLAMA_KEEP_ALIVE=-1 OLLAMA_MAX_LOADED_MODELS=3 OLLAMA_FLASH_ATTENTION=true ollama serve &
sleep 10

echo "Pulling qwen2.5:32b model..."
ollama pull qwen2.5:32b

if [ $1 = "flask" ]
then
  echo Starting Flask App...
  exec gunicorn --workers 1 --bind 0.0.0.0:5000 --timeout 600 flask_app:app
else
  echo Starting QWorker App...
  exec python3 /app/workerapp.py
fi

I have tried multiple numbers for each parameter for testing, Getting as low as 2 parallel requests

As for Hardware information, I have A100 80GB that I am using.
And it's using around 25GBs (it increases with OLLAMA_NUM_PARALLEL parameter)

<!-- gh-comment-id:2725560667 --> @ArsalanYounus007 commented on GitHub (Mar 14, 2025): My bad, I did not provide this information. Below is my start.sh file that starts the Ollama server ``` #!/bin/sh OLLAMA_NUM_PARALLEL=10 OLLAMA_KEEP_ALIVE=-1 OLLAMA_MAX_LOADED_MODELS=3 OLLAMA_FLASH_ATTENTION=true ollama serve & sleep 10 echo "Pulling qwen2.5:32b model..." ollama pull qwen2.5:32b if [ $1 = "flask" ] then echo Starting Flask App... exec gunicorn --workers 1 --bind 0.0.0.0:5000 --timeout 600 flask_app:app else echo Starting QWorker App... exec python3 /app/workerapp.py fi ``` I have tried multiple numbers for each parameter for testing, Getting as low as 2 parallel requests As for Hardware information, I have A100 80GB that I am using. And it's using around 25GBs (it increases with OLLAMA_NUM_PARALLEL parameter)
Author
Owner

@rick-github commented on GitHub (Mar 14, 2025):

Logs may show useful info.

<!-- gh-comment-id:2725567862 --> @rick-github commented on GitHub (Mar 14, 2025): Logs may show useful info.
Author
Owner

@ArsalanYounus007 commented on GitHub (Mar 14, 2025):

2025/03/14 17:31:26 routes.go:1187: INFO server config env="map[CUDA_VISIBLE_DEVICES: GPU_DEVICE_ORDINAL: HIP_VISIBLE_DEVICES: HSA_OVERRIDE_GFX_VERSION: HTTPS_PROXY: HTTP_PROXY: NO_PROXY: OLLAMA_DEBUG:false OLLAMA_FLASH_ATTENTION:true OLLAMA_GPU_OVERHEAD:0 OLLAMA_HOST:http://0.0.0.0:11434 OLLAMA_INTEL_GPU:false OLLAMA_KEEP_ALIVE:2562047h47m16.854775807s OLLAMA_KV_CACHE_TYPE: OLLAMA_LLM_LIBRARY: OLLAMA_LOAD_TIMEOUT:5m0s OLLAMA_MAX_LOADED_MODELS:3 OLLAMA_MAX_QUEUE:512 OLLAMA_MODELS:/root/.ollama/models OLLAMA_MULTIUSER_CACHE:false OLLAMA_NOHISTORY:false OLLAMA_NOPRUNE:false OLLAMA_NUM_PARALLEL:10 OLLAMA_ORIGINS:[http://localhost https://localhost http://localhost:* https://localhost:* http://127.0.0.1 https://127.0.0.1 http://127.0.0.1:* https://127.0.0.1:* http://0.0.0.0 https://0.0.0.0 http://0.0.0.0:* https://0.0.0.0:* app://* file://* tauri://* vscode-webview://*] OLLAMA_SCHED_SPREAD:false ROCR_VISIBLE_DEVICES: http_proxy: https_proxy: no_proxy:]"
time=2025-03-14T17:31:26.787Z level=INFO source=images.go:432 msg="total blobs: 15"
time=2025-03-14T17:31:26.787Z level=INFO source=images.go:439 msg="total unused blobs removed: 0"
[GIN-debug] [WARNING] Creating an Engine instance with the Logger and Recovery middleware already attached.

[GIN-debug] [WARNING] Running in "debug" mode. Switch to "release" mode in production.
 - using env:   export GIN_MODE=release
 - using code:  gin.SetMode(gin.ReleaseMode)

[GIN-debug] POST   /api/pull                 --> github.com/ollama/ollama/server.(*Server).PullHandler-fm (5 handlers)
[GIN-debug] POST   /api/generate             --> github.com/ollama/ollama/server.(*Server).GenerateHandler-fm (5 handlers)
[GIN-debug] POST   /api/chat                 --> github.com/ollama/ollama/server.(*Server).ChatHandler-fm (5 handlers)
[GIN-debug] POST   /api/embed                --> github.com/ollama/ollama/server.(*Server).EmbedHandler-fm (5 handlers)
[GIN-debug] POST   /api/embeddings           --> github.com/ollama/ollama/server.(*Server).EmbeddingsHandler-fm (5 handlers)
[GIN-debug] POST   /api/create               --> github.com/ollama/ollama/server.(*Server).CreateHandler-fm (5 handlers)
[GIN-debug] POST   /api/push                 --> github.com/ollama/ollama/server.(*Server).PushHandler-fm (5 handlers)
[GIN-debug] POST   /api/copy                 --> github.com/ollama/ollama/server.(*Server).CopyHandler-fm (5 handlers)
[GIN-debug] DELETE /api/delete               --> github.com/ollama/ollama/server.(*Server).DeleteHandler-fm (5 handlers)
[GIN-debug] POST   /api/show                 --> github.com/ollama/ollama/server.(*Server).ShowHandler-fm (5 handlers)
[GIN-debug] POST   /api/blobs/:digest        --> github.com/ollama/ollama/server.(*Server).CreateBlobHandler-fm (5 handlers)
[GIN-debug] HEAD   /api/blobs/:digest        --> github.com/ollama/ollama/server.(*Server).HeadBlobHandler-fm (5 handlers)
[GIN-debug] GET    /api/ps                   --> github.com/ollama/ollama/server.(*Server).PsHandler-fm (5 handlers)
[GIN-debug] POST   /v1/chat/completions      --> github.com/ollama/ollama/server.(*Server).ChatHandler-fm (6 handlers)
[GIN-debug] POST   /v1/completions           --> github.com/ollama/ollama/server.(*Server).GenerateHandler-fm (6 handlers)
[GIN-debug] POST   /v1/embeddings            --> github.com/ollama/ollama/server.(*Server).EmbedHandler-fm (6 handlers)
[GIN-debug] GET    /v1/models                --> github.com/ollama/ollama/server.(*Server).ListHandler-fm (6 handlers)
[GIN-debug] GET    /v1/models/:model         --> github.com/ollama/ollama/server.(*Server).ShowHandler-fm (6 handlers)
[GIN-debug] GET    /                         --> github.com/ollama/ollama/server.(*Server).GenerateRoutes.func1 (5 handlers)
[GIN-debug] GET    /api/tags                 --> github.com/ollama/ollama/server.(*Server).ListHandler-fm (5 handlers)
[GIN-debug] GET    /api/version              --> github.com/ollama/ollama/server.(*Server).GenerateRoutes.func2 (5 handlers)
[GIN-debug] HEAD   /                         --> github.com/ollama/ollama/server.(*Server).GenerateRoutes.func1 (5 handlers)
[GIN-debug] HEAD   /api/tags                 --> github.com/ollama/ollama/server.(*Server).ListHandler-fm (5 handlers)
[GIN-debug] HEAD   /api/version              --> github.com/ollama/ollama/server.(*Server).GenerateRoutes.func2 (5 handlers)
time=2025-03-14T17:31:26.788Z level=INFO source=routes.go:1238 msg="Listening on [::]:11434 (version 0.5.7-0-ga420a45-dirty)"
time=2025-03-14T17:31:26.788Z level=INFO source=routes.go:1267 msg="Dynamic LLM libraries" runners="[cpu_avx2 cuda_v11_avx cuda_v12_avx cpu cpu_avx]"
time=2025-03-14T17:31:26.788Z level=INFO source=gpu.go:226 msg="looking for compatible GPUs"
time=2025-03-14T17:31:27.034Z level=INFO source=types.go:131 msg="inference compute" id=GPU-24f8473e-66ad-d978-7e3f-adbc1e47307c library=cuda variant=v12 compute=8.9 driver=12.2 name="NVIDIA GeForce RTX 4090" total="23.6 GiB" available="23.2 GiB"
time=2025-03-14T17:31:27.034Z level=INFO source=types.go:131 msg="inference compute" id=GPU-de45fd91-4db6-056b-b493-d5f349d7d6a0 library=cuda variant=v12 compute=8.0 driver=12.2 name="NVIDIA A100 80GB PCIe" total="79.2 GiB" available="78.7 GiB"
Pulling qwen2.5:32b model...
[GIN] 2025/03/14 - 17:31:36 | 200 |      65.023µs |       127.0.0.1 | HEAD     "/"
time=2025-03-14T17:31:53.259Z level=INFO source=sched.go:714 msg="new model will fit in available VRAM in single GPU, loading" model=/root/.ollama/models/blobs/sha256-eabc98a9bcbfce7fd70f3e07de599f8fda98120fefed5881934161ede8bd1a41 gpu=GPU-de45fd91-4db6-056b-b493-d5f349d7d6a0 parallel=10 available=84530102272 required="25.5 GiB"
time=2025-03-14T17:31:53.467Z level=INFO source=server.go:104 msg="system memory" total="125.6 GiB" free="120.8 GiB" free_swap="2.0 GiB"
time=2025-03-14T17:31:53.672Z level=INFO source=memory.go:356 msg="offload to cuda" layers.requested=-1 layers.model=65 layers.offload=65 layers.split="" memory.available="[78.7 GiB]" memory.gpu_overhead="0 B" memory.required.full="25.5 GiB" memory.required.partial="25.5 GiB" memory.required.kv="5.0 GiB" memory.required.allocations="[25.5 GiB]" memory.weights.total="22.5 GiB" memory.weights.repeating="21.9 GiB" memory.weights.nonrepeating="609.1 MiB" memory.graph.full="1.6 GiB" memory.graph.partial="2.0 GiB"
time=2025-03-14T17:31:53.672Z level=INFO source=server.go:223 msg="enabling flash attention"
time=2025-03-14T17:31:53.672Z level=WARN source=server.go:231 msg="kv cache type not supported by model" type=""
time=2025-03-14T17:31:53.672Z level=INFO source=server.go:376 msg="starting llama server" cmd="/usr/lib/ollama/runners/cuda_v12_avx/ollama_llama_server runner --model /root/.ollama/models/blobs/sha256-eabc98a9bcbfce7fd70f3e07de599f8fda98120fefed5881934161ede8bd1a41 --ctx-size 20480 --batch-size 512 --n-gpu-layers 65 --threads 8 --flash-attn --parallel 10 --port 34939"
time=2025-03-14T17:31:53.673Z level=INFO source=sched.go:449 msg="loaded runners" count=1
time=2025-03-14T17:31:53.673Z level=INFO source=server.go:555 msg="waiting for llama runner to start responding"
time=2025-03-14T17:31:53.673Z level=INFO source=server.go:589 msg="waiting for server to become available" status="llm server error"
time=2025-03-14T17:31:53.693Z level=INFO source=runner.go:936 msg="starting go runner"
ggml_cuda_init: GGML_CUDA_FORCE_MMQ:    no
ggml_cuda_init: GGML_CUDA_FORCE_CUBLAS: no
ggml_cuda_init: found 1 CUDA devices:
  Device 0: NVIDIA A100 80GB PCIe, compute capability 8.0, VMM: yes
time=2025-03-14T17:31:53.706Z level=INFO source=runner.go:937 msg=system info="CUDA : ARCHS = 600,610,620,700,720,750,800,860,870,890,900 | USE_GRAPHS = 1 | PEER_MAX_BATCH_SIZE = 128 | CPU : SSE3 = 1 | SSSE3 = 1 | AVX = 1 | LLAMAFILE = 1 | AARCH64_REPACK = 1 | cgo(gcc)" threads=8
time=2025-03-14T17:31:53.706Z level=INFO source=.:0 msg="Server listening on 127.0.0.1:34939"
llama_load_model_from_file: using device CUDA0 (NVIDIA A100 80GB PCIe) - 80614 MiB free
llama_model_loader: loaded meta data with 34 key-value pairs and 771 tensors from /root/.ollama/models/blobs/sha256-eabc98a9bcbfce7fd70f3e07de599f8fda98120fefed5881934161ede8bd1a41 (version GGUF V3 (latest))
llama_model_loader: Dumping metadata keys/values. Note: KV overrides do not apply in this output.
llama_model_loader: - kv   0:                       general.architecture str              = qwen2
llama_model_loader: - kv   1:                               general.type str              = model
llama_model_loader: - kv   2:                               general.name str              = Qwen2.5 32B Instruct
llama_model_loader: - kv   3:                           general.finetune str              = Instruct
llama_model_loader: - kv   4:                           general.basename str              = Qwen2.5
llama_model_loader: - kv   5:                         general.size_label str              = 32B
llama_model_loader: - kv   6:                            general.license str              = apache-2.0
llama_model_loader: - kv   7:                       general.license.link str              = https://huggingface.co/Qwen/Qwen2.5-3...
llama_model_loader: - kv   8:                   general.base_model.count u32              = 1
llama_model_loader: - kv   9:                  general.base_model.0.name str              = Qwen2.5 32B
llama_model_loader: - kv  10:          general.base_model.0.organization str              = Qwen
llama_model_loader: - kv  11:              general.base_model.0.repo_url str              = https://huggingface.co/Qwen/Qwen2.5-32B
llama_model_loader: - kv  12:                               general.tags arr[str,2]       = ["chat", "text-generation"]
llama_model_loader: - kv  13:                          general.languages arr[str,1]       = ["en"]
llama_model_loader: - kv  14:                          qwen2.block_count u32              = 64
llama_model_loader: - kv  15:                       qwen2.context_length u32              = 32768
llama_model_loader: - kv  16:                     qwen2.embedding_length u32              = 5120
llama_model_loader: - kv  17:                  qwen2.feed_forward_length u32              = 27648
llama_model_loader: - kv  18:                 qwen2.attention.head_count u32              = 40
llama_model_loader: - kv  19:              qwen2.attention.head_count_kv u32              = 8
llama_model_loader: - kv  20:                       qwen2.rope.freq_base f32              = 1000000.000000
llama_model_loader: - kv  21:     qwen2.attention.layer_norm_rms_epsilon f32              = 0.000001
llama_model_loader: - kv  22:                          general.file_type u32              = 15
llama_model_loader: - kv  23:                       tokenizer.ggml.model str              = gpt2
llama_model_loader: - kv  24:                         tokenizer.ggml.pre str              = qwen2
llama_model_loader: - kv  25:                      tokenizer.ggml.tokens arr[str,152064]  = ["!", "\"", "#", "$", "%", "&", "'", ...
llama_model_loader: - kv  26:                  tokenizer.ggml.token_type arr[i32,152064]  = [1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, ...
llama_model_loader: - kv  27:                      tokenizer.ggml.merges arr[str,151387]  = ["Ġ Ġ", "ĠĠ ĠĠ", "i n", "Ġ t",...
llama_model_loader: - kv  28:                tokenizer.ggml.eos_token_id u32              = 151645
llama_model_loader: - kv  29:            tokenizer.ggml.padding_token_id u32              = 151643
llama_model_loader: - kv  30:                tokenizer.ggml.bos_token_id u32              = 151643
llama_model_loader: - kv  31:               tokenizer.ggml.add_bos_token bool             = false
llama_model_loader: - kv  32:                    tokenizer.chat_template str              = {%- if tools %}\n    {{- '<|im_start|>...
llama_model_loader: - kv  33:               general.quantization_version u32              = 2
llama_model_loader: - type  f32:  321 tensors
llama_model_loader: - type q4_K:  385 tensors
llama_model_loader: - type q6_K:   65 tensors
time=2025-03-14T17:31:53.924Z level=INFO source=server.go:589 msg="waiting for server to become available" status="llm server loading model"
llm_load_vocab: special tokens cache size = 22
llm_load_vocab: token to piece cache size = 0.9310 MB
llm_load_print_meta: format           = GGUF V3 (latest)
llm_load_print_meta: arch             = qwen2
llm_load_print_meta: vocab type       = BPE
llm_load_print_meta: n_vocab          = 152064
llm_load_print_meta: n_merges         = 151387
llm_load_print_meta: vocab_only       = 0
llm_load_print_meta: n_ctx_train      = 32768
llm_load_print_meta: n_embd           = 5120
llm_load_print_meta: n_layer          = 64
llm_load_print_meta: n_head           = 40
llm_load_print_meta: n_head_kv        = 8
llm_load_print_meta: n_rot            = 128
llm_load_print_meta: n_swa            = 0
llm_load_print_meta: n_embd_head_k    = 128
llm_load_print_meta: n_embd_head_v    = 128
llm_load_print_meta: n_gqa            = 5
llm_load_print_meta: n_embd_k_gqa     = 1024
llm_load_print_meta: n_embd_v_gqa     = 1024
llm_load_print_meta: f_norm_eps       = 0.0e+00
llm_load_print_meta: f_norm_rms_eps   = 1.0e-06
llm_load_print_meta: f_clamp_kqv      = 0.0e+00
llm_load_print_meta: f_max_alibi_bias = 0.0e+00
llm_load_print_meta: f_logit_scale    = 0.0e+00
llm_load_print_meta: n_ff             = 27648
llm_load_print_meta: n_expert         = 0
llm_load_print_meta: n_expert_used    = 0
llm_load_print_meta: causal attn      = 1
llm_load_print_meta: pooling type     = 0
llm_load_print_meta: rope type        = 2
llm_load_print_meta: rope scaling     = linear
llm_load_print_meta: freq_base_train  = 1000000.0
llm_load_print_meta: freq_scale_train = 1
llm_load_print_meta: n_ctx_orig_yarn  = 32768
llm_load_print_meta: rope_finetuned   = unknown
llm_load_print_meta: ssm_d_conv       = 0
llm_load_print_meta: ssm_d_inner      = 0
llm_load_print_meta: ssm_d_state      = 0
llm_load_print_meta: ssm_dt_rank      = 0
llm_load_print_meta: ssm_dt_b_c_rms   = 0
llm_load_print_meta: model type       = 32B
llm_load_print_meta: model ftype      = Q4_K - Medium
llm_load_print_meta: model params     = 32.76 B
llm_load_print_meta: model size       = 18.48 GiB (4.85 BPW) 
llm_load_print_meta: general.name     = Qwen2.5 32B Instruct
llm_load_print_meta: BOS token        = 151643 '<|endoftext|>'
llm_load_print_meta: EOS token        = 151645 '<|im_end|>'
llm_load_print_meta: EOT token        = 151645 '<|im_end|>'
llm_load_print_meta: PAD token        = 151643 '<|endoftext|>'
llm_load_print_meta: LF token         = 148848 'ÄĬ'
llm_load_print_meta: FIM PRE token    = 151659 '<|fim_prefix|>'
llm_load_print_meta: FIM SUF token    = 151661 '<|fim_suffix|>'
llm_load_print_meta: FIM MID token    = 151660 '<|fim_middle|>'
llm_load_print_meta: FIM PAD token    = 151662 '<|fim_pad|>'
llm_load_print_meta: FIM REP token    = 151663 '<|repo_name|>'
llm_load_print_meta: FIM SEP token    = 151664 '<|file_sep|>'
llm_load_print_meta: EOG token        = 151643 '<|endoftext|>'
llm_load_print_meta: EOG token        = 151645 '<|im_end|>'
llm_load_print_meta: EOG token        = 151662 '<|fim_pad|>'
llm_load_print_meta: EOG token        = 151663 '<|repo_name|>'
llm_load_print_meta: EOG token        = 151664 '<|file_sep|>'
llm_load_print_meta: max token length = 256
llm_load_tensors: offloading 64 repeating layers to GPU
llm_load_tensors: offloading output layer to GPU
llm_load_tensors: offloaded 65/65 layers to GPU
llm_load_tensors:   CPU_Mapped model buffer size =   417.66 MiB
llm_load_tensors:        CUDA0 model buffer size = 18508.35 MiB
llama_new_context_with_model: n_seq_max     = 10
llama_new_context_with_model: n_ctx         = 20480
llama_new_context_with_model: n_ctx_per_seq = 2048
llama_new_context_with_model: n_batch       = 5120
llama_new_context_with_model: n_ubatch      = 512
llama_new_context_with_model: flash_attn    = 1
llama_new_context_with_model: freq_base     = 1000000.0
llama_new_context_with_model: freq_scale    = 1
llama_new_context_with_model: n_ctx_per_seq (2048) < n_ctx_train (32768) -- the full capacity of the model will not be utilized
llama_kv_cache_init: kv_size = 20480, offload = 1, type_k = 'f16', type_v = 'f16', n_layer = 64, can_shift = 1
llama_kv_cache_init:      CUDA0 KV buffer size =  5120.00 MiB
llama_new_context_with_model: KV self size  = 5120.00 MiB, K (f16): 2560.00 MiB, V (f16): 2560.00 MiB
llama_new_context_with_model:  CUDA_Host  output buffer size =     6.00 MiB
llama_new_context_with_model:      CUDA0 compute buffer size =   307.00 MiB
llama_new_context_with_model:  CUDA_Host compute buffer size =    50.01 MiB
llama_new_context_with_model: graph nodes  = 1991
llama_new_context_with_model: graph splits = 2
time=2025-03-14T17:31:57.690Z level=INFO source=server.go:594 msg="llama runner started in 4.02 seconds"
llama_model_loader: loaded meta data with 34 key-value pairs and 771 tensors from /root/.ollama/models/blobs/sha256-eabc98a9bcbfce7fd70f3e07de599f8fda98120fefed5881934161ede8bd1a41 (version GGUF V3 (latest))
llama_model_loader: Dumping metadata keys/values. Note: KV overrides do not apply in this output.
llama_model_loader: - kv   0:                       general.architecture str              = qwen2
llama_model_loader: - kv   1:                               general.type str              = model
llama_model_loader: - kv   2:                               general.name str              = Qwen2.5 32B Instruct
llama_model_loader: - kv   3:                           general.finetune str              = Instruct
llama_model_loader: - kv   4:                           general.basename str              = Qwen2.5
llama_model_loader: - kv   5:                         general.size_label str              = 32B
llama_model_loader: - kv   6:                            general.license str              = apache-2.0
llama_model_loader: - kv   7:                       general.license.link str              = https://huggingface.co/Qwen/Qwen2.5-3...
llama_model_loader: - kv   8:                   general.base_model.count u32              = 1
llama_model_loader: - kv   9:                  general.base_model.0.name str              = Qwen2.5 32B
llama_model_loader: - kv  10:          general.base_model.0.organization str              = Qwen
llama_model_loader: - kv  11:              general.base_model.0.repo_url str              = https://huggingface.co/Qwen/Qwen2.5-32B
llama_model_loader: - kv  12:                               general.tags arr[str,2]       = ["chat", "text-generation"]
llama_model_loader: - kv  13:                          general.languages arr[str,1]       = ["en"]
llama_model_loader: - kv  14:                          qwen2.block_count u32              = 64
llama_model_loader: - kv  15:                       qwen2.context_length u32              = 32768
llama_model_loader: - kv  16:                     qwen2.embedding_length u32              = 5120
llama_model_loader: - kv  17:                  qwen2.feed_forward_length u32              = 27648
llama_model_loader: - kv  18:                 qwen2.attention.head_count u32              = 40
llama_model_loader: - kv  19:              qwen2.attention.head_count_kv u32              = 8
llama_model_loader: - kv  20:                       qwen2.rope.freq_base f32              = 1000000.000000
llama_model_loader: - kv  21:     qwen2.attention.layer_norm_rms_epsilon f32              = 0.000001
llama_model_loader: - kv  22:                          general.file_type u32              = 15
llama_model_loader: - kv  23:                       tokenizer.ggml.model str              = gpt2
llama_model_loader: - kv  24:                         tokenizer.ggml.pre str              = qwen2
llama_model_loader: - kv  25:                      tokenizer.ggml.tokens arr[str,152064]  = ["!", "\"", "#", "$", "%", "&", "'", ...
llama_model_loader: - kv  26:                  tokenizer.ggml.token_type arr[i32,152064]  = [1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, ...
llama_model_loader: - kv  27:                      tokenizer.ggml.merges arr[str,151387]  = ["Ġ Ġ", "ĠĠ ĠĠ", "i n", "Ġ t",...
llama_model_loader: - kv  28:                tokenizer.ggml.eos_token_id u32              = 151645
llama_model_loader: - kv  29:            tokenizer.ggml.padding_token_id u32              = 151643
llama_model_loader: - kv  30:                tokenizer.ggml.bos_token_id u32              = 151643
llama_model_loader: - kv  31:               tokenizer.ggml.add_bos_token bool             = false
llama_model_loader: - kv  32:                    tokenizer.chat_template str              = {%- if tools %}\n    {{- '<|im_start|>...
llama_model_loader: - kv  33:               general.quantization_version u32              = 2
llama_model_loader: - type  f32:  321 tensors
llama_model_loader: - type q4_K:  385 tensors
llama_model_loader: - type q6_K:   65 tensors
llm_load_vocab: special tokens cache size = 22
llm_load_vocab: token to piece cache size = 0.9310 MB
llm_load_print_meta: format           = GGUF V3 (latest)
llm_load_print_meta: arch             = qwen2
llm_load_print_meta: vocab type       = BPE
llm_load_print_meta: n_vocab          = 152064
llm_load_print_meta: n_merges         = 151387
llm_load_print_meta: vocab_only       = 1
llm_load_print_meta: model type       = ?B
llm_load_print_meta: model ftype      = all F32
llm_load_print_meta: model params     = 32.76 B
llm_load_print_meta: model size       = 18.48 GiB (4.85 BPW) 
llm_load_print_meta: general.name     = Qwen2.5 32B Instruct
llm_load_print_meta: BOS token        = 151643 '<|endoftext|>'
llm_load_print_meta: EOS token        = 151645 '<|im_end|>'
llm_load_print_meta: EOT token        = 151645 '<|im_end|>'
llm_load_print_meta: PAD token        = 151643 '<|endoftext|>'
llm_load_print_meta: LF token         = 148848 'ÄĬ'
llm_load_print_meta: FIM PRE token    = 151659 '<|fim_prefix|>'
llm_load_print_meta: FIM SUF token    = 151661 '<|fim_suffix|>'
llm_load_print_meta: FIM MID token    = 151660 '<|fim_middle|>'
llm_load_print_meta: FIM PAD token    = 151662 '<|fim_pad|>'
llm_load_print_meta: FIM REP token    = 151663 '<|repo_name|>'
llm_load_print_meta: FIM SEP token    = 151664 '<|file_sep|>'
llm_load_print_meta: EOG token        = 151643 '<|endoftext|>'
llm_load_print_meta: EOG token        = 151645 '<|im_end|>'
llm_load_print_meta: EOG token        = 151662 '<|fim_pad|>'
llm_load_print_meta: EOG token        = 151663 '<|repo_name|>'
llm_load_print_meta: EOG token        = 151664 '<|file_sep|>'
llm_load_print_meta: max token length = 256
llama_model_load: vocab only - skipping tensors

[GIN] 2025/03/14 - 17:32:01 | 200 |  8.746444903s |       127.0.0.1 | POST     "/api/chat" 
[REDACTED]
[GIN] 2025/03/14 - 17:32:04 | 200 |  2.497799875s |       127.0.0.1 | POST     "/api/chat" 
[REDACTED]
[GIN] 2025/03/14 - 17:32:05 | 200 |  1.855538579s |       127.0.0.1 | POST     "/api/chat" 
[REDACTED]
[GIN] 2025/03/14 - 17:32:14 | 200 |  8.286862443s |       127.0.0.1 | POST     "/api/chat" 
[REDACTED]
[GIN] 2025/03/14 - 17:32:15 | 200 |  1.321989394s |       127.0.0.1 | POST     "/api/chat" 
[REDACTED]
[GIN] 2025/03/14 - 17:32:19 | 200 |  4.131923305s |       127.0.0.1 | POST     "/api/chat" 
[REDACTED]

<!-- gh-comment-id:2725575718 --> @ArsalanYounus007 commented on GitHub (Mar 14, 2025): ``` 2025/03/14 17:31:26 routes.go:1187: INFO server config env="map[CUDA_VISIBLE_DEVICES: GPU_DEVICE_ORDINAL: HIP_VISIBLE_DEVICES: HSA_OVERRIDE_GFX_VERSION: HTTPS_PROXY: HTTP_PROXY: NO_PROXY: OLLAMA_DEBUG:false OLLAMA_FLASH_ATTENTION:true OLLAMA_GPU_OVERHEAD:0 OLLAMA_HOST:http://0.0.0.0:11434 OLLAMA_INTEL_GPU:false OLLAMA_KEEP_ALIVE:2562047h47m16.854775807s OLLAMA_KV_CACHE_TYPE: OLLAMA_LLM_LIBRARY: OLLAMA_LOAD_TIMEOUT:5m0s OLLAMA_MAX_LOADED_MODELS:3 OLLAMA_MAX_QUEUE:512 OLLAMA_MODELS:/root/.ollama/models OLLAMA_MULTIUSER_CACHE:false OLLAMA_NOHISTORY:false OLLAMA_NOPRUNE:false OLLAMA_NUM_PARALLEL:10 OLLAMA_ORIGINS:[http://localhost https://localhost http://localhost:* https://localhost:* http://127.0.0.1 https://127.0.0.1 http://127.0.0.1:* https://127.0.0.1:* http://0.0.0.0 https://0.0.0.0 http://0.0.0.0:* https://0.0.0.0:* app://* file://* tauri://* vscode-webview://*] OLLAMA_SCHED_SPREAD:false ROCR_VISIBLE_DEVICES: http_proxy: https_proxy: no_proxy:]" time=2025-03-14T17:31:26.787Z level=INFO source=images.go:432 msg="total blobs: 15" time=2025-03-14T17:31:26.787Z level=INFO source=images.go:439 msg="total unused blobs removed: 0" [GIN-debug] [WARNING] Creating an Engine instance with the Logger and Recovery middleware already attached. [GIN-debug] [WARNING] Running in "debug" mode. Switch to "release" mode in production. - using env: export GIN_MODE=release - using code: gin.SetMode(gin.ReleaseMode) [GIN-debug] POST /api/pull --> github.com/ollama/ollama/server.(*Server).PullHandler-fm (5 handlers) [GIN-debug] POST /api/generate --> github.com/ollama/ollama/server.(*Server).GenerateHandler-fm (5 handlers) [GIN-debug] POST /api/chat --> github.com/ollama/ollama/server.(*Server).ChatHandler-fm (5 handlers) [GIN-debug] POST /api/embed --> github.com/ollama/ollama/server.(*Server).EmbedHandler-fm (5 handlers) [GIN-debug] POST /api/embeddings --> github.com/ollama/ollama/server.(*Server).EmbeddingsHandler-fm (5 handlers) [GIN-debug] POST /api/create --> github.com/ollama/ollama/server.(*Server).CreateHandler-fm (5 handlers) [GIN-debug] POST /api/push --> github.com/ollama/ollama/server.(*Server).PushHandler-fm (5 handlers) [GIN-debug] POST /api/copy --> github.com/ollama/ollama/server.(*Server).CopyHandler-fm (5 handlers) [GIN-debug] DELETE /api/delete --> github.com/ollama/ollama/server.(*Server).DeleteHandler-fm (5 handlers) [GIN-debug] POST /api/show --> github.com/ollama/ollama/server.(*Server).ShowHandler-fm (5 handlers) [GIN-debug] POST /api/blobs/:digest --> github.com/ollama/ollama/server.(*Server).CreateBlobHandler-fm (5 handlers) [GIN-debug] HEAD /api/blobs/:digest --> github.com/ollama/ollama/server.(*Server).HeadBlobHandler-fm (5 handlers) [GIN-debug] GET /api/ps --> github.com/ollama/ollama/server.(*Server).PsHandler-fm (5 handlers) [GIN-debug] POST /v1/chat/completions --> github.com/ollama/ollama/server.(*Server).ChatHandler-fm (6 handlers) [GIN-debug] POST /v1/completions --> github.com/ollama/ollama/server.(*Server).GenerateHandler-fm (6 handlers) [GIN-debug] POST /v1/embeddings --> github.com/ollama/ollama/server.(*Server).EmbedHandler-fm (6 handlers) [GIN-debug] GET /v1/models --> github.com/ollama/ollama/server.(*Server).ListHandler-fm (6 handlers) [GIN-debug] GET /v1/models/:model --> github.com/ollama/ollama/server.(*Server).ShowHandler-fm (6 handlers) [GIN-debug] GET / --> github.com/ollama/ollama/server.(*Server).GenerateRoutes.func1 (5 handlers) [GIN-debug] GET /api/tags --> github.com/ollama/ollama/server.(*Server).ListHandler-fm (5 handlers) [GIN-debug] GET /api/version --> github.com/ollama/ollama/server.(*Server).GenerateRoutes.func2 (5 handlers) [GIN-debug] HEAD / --> github.com/ollama/ollama/server.(*Server).GenerateRoutes.func1 (5 handlers) [GIN-debug] HEAD /api/tags --> github.com/ollama/ollama/server.(*Server).ListHandler-fm (5 handlers) [GIN-debug] HEAD /api/version --> github.com/ollama/ollama/server.(*Server).GenerateRoutes.func2 (5 handlers) time=2025-03-14T17:31:26.788Z level=INFO source=routes.go:1238 msg="Listening on [::]:11434 (version 0.5.7-0-ga420a45-dirty)" time=2025-03-14T17:31:26.788Z level=INFO source=routes.go:1267 msg="Dynamic LLM libraries" runners="[cpu_avx2 cuda_v11_avx cuda_v12_avx cpu cpu_avx]" time=2025-03-14T17:31:26.788Z level=INFO source=gpu.go:226 msg="looking for compatible GPUs" time=2025-03-14T17:31:27.034Z level=INFO source=types.go:131 msg="inference compute" id=GPU-24f8473e-66ad-d978-7e3f-adbc1e47307c library=cuda variant=v12 compute=8.9 driver=12.2 name="NVIDIA GeForce RTX 4090" total="23.6 GiB" available="23.2 GiB" time=2025-03-14T17:31:27.034Z level=INFO source=types.go:131 msg="inference compute" id=GPU-de45fd91-4db6-056b-b493-d5f349d7d6a0 library=cuda variant=v12 compute=8.0 driver=12.2 name="NVIDIA A100 80GB PCIe" total="79.2 GiB" available="78.7 GiB" Pulling qwen2.5:32b model... [GIN] 2025/03/14 - 17:31:36 | 200 | 65.023µs | 127.0.0.1 | HEAD "/" time=2025-03-14T17:31:53.259Z level=INFO source=sched.go:714 msg="new model will fit in available VRAM in single GPU, loading" model=/root/.ollama/models/blobs/sha256-eabc98a9bcbfce7fd70f3e07de599f8fda98120fefed5881934161ede8bd1a41 gpu=GPU-de45fd91-4db6-056b-b493-d5f349d7d6a0 parallel=10 available=84530102272 required="25.5 GiB" time=2025-03-14T17:31:53.467Z level=INFO source=server.go:104 msg="system memory" total="125.6 GiB" free="120.8 GiB" free_swap="2.0 GiB" time=2025-03-14T17:31:53.672Z level=INFO source=memory.go:356 msg="offload to cuda" layers.requested=-1 layers.model=65 layers.offload=65 layers.split="" memory.available="[78.7 GiB]" memory.gpu_overhead="0 B" memory.required.full="25.5 GiB" memory.required.partial="25.5 GiB" memory.required.kv="5.0 GiB" memory.required.allocations="[25.5 GiB]" memory.weights.total="22.5 GiB" memory.weights.repeating="21.9 GiB" memory.weights.nonrepeating="609.1 MiB" memory.graph.full="1.6 GiB" memory.graph.partial="2.0 GiB" time=2025-03-14T17:31:53.672Z level=INFO source=server.go:223 msg="enabling flash attention" time=2025-03-14T17:31:53.672Z level=WARN source=server.go:231 msg="kv cache type not supported by model" type="" time=2025-03-14T17:31:53.672Z level=INFO source=server.go:376 msg="starting llama server" cmd="/usr/lib/ollama/runners/cuda_v12_avx/ollama_llama_server runner --model /root/.ollama/models/blobs/sha256-eabc98a9bcbfce7fd70f3e07de599f8fda98120fefed5881934161ede8bd1a41 --ctx-size 20480 --batch-size 512 --n-gpu-layers 65 --threads 8 --flash-attn --parallel 10 --port 34939" time=2025-03-14T17:31:53.673Z level=INFO source=sched.go:449 msg="loaded runners" count=1 time=2025-03-14T17:31:53.673Z level=INFO source=server.go:555 msg="waiting for llama runner to start responding" time=2025-03-14T17:31:53.673Z level=INFO source=server.go:589 msg="waiting for server to become available" status="llm server error" time=2025-03-14T17:31:53.693Z level=INFO source=runner.go:936 msg="starting go runner" ggml_cuda_init: GGML_CUDA_FORCE_MMQ: no ggml_cuda_init: GGML_CUDA_FORCE_CUBLAS: no ggml_cuda_init: found 1 CUDA devices: Device 0: NVIDIA A100 80GB PCIe, compute capability 8.0, VMM: yes time=2025-03-14T17:31:53.706Z level=INFO source=runner.go:937 msg=system info="CUDA : ARCHS = 600,610,620,700,720,750,800,860,870,890,900 | USE_GRAPHS = 1 | PEER_MAX_BATCH_SIZE = 128 | CPU : SSE3 = 1 | SSSE3 = 1 | AVX = 1 | LLAMAFILE = 1 | AARCH64_REPACK = 1 | cgo(gcc)" threads=8 time=2025-03-14T17:31:53.706Z level=INFO source=.:0 msg="Server listening on 127.0.0.1:34939" llama_load_model_from_file: using device CUDA0 (NVIDIA A100 80GB PCIe) - 80614 MiB free llama_model_loader: loaded meta data with 34 key-value pairs and 771 tensors from /root/.ollama/models/blobs/sha256-eabc98a9bcbfce7fd70f3e07de599f8fda98120fefed5881934161ede8bd1a41 (version GGUF V3 (latest)) llama_model_loader: Dumping metadata keys/values. Note: KV overrides do not apply in this output. llama_model_loader: - kv 0: general.architecture str = qwen2 llama_model_loader: - kv 1: general.type str = model llama_model_loader: - kv 2: general.name str = Qwen2.5 32B Instruct llama_model_loader: - kv 3: general.finetune str = Instruct llama_model_loader: - kv 4: general.basename str = Qwen2.5 llama_model_loader: - kv 5: general.size_label str = 32B llama_model_loader: - kv 6: general.license str = apache-2.0 llama_model_loader: - kv 7: general.license.link str = https://huggingface.co/Qwen/Qwen2.5-3... llama_model_loader: - kv 8: general.base_model.count u32 = 1 llama_model_loader: - kv 9: general.base_model.0.name str = Qwen2.5 32B llama_model_loader: - kv 10: general.base_model.0.organization str = Qwen llama_model_loader: - kv 11: general.base_model.0.repo_url str = https://huggingface.co/Qwen/Qwen2.5-32B llama_model_loader: - kv 12: general.tags arr[str,2] = ["chat", "text-generation"] llama_model_loader: - kv 13: general.languages arr[str,1] = ["en"] llama_model_loader: - kv 14: qwen2.block_count u32 = 64 llama_model_loader: - kv 15: qwen2.context_length u32 = 32768 llama_model_loader: - kv 16: qwen2.embedding_length u32 = 5120 llama_model_loader: - kv 17: qwen2.feed_forward_length u32 = 27648 llama_model_loader: - kv 18: qwen2.attention.head_count u32 = 40 llama_model_loader: - kv 19: qwen2.attention.head_count_kv u32 = 8 llama_model_loader: - kv 20: qwen2.rope.freq_base f32 = 1000000.000000 llama_model_loader: - kv 21: qwen2.attention.layer_norm_rms_epsilon f32 = 0.000001 llama_model_loader: - kv 22: general.file_type u32 = 15 llama_model_loader: - kv 23: tokenizer.ggml.model str = gpt2 llama_model_loader: - kv 24: tokenizer.ggml.pre str = qwen2 llama_model_loader: - kv 25: tokenizer.ggml.tokens arr[str,152064] = ["!", "\"", "#", "$", "%", "&", "'", ... llama_model_loader: - kv 26: tokenizer.ggml.token_type arr[i32,152064] = [1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, ... llama_model_loader: - kv 27: tokenizer.ggml.merges arr[str,151387] = ["Ġ Ġ", "ĠĠ ĠĠ", "i n", "Ġ t",... llama_model_loader: - kv 28: tokenizer.ggml.eos_token_id u32 = 151645 llama_model_loader: - kv 29: tokenizer.ggml.padding_token_id u32 = 151643 llama_model_loader: - kv 30: tokenizer.ggml.bos_token_id u32 = 151643 llama_model_loader: - kv 31: tokenizer.ggml.add_bos_token bool = false llama_model_loader: - kv 32: tokenizer.chat_template str = {%- if tools %}\n {{- '<|im_start|>... llama_model_loader: - kv 33: general.quantization_version u32 = 2 llama_model_loader: - type f32: 321 tensors llama_model_loader: - type q4_K: 385 tensors llama_model_loader: - type q6_K: 65 tensors time=2025-03-14T17:31:53.924Z level=INFO source=server.go:589 msg="waiting for server to become available" status="llm server loading model" llm_load_vocab: special tokens cache size = 22 llm_load_vocab: token to piece cache size = 0.9310 MB llm_load_print_meta: format = GGUF V3 (latest) llm_load_print_meta: arch = qwen2 llm_load_print_meta: vocab type = BPE llm_load_print_meta: n_vocab = 152064 llm_load_print_meta: n_merges = 151387 llm_load_print_meta: vocab_only = 0 llm_load_print_meta: n_ctx_train = 32768 llm_load_print_meta: n_embd = 5120 llm_load_print_meta: n_layer = 64 llm_load_print_meta: n_head = 40 llm_load_print_meta: n_head_kv = 8 llm_load_print_meta: n_rot = 128 llm_load_print_meta: n_swa = 0 llm_load_print_meta: n_embd_head_k = 128 llm_load_print_meta: n_embd_head_v = 128 llm_load_print_meta: n_gqa = 5 llm_load_print_meta: n_embd_k_gqa = 1024 llm_load_print_meta: n_embd_v_gqa = 1024 llm_load_print_meta: f_norm_eps = 0.0e+00 llm_load_print_meta: f_norm_rms_eps = 1.0e-06 llm_load_print_meta: f_clamp_kqv = 0.0e+00 llm_load_print_meta: f_max_alibi_bias = 0.0e+00 llm_load_print_meta: f_logit_scale = 0.0e+00 llm_load_print_meta: n_ff = 27648 llm_load_print_meta: n_expert = 0 llm_load_print_meta: n_expert_used = 0 llm_load_print_meta: causal attn = 1 llm_load_print_meta: pooling type = 0 llm_load_print_meta: rope type = 2 llm_load_print_meta: rope scaling = linear llm_load_print_meta: freq_base_train = 1000000.0 llm_load_print_meta: freq_scale_train = 1 llm_load_print_meta: n_ctx_orig_yarn = 32768 llm_load_print_meta: rope_finetuned = unknown llm_load_print_meta: ssm_d_conv = 0 llm_load_print_meta: ssm_d_inner = 0 llm_load_print_meta: ssm_d_state = 0 llm_load_print_meta: ssm_dt_rank = 0 llm_load_print_meta: ssm_dt_b_c_rms = 0 llm_load_print_meta: model type = 32B llm_load_print_meta: model ftype = Q4_K - Medium llm_load_print_meta: model params = 32.76 B llm_load_print_meta: model size = 18.48 GiB (4.85 BPW) llm_load_print_meta: general.name = Qwen2.5 32B Instruct llm_load_print_meta: BOS token = 151643 '<|endoftext|>' llm_load_print_meta: EOS token = 151645 '<|im_end|>' llm_load_print_meta: EOT token = 151645 '<|im_end|>' llm_load_print_meta: PAD token = 151643 '<|endoftext|>' llm_load_print_meta: LF token = 148848 'ÄĬ' llm_load_print_meta: FIM PRE token = 151659 '<|fim_prefix|>' llm_load_print_meta: FIM SUF token = 151661 '<|fim_suffix|>' llm_load_print_meta: FIM MID token = 151660 '<|fim_middle|>' llm_load_print_meta: FIM PAD token = 151662 '<|fim_pad|>' llm_load_print_meta: FIM REP token = 151663 '<|repo_name|>' llm_load_print_meta: FIM SEP token = 151664 '<|file_sep|>' llm_load_print_meta: EOG token = 151643 '<|endoftext|>' llm_load_print_meta: EOG token = 151645 '<|im_end|>' llm_load_print_meta: EOG token = 151662 '<|fim_pad|>' llm_load_print_meta: EOG token = 151663 '<|repo_name|>' llm_load_print_meta: EOG token = 151664 '<|file_sep|>' llm_load_print_meta: max token length = 256 llm_load_tensors: offloading 64 repeating layers to GPU llm_load_tensors: offloading output layer to GPU llm_load_tensors: offloaded 65/65 layers to GPU llm_load_tensors: CPU_Mapped model buffer size = 417.66 MiB llm_load_tensors: CUDA0 model buffer size = 18508.35 MiB llama_new_context_with_model: n_seq_max = 10 llama_new_context_with_model: n_ctx = 20480 llama_new_context_with_model: n_ctx_per_seq = 2048 llama_new_context_with_model: n_batch = 5120 llama_new_context_with_model: n_ubatch = 512 llama_new_context_with_model: flash_attn = 1 llama_new_context_with_model: freq_base = 1000000.0 llama_new_context_with_model: freq_scale = 1 llama_new_context_with_model: n_ctx_per_seq (2048) < n_ctx_train (32768) -- the full capacity of the model will not be utilized llama_kv_cache_init: kv_size = 20480, offload = 1, type_k = 'f16', type_v = 'f16', n_layer = 64, can_shift = 1 llama_kv_cache_init: CUDA0 KV buffer size = 5120.00 MiB llama_new_context_with_model: KV self size = 5120.00 MiB, K (f16): 2560.00 MiB, V (f16): 2560.00 MiB llama_new_context_with_model: CUDA_Host output buffer size = 6.00 MiB llama_new_context_with_model: CUDA0 compute buffer size = 307.00 MiB llama_new_context_with_model: CUDA_Host compute buffer size = 50.01 MiB llama_new_context_with_model: graph nodes = 1991 llama_new_context_with_model: graph splits = 2 time=2025-03-14T17:31:57.690Z level=INFO source=server.go:594 msg="llama runner started in 4.02 seconds" llama_model_loader: loaded meta data with 34 key-value pairs and 771 tensors from /root/.ollama/models/blobs/sha256-eabc98a9bcbfce7fd70f3e07de599f8fda98120fefed5881934161ede8bd1a41 (version GGUF V3 (latest)) llama_model_loader: Dumping metadata keys/values. Note: KV overrides do not apply in this output. llama_model_loader: - kv 0: general.architecture str = qwen2 llama_model_loader: - kv 1: general.type str = model llama_model_loader: - kv 2: general.name str = Qwen2.5 32B Instruct llama_model_loader: - kv 3: general.finetune str = Instruct llama_model_loader: - kv 4: general.basename str = Qwen2.5 llama_model_loader: - kv 5: general.size_label str = 32B llama_model_loader: - kv 6: general.license str = apache-2.0 llama_model_loader: - kv 7: general.license.link str = https://huggingface.co/Qwen/Qwen2.5-3... llama_model_loader: - kv 8: general.base_model.count u32 = 1 llama_model_loader: - kv 9: general.base_model.0.name str = Qwen2.5 32B llama_model_loader: - kv 10: general.base_model.0.organization str = Qwen llama_model_loader: - kv 11: general.base_model.0.repo_url str = https://huggingface.co/Qwen/Qwen2.5-32B llama_model_loader: - kv 12: general.tags arr[str,2] = ["chat", "text-generation"] llama_model_loader: - kv 13: general.languages arr[str,1] = ["en"] llama_model_loader: - kv 14: qwen2.block_count u32 = 64 llama_model_loader: - kv 15: qwen2.context_length u32 = 32768 llama_model_loader: - kv 16: qwen2.embedding_length u32 = 5120 llama_model_loader: - kv 17: qwen2.feed_forward_length u32 = 27648 llama_model_loader: - kv 18: qwen2.attention.head_count u32 = 40 llama_model_loader: - kv 19: qwen2.attention.head_count_kv u32 = 8 llama_model_loader: - kv 20: qwen2.rope.freq_base f32 = 1000000.000000 llama_model_loader: - kv 21: qwen2.attention.layer_norm_rms_epsilon f32 = 0.000001 llama_model_loader: - kv 22: general.file_type u32 = 15 llama_model_loader: - kv 23: tokenizer.ggml.model str = gpt2 llama_model_loader: - kv 24: tokenizer.ggml.pre str = qwen2 llama_model_loader: - kv 25: tokenizer.ggml.tokens arr[str,152064] = ["!", "\"", "#", "$", "%", "&", "'", ... llama_model_loader: - kv 26: tokenizer.ggml.token_type arr[i32,152064] = [1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, ... llama_model_loader: - kv 27: tokenizer.ggml.merges arr[str,151387] = ["Ġ Ġ", "ĠĠ ĠĠ", "i n", "Ġ t",... llama_model_loader: - kv 28: tokenizer.ggml.eos_token_id u32 = 151645 llama_model_loader: - kv 29: tokenizer.ggml.padding_token_id u32 = 151643 llama_model_loader: - kv 30: tokenizer.ggml.bos_token_id u32 = 151643 llama_model_loader: - kv 31: tokenizer.ggml.add_bos_token bool = false llama_model_loader: - kv 32: tokenizer.chat_template str = {%- if tools %}\n {{- '<|im_start|>... llama_model_loader: - kv 33: general.quantization_version u32 = 2 llama_model_loader: - type f32: 321 tensors llama_model_loader: - type q4_K: 385 tensors llama_model_loader: - type q6_K: 65 tensors llm_load_vocab: special tokens cache size = 22 llm_load_vocab: token to piece cache size = 0.9310 MB llm_load_print_meta: format = GGUF V3 (latest) llm_load_print_meta: arch = qwen2 llm_load_print_meta: vocab type = BPE llm_load_print_meta: n_vocab = 152064 llm_load_print_meta: n_merges = 151387 llm_load_print_meta: vocab_only = 1 llm_load_print_meta: model type = ?B llm_load_print_meta: model ftype = all F32 llm_load_print_meta: model params = 32.76 B llm_load_print_meta: model size = 18.48 GiB (4.85 BPW) llm_load_print_meta: general.name = Qwen2.5 32B Instruct llm_load_print_meta: BOS token = 151643 '<|endoftext|>' llm_load_print_meta: EOS token = 151645 '<|im_end|>' llm_load_print_meta: EOT token = 151645 '<|im_end|>' llm_load_print_meta: PAD token = 151643 '<|endoftext|>' llm_load_print_meta: LF token = 148848 'ÄĬ' llm_load_print_meta: FIM PRE token = 151659 '<|fim_prefix|>' llm_load_print_meta: FIM SUF token = 151661 '<|fim_suffix|>' llm_load_print_meta: FIM MID token = 151660 '<|fim_middle|>' llm_load_print_meta: FIM PAD token = 151662 '<|fim_pad|>' llm_load_print_meta: FIM REP token = 151663 '<|repo_name|>' llm_load_print_meta: FIM SEP token = 151664 '<|file_sep|>' llm_load_print_meta: EOG token = 151643 '<|endoftext|>' llm_load_print_meta: EOG token = 151645 '<|im_end|>' llm_load_print_meta: EOG token = 151662 '<|fim_pad|>' llm_load_print_meta: EOG token = 151663 '<|repo_name|>' llm_load_print_meta: EOG token = 151664 '<|file_sep|>' llm_load_print_meta: max token length = 256 llama_model_load: vocab only - skipping tensors [GIN] 2025/03/14 - 17:32:01 | 200 | 8.746444903s | 127.0.0.1 | POST "/api/chat" [REDACTED] [GIN] 2025/03/14 - 17:32:04 | 200 | 2.497799875s | 127.0.0.1 | POST "/api/chat" [REDACTED] [GIN] 2025/03/14 - 17:32:05 | 200 | 1.855538579s | 127.0.0.1 | POST "/api/chat" [REDACTED] [GIN] 2025/03/14 - 17:32:14 | 200 | 8.286862443s | 127.0.0.1 | POST "/api/chat" [REDACTED] [GIN] 2025/03/14 - 17:32:15 | 200 | 1.321989394s | 127.0.0.1 | POST "/api/chat" [REDACTED] [GIN] 2025/03/14 - 17:32:19 | 200 | 4.131923305s | 127.0.0.1 | POST "/api/chat" [REDACTED] ```
Author
Owner

@rick-github commented on GitHub (Mar 14, 2025):

Nothing unusual in the log. How sure are you that the tasks are sequential? I modified your test script to do both async and sync runs and the async takes less time.

--- 9772.py.orig        2025-03-14 20:51:56.897747355 +0100
+++ 9772.py     2025-03-14 21:34:49.317201739 +0100
@@ -1,6 +1,9 @@
+#!/usr/bin/env python3
+
 import asyncio
 from ollama import AsyncClient
 import logging
+import time
 
 logging.basicConfig(level=logging.INFO)
 logger = logging.getLogger(__name__)
@@ -40,11 +43,18 @@
             "messages": [{"role": "user", "content": "World"}]
         }
     }
+    sections = {f"section{i}":{"model":"llama3.2","messages":[{"role":"user","content":"count to 100"}]} for i in range(10)}
 
     # Process sections concurrently
+    t0 = time.perf_counter()
     tasks = [process_section(key, config["model"], config["messages"]) 
             for key, config in sections.items()]
     results = await asyncio.gather(*tasks)
+    t1 = time.perf_counter()
+    for key, config in sections.items():
+      await process_section(key, config["model"], config["messages"])
+    t2 = time.perf_counter()
+    print(f"async: {t1-t0}, sync: {t2-t1}")
     
     # Print results
     for key, result in results:
$ ./9772.py
INFO:httpx:HTTP Request: POST http://127.0.0.1:11434/api/chat "HTTP/1.1 200 OK"
INFO:__main__:Completed section: section5
...
INFO:__main__:Completed section: section9
async: 5.778746280993801, sync: 25.40941732400097

<!-- gh-comment-id:2725711839 --> @rick-github commented on GitHub (Mar 14, 2025): Nothing unusual in the log. How sure are you that the tasks are sequential? I modified your test script to do both async and sync runs and the async takes less time. ```diff --- 9772.py.orig 2025-03-14 20:51:56.897747355 +0100 +++ 9772.py 2025-03-14 21:34:49.317201739 +0100 @@ -1,6 +1,9 @@ +#!/usr/bin/env python3 + import asyncio from ollama import AsyncClient import logging +import time logging.basicConfig(level=logging.INFO) logger = logging.getLogger(__name__) @@ -40,11 +43,18 @@ "messages": [{"role": "user", "content": "World"}] } } + sections = {f"section{i}":{"model":"llama3.2","messages":[{"role":"user","content":"count to 100"}]} for i in range(10)} # Process sections concurrently + t0 = time.perf_counter() tasks = [process_section(key, config["model"], config["messages"]) for key, config in sections.items()] results = await asyncio.gather(*tasks) + t1 = time.perf_counter() + for key, config in sections.items(): + await process_section(key, config["model"], config["messages"]) + t2 = time.perf_counter() + print(f"async: {t1-t0}, sync: {t2-t1}") # Print results for key, result in results: ``` ```console $ ./9772.py INFO:httpx:HTTP Request: POST http://127.0.0.1:11434/api/chat "HTTP/1.1 200 OK" INFO:__main__:Completed section: section5 ... INFO:__main__:Completed section: section9 async: 5.778746280993801, sync: 25.40941732400097 ```
Author
Owner

@ArsalanYounus007 commented on GitHub (Mar 17, 2025):

Can you please tell me the Ollama version that you are using?
Maybe something is off with the version that I am using

<!-- gh-comment-id:2730532971 --> @ArsalanYounus007 commented on GitHub (Mar 17, 2025): Can you please tell me the Ollama version that you are using? Maybe something is off with the version that I am using
Author
Owner

@rick-github commented on GitHub (Mar 17, 2025):

0.5.7

<!-- gh-comment-id:2730649850 --> @rick-github commented on GitHub (Mar 17, 2025): 0.5.7
Author
Owner

@ArsalanYounus007 commented on GitHub (Mar 18, 2025):

I got it working with some changes in my code, Closing this one
Thank you!!

<!-- gh-comment-id:2732540767 --> @ArsalanYounus007 commented on GitHub (Mar 18, 2025): I got it working with some changes in my code, Closing this one Thank you!!
Sign in to join this conversation.
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: github-starred/ollama#52902