Loose-Info.com
Last Update 2026/08/14
TOP - 各種テスト - LLM - ローカルLLMの実測値比較 - コーディング(設定用パラメータ比較) - Laguna XS 2.1 (GPU無)

低スペック寄りのPCでローカル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 laguna parameters 33.4B context length 262144 embedding length 2048 quantization Q4_K_M requires 0.32.3 Capabilities completion tools thinking

Laguna XS 2.1 (GPU無) [実測結果一覧へ]

(1) temperature=---; top_p=---; top_k=--
(2) temperature=0.70; top_p=0.7; top_k=--
(3) temperature=0.50; top_p=0.7; top_k=--
(4) temperature=0.30; top_p=0.7; top_k=--
(5) temperature=0.15; top_p=---; top_k=--
(6) temperature=0.15; top_p=0.7; top_k=--
(7) temperature=0.15; top_p=0.5; top_k=--
(8) temperature=0.15; top_p=0.4; top_k=--
(9) temperature=0.15; top_p=0.7; top_k=32
(10) temperature=0.15; top_p=0.7; top_k=16
(11) temperature=0.10; top_p=0.7; top_k=--

(1) temperature=---; top_p=---; top_k=--

2026-08-11 total duration: 12m20.952386198s load duration: 10.482434899s prompt eval count: 277 token(s) prompt eval duration: 3.372701s prompt eval rate: 82.13 tokens/s eval count: 7386 token(s) eval duration: 12m7.092961s eval rate: 10.16 tokens/s (GPU無)

コード生成結果の概要

・C言語による生成 ・コード以外の出力無し ・コードの記述スタイルのオールマン指定を無視 ・戻り値は stdlib.h の EXIT_*** を使用 ・文字列生成関数 文字列生成ではなく出力 ・main() 引数個数のチェック(エラー処理有) 文字列生成関数の呼び出し ・テストコードを別途生成 実行用コードと同一の文字列生成関数定義を記述 main()を伴うテストコード 文字列生成関数を3種類の引数の組み合わせでテスト実行 (1) 整数1 < 整数2 (2) 整数1 == 整数2 (3) 整数1 > 整数2 (注) LLMの生成結果は毎回一定ではないため、結果によっては上記内容通りではないことが考えられます。

生成コードの実行結果

sample_code.c : 検証用プロンプトにて生成されたコード
sample_test.c : 生成されたテストコード
$ gcc -Wall -o sample_code sample_code.c $ gcc -Wall -o sample_test sample_test.c $ ./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 Case 1: Input(3,5) 3 4 5 Expected Output: 3 4 5 ← 判定はせず、期待される出力と比較する形式 Test Case 2: Input(7,7) 7 Expected Output: 7 Test Case 3: Input(5,1) Expected Output: (nothing printed)

(2) temperature=0.70; top_p=0.7; top_k=--

2026-08-11 total duration: 11m4.620170641s load duration: 101.131646ms prompt eval count: 277 token(s) prompt eval duration: 182.787ms prompt eval rate: 1515.43 tokens/s eval count: 6873 token(s) eval duration: 11m4.259689s eval rate: 10.35 tokens/s (GPU無)

コード生成結果の概要

・C言語による生成 ・コード以外の出力無し ・コードの記述スタイルのオールマン指定を無視 ・戻り値は stdlib.h の EXIT_*** を使用 ・文字列生成関数 文字列生成ではなく出力 ・main() 文字列生成関数の呼び出し ・テストコードを別途生成 テスト対象関数の宣言 main()を伴うテストコード 標準出力を仮ファイルに関数の出力をリダイレクト 文字列生成関数を4種類の引数の組み合わせでテスト実行 (1) 整数1 < 整数2 (2) 整数1 == 整数2 (注) LLMの生成結果は毎回一定ではないため、結果によっては上記内容通りではないことが考えられます。

生成コードの実行結果

sample_code.c : 検証用プロンプトにて生成されたコード
sample_test.c : 生成されたテストコード
$ gcc -Wall -o sample_code sample_code.c $ gcc -Wall -o sample_test sample_code.c sample_test.c /bin/ld: /tmp/ccUtLX5S.o: in function `main': sample_test.c:(.text+0x0): multiple definition of `main'; /tmp/ccA1dAxd.o:sample_code.c:(.text+0x5d): 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_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 case 1 passed. Test case 2 passed.

(3) temperature=0.50; top_p=0.7; top_k=--

2026-08-11 total duration: 13m51.823848915s load duration: 115.66992ms prompt eval count: 276 token(s) prompt eval duration: 3.380507s prompt eval rate: 81.64 tokens/s eval count: 8056 token(s) eval duration: 13m48.252881s eval rate: 9.73 tokens/s (GPU無)

コード生成結果の概要

・C言語による生成 ・コード以外の出力無し ・コードの記述スタイルのオールマン指定を無視 ・戻り値は stdlib.h の EXIT_*** を使用 ・文字列生成関数 文字列生成ではなく出力 ・main() 文字列生成関数の呼び出し ・テストコードを別途生成 実行用コードと同一の文字列生成関数定義を記述 main()を伴うテストコード 文字列生成関数を1ケースのみテスト実行 (1) 整数1 < 整数2 (注) LLMの生成結果は毎回一定ではないため、結果によっては上記内容通りではないことが考えられます。

生成コードの実行結果

sample_code.c : 検証用プロンプトにて生成されたコード
sample_test.c : 生成されたテストコード
$ gcc -Wall -o sample_code sample_code.c $ gcc -Wall -o sample_test sample_test.c $ ./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 passed.

(4) temperature=0.30; top_p=0.7; top_k=--

2026-08-11 total duration: 15m11.069241678s load duration: 111.667651ms prompt eval count: 275 token(s) prompt eval duration: 3.348748s prompt eval rate: 82.12 tokens/s eval count: 8596 token(s) eval duration: 15m7.53492s eval rate: 9.47 tokens/s (GPU無)

コード生成結果の概要

・C言語による生成 ・コード以外の出力無し ・コードの記述スタイルのオールマン指定を無視 ・戻り値は stdlib.h の EXIT_*** を使用 ・文字列生成関数 start > end の場合はNULL文字のみのメモリへのポインタを返す 文字列長に応じたメモリの確保(エラー処理有) インクリメント+空白区切りで文字列用メモリに書き込み 文字列用メモリへのポインタを返す ・main() 引数個数のチェック(エラー処理有) 文字列生成関数の呼び出し(エラー処理有) 生成文字列の標準出力への出力 文字列用メモリの解放 ・テストコードを別途生成 実行用コードと同一の文字列生成関数定義を記述 main()を伴うテストコード 文字列生成関数を3種類の引数の組み合わせでテスト実行 (1) 整数1 < 整数2 (2) 整数1 == 整数2 (3) 整数1 > 整数2 (注) LLMの生成結果は毎回一定ではないため、結果によっては上記内容通りではないことが考えられます。

生成コードの実行結果

sample_code.c : 検証用プロンプトにて生成されたコード
sample_test.c : 生成されたテストコード
$ gcc -Wall -o sample_code sample_code.c $ gcc -Wall -o sample_test sample_test.c $ ./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

(5) temperature=0.15; top_p=---; top_k=--

2026-08-11 total duration: 10m42.866429545s load duration: 9.968031215s prompt eval count: 275 token(s) prompt eval duration: 3.395772s prompt eval rate: 80.98 tokens/s eval count: 6592 token(s) eval duration: 10m29.499887s eval rate: 10.47 tokens/s (GPU無)

コード生成結果の概要

・C言語による生成 ・コード以外の出力無し ・コードの記述スタイルのオールマン指定を無視 ・戻り値は stdlib.h の EXIT_*** を使用 ・文字列生成関数 文字列生成ではなく出力 ・main() 引数個数のチェック(エラー処理有) 文字列生成関数の呼び出し ・テストコードを別途生成 テスト対象関数の宣言 main()を伴うテストコード 標準出力を仮ファイルにリダイレクト 文字列生成関数を3種類の引数の組み合わせでテスト実行 (1) 整数1 < 整数2 (2) 整数1 == 整数2 (3) 整数1 < 整数2 ただし、整数1が負数 (注) LLMの生成結果は毎回一定ではないため、結果によっては上記内容通りではないことが考えられます。

生成コードの実行結果

sample_code.c : 検証用プロンプトにて生成されたコード
sample_test.c : 生成されたテストコード
$ gcc -Wall -o sample_code sample_code.c $ gcc -Wall -o sample_test sample_code.c sample_test.c /bin/ld: /tmp/ccuU4se3.o: in function `main': sample_test.c:(.text+0x0): multiple definition of `main'; /tmp/ccMKGv3k.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_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 ← 不具合が有り何も表示されない $ vi sample_test.c ← stdoutを戻すためのコードを修正 $ gcc -D TEST_MAIN -Wall -o sample_test sample_code.c sample_test.c $ ./sample_test Test case 1 passed. Test case 2 passed. Test case 3 passed.

(6) temperature=0.15; top_p=0.7; top_k=--

2026-08-11 total duration: 11m12.452319139s load duration: 113.858748ms prompt eval count: 275 token(s) prompt eval duration: 170.532ms prompt eval rate: 1612.60 tokens/s eval count: 6905 token(s) eval duration: 11m12.099449s eval rate: 10.27 tokens/s (GPU無)

コード生成結果の概要

・C言語による生成 ・コード以外の出力無し ・コードの記述スタイルのオールマン指定を無視 ・戻り値は stdlib.h の EXIT_*** を使用 ・文字列生成関数 文字列生成ではなく出力 ・main() 引数個数のチェック(エラー処理有) 文字列生成関数の呼び出し ・テストコードを別途生成 テスト対象関数の宣言 main()を伴うテストコード テストの検証結果や比較用の期待値などの表示は無く、関数実行結果が表示されるのみ 文字列生成関数を2種類の引数の組み合わせでテスト実行 (1) 整数1 < 整数2 (2) 整数1 < 整数2 ただし、整数1、整数2が共に負数 (注) LLMの生成結果は毎回一定ではないため、結果によっては上記内容通りではないことが考えられます。

生成コードの実行結果

sample_code.c : 検証用プロンプトにて生成されたコード
sample_test.c : 生成されたテストコード
$ gcc -Wall -o sample_code sample_code.c $ gcc -Wall -o sample_test sample_code.c sample_test.c /bin/ld: /tmp/ccswIHxe.o: in function `main': sample_test.c:(.text+0x0): multiple definition of `main'; /tmp/ccxyexnm.o:sample_code.c:(.text+0x51): 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_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 (5-7): 5 6 7 Test 2 (-2 to -1): -2 -1

(7) temperature=0.15; top_p=0.5; top_k=--

2026-08-11 total duration: 3m38.946992239s load duration: 108.153465ms prompt eval count: 275 token(s) prompt eval duration: 172.032ms prompt eval rate: 1598.54 tokens/s eval count: 2812 token(s) eval duration: 3m38.5791s eval rate: 12.86 tokens/s (GPU無)

コード生成結果の概要

・C言語による生成 ・コード以外の出力無し ・コードの記述スタイルをオールマンで生成 ・戻り値は stdlib.h の EXIT_*** を使用 ・文字列生成関数 文字列生成ではなく出力 ・main() 引数個数のチェック(エラー処理有) 文字列生成関数の呼び出し ・テストコードを別途生成 テスト対象関数の宣言 main()を伴うテストコード 文字列生成関数を2種類の引数の組み合わせでテスト実行 (1) 整数1 < 整数2 (2) 整数1 == 整数2 (注) LLMの生成結果は毎回一定ではないため、結果によっては上記内容通りではないことが考えられます。

生成コードの実行結果

sample_code.c : 検証用プロンプトにて生成されたコード
sample_test.c : 生成されたテストコード
$ gcc -Wall -o sample_code sample_code.c $ gcc -Wall -o sample_test sample_code.c sample_test.c /bin/ld: /tmp/ccrQzkjw.o: in function `main': sample_test.c:(.text+0x0): multiple definition of `main'; /tmp/ccOASX4Y.o:sample_code.c:(.text+0x3f): 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_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: from 1 to 3 1 2 3 Expected output: 1 2 3 Test 2: from 5 to 5 5 Expected output: 5

(8) temperature=0.15; top_p=0.4; top_k=--

2026-08-11 total duration: 13m22.032984429s load duration: 102.43314ms prompt eval count: 276 token(s) prompt eval duration: 213.945ms prompt eval rate: 1290.05 tokens/s eval count: 7853 token(s) eval duration: 13m21.657599s eval rate: 9.80 tokens/s (GPU無)

コード生成結果の概要

・C言語による生成 ・コード以外の出力無し ・コードの記述スタイルのオールマン指定を無視 ・戻り値は stdlib.h の EXIT_*** を使用 ・文字列生成関数 文字列生成ではなく出力 ・main() 文字列生成関数の呼び出し ・テストコードを別途生成 実行用コードと同一の文字列生成関数定義を記述 main()を伴うテストコード 標準出力を仮ファイルにリダイレクト 文字列生成関数を1ケースのみテスト実行 (1) 整数1 < 整数2 (注) LLMの生成結果は毎回一定ではないため、結果によっては上記内容通りではないことが考えられます。

生成コードの実行結果

sample_code.c : 検証用プロンプトにて生成されたコード
sample_test.c : 生成されたテストコード
$ gcc -Wall -o sample_code sample_code.c $ gcc -Wall -o sample_test sample_test.c $ ./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 ← 不具合が有り何も表示されない $ vi sample_test.c ← stdoutを戻すためのコードを修正 $ gcc -Wall -o sample_test sample_test.c $ ./sample_test Test passed.

(9) temperature=0.15; top_p=0.7; top_k=32

2026-08-11 total duration: 15m59.547160595s load duration: 114.970958ms prompt eval count: 276 token(s) prompt eval duration: 170.579ms prompt eval rate: 1618.02 tokens/s eval count: 8897 token(s) eval duration: 15m59.17474s eval rate: 9.28 tokens/s (GPU無)

コード生成結果の概要

・C言語による生成 ・コード以外の出力無し ・コードの記述スタイルをオールマンで生成 ・戻り値は stdlib.h の EXIT_*** を使用 ・文字列生成関数 引数チェック(エラー処理有) 文字列生成ではなく出力 ・main() 引数個数のチェック(エラー処理有) 文字列生成関数の呼び出し(エラー処理有) ・テストコードを別途生成 テスト対象関数の宣言 main()を伴うテストコード 標準出力を仮ファイルにリダイレクト 文字列生成関数を2種類の引数の組み合わせでテスト実行 (1) 整数1 < 整数2 (2) 整数1 == 整数2 (3) 整数1 > 整数2 (注) LLMの生成結果は毎回一定ではないため、結果によっては上記内容通りではないことが考えられます。

生成コードの実行結果

sample_code.c : 検証用プロンプトにて生成されたコード
sample_test.c : 生成されたテストコード
$ gcc -Wall -o sample_code sample_code.c $ gcc -Wall -o sample_test sample_code.c sample_test.c /bin/ld: /tmp/cco3E5mE.o: in function `main': sample_test.c:(.text+0x0): multiple definition of `main'; /tmp/ccGPLBwr.o:sample_code.c:(.text+0x6e): 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_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 All tests passed!

(10) temperature=0.15; top_p=0.7; top_k=16

2026-08-11 total duration: 12m37.14521752s load duration: 126.142388ms prompt eval count: 276 token(s) prompt eval duration: 166.157ms prompt eval rate: 1661.08 tokens/s eval count: 7619 token(s) eval duration: 12m36.76592s eval rate: 10.07 tokens/s (GPU無)

コード生成結果の概要

・C言語による生成 ・コード以外の出力無し ・コードの記述スタイルをオールマンで生成 ・戻り値は stdlib.h の EXIT_*** を使用 ・文字列生成関数 文字列生成ではなく出力 ・main() 引数個数のチェック(エラー処理有) 文字列生成関数の呼び出し ・テストコードを別途生成 テスト対象関数の宣言 main()を伴うテストコード 標準出力を仮ファイルにリダイレクト 文字列生成関数を2種類の引数の組み合わせでテスト実行 (1) 整数1 < 整数2 (2) 整数1 == 整数2 (3) 整数1 > 整数2 (注) LLMの生成結果は毎回一定ではないため、結果によっては上記内容通りではないことが考えられます。

生成コードの実行結果

sample_code.c : 検証用プロンプトにて生成されたコード
sample_test.c : 生成されたテストコード
$ gcc -Wall -o sample_code sample_code.c $ gcc -Wall -o sample_test sample_code.c sample_test.c /bin/ld: /tmp/ccUTqE8R.o: in function `main': sample_test.c:(.text+0x0): multiple definition of `main'; /tmp/ccOKk6k4.o:sample_code.c:(.text+0x5e): 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_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: Test passed. Test 2: Test passed. Test 3: Test passed. All tests passed.

(11) temperature=0.10; top_p=0.7; top_k=--

2026-08-11 total duration: 14m59.31683746s load duration: 10.241395305s prompt eval count: 276 token(s) prompt eval duration: 3.390226s prompt eval rate: 81.41 tokens/s eval count: 8504 token(s) eval duration: 14m45.680699s eval rate: 9.60 tokens/s (GPU無)

コード生成結果の概要

・C言語による生成 ・コード以外の出力無し ・コードの記述スタイルをオールマンで生成 ・戻り値は stdlib.h の EXIT_*** を使用 ・文字列生成関数 文字列生成ではなく出力 ・main() 引数個数のチェック(エラー処理有) 文字列生成関数の呼び出し ・テストコードを別途生成 テスト対象関数の宣言 main()を伴うテストコード 標準出力を仮ファイルにリダイレクト 文字列生成関数を2種類の引数の組み合わせでテスト実行 (1) 整数1 < 整数2 (2) 整数1 == 整数2 (3) 整数1 > 整数2 (注) LLMの生成結果は毎回一定ではないため、結果によっては上記内容通りではないことが考えられます。

生成コードの実行結果

sample_code.c : 検証用プロンプトにて生成されたコード
sample_test.c : 生成されたテストコード
$ gcc -Wall -o sample_code sample_code.c $ gcc -Wall -o sample_test sample_code.c sample_test.c /bin/ld: /tmp/ccBr1wKQ.o: in function `main': sample_test.c:(.text+0x0): multiple definition of `main'; /tmp/cceoRSAV.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_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 All tests passed.