曦远 (DealiAxy)一份私人的文字刊物

StarBlog
返回文章列表折页手记阅读全文
LLM

Which locally deployed LLM performs best? LM Studio benchmarks on the 8845HS (780M iGPU)

TL;DR: From what I've used so far, `google/gemma-4-e4b` is fairly well-balanced, performing well in both speed and quality

曦远 (DealiAxy)约 35 分钟
目录12 个章节

Open-source small-parameter models used to be little more than toys, but this year is different—qwen3.5, gemma4, and lfm2.5 have all been quite impressive.

I recently deployed some small-parameter models on a Jige Wujie 14x for testing. The main use case is generating Git Commit Message, which local models can handle quite well.

I was curious about the speed and quality of different models. From what I've used so far, google/gemma-4-e4b is fairly well-balanced, performing well in both speed and quality. Due to limited time, this post only covers speed for now.

Below is the output report from the testing tool. I'll open-source the tool later (it was actually developed by the LLM grandpas too).

LM Studio Text Generation Model Benchmark Report

Test Conditions

  • Start time: 2026-08-18T23:02:40+08:00
  • API: http://localhost:1234 (model list source: api_v1)
  • Prompt version: 2026.08.18
  • Sampling: temperature=0.0, max_tokens=512, top_p=1.0, seed=42
  • Rounds: 1 warm-up + 3 official runs per model × scenario
  • Exclusive loading: on (only keep the current model loaded; unload immediately after testing)
  • Timeout: 180s
  • Output directory: C:\code\1\land-go\data\benchmarks\20260818-230240
  • VRAM / RAM: not measured in this round. When LM Studio does not provide stable, readable usage data, no unreliable estimates are made.

Scenarios

  • short_answer (short Q&A): one or two sentences of knowledge Q&A, mainly observing time to first token. Primarily look at ttft_ms.
  • long_generation (long-text generation): request an explanatory piece of about 800 characters, mainly observing sustained generation speed. Primarily look at tokens_per_second.
  • reasoning (reasoning problems): fixed-difficulty arithmetic word problems, mainly observing total time and stability. Primarily look at total_ms.
  • code_generation (code generation): write a short Python function with comments, observing practical output speed. Primarily look at tokens_per_second.
  • long_context (long-context Q&A): read a long passage first, then ask questions, observing time to first token and throughput under long context. Primarily look at ttft_ms.

Models Tested

  • qwen3.5-4b (Q4_K_M), architecture qwen35
  • lfm2.5-8b-a1b (Q4_K_M), architecture lfm2moe
  • liquidai/lfm2.5-2.6b (Q5_K_M), architecture lfm2
  • lmstudio-community/lfm2.5-2.6b (Q4_K_M), architecture lfm2
  • google/gemma-4-e4b (Q4_K_M), architecture gemma4
  • qwen/qwen3.5-2b (Q4_K_M), architecture qwen35

Skipped Models

ModelReasonSource
text-embedding-bge-m3type=embeddingapi_v1
text-embedding-qwen3-embedding-0.6btype=embeddingapi_v1
text-embedding-nomic-embed-text-v1.5type=embeddingapi_v1

Run Overview

  • Official requests: 90, succeeded 90, failed 0
  • Warm-up requests: 30

Ranked by Time to First Token (TTFT)

Lower is better. Everyday chat and input completion care more about this; don't only look at tokens/s.

RankModelScenarioValueSuccess rate
1lmstudio-community/lfm2.5-2.6b (Q4_K_M)long_context2132.39 ms100%
2lmstudio-community/lfm2.5-2.6b (Q4_K_M)reasoning2133.84 ms100%
3liquidai/lfm2.5-2.6b (Q5_K_M)long_generation2136.09 ms100%
4liquidai/lfm2.5-2.6b (Q5_K_M)code_generation2139.84 ms100%
5liquidai/lfm2.5-2.6b (Q5_K_M)short_answer2142.14 ms100%
6lmstudio-community/lfm2.5-2.6b (Q4_K_M)code_generation2144.16 ms100%
7liquidai/lfm2.5-2.6b (Q5_K_M)reasoning2162.66 ms100%
8liquidai/lfm2.5-2.6b (Q5_K_M)long_context2171.90 ms100%
9lfm2.5-8b-a1b (Q4_K_M)long_context2181.84 ms100%
10lmstudio-community/lfm2.5-2.6b (Q4_K_M)long_generation2188.06 ms100%
11lmstudio-community/lfm2.5-2.6b (Q4_K_M)short_answer2194.65 ms100%
12lfm2.5-8b-a1b (Q4_K_M)short_answer2196.51 ms100%
13lfm2.5-8b-a1b (Q4_K_M)long_generation2211.24 ms100%
14lfm2.5-8b-a1b (Q4_K_M)code_generation2222.23 ms100%
15lfm2.5-8b-a1b (Q4_K_M)reasoning2240.66 ms100%
16qwen/qwen3.5-2b (Q4_K_M)code_generation2280.83 ms100%
17qwen/qwen3.5-2b (Q4_K_M)long_generation2335.33 ms100%
18qwen/qwen3.5-2b (Q4_K_M)reasoning2411.94 ms100%
19qwen/qwen3.5-2b (Q4_K_M)short_answer2425.75 ms100%
20google/gemma-4-e4b (Q4_K_M)short_answer2435.16 ms100%
21google/gemma-4-e4b (Q4_K_M)long_context2458.39 ms100%
22qwen3.5-4b (Q4_K_M)short_answer2470.26 ms100%
23qwen/qwen3.5-2b (Q4_K_M)long_context2475.28 ms100%
24google/gemma-4-e4b (Q4_K_M)reasoning2483.72 ms100%
25qwen3.5-4b (Q4_K_M)long_context2495.70 ms100%
26qwen3.5-4b (Q4_K_M)long_generation2500.24 ms100%
27google/gemma-4-e4b (Q4_K_M)code_generation2514.18 ms100%
28qwen3.5-4b (Q4_K_M)reasoning2519.97 ms100%
29qwen3.5-4b (Q4_K_M)code_generation2528.72 ms100%
30google/gemma-4-e4b (Q4_K_M)long_generation2619.88 ms100%

Ranked by Sustained Generation Speed (tokens/s)

Higher is better. Long-form writing cares more about this. Rows where completion_tokens could not be obtained from the API will not appear here.

RankModelScenarioValueSuccess rate
1lfm2.5-8b-a1b (Q4_K_M)short_answer46.19 tok/s100%
2lfm2.5-8b-a1b (Q4_K_M)code_generation44.96 tok/s100%
3lfm2.5-8b-a1b (Q4_K_M)long_generation44.82 tok/s100%
4lfm2.5-8b-a1b (Q4_K_M)reasoning44.54 tok/s100%
5lfm2.5-8b-a1b (Q4_K_M)long_context44.18 tok/s100%
6lmstudio-community/lfm2.5-2.6b (Q4_K_M)code_generation31.12 tok/s100%
7lmstudio-community/lfm2.5-2.6b (Q4_K_M)short_answer30.92 tok/s100%
8lmstudio-community/lfm2.5-2.6b (Q4_K_M)reasoning30.68 tok/s100%
9lmstudio-community/lfm2.5-2.6b (Q4_K_M)long_generation30.68 tok/s100%
10liquidai/lfm2.5-2.6b (Q5_K_M)long_generation30.23 tok/s100%
11lmstudio-community/lfm2.5-2.6b (Q4_K_M)long_context30.19 tok/s100%
12liquidai/lfm2.5-2.6b (Q5_K_M)reasoning30.17 tok/s100%
13liquidai/lfm2.5-2.6b (Q5_K_M)code_generation30.10 tok/s100%
14liquidai/lfm2.5-2.6b (Q5_K_M)short_answer30.04 tok/s100%
15liquidai/lfm2.5-2.6b (Q5_K_M)long_context29.79 tok/s100%
16qwen/qwen3.5-2b (Q4_K_M)short_answer20.57 tok/s100%
17qwen/qwen3.5-2b (Q4_K_M)long_generation17.25 tok/s100%
18qwen/qwen3.5-2b (Q4_K_M)reasoning17.24 tok/s100%
19qwen/qwen3.5-2b (Q4_K_M)long_context17.24 tok/s100%
20qwen/qwen3.5-2b (Q4_K_M)code_generation17.09 tok/s100%
21qwen3.5-4b (Q4_K_M)short_answer16.56 tok/s100%
22google/gemma-4-e4b (Q4_K_M)short_answer16.54 tok/s100%
23qwen3.5-4b (Q4_K_M)reasoning16.53 tok/s100%
24qwen3.5-4b (Q4_K_M)long_generation16.53 tok/s100%
25qwen3.5-4b (Q4_K_M)code_generation16.48 tok/s100%
26qwen3.5-4b (Q4_K_M)long_context16.36 tok/s100%
27google/gemma-4-e4b (Q4_K_M)long_generation15.83 tok/s100%
28google/gemma-4-e4b (Q4_K_M)reasoning15.83 tok/s100%
29google/gemma-4-e4b (Q4_K_M)code_generation15.66 tok/s100%
30google/gemma-4-e4b (Q4_K_M)long_context15.40 tok/s100%

Ranked by Stability (Coefficient of Variation of Total Time)

Lower is better. Uses the standard deviation / mean of total time from successful official rounds; combinations with fewer than 2 samples are excluded.

RankModelScenarioValueSuccess rate
1qwen/qwen3.5-2b (Q4_K_M)reasoning0.00100%
2qwen3.5-4b (Q4_K_M)long_context0.00100%
3lfm2.5-8b-a1b (Q4_K_M)long_generation0.00100%
4liquidai/lfm2.5-2.6b (Q5_K_M)code_generation0.00100%
5qwen/qwen3.5-2b (Q4_K_M)code_generation0.00100%
6lfm2.5-8b-a1b (Q4_K_M)long_context0.00100%
7lmstudio-community/lfm2.5-2.6b (Q4_K_M)short_answer0.00100%
8liquidai/lfm2.5-2.6b (Q5_K_M)reasoning0.00100%
9liquidai/lfm2.5-2.6b (Q5_K_M)long_context0.00100%
10google/gemma-4-e4b (Q4_K_M)long_generation0.00100%
11lfm2.5-8b-a1b (Q4_K_M)reasoning0.00100%
12google/gemma-4-e4b (Q4_K_M)short_answer0.00100%
13lmstudio-community/lfm2.5-2.6b (Q4_K_M)reasoning0.00100%
14liquidai/lfm2.5-2.6b (Q5_K_M)short_answer0.00100%
15lfm2.5-8b-a1b (Q4_K_M)code_generation0.00100%
16google/gemma-4-e4b (Q4_K_M)reasoning0.01100%
17lmstudio-community/lfm2.5-2.6b (Q4_K_M)long_generation0.01100%
18google/gemma-4-e4b (Q4_K_M)long_context0.01100%
19google/gemma-4-e4b (Q4_K_M)code_generation0.01100%
20lfm2.5-8b-a1b (Q4_K_M)short_answer0.01100%
21qwen3.5-4b (Q4_K_M)short_answer0.01100%
22liquidai/lfm2.5-2.6b (Q5_K_M)long_generation0.01100%
23qwen/qwen3.5-2b (Q4_K_M)short_answer0.01100%
24lmstudio-community/lfm2.5-2.6b (Q4_K_M)code_generation0.01100%
25qwen3.5-4b (Q4_K_M)reasoning0.01100%
26qwen3.5-4b (Q4_K_M)long_generation0.01100%
27qwen/qwen3.5-2b (Q4_K_M)long_generation0.01100%
28lmstudio-community/lfm2.5-2.6b (Q4_K_M)long_context0.01100%
29qwen3.5-4b (Q4_K_M)code_generation0.02100%
30qwen/qwen3.5-2b (Q4_K_M)long_context0.02100%

Overall Recommendations

  • Everyday interaction cares more about low TTFT: prefer lmstudio-community/lfm2.5-2.6b (Q4_K_M) (scenario long_context, median TTFT 2132.39 ms).
  • Long-form / code cares more about sustained tokens/s: prefer lfm2.5-8b-a1b (Q4_K_M) (scenario code_generation, median 44.96 tok/s).
  • Stability: qwen/qwen3.5-2b (Q4_K_M) (scenario reasoning, total time CV 0.000) has smaller fluctuation.

Detailed Summary

ModelScenarioSuccessTTFT median (ms)TTFT P95Total time median (ms)tokens/s medianCV
google/gemma-4-e4b (Q4_K_M)code_generation3/32514.182735.5535199.1515.660.006
google/gemma-4-e4b (Q4_K_M)long_context3/32458.392474.5932838.8315.400.006
google/gemma-4-e4b (Q4_K_M)long_generation3/32619.882666.5134960.4215.830.003
google/gemma-4-e4b (Q4_K_M)reasoning3/32483.722643.8534827.6415.830.005
google/gemma-4-e4b (Q4_K_M)short_answer3/32435.162484.1411666.8916.540.004
lfm2.5-8b-a1b (Q4_K_M)code_generation3/32222.232241.9813610.1344.960.005
lfm2.5-8b-a1b (Q4_K_M)long_context3/32181.842198.2513767.0744.180.001
lfm2.5-8b-a1b (Q4_K_M)long_generation3/32211.242226.7213627.7444.820.001
lfm2.5-8b-a1b (Q4_K_M)reasoning3/32240.662263.0913737.1344.540.003
lfm2.5-8b-a1b (Q4_K_M)short_answer3/32196.512218.516061.2646.190.006
liquidai/lfm2.5-2.6b (Q5_K_M)code_generation3/32139.842167.2619167.4630.100.001
liquidai/lfm2.5-2.6b (Q5_K_M)long_context3/32171.902182.6319369.2029.790.003
liquidai/lfm2.5-2.6b (Q5_K_M)long_generation3/32136.092183.3519122.9330.230.007
liquidai/lfm2.5-2.6b (Q5_K_M)reasoning3/32162.662205.0519115.5930.170.003
liquidai/lfm2.5-2.6b (Q5_K_M)short_answer3/32142.142160.609458.9230.040.004
lmstudio-community/lfm2.5-2.6b (Q4_K_M)code_generation3/32144.162207.6818585.2731.120.008
lmstudio-community/lfm2.5-2.6b (Q4_K_M)long_context3/32132.392189.6019156.4930.190.012
lmstudio-community/lfm2.5-2.6b (Q4_K_M)long_generation3/32188.062233.7618926.1630.680.005
lmstudio-community/lfm2.5-2.6b (Q4_K_M)reasoning3/32133.842199.5818837.6730.680.004
lmstudio-community/lfm2.5-2.6b (Q4_K_M)short_answer3/32194.652202.206819.3830.920.003
qwen/qwen3.5-2b (Q4_K_M)code_generation3/32280.832439.1632249.3717.090.001
qwen/qwen3.5-2b (Q4_K_M)long_context3/32475.282588.007100.6417.240.022
qwen/qwen3.5-2b (Q4_K_M)long_generation3/32335.332398.0932080.6917.250.010
qwen/qwen3.5-2b (Q4_K_M)reasoning3/32411.942472.1527465.5717.240.000
qwen/qwen3.5-2b (Q4_K_M)short_answer3/32425.752445.082863.1820.570.007
qwen3.5-4b (Q4_K_M)code_generation3/32528.722834.6233741.6116.480.016
qwen3.5-4b (Q4_K_M)long_context3/32495.702536.3733783.6916.360.000
qwen3.5-4b (Q4_K_M)long_generation3/32500.242869.2733473.3116.530.008
qwen3.5-4b (Q4_K_M)reasoning3/32519.972883.5933488.8016.530.008
qwen3.5-4b (Q4_K_M)short_answer3/32470.262858.0933390.1216.560.006

How to Read the Conclusions

  • Don't decide "fastest" based on tokens/s alone.
  • Actual model selection should also consider generation quality, VRAM usage, and failure rate, which are not in this report's speed rankings.
  • After changing the prompt, bump PROMPT_VERSION and treat the new results as a new benchmark version.

_EOF_

Which locally deployed LLM performs best? LM Studio benchmarks on the 8845HS (780M iGPU)

本文作者:
程序设计实验室
版权声明:
本博客所有文章除特别声明外,均采用 BY-NC-SA 许可协议。转载请注明出处!

相关文章

讨论

共 0 条

良言一句三冬暖,恶语伤人六月寒。

加载评论中…