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
目录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
| Model | Reason | Source |
|---|---|---|
text-embedding-bge-m3 | type=embedding | api_v1 |
text-embedding-qwen3-embedding-0.6b | type=embedding | api_v1 |
text-embedding-nomic-embed-text-v1.5 | type=embedding | api_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.
| Rank | Model | Scenario | Value | Success rate |
|---|---|---|---|---|
| 1 | lmstudio-community/lfm2.5-2.6b (Q4_K_M) | long_context | 2132.39 ms | 100% |
| 2 | lmstudio-community/lfm2.5-2.6b (Q4_K_M) | reasoning | 2133.84 ms | 100% |
| 3 | liquidai/lfm2.5-2.6b (Q5_K_M) | long_generation | 2136.09 ms | 100% |
| 4 | liquidai/lfm2.5-2.6b (Q5_K_M) | code_generation | 2139.84 ms | 100% |
| 5 | liquidai/lfm2.5-2.6b (Q5_K_M) | short_answer | 2142.14 ms | 100% |
| 6 | lmstudio-community/lfm2.5-2.6b (Q4_K_M) | code_generation | 2144.16 ms | 100% |
| 7 | liquidai/lfm2.5-2.6b (Q5_K_M) | reasoning | 2162.66 ms | 100% |
| 8 | liquidai/lfm2.5-2.6b (Q5_K_M) | long_context | 2171.90 ms | 100% |
| 9 | lfm2.5-8b-a1b (Q4_K_M) | long_context | 2181.84 ms | 100% |
| 10 | lmstudio-community/lfm2.5-2.6b (Q4_K_M) | long_generation | 2188.06 ms | 100% |
| 11 | lmstudio-community/lfm2.5-2.6b (Q4_K_M) | short_answer | 2194.65 ms | 100% |
| 12 | lfm2.5-8b-a1b (Q4_K_M) | short_answer | 2196.51 ms | 100% |
| 13 | lfm2.5-8b-a1b (Q4_K_M) | long_generation | 2211.24 ms | 100% |
| 14 | lfm2.5-8b-a1b (Q4_K_M) | code_generation | 2222.23 ms | 100% |
| 15 | lfm2.5-8b-a1b (Q4_K_M) | reasoning | 2240.66 ms | 100% |
| 16 | qwen/qwen3.5-2b (Q4_K_M) | code_generation | 2280.83 ms | 100% |
| 17 | qwen/qwen3.5-2b (Q4_K_M) | long_generation | 2335.33 ms | 100% |
| 18 | qwen/qwen3.5-2b (Q4_K_M) | reasoning | 2411.94 ms | 100% |
| 19 | qwen/qwen3.5-2b (Q4_K_M) | short_answer | 2425.75 ms | 100% |
| 20 | google/gemma-4-e4b (Q4_K_M) | short_answer | 2435.16 ms | 100% |
| 21 | google/gemma-4-e4b (Q4_K_M) | long_context | 2458.39 ms | 100% |
| 22 | qwen3.5-4b (Q4_K_M) | short_answer | 2470.26 ms | 100% |
| 23 | qwen/qwen3.5-2b (Q4_K_M) | long_context | 2475.28 ms | 100% |
| 24 | google/gemma-4-e4b (Q4_K_M) | reasoning | 2483.72 ms | 100% |
| 25 | qwen3.5-4b (Q4_K_M) | long_context | 2495.70 ms | 100% |
| 26 | qwen3.5-4b (Q4_K_M) | long_generation | 2500.24 ms | 100% |
| 27 | google/gemma-4-e4b (Q4_K_M) | code_generation | 2514.18 ms | 100% |
| 28 | qwen3.5-4b (Q4_K_M) | reasoning | 2519.97 ms | 100% |
| 29 | qwen3.5-4b (Q4_K_M) | code_generation | 2528.72 ms | 100% |
| 30 | google/gemma-4-e4b (Q4_K_M) | long_generation | 2619.88 ms | 100% |
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.
| Rank | Model | Scenario | Value | Success rate |
|---|---|---|---|---|
| 1 | lfm2.5-8b-a1b (Q4_K_M) | short_answer | 46.19 tok/s | 100% |
| 2 | lfm2.5-8b-a1b (Q4_K_M) | code_generation | 44.96 tok/s | 100% |
| 3 | lfm2.5-8b-a1b (Q4_K_M) | long_generation | 44.82 tok/s | 100% |
| 4 | lfm2.5-8b-a1b (Q4_K_M) | reasoning | 44.54 tok/s | 100% |
| 5 | lfm2.5-8b-a1b (Q4_K_M) | long_context | 44.18 tok/s | 100% |
| 6 | lmstudio-community/lfm2.5-2.6b (Q4_K_M) | code_generation | 31.12 tok/s | 100% |
| 7 | lmstudio-community/lfm2.5-2.6b (Q4_K_M) | short_answer | 30.92 tok/s | 100% |
| 8 | lmstudio-community/lfm2.5-2.6b (Q4_K_M) | reasoning | 30.68 tok/s | 100% |
| 9 | lmstudio-community/lfm2.5-2.6b (Q4_K_M) | long_generation | 30.68 tok/s | 100% |
| 10 | liquidai/lfm2.5-2.6b (Q5_K_M) | long_generation | 30.23 tok/s | 100% |
| 11 | lmstudio-community/lfm2.5-2.6b (Q4_K_M) | long_context | 30.19 tok/s | 100% |
| 12 | liquidai/lfm2.5-2.6b (Q5_K_M) | reasoning | 30.17 tok/s | 100% |
| 13 | liquidai/lfm2.5-2.6b (Q5_K_M) | code_generation | 30.10 tok/s | 100% |
| 14 | liquidai/lfm2.5-2.6b (Q5_K_M) | short_answer | 30.04 tok/s | 100% |
| 15 | liquidai/lfm2.5-2.6b (Q5_K_M) | long_context | 29.79 tok/s | 100% |
| 16 | qwen/qwen3.5-2b (Q4_K_M) | short_answer | 20.57 tok/s | 100% |
| 17 | qwen/qwen3.5-2b (Q4_K_M) | long_generation | 17.25 tok/s | 100% |
| 18 | qwen/qwen3.5-2b (Q4_K_M) | reasoning | 17.24 tok/s | 100% |
| 19 | qwen/qwen3.5-2b (Q4_K_M) | long_context | 17.24 tok/s | 100% |
| 20 | qwen/qwen3.5-2b (Q4_K_M) | code_generation | 17.09 tok/s | 100% |
| 21 | qwen3.5-4b (Q4_K_M) | short_answer | 16.56 tok/s | 100% |
| 22 | google/gemma-4-e4b (Q4_K_M) | short_answer | 16.54 tok/s | 100% |
| 23 | qwen3.5-4b (Q4_K_M) | reasoning | 16.53 tok/s | 100% |
| 24 | qwen3.5-4b (Q4_K_M) | long_generation | 16.53 tok/s | 100% |
| 25 | qwen3.5-4b (Q4_K_M) | code_generation | 16.48 tok/s | 100% |
| 26 | qwen3.5-4b (Q4_K_M) | long_context | 16.36 tok/s | 100% |
| 27 | google/gemma-4-e4b (Q4_K_M) | long_generation | 15.83 tok/s | 100% |
| 28 | google/gemma-4-e4b (Q4_K_M) | reasoning | 15.83 tok/s | 100% |
| 29 | google/gemma-4-e4b (Q4_K_M) | code_generation | 15.66 tok/s | 100% |
| 30 | google/gemma-4-e4b (Q4_K_M) | long_context | 15.40 tok/s | 100% |
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.
| Rank | Model | Scenario | Value | Success rate |
|---|---|---|---|---|
| 1 | qwen/qwen3.5-2b (Q4_K_M) | reasoning | 0.00 | 100% |
| 2 | qwen3.5-4b (Q4_K_M) | long_context | 0.00 | 100% |
| 3 | lfm2.5-8b-a1b (Q4_K_M) | long_generation | 0.00 | 100% |
| 4 | liquidai/lfm2.5-2.6b (Q5_K_M) | code_generation | 0.00 | 100% |
| 5 | qwen/qwen3.5-2b (Q4_K_M) | code_generation | 0.00 | 100% |
| 6 | lfm2.5-8b-a1b (Q4_K_M) | long_context | 0.00 | 100% |
| 7 | lmstudio-community/lfm2.5-2.6b (Q4_K_M) | short_answer | 0.00 | 100% |
| 8 | liquidai/lfm2.5-2.6b (Q5_K_M) | reasoning | 0.00 | 100% |
| 9 | liquidai/lfm2.5-2.6b (Q5_K_M) | long_context | 0.00 | 100% |
| 10 | google/gemma-4-e4b (Q4_K_M) | long_generation | 0.00 | 100% |
| 11 | lfm2.5-8b-a1b (Q4_K_M) | reasoning | 0.00 | 100% |
| 12 | google/gemma-4-e4b (Q4_K_M) | short_answer | 0.00 | 100% |
| 13 | lmstudio-community/lfm2.5-2.6b (Q4_K_M) | reasoning | 0.00 | 100% |
| 14 | liquidai/lfm2.5-2.6b (Q5_K_M) | short_answer | 0.00 | 100% |
| 15 | lfm2.5-8b-a1b (Q4_K_M) | code_generation | 0.00 | 100% |
| 16 | google/gemma-4-e4b (Q4_K_M) | reasoning | 0.01 | 100% |
| 17 | lmstudio-community/lfm2.5-2.6b (Q4_K_M) | long_generation | 0.01 | 100% |
| 18 | google/gemma-4-e4b (Q4_K_M) | long_context | 0.01 | 100% |
| 19 | google/gemma-4-e4b (Q4_K_M) | code_generation | 0.01 | 100% |
| 20 | lfm2.5-8b-a1b (Q4_K_M) | short_answer | 0.01 | 100% |
| 21 | qwen3.5-4b (Q4_K_M) | short_answer | 0.01 | 100% |
| 22 | liquidai/lfm2.5-2.6b (Q5_K_M) | long_generation | 0.01 | 100% |
| 23 | qwen/qwen3.5-2b (Q4_K_M) | short_answer | 0.01 | 100% |
| 24 | lmstudio-community/lfm2.5-2.6b (Q4_K_M) | code_generation | 0.01 | 100% |
| 25 | qwen3.5-4b (Q4_K_M) | reasoning | 0.01 | 100% |
| 26 | qwen3.5-4b (Q4_K_M) | long_generation | 0.01 | 100% |
| 27 | qwen/qwen3.5-2b (Q4_K_M) | long_generation | 0.01 | 100% |
| 28 | lmstudio-community/lfm2.5-2.6b (Q4_K_M) | long_context | 0.01 | 100% |
| 29 | qwen3.5-4b (Q4_K_M) | code_generation | 0.02 | 100% |
| 30 | qwen/qwen3.5-2b (Q4_K_M) | long_context | 0.02 | 100% |
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
| Model | Scenario | Success | TTFT median (ms) | TTFT P95 | Total time median (ms) | tokens/s median | CV |
|---|---|---|---|---|---|---|---|
| google/gemma-4-e4b (Q4_K_M) | code_generation | 3/3 | 2514.18 | 2735.55 | 35199.15 | 15.66 | 0.006 |
| google/gemma-4-e4b (Q4_K_M) | long_context | 3/3 | 2458.39 | 2474.59 | 32838.83 | 15.40 | 0.006 |
| google/gemma-4-e4b (Q4_K_M) | long_generation | 3/3 | 2619.88 | 2666.51 | 34960.42 | 15.83 | 0.003 |
| google/gemma-4-e4b (Q4_K_M) | reasoning | 3/3 | 2483.72 | 2643.85 | 34827.64 | 15.83 | 0.005 |
| google/gemma-4-e4b (Q4_K_M) | short_answer | 3/3 | 2435.16 | 2484.14 | 11666.89 | 16.54 | 0.004 |
| lfm2.5-8b-a1b (Q4_K_M) | code_generation | 3/3 | 2222.23 | 2241.98 | 13610.13 | 44.96 | 0.005 |
| lfm2.5-8b-a1b (Q4_K_M) | long_context | 3/3 | 2181.84 | 2198.25 | 13767.07 | 44.18 | 0.001 |
| lfm2.5-8b-a1b (Q4_K_M) | long_generation | 3/3 | 2211.24 | 2226.72 | 13627.74 | 44.82 | 0.001 |
| lfm2.5-8b-a1b (Q4_K_M) | reasoning | 3/3 | 2240.66 | 2263.09 | 13737.13 | 44.54 | 0.003 |
| lfm2.5-8b-a1b (Q4_K_M) | short_answer | 3/3 | 2196.51 | 2218.51 | 6061.26 | 46.19 | 0.006 |
| liquidai/lfm2.5-2.6b (Q5_K_M) | code_generation | 3/3 | 2139.84 | 2167.26 | 19167.46 | 30.10 | 0.001 |
| liquidai/lfm2.5-2.6b (Q5_K_M) | long_context | 3/3 | 2171.90 | 2182.63 | 19369.20 | 29.79 | 0.003 |
| liquidai/lfm2.5-2.6b (Q5_K_M) | long_generation | 3/3 | 2136.09 | 2183.35 | 19122.93 | 30.23 | 0.007 |
| liquidai/lfm2.5-2.6b (Q5_K_M) | reasoning | 3/3 | 2162.66 | 2205.05 | 19115.59 | 30.17 | 0.003 |
| liquidai/lfm2.5-2.6b (Q5_K_M) | short_answer | 3/3 | 2142.14 | 2160.60 | 9458.92 | 30.04 | 0.004 |
| lmstudio-community/lfm2.5-2.6b (Q4_K_M) | code_generation | 3/3 | 2144.16 | 2207.68 | 18585.27 | 31.12 | 0.008 |
| lmstudio-community/lfm2.5-2.6b (Q4_K_M) | long_context | 3/3 | 2132.39 | 2189.60 | 19156.49 | 30.19 | 0.012 |
| lmstudio-community/lfm2.5-2.6b (Q4_K_M) | long_generation | 3/3 | 2188.06 | 2233.76 | 18926.16 | 30.68 | 0.005 |
| lmstudio-community/lfm2.5-2.6b (Q4_K_M) | reasoning | 3/3 | 2133.84 | 2199.58 | 18837.67 | 30.68 | 0.004 |
| lmstudio-community/lfm2.5-2.6b (Q4_K_M) | short_answer | 3/3 | 2194.65 | 2202.20 | 6819.38 | 30.92 | 0.003 |
| qwen/qwen3.5-2b (Q4_K_M) | code_generation | 3/3 | 2280.83 | 2439.16 | 32249.37 | 17.09 | 0.001 |
| qwen/qwen3.5-2b (Q4_K_M) | long_context | 3/3 | 2475.28 | 2588.00 | 7100.64 | 17.24 | 0.022 |
| qwen/qwen3.5-2b (Q4_K_M) | long_generation | 3/3 | 2335.33 | 2398.09 | 32080.69 | 17.25 | 0.010 |
| qwen/qwen3.5-2b (Q4_K_M) | reasoning | 3/3 | 2411.94 | 2472.15 | 27465.57 | 17.24 | 0.000 |
| qwen/qwen3.5-2b (Q4_K_M) | short_answer | 3/3 | 2425.75 | 2445.08 | 2863.18 | 20.57 | 0.007 |
| qwen3.5-4b (Q4_K_M) | code_generation | 3/3 | 2528.72 | 2834.62 | 33741.61 | 16.48 | 0.016 |
| qwen3.5-4b (Q4_K_M) | long_context | 3/3 | 2495.70 | 2536.37 | 33783.69 | 16.36 | 0.000 |
| qwen3.5-4b (Q4_K_M) | long_generation | 3/3 | 2500.24 | 2869.27 | 33473.31 | 16.53 | 0.008 |
| qwen3.5-4b (Q4_K_M) | reasoning | 3/3 | 2519.97 | 2883.59 | 33488.80 | 16.53 | 0.008 |
| qwen3.5-4b (Q4_K_M) | short_answer | 3/3 | 2470.26 | 2858.09 | 33390.12 | 16.56 | 0.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_VERSIONand 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 许可协议。转载请注明出处!
相关文章
LLM探索:离线部署Ollama和one-api服务
离线部署Ollama?手动下载上传,导入模型文件,啧,麻烦。one-api用Docker,tiktoken需下载重命名,更烦。添加渠道?简单。
2026-05-09 · LLM · 约 1 分钟
LLM探索:DeepSeek火爆全网,官网宕机?本地部署一个随便玩
DeepSeek官网又崩?本地部署14b模型,web界面倒还凑合。国产大模型热度高,服务器不行就自己搭,呵。代码能力待验证,反正比官网强。
2026-05-09 · LLM · 约 1 分钟
2GB 显存还能跑大模型吗?我在 MX250 老笔记本上部署 Qwen3.5 2BB
七年前的Matebook14,MX250显存2GB,硬塞Qwen3.5 2B——这届玩家是真的敢。核心思路倒是比模型选择更值得学:先看清楚硬件预算,再决定能跑什么,而不是硬上7B然后等CPU掉帧到怀疑人生。1.81GiB直接顶满2GB显存,KV Cache挤出来的空间里,4K Context刚好够用。至于Agent场景?省省吧,2B让MX250当推理节点做轻量任务已经仁至义尽。
2026-09-15 · LLM · 约 1 分钟
用本地大模型驱动中文输入法,我做了一个实验性的项目
一个拿350MB小模型给输入法做语境排序的实验,思路倒是比那些堆参数的玩意儿清醒。不过老哥,先用着Web版就别急着吹原生输入法框架,等你能把打字延迟压到100ms以下再说。
2026-05-09 · LLM · 约 1 分钟
讨论
共 0 条加载评论中…