Last Update 2026/07/25
低スペック寄りのPCでローカルLLMを動作させた際の記録です。
LLM以外の仮想マシンなどが起動され、多少負荷がかかった状態で実行しています。
ベンチマークなどでLLMの性能を評価する内容ではありません。
LLM以外の仮想マシンなどが起動され、多少負荷がかかった状態で実行しています。
ベンチマークなどでLLMの性能を評価する内容ではありません。
検証用PC
|
OS |
Debian GNU/Linux 12 (bookworm) |
|
CPU |
Intel(R) Core(TM) i5-14400F |
|
GPU |
GeForce RTX 3060 12GB |
|
メモリ |
DDR4 PC4-25600 32GB × 4 |
|
SSD |
crucial P310 CT1000P310SSD8-JP |
構築環境 : Docker + Ollama (特別な設定などは無い状態)
検証用プロンプト
```
### 依頼内容
- コード生成
### 指示
- C言語
- コード以外の出力は不要
- 中括弧スタイルはオールマン
- テストコードも生成
- テストコードは別ファイル
- 実行用ソースファイル名 : sample_code.c
- テスト用ソースファイル名 : sample_test.c
- 標準ヘッダ以外は使用しない
- 戻り値はEXIT_SUCCESSを使用
- 関数はmain()の前で定義
### コード仕様(sample_code.c)
- コマンドラインから整数2つを取得
- [引数1]から[引数2]までをインクリメントして空白区切りで標準出力に出力
- 出力する文字列はmain()ではなく関数で生成
### コード仕様(sample_test.c)
- unity.hを使用しない
```
モデル詳細
Model
architecture qwen3next
parameters 79.7B
context length 262144
embedding length 2048
quantization Q4_K_M
Capabilities
completion
tools
Parameters
repeat_penalty 1
stop "<|im_start|>"
stop "<|im_end|>"
temperature 0.7
top_k 20
top_p 0.8
Qwen3-Next [実測結果一覧へ]
(1) temperature=0.15; top_p=---; top_k=--
2026-07-20
total duration: 2m44.635353159s
load duration: 74.80006ms
prompt eval count: 218 token(s)
prompt eval duration: 1.715438629s
prompt eval rate: 127.08 tokens/s
eval count: 1386 token(s)
eval duration: 2m42.34373938s
eval rate: 8.54 tokens/s
コード生成結果の概要
・C言語による生成
・コード以外の出力無し
・コードの記述スタイルをオールマンで生成
・戻り値は stdlib.h の EXIT_*** を使用
・文字列生成関数
文字列生成ではなく出力
・main()
引数個数のチェック(エラー処理有)
文字列生成関数の呼び出し
・テストコードを別途生成
テスト対象関数の宣言
main()を伴うテストコード
popen()を使用し外部コマンドとしてsample_codeを実行し出力結果を取得
文字列生成関数を5種類の引数の組み合わせでテスト実行
(1) 整数1 < 整数2
(2) 整数1 > 整数2
(3) 整数1 == 整数2
(4) 整数1 < 整数2 ただし 整数1が負数
(5) コマンドライン引数が整数1のみ
(注) LLMの生成結果は毎回一定ではないため、結果によっては上記内容通りではないことが考えられます。
生成コードの実行結果
sample_code.c : 検証用プロンプトにて生成されたコードsample_test.c : 生成されたテストコード
$ gcc -Wall -o sample_code sample_code.c
$ gcc -o sample_test sample_code.c sample_test.c
/bin/ld: /tmp/ccqtcmif.o: in function `main':
sample_test.c:(.text+0x0): multiple definition of `main'; /tmp/ccqb1g2M.o:sample_code.c:(.text+0x5a): first defined here
collect2: error: ld returned 1 exit status
$ vi sample_code.c ← main()関数重複エラー解消のため条件付きコンパイル用の#ifndefマクロを追加
$ gcc -D TEST_MAIN -Wall -o sample_test sample_code.c sample_test.c
sample_test.c: In function ‘main’:
sample_test.c:12:9: warning: unused variable ‘i’ [-Wunused-variable]
12 | int i;
| ^
sample_test.c:11:9: warning: unused variable ‘result’ [-Wunused-variable]
11 | int result;
| ^~~~~~
$ ./sample_code 1 5
1 2 3 4 5
$ ./sample_code -3 3
-3 -2 -1 0 1 2 3
$ ./sample_code 1 1
1
$ ./sample_code 5 1
$ ./sample_test
Test 1 passed
Test 2 failed: expected empty line for start > end, got ""
$ vi sample_test.c ← Test 2 が失敗した際に終了せずに続行するようにコードを変更
$ gcc -D TEST_MAIN -Wall -o sample_test sample_code.c sample_test.c
sample_test.c: In function ‘main’:
sample_test.c:12:9: warning: unused variable ‘i’ [-Wunused-variable]
12 | int i;
| ^
sample_test.c:11:9: warning: unused variable ‘result’ [-Wunused-variable]
11 | int result;
| ^~~~~~
$ ./sample_test
Test 1 passed
Test 2 failed: expected empty line for start > end, got ""
Test 3 passed
Test 4 passed
Test 5 passed (no crash with insufficient args)
All tests passed ← Test 2 は失敗しているため All ではない
(2) temperature=0.15; top_p=0.7; top_k=--
2026-07-20
total duration: 3m8.497672959s
load duration: 76.920169ms
prompt eval count: 218 token(s)
prompt eval duration: 1.690721113s
prompt eval rate: 128.94 tokens/s
eval count: 1575 token(s)
eval duration: 3m6.189440235s
eval rate: 8.46 tokens/s
コード生成結果の概要
・C言語による生成
・コード以外の出力無し
・コードの記述スタイルをオールマンで生成
・戻り値は stdlib.h の EXIT_*** を使用
・文字列生成関数
文字列生成ではなく出力
・main()
引数個数のチェック(エラー処理有)
文字列生成関数の呼び出し
・テストコードを別途生成
テスト対象関数の宣言
main()を伴うテストコード
popen()を使用し外部コマンドとしてsample_codeを実行し出力結果を取得
文字列生成関数を6種類の引数の組み合わせでテスト実行
(1) 整数1 < 整数2
(2) 整数1 > 整数2
(3) 整数1 == 整数2
(4) 整数1 < 整数2 ただし 整数1が負数
(5) コマンドライン引数が整数1のみ
(6) コマンドライン引数が数値以外
(注) LLMの生成結果は毎回一定ではないため、結果によっては上記内容通りではないことが考えられます。
生成コードの実行結果
sample_code.c : 検証用プロンプトにて生成されたコードsample_test.c : 生成されたテストコード
$ gcc -Wall -o sample_code sample_code.c
$ gcc -o sample_test sample_code.c sample_test.c
/bin/ld: /tmp/ccJVxRYE.o: in function `main':
sample_test.c:(.text+0x0): multiple definition of `main'; /tmp/ccTE00qC.o:sample_code.c:(.text+0x5a): first defined here
collect2: error: ld returned 1 exit status
$ vi sample_code.c ← main()関数重複エラー解消のため条件付きコンパイル用の#ifndefマクロを追加
$ gcc -D TEST_MAIN -Wall -o sample_test sample_code.c sample_test.c
sample_test.c: In function ‘main’:
sample_test.c:12:9: warning: unused variable ‘i’ [-Wunused-variable]
12 | int i;
| ^
sample_test.c:11:9: warning: unused variable ‘result’ [-Wunused-variable]
11 | int result;
| ^~~~~~
$ ./sample_code 1 5
1 2 3 4 5
$ ./sample_code -3 3
-3 -2 -1 0 1 2 3
$ ./sample_code 1 1
1
$ ./sample_code 5 1
$ ./sample_test
Test 1 passed
Test 2 passed (empty output for start > end)
Test 3 passed
Test 4 passed
Test 5 passed (no output for insufficient args)
Test 6 passed (no crash with non-integer args)
All tests passed
(3) temperature=0.15; top_p=0.5; top_k=--
2026-07-20
total duration: 2m28.72079992s
load duration: 82.101162ms
prompt eval count: 218 token(s)
prompt eval duration: 1.688193406s
prompt eval rate: 129.13 tokens/s
eval count: 1243 token(s)
eval duration: 2m26.518037496s
eval rate: 8.48 tokens/s
コード生成結果の概要
生成されたコードは(1)と同一コード
(4) temperature=0.15; top_p=0.4; top_k=--
2026-07-20
total duration: 2m29.072330806s
load duration: 65.904389ms
prompt eval count: 218 token(s)
prompt eval duration: 1.701452136s
prompt eval rate: 128.13 tokens/s
eval count: 1243 token(s)
eval duration: 2m26.87523407s
eval rate: 8.46 tokens/s
コード生成結果の概要
・C言語による生成
・コード以外の出力無し
・コードの記述スタイルをオールマンで生成
・戻り値は stdlib.h の EXIT_*** を使用
・文字列生成関数
文字列生成ではなく出力
・main()
引数個数のチェック(エラー処理有)
文字列生成関数の呼び出し
・テストコードを別途生成
テスト対象関数の宣言
main()を伴うテストコード
popen()を使用し外部コマンドとしてsample_codeを実行し出力結果を取得
文字列生成関数を6種類の引数の組み合わせでテスト実行
(1) 整数1 < 整数2
(2) 整数1 == 整数2
(3) 整数1 < 整数2 ただし 整数1が負数
(4) 引数個数が3
(注) LLMの生成結果は毎回一定ではないため、結果によっては上記内容通りではないことが考えられます。
生成コードの実行結果
sample_code.c : 検証用プロンプトにて生成されたコードsample_test.c : 生成されたテストコード
$ gcc -Wall -o sample_code sample_code.c
$ gcc -o sample_test sample_code.c sample_test.c
/bin/ld: /tmp/ccrkjTse.o: in function `main':
sample_test.c:(.text+0x0): multiple definition of `main'; /tmp/cc7YisoF.o:sample_code.c:(.text+0x5a): first defined here
collect2: error: ld returned 1 exit status
$ vi sample_code.c ← main()関数重複エラー解消のため条件付きコンパイル用の#ifndefマクロを追加
$ gcc -D TEST_MAIN -Wall -o sample_test sample_code.c sample_test.c
sample_test.c: In function ‘main’:
sample_test.c:12:9: warning: unused variable ‘i’ [-Wunused-variable]
12 | int i;
| ^
sample_test.c:11:9: warning: unused variable ‘result’ [-Wunused-variable]
11 | int result;
| ^~~~~~
$ ./sample_code 1 5
1 2 3 4 5
$ ./sample_code -3 3
-3 -2 -1 0 1 2 3
$ ./sample_code 1 1
1
$ ./sample_code 5 1
$ ./sample_test
Test 1 passed
Test 2 passed
Test 3 passed
Test 4 passed
All tests passed
(5) temperature=0.15; top_p=0.7; top_k=32
2026-07-20
total duration: 2m40.681376255s
load duration: 75.308057ms
prompt eval count: 218 token(s)
prompt eval duration: 1.686953425s
prompt eval rate: 129.23 tokens/s
eval count: 1329 token(s)
eval duration: 2m38.454271504s
eval rate: 8.39 tokens/s
コード生成結果の概要
・C言語による生成
・コード以外の出力無し
・コードの記述スタイルをオールマンで生成
・戻り値は stdlib.h の EXIT_*** を使用
・文字列生成関数
文字列生成ではなく出力
・main()
引数個数のチェック(エラー処理有)
文字列生成関数の呼び出し
・テストコードを別途生成
テスト対象関数の宣言
main()を伴うテストコード
popen()を使用し外部コマンドとしてsample_codeを実行し出力結果を取得
文字列生成関数を6種類の引数の組み合わせでテスト実行
(1) 整数1 < 整数2
(2) 整数1 == 整数2
(3) 整数1 < 整数2 ただし 整数1が負数
(4) 引数個数が1
(5) 引数が共に0
(注) LLMの生成結果は毎回一定ではないため、結果によっては上記内容通りではないことが考えられます。
生成コードの実行結果
sample_code.c : 検証用プロンプトにて生成されたコードsample_test.c : 生成されたテストコード
$ gcc -Wall -o sample_code sample_code.c
$ gcc -o sample_test sample_code.c sample_test.c
/bin/ld: /tmp/ccUiGWbx.o: in function `main':
sample_test.c:(.text+0x0): multiple definition of `main'; /tmp/cc4OJtux.o:sample_code.c:(.text+0x5a): first defined here
collect2: error: ld returned 1 exit status
$ vi sample_code.c ← main()関数重複エラー解消のため条件付きコンパイル用の#ifndefマクロを追加
$ gcc -D TEST_MAIN -Wall -o sample_test sample_code.c sample_test.c
sample_test.c: In function ‘main’:
sample_test.c:12:9: warning: unused variable ‘i’ [-Wunused-variable]
12 | int i;
| ^
sample_test.c:11:9: warning: unused variable ‘result’ [-Wunused-variable]
11 | int result;
| ^~~~~~
$ ./sample_code 1 5
1 2 3 4 5
$ ./sample_code -3 3
-3 -2 -1 0 1 2 3
$ ./sample_code 1 1
1
$ ./sample_code 5 1
$ ./sample_test
Test 1 passed
Test 2 passed
Test 3 passed
Test 4 passed (no output on invalid args)
Test 5 passed
All tests passed
(6) temperature=0.15; top_p=0.7; top_k=16
2026-07-20
total duration: 2m34.392453987s
load duration: 75.124194ms
prompt eval count: 218 token(s)
prompt eval duration: 1.699939546s
prompt eval rate: 128.24 tokens/s
eval count: 1283 token(s)
eval duration: 2m32.193175402s
eval rate: 8.43 tokens/s
コード生成結果の概要
・C言語による生成
・コード以外の出力無し
・コードの記述スタイルをオールマンで生成
・戻り値は stdlib.h の EXIT_*** を使用
・文字列生成関数
文字列生成ではなく出力
・main()
引数個数のチェック(エラー処理有)
文字列生成関数の呼び出し
・テストコードを別途生成
テスト対象関数の宣言
main()を伴うテストコード
popen()を使用し外部コマンドとしてsample_codeを実行し出力結果を取得
文字列生成関数を6種類の引数の組み合わせでテスト実行
(1) 整数1 < 整数2
(2) 整数1 == 整数2
(3) 整数1 < 整数2 ただし 整数1が負数
(4) 引数個数が1
(5) 引数が共に0
(注) LLMの生成結果は毎回一定ではないため、結果によっては上記内容通りではないことが考えられます。
生成コードの実行結果
sample_code.c : 検証用プロンプトにて生成されたコードsample_test.c : 生成されたテストコード
$ gcc -Wall -o sample_code sample_code.c
$ gcc -o sample_test sample_code.c sample_test.c
/bin/ld: /tmp/ccXocTS6.o: in function `main':
sample_test.c:(.text+0x0): multiple definition of `main'; /tmp/ccefY9gQ.o:sample_code.c:(.text+0x5a): first defined here
collect2: error: ld returned 1 exit status
$ vi sample_code.c ← main()関数重複エラー解消のため条件付きコンパイル用の#ifndefマクロを追加
$ gcc -D TEST_MAIN -Wall -o sample_test sample_code.c sample_test.c
sample_test.c: In function ‘main’:
sample_test.c:12:9: warning: unused variable ‘i’ [-Wunused-variable]
12 | int i;
| ^
$ ./sample_code 1 5
1 2 3 4 5
$ ./sample_code -3 3
-3 -2 -1 0 1 2 3
$ ./sample_code 1 1
1
$ ./sample_code 5 1
$ ./sample_test
Test 1 passed
Test 2 passed (empty output for start > end)
Test 3 passed
Test 4 passed
Test 5 passed (exit code non-zero for invalid args)
All tests passed
(7) temperature=0.10; top_p=0.7; top_k=--
2026-07-20
total duration: 2m51.572727824s
load duration: 79.759794ms
prompt eval count: 218 token(s)
prompt eval duration: 1.703513593s
prompt eval rate: 127.97 tokens/s
eval count: 1424 token(s)
eval duration: 2m49.330278561s
eval rate: 8.41 tokens/s
コード生成結果の概要
生成されたコードは(5)と同一コード
・生成されたコメントに一部違いあり