登録すると、どこまで学んだかを覚えておきます。
リクエストが通る道
必要に応じてツールを使うクラウド文章アシスタントの代表例です。ローカル・マルチモーダルモデルや提供者では経路が異なり、番号はその簡略化です。
全体像 — 五つの場所
- 自分のコンピューター
- ネットワーク
- 遠くにある機械
自分のコンピューターのプログラム
チャットボット・コードエディター・アプリ。リクエストを受け取り、何を送るかを決めます。
ネットワーク
インターネットを渡る道。この道を行き来するのは文字とファイルだけです。
遠くにある計算機
ランタイムがモデルを読み推論します。稼働中は重みを再利用することが多い一方、起動・退避・再起動で再読込します。複数機器やサーバーに分かれる場合もあります。
計算モデル
ニューラル言語モデルは学習例から数値の重みを学びます。生成時には重みと文脈から候補トークンのスコアを計算します。保存されたネットの文を取り出すだけでも、直前の単語だけを数える方法でもありません。
ふたたび自分のコンピューター
プログラムが答えを見せ、自分が許可したときだけ作業をします。
1 番と 5 番は同じ、自分のコンピューターです
三番の箱を開けてみると
- ディスクで眠っている大きな数字のファイル。そのファイルがモデルそのものです。
- ランタイムがそれを読み、計算専用の部品の上に載せて、そのままにしておきます。
- 門番が鍵を確かめ、リクエストは順番を待ちます。
- すでに載っているその数字を相手に計算が走ります。
一段階ずつ
八つの段階です。八番目で道が二つに分かれます。
自分が送る
音声認識で文字にしてからテキストモデルへ渡す方法と、音声を直接受けるモデルがあります。マイク権限とサービスで処理場所が変わります。
プログラムが荷物をまとめる
アプリが文脈の上限内でメッセージ・指示・許可された添付を選びます。過去を切り詰め、要約、検索する場合があります。省いた内容の自動記憶はなく、要約にも情報損失があります。
インターネットを渡る
HTTPSは接続を暗号化します。HTTP/1.1・2は通常TCPとTLS、HTTP/3はQUICです。リアルタイムではWebSocketやWebRTCも使います。図は接続の役割を示すものです。
計算機が受け取る
ランタイムがモデルを読み推論します。稼働中は重みを再利用することが多い一方、起動・退避・再起動で再読込します。複数機器やサーバーに分かれる場合もあります。
次のトークンを引く
サンプリングは違う答えも同じ答えも出します。小さい正の温度は分布を集中させますが、事実を正しくするわけではありません。実システムでは文脈・モデルの版・ツール・数値実行も変わるため、温度0でも同一出力は保証されません。
トークンごとにこの段階へ戻る
出てくるそばから送り返す
文章はSSEなどで分割送信できます。音声や一部の画像・映像もストリーミングでき、完成ファイルを返す方式もあります。断片の大きさや間隔はサービスの設計です。
プログラムが画面に映す
文章はSSEなどで分割送信できます。音声や一部の画像・映像もストリーミングでき、完成ファイルを返す方式もあります。断片の大きさや間隔はサービスの設計です。
道は一つではなく二つ
この二つを一本の道として描くところから、恐ろしい誤解が生まれます。二つは同じではありません。
会話だけ
- 画面に文字
- ここで終わり
詳しく見る
文字が画面を流れ、それで終わりです。自分のコンピューターには何も起こりません。このサイトのラリア学習アシスタントがこの道です。
手を借りる
- 道具の要求を見つける
- 許可を求める
- 実際にやる
- 結果を詰める
結果は 2 段階のかばんに入り、3 段階からまた出ていきます
詳しく見る
モデルの構造化ツール呼出しをアプリが検証し、権限内でローカルや遠隔サービスで実行します。結果をモデルへ戻せますが、制限・中止・失敗でもループは止まります。
権限・隔離・検証・必要な承認はアプリやサービスが強制します。システム指示だけでは安全境界になりません。承認済み操作は再確認なく実行される場合があり、不備があれば制御も失敗します。
あえてたとえるなら
-
一つの体が計算部品を取り替えます。同じコードエディターに、明日は別の会社のモデルを付けられます。
-
同じ計算部品が、互いに知らない大勢の人のリクエストを同時に処理します。生きているものならありえないことです。
詳しく見る
モデルの構造化ツール呼出しをアプリが検証し、権限内でローカルや遠隔サービスで実行します。結果をモデルへ戻せますが、制限・中止・失敗でもループは止まります。
あと二つだけ
計算機がいつも遠くにあるとは限りません
今このサイトが、まさにその絵です
| 1 · 自分のプログラム | 2 · ネットワーク | 3 · 遠くの計算機 | 4 · 計算モデル | 5 · 自分の画面 | |
|---|---|---|---|---|---|
| 自分のブラウザの中で | はい | いいえ | いいえ | はい | はい |
| 私たちのサーバーを経て | はい | はい | はい | はい | はい |
| 遠くの会社の機械で | はい | はい | はい | はい | はい |
真ん中の道でも、計算は三つ目の道で起きます。私たちのサーバーの仕事は、確かめて運ぶことです。
詳しく見る
PESのSupertonic音声合成はモデル読込後ローカル実行です。ブラウザ音声はローカル・遠隔の場合があります。チャットは別でPES経由で言語モデルサービスへ送ります。
ラリア学習アシスタントを開いて何か聞いてみてください。ブラウザが私たちのサーバーへ送り、サーバーが遠くの計算機に渡します。文字がかけらとなって戻ってくるのが 6 段階、その文字が画面で増えていくのが 7 段階です。ラリアは会話だけの道にいるので、自分のコンピューターのファイルには手を触れません。
ラリア学習アシスタントがそうです。私たちのサーバーは受け渡すだけで、モデルを動かしてはいません。
計算が実際に起きる場所です。その中でどのランタイムを使っているかは公開されていません。
大人のための注釈
もう少し正確な言い方が必要な方のために書き添えます。
トークン
トークナイザーは文章の断片を語彙のIDに変換します。単語・部分語・文字・バイトなどがあり、同じ文章でも方式によりIDと個数が変わります。
ストリーミング
生成されるそばから部分出力を押し出し、ふつうは SSE を使います。かけらの大きさは製品によって違い、トークン単位ではなく文単位で送るものもあります。
モデルの種類
LLM(大きな言語モデル)、SLM(小さな言語モデル)、VLM(画像もいっしょに見るモデル)、そして画像・動画を作る拡散モデルがあります。作られ方がそれぞれ違い、すべてが文字を出すわけでもありません。
選び方
サンプリングは違う答えも同じ答えも出します。小さい正の温度は分布を集中させますが、事実を正しくするわけではありません。実システムでは文脈・モデルの版・ツール・数値実行も変わるため、温度0でも同一出力は保証されません。
RAG・MCP・スキル
ツールはアプリAPIやMCPで接続できます。MCPはローカル・遠隔サーバーのツール・リソース・プロンプトを提供します。利用可否はモデルだけでなく設定と権限で決まります。
モデルを動かすプログラム(ランタイム)
このサイトが実際に使っているのは ONNX Runtime(音声合成)と sherpa-onnx(書き起こし)です。サーバーで大きな言語モデルを動かすときは、同じ役目の別のプログラム — vLLM・TensorRT-LLM・llama.cpp など — が使われます。どの会社が何を使っているかは公開されていません。
数値、精度、メモリ — そして数値を動かすランタイム
- モデルファイル 楽譜
- ランタイム 指揮者
- CPU · GPU 演奏者
| 得意なこと | |
|---|---|
| ONNX Runtime | 多様なモデルをさまざまな機器で |
| llama.cpp | 自分のコンピューターでLLMを実行(GGUF) |
| FreeToken | 巨大なMoEモデルを個人のPCで |
詳しく見る
AIモデルは、学習で得た膨大な数値と計算構造です。ランタイムはその構造をメモリに読み込み、CPUやGPUなどの計算装置で実際に実行するエンジンです。
モデルファイルを楽譜、CPU・GPUを演奏者、ランタイムを楽譜を読んで演奏をまとめる指揮者と考えると分かりやすいでしょう。
ONNX Runtime — 画像・音声・言語など多様なモデルを、さまざまなOSとハードウェアで動かす汎用エンジンです。Execution Providerを介して装置別のアクセラレータにつなぎます。
llama.cpp — ローカルやクラウドの幅広い機器でLLM・VLMを手軽に動かすことに重点を置いたエンジンです。GGUF形式のモデルファイルとよく使われます。
FreeToken — 非常に大きなMoEモデルを個人向けハードウェアで動かすための、新しいエッジネイティブな実行エンジンです。NVIDIA GPU、CPU、ホストRAM、その間の接続を一つの推論基盤として協調させます。
パラメータとは?
- テンソル
- 行列
- ベクトル
- スカラー = パラメータ1個
- ベクトル
- 行列
[0.2, −0.7, 1.3] ベクトル1個・スカラー数値3個・パラメータ3個8BのBはByteではなくBillion(10億)です。8Bモデルとはベクトルが80億個ではなく、スカラーパラメータが約80億個あるという意味です。
パラメータと重み
- 重み
- バイアス
- 埋め込み
- 正規化係数
y = w₁x₁ + w₂x₂ + b重みはパラメータですが、すべてのパラメータが重みというわけではありません。
詳しく見る
パラメータは、モデルが学習によって得たり調整したりしたスカラー数値一つです。ベクトル・行列・テンソルは数値を入れる容器で、その中のスカラー数値一つ一つをパラメータとして数えます。
重みは代表的なパラメータで、入力を結果へどれほど強く反映するかを決めます。バイアス、埋め込み、正規化係数などもパラメータになり得ます。
パラメータ一つが知識一つを入れる箱なのではありません。テンソルや行列が引き出し棚なら、パラメータは中の数値一マスであり、ビット数はその数値をどれほど精密に記録するかを表します。
パラメータ一つは何ビット?
詳しく見る
パラメータは一つの数値ですが、異なる精度で保存できます。ビット数を減らすと通常はメモリを節約できますが、実際の量子化ファイルにはスケールやメタデータなどの追加容量もあります。
なぜ8Bモデルが約8GBになるのか?
重み容量 ≈ パラメータ数 × 1パラメータのビット数 ÷ 8表は重みだけを十進単位で単純計算した理論値です。実際の量子化ファイルはスケール、メタデータ、その他の構造により大きくなる場合があります。
詳しく見る
8ビット精度ではパラメータ一つが約1バイトです。したがって80億パラメータの純粋な重みは約8GBになります。同じパラメータ数でも精度が変われば容量も変わります。
実行時にはさらにメモリが必要
- 重み
- KVキャッシュ
- 計算バッファ
- ランタイムのオーバーヘッド
KVキャッシュは文脈が長いほど大きくなります
実行メモリ = 重み + KVキャッシュ + 計算バッファ + ランタイムのオーバーヘッド詳しく見る
重みファイルは出発点にすぎません。推論には過去のトークンを保持するKVキャッシュ、一時的な計算バッファ、ランタイムのオーバーヘッドも必要です。理論上4GBのモデルでも実際には5〜8GB以上を使うことがあり、文脈が長いほど通常KVキャッシュは大きくなります。
小さな数値でどうして多くの知識を表せる?
詳しく見る
8ビットは256段階を表せますが、パラメータ一つに「ソウルは韓国の首都」のような文が入っているわけではありません。知識は、多数の層で相互作用する数十億のパラメータが作るパターン全体に分散しています。
画素一つは単なる色の値ですが、数百万個が並ぶと顔や風景が現れます。モデルの知識も同じように、分散した数値パターンから現れます。
AIモデルは、ベクトル・行列・テンソルにまとまった膨大なスカラーパラメータのパターンです。精度が理論上の重み容量を決め、ランタイムは重みをメモリに読み込み、追加の作業メモリを使ってハードウェア上で実行します。
同じ道のりを、一段ずつすべて
- 1 自分の手からプログラムまで
- 2 送るものを詰める
- 3 インターネットを渡る
- 4 サーバーの門前
- 5 サーバーの中 — 機械とランタイム
- 6 モデルが計算する
- 7 トークン一つずつ、何度も
- 8 帰り道
- 9 プログラムが受け取る
- 10 手を借りる繰り返し
1 自分の手からプログラムまで 1 番の場所 4段階
-
キーが押される
キーボードの中の小さなコンピューターがどのキーが動いたかを見つけ、それを数字にしてケーブルへ流します。
-
オペレーティングシステムが受け取る
カーネルのドライバーがその数字を入力イベントに変え、今いちばん手前にある窓へ向けて列に並べます。
-
プログラムが列から取り出す
どのプログラムも、イベントを一つずつ取り出して処理する繰り返しを回しています。入力欄に文字が現れるのがこの段階です。
-
マイクは別の道を行く
音声認識で文字にしてからテキストモデルへ渡す方法と、音声を直接受けるモデルがあります。マイク権限とサービスで処理場所が変わります。
2 送るものを詰める 1 番の場所 7段階
-
システムプロンプト
プログラムを作った人があらかじめ書いておいた決まりが先頭に付きます — おまえは何で、どう答えるべきか。
-
ここまでの会話
アプリが文脈の上限内でメッセージ・指示・許可された添付を選びます。過去を切り詰め、要約、検索する場合があります。省いた内容の自動記憶はなく、要約にも情報損失があります。
-
自分が添えたもの
画像はAPIに応じてバイト・ファイルID・URL・base64で送ります。PDFは文字・ページ画像・OCRなどで扱います。形式・抽出品質・容量制限はサービスごとに異なります。
-
自分の資料を探す(RAG)
RAGは資料を検索し生成の文脈に入れます。BM25などの語句検索、埋め込み、両方を使えます。通常は重みを再学習せず、資料の出典と関連性の確認が必要です。
-
道具の一覧
ツールはアプリAPIやMCPで接続できます。MCPはローカル・遠隔サーバーのツール・リソース・プロンプトを提供します。利用可否はモデルだけでなく設定と権限で決まります。
-
スキルとコマンド
スキルは指示と、必要ならスクリプトや資料をまとめます。対応エージェントが必要な部分を読みます。Agent Skillsは形式の仕様で、安全や正確さの保証ではありません。
-
上限に合わせる
アプリが文脈の上限内でメッセージ・指示・許可された添付を選びます。過去を切り詰め、要約、検索する場合があります。省いた内容の自動記憶はなく、要約にも情報損失があります。
3 インターネットを渡る 2 番の場所 4段階
-
住所を調べる
サーバーの名前を数字の住所に変えます(DNS)。
-
道を開き、錠をかける
HTTPSは接続を暗号化します。HTTP/1.1・2は通常TCPとTLS、HTTP/3はQUICです。リアルタイムではWebSocketやWebRTCも使います。図は接続の役割を示すものです。
-
誰なのかを示す
リクエストの頭に鍵(API キー)や札(トークン)を付けます。誰の分として計算するかがここで決まります。
-
リクエストを送る
HTTPSは接続を暗号化します。HTTP/1.1・2は通常TCPとTLS、HTTP/3はQUICです。リアルタイムではWebSocketやWebRTCも使います。図は接続の役割を示すものです。
4 サーバーの門前 3 番の場所 3段階
-
門番
鍵が合っているか、呼びすぎていないかを見て、空いている計算機に渡します。
-
待ちの列
門前では鍵を確かめ、しばらく列に並びます。そのあと計算するとき、ランタイムはすでに載せてある一組の数字に対して、待っていた複数の質問をまとめて計算します。
-
入ってきたものを調べる
計算を始める前に、決まりに反するリクエストでないかを先に見ます。
5 サーバーの中 — 機械とランタイム 3 番の場所 3段階
-
数字のファイルが眠っている
学習を終えたモデルは、保存装置に置かれた大きなファイルです。それだけでは何も計算しません。このサイトの音声モデルもファイル四つ、合わせて約 398MB です。
-
ランタイムが一度だけ載せる
ランタイムがモデルを読み推論します。稼働中は重みを再利用することが多い一方、起動・退避・再起動で再読込します。複数機器やサーバーに分かれる場合もあります。
-
アクセラレーターが掛け算を引き受ける
同じ掛け算を途方もない回数こなす必要があるので、まさにそのために作られた部品に任せます。その隣の速い記憶に数字が居座ります。ふつうの CPU でもできますが、その場合は遅いだけです。
ランタイムはアクセラレーターの中に入っているのではありません。ファイルを読んでその部品の隣の記憶へ数字を載せる、別に動くプログラムです。
複数のリクエストをまとめるのは 17 番、済んだ計算を取っておくのは 27 番 — どちらもこのプログラムの仕事です。
6 モデルが計算する 4 番の場所 7段階
-
トークンに切る
トークナイザーは文章の断片を語彙のIDに変換します。単語・部分語・文字・バイトなどがあり、同じ文章でも方式によりIDと個数が変わります。
-
番号を数字の並びへ
IDで学習済み埋め込みを選びます。IDの大小に意味の近さはありません。ベクトルの類似性はモデルや課題に依存し、近さは同じ意味の保証ではありません。
-
順番を記す
位置情報で順序を区別します。位置ベクトルを加える方式や回転位置埋め込みなどがあり、全Transformerで同じではありません。
-
互いを見る(アテンション)
自己回帰Transformerは各層でattentionなどの変換を行います。因果attentionは許された過去の位置を使い、窓が限られる場合もあります。構造と層数はモデル次第です。
-
層を重ねて掛けて足す
自己回帰Transformerは各層でattentionなどの変換を行います。因果attentionは許された過去の位置を使い、窓が限られる場合もあります。構造と層数はモデル次第です。
-
すべてに点数をつける
最後の層が、知っているトークン全部に点数を出します。何万個に一度に点数が付きます。
-
一つ選ぶ
softmaxがlogitsを確率に変え、温度は抽選前のlogitsを調整します。top-kは個数、top-pは累積確率で候補を絞ります。貪欲法は最高点を選び、温度0の扱いは提供者次第です。
7 トークン一つずつ、何度も 4 番の場所 3段階
-
後ろにつなげる
-
済んだ計算を使い回す
KVキャッシュは自己回帰生成で過去のattentionのキーと値を再利用し、計算を節約しますがメモリが必要です。遅延は文脈長・バッチ・機器・通信にも依存します。
-
22 番へ戻る
モデルの構造化ツール呼出しをアプリが検証し、権限内でローカルや遠隔サービスで実行します。結果をモデルへ戻せますが、制限・中止・失敗でもループは止まります。
答えを書き進める繰り返しがこれです — トークン一つごとに 22 番へ戻ります。
8 帰り道 2 番の場所 4段階
-
トークンの番号を読める文字に戻す
-
出てくるそばから流す
答え全体を待たず、できたそばから小さなかたまりにして押し出します(SSE)。
-
出ていくものを調べる
出ていく文も、決まりに反していないかを見ます。
-
使った分を記録する
送ったトークンと受け取ったトークンの数を数えます。料金が出てくるのはここです。
9 プログラムが受け取る 5 番の場所 4段階
-
届いたかけらを順につなぐ
-
画面に描く
マークダウンを読んで見出し・箇条書き・コード枠に変えて描きます。タイプしているように見えるのがこの部分です。
-
道具の要求を見つける
答えの中に決まった形の道具呼び出しが混じっていないかを、プログラムが見張っています。
-
引数を確かめる
その道具が実際にあるか、引数の形が合っているかを、動かす前に調べます。
10 手を借りる繰り返し 5 番の場所 4段階
-
許可を求める
権限・隔離・検証・必要な承認はアプリやサービスが強制します。システム指示だけでは安全境界になりません。承認済み操作は再確認なく実行される場合があり、不備があれば制御も失敗します。
-
実際にやる
モデルの構造化ツール呼出しをアプリが検証し、権限内でローカルや遠隔サービスで実行します。結果をモデルへ戻せますが、制限・中止・失敗でもループは止まります。
-
結果を詰める
何が出たか、失敗したならなぜかを、6 番の会話に新しい行として詰めます。
-
15 番へ戻る
モデルの構造化ツール呼出しをアプリが検証し、権限内でローカルや遠隔サービスで実行します。結果をモデルへ戻せますが、制限・中止・失敗でもループは止まります。
人がエージェントと呼ぶ繰り返しがこれです — 15 番へ何度も戻ります。