ローカルPCで大規模言語モデル(LLM)を動かす際、Windowsネイティブ環境とWSL2(Ubuntu)環境のどちらがより快適か気になったので、計測してみました。
今回はIntel N100搭載のWindows 11マシンで、OllamaをWindowsとWSL2の両方にインストールし、まったく同じ条件で応答速度を比較しました。
「どちらが速いのか?」「安定して使えるのは?」といった疑問に、実際の計測データで答えます。
import ollama
import time
import subprocess
def get_wsl_ip():
"""WSLのIPアドレスを動的取得"""
result = subprocess.run(
['wsl', 'hostname', '-I'],
capture_output=True,
text=True,
check=True
)
return result.stdout.strip().split()[0]
TARGETS = {
"Windows": {"host": "http://localhost:11434"},
"WSL2": {"host": f"http://{get_wsl_ip()}:11435"}
}
MODEL_NAME = "gemma3"
TEST_PROMPT = "日本の首都はどこですか?回答は20字以内で"
NUM_REQUESTS = 10
def benchmark():
"""ベンチマークコア処理"""
results = {}
for target, config in TARGETS.items():
client = ollama.Client(**config)
times = []
for _ in range(NUM_REQUESTS):
start = time.perf_counter()
client.generate(model=MODEL_NAME, prompt=TEST_PROMPT, stream=False)
times.append(time.perf_counter() - start)
results[target] = {
'avg': sum(times)/len(times),
'min': min(times),
'max': max(times)
}
return results
測定回 | 環境 | 各試行応答時間(秒) | 平均 | 最短 | 最長 | 変動幅 |
---|---|---|---|---|---|---|
1回目 | Windows | 14.552, 0.843, 0.677, 0.726, 0.684, 0.736, 0.692, 0.711, 0.679, 0.712 | 2.101 | 0.677 | 14.552 | 13.875 |
WSL2 | 57.871, 1.375, 1.200, 1.266, 1.077, 1.158, 1.098, 1.081, 1.153, 1.036 | 6.831 | 1.036 | 57.871 | 56.835 | |
2回目 | Windows | 7.394, 1.073, 0.947, 0.791, 0.829, 0.852, 0.766, 0.891, 1.838, 0.822 | 1.620 | 0.766 | 7.394 | 6.629 |
WSL2 | 1.450, 2.147, 1.812, 0.969, 0.955, 0.847, 0.907, 0.804, 0.928, 0.901 | 1.172 | 0.804 | 2.147 | 1.343 | |
3回目 | Windows | 2.746, 0.674, 0.668, 0.679, 0.694, 0.675, 0.686, 0.675, 0.671, 0.677 | 0.885 | 0.668 | 2.746 | 2.078 |
WSL2 | 0.712, 0.753, 0.706, 0.733, 0.759, 0.891, 0.745, 0.805, 0.774, 0.805 | 0.768 | 0.706 | 0.891 | 0.185 |
今回の検証から、OllamaをIntel N100搭載PCで使う場合はWindowsネイティブ環境の方が応答速度早いことが分かりました。
まぁ、そらそうですよね。。。
WSL2環境でも連続利用時には十分なパフォーマンスを発揮しますが、極端な遅延が発生するリスクもあるため、パフォーマンス重視ならWindowsネイティブ環境が最適と言えるでしょう。
ローカルLLMの運用を検討している方は、ぜひ本記事のデータを参考に、最適な環境選択を行ってみてください。
WSL側はポート番号を変えて試しています。ポート番号の変更の仕方を知りたい方はこちらを参考にしてください。