公開マニュアルを探し、根拠付きで答える設計例
本稿では、公開マニュアルを検索する想定の、架空の設計例を考えます。『設定Aを使える条件と、その説明があるページ』を探すため、モデルの要求に応じて検索を実行するAIエージェント(検索結果を使って回答する仕組み)を公開仕様から組み立てます。
Liquid AIは、知識を多く使う仕事に文書検索やWeb検索を組み合わせる運用を案内しています [3]。この例でも、モデルが記憶している内容を答えさせるだけでなく、該当する資料を読み、引用先を示す構成を取ります。
LFM2.5-24B-A2Bは、回答前に常に推論過程(最終回答を作る前にモデルが生成する中間テキスト)を生成するモデルです [4]。公式カードは、回答開始時のテンプレートに<think>を加えると説明しています。思考にも出力の枠を使うため、短い最終回答でも生成量が増える場合があります。固定版モデルカードでこの性質を確認できます。
検索機能を呼ぶとき、モデルは関数呼び出しの要求を出力します。ホスト側のプログラムはその要求を解析し、検索機能を実行します。ホスト側のプログラムは、結果をtoolロールの専用メッセージでモデルに返します。モデルは結果を読んで回答を生成します [1]。以下はこの役割分担を公開マニュアル検索へ当てはめた、本稿の提案です。
稼働2.45Bと、ファイル容量・実行時メモリを分ける
詳細仕様では、総パラメータ数は24.0B、1トークンの処理で働くパラメータ数は2.45Bです [6]。Bは10億を表し、それぞれ240億、24.5億に当たります。トークンは文章を分割した処理単位です。
MoEは、モデル内で処理を分担する専門家ネットワークを選ぶ仕組みです。このモデルのMoEブロックでは、64の専門家から4つを選びます [7]。選ばれた部分で計算量を抑えることと、配布するモデル全体の容量は別に見積もります。
40層の内訳は、近くのトークンを扱う短畳み込みブロック30層と、注意機構(トークン間の関連度を計算して情報をまとめる仕組み)のグループ化クエリアテンション(GQA)層10層です [6]。GQAでは、複数の問い合わせ(クエリ)で、照合に使うキーと内容を保持する値(バリュー)を共有します。層の種類によって保存する状態が異なるため、実行時メモリは使う実装の状態・キャッシュも含めて確認します。
GGUFはモデルを配布するファイル形式です。Q4_K_Mは重みを小さく表す量子化形式、BF16は16ビット浮動小数点形式です。表には公開ファイルの掲載容量を使っています。
| 見る量 | 公表値 | 読み方 |
|---|---|---|
| 総パラメータ | 24.0B | モデル全体の規模 [6] |
| 稼働パラメータ | 2.45B | 1トークンの処理に関わる規模 [6] |
| GGUF Q4_K_Mファイル | 約14.5GB | 配布ファイルの容量 [8] |
| GGUF BF16ファイル | 約48GB | 別形式の配布ファイル容量 [8] |
実行時には、重みのほかに、文脈を保持するキャッシュや計算途中の作業領域が必要になります。llama.cppでも重み、文脈用バッファ、計算用バッファを分けて扱います [9]。ファイル約14.5GBという値だけから、主記憶(RAM)や画像処理装置(GPU)が使うメモリ(VRAM)の総量は確定できません。
最大文脈長(モデルが一度に扱えるトークン数)は131,072トークンです [7]。質問に加え、ツール定義、検索結果や会話履歴、回答枠も見積もる必要があります [5]。実際に使う文脈長と同時要求数に合わせて、端末でのピークメモリを測るのが本稿の提案です。
後輩稼働2.45Bなら、メモリも小さく見積もっていいですか?
先輩稼働数、配布ファイル、実行時メモリは別の量だよ。使う形式と文脈長で確かめよう。
184tok/sと21Ktok/sは、条件と指標が異なる
tok/sは1秒あたりの出力トークン数です。
Liquid AIは、Apple M5 Maxで184tok/sのデコード速度を報告しています。デコードは出力トークンを順に生成する処理です。公表条件はPipette、llama.cpp、Q4_K_M、4Kトークンの入力です [11]。
一方、NVIDIA B300を1台使うGPU評価は、多数の要求を同時処理した合計出力を測っています [12, 13]。
| 対象 | 著者公表値 | 公開された主な条件 |
|---|---|---|
| Apple M5 Max | デコード184tok/s | Pipette/llama.cpp、Q4_K_M、入力4K [11] |
| NVIDIA B300 1台 | 合計出力21Ktok/s超 | SGLang 0.5.22、BF16、入力1,024、出力最大256トークン [12] |
GPU値は、出力トークンの合計を実経過時間で割ったものです。完了した要求を次の要求で補充し、処理中の要求数を保つ持続負荷で測っています [13]。公式GPU図は、並行数ごとの合計出力の変化を示しています。
端末の公表カードでは、同時要求数と生成出力長が示されていません。搭載RAM容量も、確認したカードと図からは特定できません。比較するには、こうした条件の確認も必要です。
本稿の検索例では、思考の生成、検索関数の実行、結果を受けた再生成が入ります。最終回答までの時間は、この一連の処理を含めて測ります。
ツール利用とコード修正では、公表結果が分かれる
Liquid AIの比較表から2つの評価を見ます。以下は著者公表値で、原表の数値を保っています。原表では尺度や分母の共通表記が示されていないため、表には評価ごとの公表値を個別に載せています。
| 評価 | LFM2.5-24B-A2B | Qwen3.6-35B-A3B |
|---|---|---|
| ToolSandbox [14] | 80.71 | 75.02 |
| SWE-Bench Verified(OpenCode) [15] | 51.00 | 66.20 |
出典はLiquid AIの公表表です。モデル名ごとに値を対応させると、ツール利用側の例とコード修正側の例で結果が分かれることが分かります。
ToolSandboxの原典は、状態を持つツール実行と、ツール間の状態依存を含む対話を評価します。SWE-Bench Verifiedの公式データセットには、対象リポジトリ、不具合の説明、修正差分や検証テストなどが含まれます。本稿のマニュアル検索用途での引用精度は、この公表値からは判断できません。
Liquid AIは評価に、推論を動かすvLLMを使ったと記しています。ToolSandboxはモデルと模擬利用者の双方で生成のばらつきに関わる温度を0、最大出力を1,024トークンにしています。「その他の評価」は温度0.6、最大出力32,768トークンとまとめられています [16]。SWE-Bench専用の独立した設定行はありません。
精度評価のハードウェア、重み精度・量子化、vLLMの版、実際の実行件数は、確認したカードでは十分に特定されていません [17]。精度評価の条件は、B300・BF16で測ったGPU速度の条件と分けて確認します。Q4_K_Mの端末速度から、同じ精度が得られるとも保証できません。
ホストが実行を制御し、利用条件を確認する
既定のツール呼び出しはPython風の関数呼び出し形式です。公式文書は、データを構造化するJSON形式を使う場合、モデルへの初期指示文(システムプロンプト)から指定する方法も案内しています 公式ツール文書。ホスト側のプログラムは、どちらの形式でも呼出要求を解析し、引数を検証します。
本稿の設計例では、search_docsとget_docの2関数へ固定して振り分けます。引数、読める資料、返却件数を検証し、文書名・版・URL・該当箇所を結果へ含める提案です。出典が取れない場合は、回答を保留します。生成された文字列をevalやexecへ渡して実行する構成は採りません。
ホストの検索機能を外部サービスへ接続すれば、そこへ通信が発生します [2]。端末内の推論と、検索機能の通信・アクセス権は別に設計します。アプリ全体のオフライン動作と権限制御は、検索先とホスト側の設定で管理します。
Apple Silicon向け機械学習フレームワークMLXのモデルを選ぶ場合、固定版の公式カードはmlx-lm 0.32.0以降を指定しています。旧版は読み込めても専門家の選択が誤ると提供元が注意しています [10]。
商用利用には独自のLFM Open License v1.0が適用され、年商1,000万米ドルを基準とする制限があります [18, 19]。ライセンス原文のLegal Entityには、利用主体と、利用主体が支配する事業体、利用主体を支配する事業体、共通支配下にある事業体を合わせた範囲が定義されています [20]。利用者は、基準額ちょうどの扱いや自社への適用について、ライセンスの定義と条項を確認する必要があります。
後輩ローカルのモデルに検索を任せれば、読み取る範囲も自動で制限されますか?
先輩モデルは呼出要求を作り、ホストが実行するよ。読める資料や外部通信の範囲はホスト側で決めよう。
採用前には、小さな公開資料の集合と代表質問を用意するのが本稿の提案です。該当箇所を探せたか、引用が主張を支えるか、思考とツール待ちを含む完了時間、実行時ピークメモリを確認します。利用者は日本語の代表質問で回答と引用の正確さを確認し、用途への適合を判断します。



