deepseek_ocr_server_8707_20260204_142755.log 21.6 KB
Newer Older
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
INFO 02-04 14:28:00 [__init__.py:240] Automatically detected platform rocm.
/home/lst/DeepSeek-OCR2-vllm/deepseek_ocr_server.py:472: DeprecationWarning: 
        on_event is deprecated, use lifespan event handlers instead.

        Read more about it in the
        [FastAPI docs for Lifespan Events](https://fastapi.tiangolo.com/advanced/events/).
        
  @app.on_event("shutdown")
[INFO] 加载模型: /home/lst/deepseek_ocr2
INFO 02-04 14:28:05 [config.py:460] Overriding HF config with {'architectures': ['DeepseekOCR2ForCausalLM']}
INFO 02-04 14:28:05 [config.py:721] This model supports multiple tasks: {'embed', 'generate', 'score', 'classify', 'reward'}. Defaulting to 'generate'.
INFO 02-04 14:28:05 [llm_engine.py:244] Initializing a V0 LLM engine (v0.8.5.post1) with config: model='/home/lst/deepseek_ocr2', speculative_config=None, tokenizer='/home/lst/deepseek_ocr2', skip_tokenizer_init=False, tokenizer_mode=auto, revision=None, override_neuron_config=None, tokenizer_revision=None, trust_remote_code=True, dtype=torch.bfloat16, max_seq_len=3281, download_dir=None, load_format=auto, tensor_parallel_size=1, pipeline_parallel_size=1, disable_custom_all_reduce=False, quantization=None, enforce_eager=False, kv_cache_dtype=auto,  device_config=cuda, decoding_config=DecodingConfig(guided_decoding_backend='xgrammar', reasoning_backend=None), observability_config=ObservabilityConfig(show_hidden_metrics=False, otlp_traces_endpoint=None, collect_model_forward_time=False, collect_model_execute_time=False), seed=None, served_model_name=/home/lst/deepseek_ocr2, num_scheduler_steps=1, multi_step_stream_outputs=True, enable_prefix_caching=None, chunked_prefill_enabled=False, use_async_output_proc=True, disable_mm_preprocessor_cache=True, mm_processor_kwargs=None, pooler_config=None, compilation_config={"splitting_ops":[],"compile_sizes":[],"cudagraph_capture_sizes":[24,16,8,4,2,1],"max_capture_size":24}, use_cached_outputs=False, 
INFO 02-04 14:28:06 [rocm.py:226] None is not supported in AMD GPUs.
INFO 02-04 14:28:06 [rocm.py:227] Using ROCmFlashAttention backend.
WARNING 02-04 14:28:06 [worker_base.py:41] VLLM_RANK0_NUMA is unset or set incorrectly, vllm will not bind to numa! VLLM_RANK0_NUMA = -1
INFO 02-04 14:28:06 [worker_base.py:653] ########## 12544 process(rank0) is running on CPU(s): {0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31}
INFO 02-04 14:28:06 [worker_base.py:654] ########## 12544 process(rank0) is running on memnode(s): {0, 1, 2, 3}
WARNING: Logging before InitGoogleLogging() is written to STDERR
I0204 14:28:06.276472 12544 ProcessGroupNCCL.cpp:881] [PG 0 Rank 0] ProcessGroupNCCL initialization options: size: 1, global rank: 0, TIMEOUT(ms): 600000, USE_HIGH_PRIORITY_STREAM: 0, SPLIT_FROM: 0, SPLIT_COLOR: 0, PG Name: 0
I0204 14:28:06.276561 12544 ProcessGroupNCCL.cpp:890] [PG 0 Rank 0] ProcessGroupNCCL environments: NCCL version: 2.18.3, TORCH_NCCL_ASYNC_ERROR_HANDLING: 3, TORCH_NCCL_DUMP_ON_TIMEOUT: 0, TORCH_NCCL_WAIT_TIMEOUT_DUMP_MILSEC: 60000, TORCH_NCCL_DESYNC_DEBUG: 0, TORCH_NCCL_ENABLE_TIMING: 0, TORCH_NCCL_BLOCKING_WAIT: 0, TORCH_DISTRIBUTED_DEBUG: OFF, TORCH_NCCL_ENABLE_MONITORING: 1, TORCH_NCCL_HEARTBEAT_TIMEOUT_SEC: 600, TORCH_NCCL_TRACE_BUFFER_SIZE: 0, TORCH_NCCL_COORD_CHECK_MILSEC: 1000, TORCH_NCCL_NAN_CHECK: 0
I0204 14:28:06.277021 12544 ProcessGroupNCCL.cpp:881] [PG 1 Rank 0] ProcessGroupNCCL initialization options: size: 1, global rank: 0, TIMEOUT(ms): 600000, USE_HIGH_PRIORITY_STREAM: 0, SPLIT_FROM: 0x56262096b7b0, SPLIT_COLOR: 3389850942126204093, PG Name: 1
I0204 14:28:06.277037 12544 ProcessGroupNCCL.cpp:890] [PG 1 Rank 0] ProcessGroupNCCL environments: NCCL version: 2.18.3, TORCH_NCCL_ASYNC_ERROR_HANDLING: 3, TORCH_NCCL_DUMP_ON_TIMEOUT: 0, TORCH_NCCL_WAIT_TIMEOUT_DUMP_MILSEC: 60000, TORCH_NCCL_DESYNC_DEBUG: 0, TORCH_NCCL_ENABLE_TIMING: 0, TORCH_NCCL_BLOCKING_WAIT: 0, TORCH_DISTRIBUTED_DEBUG: OFF, TORCH_NCCL_ENABLE_MONITORING: 1, TORCH_NCCL_HEARTBEAT_TIMEOUT_SEC: 600, TORCH_NCCL_TRACE_BUFFER_SIZE: 0, TORCH_NCCL_COORD_CHECK_MILSEC: 1000, TORCH_NCCL_NAN_CHECK: 0
I0204 14:28:06.296979 12544 ProcessGroupNCCL.cpp:881] [PG 3 Rank 0] ProcessGroupNCCL initialization options: size: 1, global rank: 0, TIMEOUT(ms): 600000, USE_HIGH_PRIORITY_STREAM: 0, SPLIT_FROM: 0x56262096b7b0, SPLIT_COLOR: 3389850942126204093, PG Name: 3
I0204 14:28:06.297024 12544 ProcessGroupNCCL.cpp:890] [PG 3 Rank 0] ProcessGroupNCCL environments: NCCL version: 2.18.3, TORCH_NCCL_ASYNC_ERROR_HANDLING: 3, TORCH_NCCL_DUMP_ON_TIMEOUT: 0, TORCH_NCCL_WAIT_TIMEOUT_DUMP_MILSEC: 60000, TORCH_NCCL_DESYNC_DEBUG: 0, TORCH_NCCL_ENABLE_TIMING: 0, TORCH_NCCL_BLOCKING_WAIT: 0, TORCH_DISTRIBUTED_DEBUG: OFF, TORCH_NCCL_ENABLE_MONITORING: 1, TORCH_NCCL_HEARTBEAT_TIMEOUT_SEC: 600, TORCH_NCCL_TRACE_BUFFER_SIZE: 0, TORCH_NCCL_COORD_CHECK_MILSEC: 1000, TORCH_NCCL_NAN_CHECK: 0
I0204 14:28:06.298228 12544 ProcessGroupNCCL.cpp:881] [PG 5 Rank 0] ProcessGroupNCCL initialization options: size: 1, global rank: 0, TIMEOUT(ms): 600000, USE_HIGH_PRIORITY_STREAM: 0, SPLIT_FROM: 0x56262096b7b0, SPLIT_COLOR: 3389850942126204093, PG Name: 5
I0204 14:28:06.298249 12544 ProcessGroupNCCL.cpp:890] [PG 5 Rank 0] ProcessGroupNCCL environments: NCCL version: 2.18.3, TORCH_NCCL_ASYNC_ERROR_HANDLING: 3, TORCH_NCCL_DUMP_ON_TIMEOUT: 0, TORCH_NCCL_WAIT_TIMEOUT_DUMP_MILSEC: 60000, TORCH_NCCL_DESYNC_DEBUG: 0, TORCH_NCCL_ENABLE_TIMING: 0, TORCH_NCCL_BLOCKING_WAIT: 0, TORCH_DISTRIBUTED_DEBUG: OFF, TORCH_NCCL_ENABLE_MONITORING: 1, TORCH_NCCL_HEARTBEAT_TIMEOUT_SEC: 600, TORCH_NCCL_TRACE_BUFFER_SIZE: 0, TORCH_NCCL_COORD_CHECK_MILSEC: 1000, TORCH_NCCL_NAN_CHECK: 0
I0204 14:28:06.299176 12544 ProcessGroupNCCL.cpp:881] [PG 7 Rank 0] ProcessGroupNCCL initialization options: size: 1, global rank: 0, TIMEOUT(ms): 600000, USE_HIGH_PRIORITY_STREAM: 0, SPLIT_FROM: 0x56262096b7b0, SPLIT_COLOR: 3389850942126204093, PG Name: 7
I0204 14:28:06.299197 12544 ProcessGroupNCCL.cpp:890] [PG 7 Rank 0] ProcessGroupNCCL environments: NCCL version: 2.18.3, TORCH_NCCL_ASYNC_ERROR_HANDLING: 3, TORCH_NCCL_DUMP_ON_TIMEOUT: 0, TORCH_NCCL_WAIT_TIMEOUT_DUMP_MILSEC: 60000, TORCH_NCCL_DESYNC_DEBUG: 0, TORCH_NCCL_ENABLE_TIMING: 0, TORCH_NCCL_BLOCKING_WAIT: 0, TORCH_DISTRIBUTED_DEBUG: OFF, TORCH_NCCL_ENABLE_MONITORING: 1, TORCH_NCCL_HEARTBEAT_TIMEOUT_SEC: 600, TORCH_NCCL_TRACE_BUFFER_SIZE: 0, TORCH_NCCL_COORD_CHECK_MILSEC: 1000, TORCH_NCCL_NAN_CHECK: 0
INFO 02-04 14:28:06 [parallel_state.py:1004] rank 0 in world size 1 is assigned as DP rank 0, PP rank 0, TP rank 0
INFO 02-04 14:28:06 [model_runner.py:1133] Starting to load model /home/lst/deepseek_ocr2...
Using the `SDPA` attention implementation on multi-gpu setup with ROCM may lead to performance issues due to the FA backend. Disabling it to use alternative backends.
INFO 02-04 14:28:07 [config.py:3627] cudagraph sizes specified by model runner [1, 2, 4, 8, 16, 24] is overridden by config [1, 2, 4, 8, 16, 24]

Loading safetensors checkpoint shards:   0% Completed | 0/1 [00:00<?, ?it/s]

Loading safetensors checkpoint shards: 100% Completed | 1/1 [00:00<00:00,  7.13it/s]

Loading safetensors checkpoint shards: 100% Completed | 1/1 [00:00<00:00,  7.11it/s]

INFO 02-04 14:28:09 [loader.py:460] Loading weights took 1.92 seconds
INFO 02-04 14:28:10 [model_runner.py:1165] Model loading took 6.3336 GiB and 3.579491 seconds
Some kwargs in processor config are unused and will not have any effect: ignore_id, patch_size, image_std, sft_format, normalize, image_token, add_special_token, mask_prompt, image_mean, candidate_resolutions, pad_token, downsample_ratio. 
/home/lst/DeepSeek-OCR2-vllm/deepencoderv2/sam_vary_sdpa.py:310: UserWarning: 1Torch was not compiled with memory efficient attention. (Triggered internally at /home/pytorch/aten/src/ATen/native/transformers/hip/sdp_utils.cpp:627.)
  x = torch.nn.functional.scaled_dot_product_attention(q, k, v, attn_mask=attn_bias)
WARNING 02-04 14:28:19 [fused_moe.py:882] Using default MoE config. Performance might be sub-optimal! Config file not found at /usr/local/lib/python3.10/dist-packages/vllm/model_executor/layers/fused_moe/configs/E=64,N=896,device_name=K100_AI.json
INFO 02-04 14:28:20 [worker.py:287] Memory profiling takes 10.29 seconds
INFO 02-04 14:28:20 [worker.py:287] the current vLLM instance can use total_gpu_memory (63.98GiB) x gpu_memory_utilization (0.90) = 57.59GiB
INFO 02-04 14:28:20 [worker.py:287] model weights take 6.33GiB; non_torch_memory takes 1.58GiB; PyTorch activation peak memory takes 1.86GiB; the rest of the memory reserved for KV Cache is 47.81GiB.
INFO 02-04 14:28:20 [executor_base.py:112] # rocm blocks: 13055, # CPU blocks: 1092
INFO 02-04 14:28:20 [executor_base.py:117] Maximum concurrency for 3281 tokens per request: 254.65x
INFO 02-04 14:28:22 [model_runner.py:1523] Capturing cudagraphs for decoding. This may lead to unexpected consequences if the model is not static. To run the model in eager mode, set 'enforce_eager=True' or use '--enforce-eager' in the CLI. If out-of-memory error occurs during cudagraph capture, consider decreasing `gpu_memory_utilization` or switching to eager mode. You can also reduce the `max_num_seqs` as needed to decrease memory usage.

Capturing CUDA graph shapes:   0%|          | 0/6 [00:00<?, ?it/s]
Capturing CUDA graph shapes:  17%|█▋        | 1/6 [00:00<00:02,  1.80it/s]
Capturing CUDA graph shapes:  33%|███▎      | 2/6 [00:01<00:02,  1.93it/s]
Capturing CUDA graph shapes:  50%|█████     | 3/6 [00:01<00:01,  2.00it/s]
Capturing CUDA graph shapes:  67%|██████▋   | 4/6 [00:02<00:01,  2.00it/s]
Capturing CUDA graph shapes:  83%|████████▎ | 5/6 [00:02<00:00,  2.01it/s]
Capturing CUDA graph shapes: 100%|██████████| 6/6 [00:02<00:00,  2.04it/s]
Capturing CUDA graph shapes: 100%|██████████| 6/6 [00:02<00:00,  2.00it/s]
INFO 02-04 14:28:25 [model_runner.py:1752] Graph capturing finished in 3 secs, took 0.12 GiB
INFO 02-04 14:28:25 [llm_engine.py:447] init engine (profile, create kv cache, warmup model) took 15.87 seconds
[SUCCESS] 模型加载完成
[INFO] 线程池配置:
   - CPU 线程池: 2 线程
   - GPU 线程池: 1 线程

[INFO] 服务启动: http://0.0.0.0:8707
[INFO] 接口文档: http://0.0.0.0:8707/docs

INFO:     Started server process [12544]
INFO:     Waiting for application startup.
INFO:     Application startup complete.
INFO:     Uvicorn running on http://0.0.0.0:8707 (Press CTRL+C to quit)
Some kwargs in processor config are unused and will not have any effect: ignore_id, patch_size, image_std, sft_format, normalize, image_token, add_special_token, mask_prompt, image_mean, candidate_resolutions, pad_token, downsample_ratio. 
   [1/3] Tokenize 19 页...
   [1/3] Tokenize 完成
   [2/3] GPU 批量推理 19 页...

Processed prompts:   0%|          | 0/19 [00:00<?, ?it/s, est. speed input: 0.00 toks/s, output: 0.00 toks/s]
Processed prompts:   5%|▌         | 1/19 [00:12<03:41, 12.32s/it, est. speed input: 91.79 toks/s, output: 1.46 toks/s]
Processed prompts:  11%|█         | 2/19 [00:15<01:57,  6.90s/it, est. speed input: 146.60 toks/s, output: 8.81 toks/s]
Processed prompts:  16%|█▌        | 3/19 [00:16<01:05,  4.10s/it, est. speed input: 209.42 toks/s, output: 17.22 toks/s]
Processed prompts:  21%|██        | 4/19 [00:16<00:38,  2.57s/it, est. speed input: 275.32 toks/s, output: 26.17 toks/s]
Processed prompts:  26%|██▋       | 5/19 [00:16<00:25,  1.84s/it, est. speed input: 333.36 toks/s, output: 35.37 toks/s]
Processed prompts:  37%|███▋      | 7/19 [00:17<00:11,  1.03it/s, est. speed input: 459.21 toks/s, output: 55.22 toks/s]
Processed prompts:  53%|█████▎    | 10/19 [00:17<00:04,  1.94it/s, est. speed input: 645.85 toks/s, output: 86.11 toks/s]
Processed prompts:  58%|█████▊    | 11/19 [00:17<00:03,  2.21it/s, est. speed input: 702.21 toks/s, output: 96.40 toks/s]
Processed prompts:  63%|██████▎   | 12/19 [00:18<00:03,  2.12it/s, est. speed input: 743.65 toks/s, output: 105.86 toks/s]
Processed prompts:  68%|██████▊   | 13/19 [00:18<00:02,  2.48it/s, est. speed input: 797.42 toks/s, output: 117.42 toks/s]
Processed prompts:  74%|███████▎  | 14/19 [00:18<00:01,  3.04it/s, est. speed input: 853.49 toks/s, output: 129.58 toks/s]
Processed prompts:  79%|███████▉  | 15/19 [00:18<00:01,  3.59it/s, est. speed input: 907.64 toks/s, output: 141.83 toks/s]
Processed prompts:  84%|████████▍ | 16/19 [00:18<00:00,  3.92it/s, est. speed input: 958.14 toks/s, output: 154.13 toks/s]
Processed prompts:  89%|████████▉ | 17/19 [00:20<00:01,  1.98it/s, est. speed input: 960.27 toks/s, output: 162.27 toks/s]
Processed prompts:  95%|█████████▍| 18/19 [00:20<00:00,  1.91it/s, est. speed input: 988.41 toks/s, output: 176.87 toks/s]
Processed prompts: 100%|██████████| 19/19 [00:21<00:00,  1.69it/s, est. speed input: 1006.67 toks/s, output: 193.52 toks/s]
Processed prompts: 100%|██████████| 19/19 [00:21<00:00,  1.12s/it, est. speed input: 1006.67 toks/s, output: 193.52 toks/s]
   [2/3] GPU 推理完成
   OCR 耗时: 26.37s
   [3/3] 后处理...
   [3/3] 后处理完成 (0.00s)
============================================================
[SUCCESS] 全部完成
   总耗时: 28.83s
   平均: 1.52s/页
============================================================

INFO:     127.0.0.1:51734 - "POST /ocr HTTP/1.1" 200 OK
   [1/3] Tokenize 19 页...
   [1/3] Tokenize 完成
   [2/3] GPU 批量推理 19 页...

Processed prompts:   0%|          | 0/19 [00:00<?, ?it/s, est. speed input: 0.00 toks/s, output: 0.00 toks/s]
Processed prompts:   5%|▌         | 1/19 [00:12<03:37, 12.07s/it, est. speed input: 93.70 toks/s, output: 1.49 toks/s]
Processed prompts:  11%|█         | 2/19 [00:15<01:55,  6.80s/it, est. speed input: 149.07 toks/s, output: 8.96 toks/s]
Processed prompts:  16%|█▌        | 3/19 [00:15<01:04,  4.06s/it, est. speed input: 212.46 toks/s, output: 17.47 toks/s]
Processed prompts:  21%|██        | 4/19 [00:16<00:38,  2.55s/it, est. speed input: 279.15 toks/s, output: 26.53 toks/s]
Processed prompts:  26%|██▋       | 5/19 [00:17<00:26,  1.92s/it, est. speed input: 332.36 toks/s, output: 35.26 toks/s]
Processed prompts:  37%|███▋      | 7/19 [00:17<00:12,  1.02s/it, est. speed input: 457.76 toks/s, output: 55.04 toks/s]
Processed prompts:  53%|█████▎    | 10/19 [00:17<00:04,  1.87it/s, est. speed input: 643.63 toks/s, output: 85.82 toks/s]
Processed prompts:  58%|█████▊    | 11/19 [00:17<00:03,  2.13it/s, est. speed input: 699.71 toks/s, output: 96.06 toks/s]
Processed prompts:  63%|██████▎   | 12/19 [00:18<00:03,  2.06it/s, est. speed input: 740.91 toks/s, output: 105.47 toks/s]
Processed prompts:  68%|██████▊   | 13/19 [00:18<00:02,  2.42it/s, est. speed input: 794.48 toks/s, output: 116.99 toks/s]
Processed prompts:  74%|███████▎  | 14/19 [00:18<00:01,  2.96it/s, est. speed input: 850.35 toks/s, output: 129.10 toks/s]
Processed prompts:  79%|███████▉  | 15/19 [00:18<00:01,  3.51it/s, est. speed input: 904.30 toks/s, output: 141.31 toks/s]
Processed prompts:  84%|████████▍ | 16/19 [00:18<00:00,  3.84it/s, est. speed input: 954.60 toks/s, output: 153.56 toks/s]
Processed prompts:  89%|████████▉ | 17/19 [00:20<00:01,  1.97it/s, est. speed input: 956.87 toks/s, output: 161.69 toks/s]
Processed prompts:  95%|█████████▍| 18/19 [00:20<00:00,  1.90it/s, est. speed input: 985.04 toks/s, output: 176.27 toks/s]
Processed prompts: 100%|██████████| 19/19 [00:21<00:00,  1.69it/s, est. speed input: 1003.54 toks/s, output: 192.92 toks/s]
Processed prompts: 100%|██████████| 19/19 [00:21<00:00,  1.13s/it, est. speed input: 1003.54 toks/s, output: 192.92 toks/s]
   [2/3] GPU 推理完成
   OCR 耗时: 24.64s
   [3/3] 后处理...
   [3/3] 后处理完成 (0.00s)
============================================================
[SUCCESS] 全部完成
   总耗时: 27.09s
   平均: 1.43s/页
============================================================

INFO:     127.0.0.1:34080 - "POST /ocr HTTP/1.1" 200 OK
   [1/3] Tokenize 19 页...
   [1/3] Tokenize 完成
   [2/3] GPU 批量推理 19 页...

Processed prompts:   0%|          | 0/19 [00:00<?, ?it/s, est. speed input: 0.00 toks/s, output: 0.00 toks/s]
Processed prompts:   5%|▌         | 1/19 [00:12<03:37, 12.07s/it, est. speed input: 93.72 toks/s, output: 1.49 toks/s]
Processed prompts:  11%|█         | 2/19 [00:15<01:55,  6.80s/it, est. speed input: 149.03 toks/s, output: 8.96 toks/s]
Processed prompts:  16%|█▌        | 3/19 [00:15<01:04,  4.05s/it, est. speed input: 212.52 toks/s, output: 17.48 toks/s]
Processed prompts:  21%|██        | 4/19 [00:16<00:38,  2.55s/it, est. speed input: 279.28 toks/s, output: 26.54 toks/s]
Processed prompts:  26%|██▋       | 5/19 [00:16<00:25,  1.82s/it, est. speed input: 337.87 toks/s, output: 35.85 toks/s]
Processed prompts:  37%|███▋      | 7/19 [00:17<00:11,  1.03it/s, est. speed input: 465.26 toks/s, output: 55.95 toks/s]
Processed prompts:  53%|█████▎    | 10/19 [00:17<00:04,  1.96it/s, est. speed input: 654.17 toks/s, output: 87.22 toks/s]
Processed prompts:  58%|█████▊    | 11/19 [00:17<00:03,  2.22it/s, est. speed input: 711.13 toks/s, output: 97.63 toks/s]
Processed prompts:  63%|██████▎   | 12/19 [00:18<00:03,  2.13it/s, est. speed input: 752.74 toks/s, output: 107.15 toks/s]
Processed prompts:  68%|██████▊   | 13/19 [00:18<00:02,  2.49it/s, est. speed input: 807.04 toks/s, output: 118.84 toks/s]
Processed prompts:  74%|███████▎  | 14/19 [00:18<00:01,  3.05it/s, est. speed input: 863.71 toks/s, output: 131.13 toks/s]
Processed prompts:  79%|███████▉  | 15/19 [00:18<00:01,  3.60it/s, est. speed input: 918.44 toks/s, output: 143.52 toks/s]
Processed prompts:  84%|████████▍ | 16/19 [00:18<00:00,  3.91it/s, est. speed input: 969.22 toks/s, output: 155.91 toks/s]
Processed prompts:  89%|████████▉ | 17/19 [00:19<00:01,  1.98it/s, est. speed input: 970.71 toks/s, output: 164.03 toks/s]
Processed prompts:  95%|█████████▍| 18/19 [00:20<00:00,  1.90it/s, est. speed input: 998.67 toks/s, output: 178.71 toks/s]
Processed prompts: 100%|██████████| 19/19 [00:21<00:00,  1.69it/s, est. speed input: 1016.79 toks/s, output: 195.47 toks/s]
Processed prompts: 100%|██████████| 19/19 [00:21<00:00,  1.11s/it, est. speed input: 1016.79 toks/s, output: 195.47 toks/s]
   [2/3] GPU 推理完成
   OCR 耗时: 24.22s
   [3/3] 后处理...
   [3/3] 后处理完成 (0.00s)
============================================================
[SUCCESS] 全部完成
   总耗时: 26.65s
   平均: 1.40s/页
============================================================

INFO:     127.0.0.1:47994 - "POST /ocr HTTP/1.1" 200 OK
   [1/3] Tokenize 19 页...
   [1/3] Tokenize 完成
   [2/3] GPU 批量推理 19 页...

Processed prompts:   0%|          | 0/19 [00:00<?, ?it/s, est. speed input: 0.00 toks/s, output: 0.00 toks/s]
Processed prompts:   5%|▌         | 1/19 [00:12<03:37, 12.07s/it, est. speed input: 93.73 toks/s, output: 1.49 toks/s]
Processed prompts:  11%|█         | 2/19 [00:15<01:55,  6.81s/it, est. speed input: 148.91 toks/s, output: 8.95 toks/s]
Processed prompts:  16%|█▌        | 3/19 [00:15<01:04,  4.06s/it, est. speed input: 212.24 toks/s, output: 17.45 toks/s]
Processed prompts:  21%|██        | 4/19 [00:16<00:38,  2.55s/it, est. speed input: 278.87 toks/s, output: 26.51 toks/s]
Processed prompts:  26%|██▋       | 5/19 [00:16<00:25,  1.83s/it, est. speed input: 337.25 toks/s, output: 35.78 toks/s]
Processed prompts:  37%|███▋      | 7/19 [00:17<00:11,  1.03it/s, est. speed input: 464.39 toks/s, output: 55.84 toks/s]
Processed prompts:  53%|█████▎    | 10/19 [00:17<00:04,  1.95it/s, est. speed input: 652.75 toks/s, output: 87.03 toks/s]
Processed prompts:  58%|█████▊    | 11/19 [00:17<00:03,  2.21it/s, est. speed input: 709.50 toks/s, output: 97.41 toks/s]
Processed prompts:  63%|██████▎   | 12/19 [00:18<00:03,  2.12it/s, est. speed input: 750.88 toks/s, output: 106.89 toks/s]
Processed prompts:  68%|██████▊   | 13/19 [00:18<00:02,  2.47it/s, est. speed input: 805.06 toks/s, output: 118.54 toks/s]
Processed prompts:  74%|███████▎  | 14/19 [00:18<00:01,  3.03it/s, est. speed input: 861.59 toks/s, output: 130.81 toks/s]
Processed prompts:  79%|███████▉  | 15/19 [00:18<00:01,  3.58it/s, est. speed input: 916.18 toks/s, output: 143.16 toks/s]
Processed prompts:  84%|████████▍ | 16/19 [00:18<00:00,  3.90it/s, est. speed input: 966.99 toks/s, output: 155.55 toks/s]
Processed prompts:  89%|████████▉ | 17/19 [00:19<00:01,  1.97it/s, est. speed input: 968.43 toks/s, output: 163.65 toks/s]
Processed prompts:  95%|█████████▍| 18/19 [00:20<00:00,  1.90it/s, est. speed input: 996.51 toks/s, output: 178.32 toks/s]
Processed prompts: 100%|██████████| 19/19 [00:21<00:00,  1.69it/s, est. speed input: 1014.71 toks/s, output: 195.06 toks/s]
Processed prompts: 100%|██████████| 19/19 [00:21<00:00,  1.11s/it, est. speed input: 1014.71 toks/s, output: 195.06 toks/s]
   [2/3] GPU 推理完成
   OCR 耗时: 24.31s
   [3/3] 后处理...
   [3/3] 后处理完成 (0.00s)
============================================================
[SUCCESS] 全部完成
   总耗时: 26.75s
   平均: 1.41s/页
============================================================

INFO:     127.0.0.1:49594 - "POST /ocr HTTP/1.1" 200 OK