モデル別実行レシピ

llama.cppでJulia・Laya・Kev decisionモデルを比較

チャット品質ではなく固定選択肢の精度を比べます。

小型decision modelは分類・振り分け・承認などの限定選択に向きます。言語と規模が異なるため、入力との適合性を先に確認します。

実行条件と要点
  • Julia-1は多言語、Laya・Kev-4Bは英語モデルです。
  • /v1/systemoneでチケットごとの判断を比べます。

自由回答ではなく限定選択を行います

Decision modelはチケット、質問、許可されたactionの一覧を受け取り、その中から1つを選びます。llama.cppの/v1/systemoneにリクエストすると、選択したactionとconfidenceが返ります。長い自然言語の回答を作るチャットモデルとは出力が異なるため、主に正確度と分類遅延で評価します。

Julia-1は多言語、LayaとKev-4Bは英語modelです。server scriptを保存し、MODEL=julia bash run_model.sh・MODEL=laya ...・MODEL=kev ...のいずれか1つで起動します。切替時はserverを停止してから再起動します。

机上の依頼に対して候補から選ぶシステム
固定選択肢をAPI結果として返す流れです。

同じチケットとaction schemaで試します

terminal 1で選んだmodelを起動し、terminal 2から同じticketとaction質問を送ります。質問名と候補はそろえますが、request JSONは各projectのAPI1に合わせて変換します。全APIが同一schemaを受け取るとは限りません。

terminal 2 — 選択actionとconfidenceを表示
curl http://127.0.0.1:8080/v1/systemone \
  -H 'Content-Type: application/json' \
  -d '{"state":"I was charged twice for my subscription.","questions":{"route":{"type":"choice","instructions":"Which team should handle this inquiry?","criteria":{"billing":"Payments, charges and refunds","access":"Login and account access","security":"Suspicious activity and account protection"}}}}' | python -c 'import json,sys; a=json.load(sys.stdin)["answers"]["route"]; print(json.dumps({"choice":a["choice"],"confidence":a["confidence"]},indent=2))'
terminal 2からterminal 1のserverへ送り、選択値とscoreを読みます。

応答のanswers.route.choiceには選択したactionが、answers.route.confidenceにはその選択の確率が入ります。たとえばbillingとconfidence 0.86なら、請求チームに分類した結果です。この値を共通のしきい値として使わず、ラベル付きチケットで正確度と未回答を確認して、人による確認基準を決めます。

run_model.sh — MODELを指定してserver起動
curl -LsSf https://llama.app/install.sh | sh
python -m pip install -U huggingface_hub
MODEL=${MODEL:?Set MODEL=julia, laya, or kev}
case "$MODEL" in
  julia) REPO=ggml-org/Julia-1-GGUF; FILE=Julia-1-Q8_0.gguf; REV=16fee17949206fbf58da9347daea44d792a81211 ;;
  laya) REPO=ggml-org/Laya-GGUF; FILE=Laya-Q8_0.gguf; REV=22265007700297ba9e128297e82540cf28c5d7d4 ;;
  kev) REPO=ggml-org/Kev-4B-GGUF; FILE=Kev-4B-Q4_K_M.gguf; REV=d924f2e2c3872da8b8aaf3eb4453b4126deceb79 ;;
  *) echo "Set MODEL=julia, laya, or kev" >&2; exit 2 ;;
esac
hf download "$REPO" "$FILE" --revision "$REV" --local-dir "./models/$MODEL"
llama-server -m "./models/$MODEL/$FILE" --host 127.0.0.1 --port 8080 --ctx-size 4096
`run_model.sh`として保存し、例として`MODEL=kev bash run_model.sh`をterminal 1で実行します。切替前に停止し、`MODEL=julia`または`MODEL=laya`で再起動します。
候補のスコアを比べて最上位を選ぶ画面
規模と言語が異なるため同じ入力で評価します。

機器の数値を試験条件と合わせて読みます

公開の遅延測定はRTX PRO 6000で行われています。その機器・runtime2・要求設定での値であり、4090・5090・ノートPC GPU3の保証ではありません。同じ要求集合を手元で測ります。

小さく速いモデルが常に最適とは限りません。誤りの影響が大きいチケットではconfidence基準や人手確認を設け、言語・許可action・遅延を満たす候補に絞ります。

回答文を生成する必要がある作業では、決定モデルを使わないでください。ここでは決められた選択肢だけを選ぶため、説明が必要な段階は一般的なLLM4に任せるのが適切です。

会話回答と選択肢による自動判断を並べた様子
チャット応答と自動判断を別々に評価します。

用語の注釈

  1. API — 別のコードからプログラムの機能を呼び出すための決められたインターフェースです。

    本文に戻る
  2. ランタイム — プログラムの実行時に必要な機能を提供するソフトウェア環境です。ローカルAIではモデル実行エンジンを指すこともあります。

    本文に戻る
  3. GPU — 多くの計算を並列に処理するプロセッサーです。AIモデルの実行ではモデル計算を担います。

    本文に戻る
  4. 大規模言語モデル — 大量のテキストデータから言語パターンを学び、文脈に沿ったテキストを処理・生成するモデルです。

    本文に戻る

よくある質問

この記事で最初に確認すべきことは何ですか?
小型decision modelは分類・振り分け・承認などの限定選択に向きます。言語と規模が異なるため、入力との適合性を先に確認します。