目安: 35分。演習の状態: 未実行 (not-run)。本文は学習ガイドであり、動作や品質の実測記録ではありません。
独自の概念図。矢印は依存関係や判断の順序を示し、性能の実測を表さない。
- 1サービスの課題
- 2ルール・検索・生成の担当分け
- 3コードによる検証
- 4権限のある操作
このコースの読み方
AIを使う複数のサービスを開発する人。数学や機械学習の前提知識は不要。Pythonの実行経験があると演習が進めやすい。
1〜5章で判断の土台を作り、6章の小型モデルで入出力を確認する。8章で検索を足し、9章以降で必要な場合だけ重みを変える。Macでの推論とCUDA上の学習は別の実行経路として読む。
教材を作るためのモデル実行、ソフトウェアのインストール、モデルのダウンロード、課金APIの呼び出しは行っていない。掲載コードは読者が内容・ライセンス・容量を確認して手動実行する未実行の例。
学習目標
- AI、機械学習、深層学習、生成AIの包含関係を説明できる
- 予測と生成を入力・出力で分けられる
仕事の役割
- 学習者: 仮説・データ・評価を設計する
- モデル: 指定した変換を試す
- アプリ: 制限・検証・権限を保証する
入力 → 工程 → 出力
| 入力 | 工程 | 出力 |
|---|---|---|
| 課題、既存データ、許容できない失敗 | ルール・検索・分類・生成へ分解する | AIに担当させる範囲と通常のコードで保証する範囲 |
AIは目的、機械学習は作り方の一つ
AIは知的な振る舞いを実現する技術群の広い呼び名である。機械学習は、入力と望ましい出力の関係をデータから調整する方法で、すべてのAIが学習するわけではない。固定ルールの照合、探索、統計モデル、ニューラルネットワークも同じサービスの中で併用できる。
例えば請求書サービスでは、ファイル形式の検証は通常のプログラム、文字の読み取りはOCR、勘定科目候補は分類器、説明文はLLMが担当できる。すべてをLLMに任せるより、失敗の場所を分けて検査しやすくなる。
歴史を「何を扱いやすくしたか」で読む
初期の記号的AIは人が明示した知識やルールを組み合わせた。統計的機械学習は人が作った特徴量から規則性を推定し、深層学習は表現そのものを多層の計算で学習する方向を広げた。これらは新しいものが古いものを完全に置き換えた歴史ではない。表形式データでは木系モデルなどが有力な比較対象であり続ける。
2017年のTransformer論文はattentionを中心とする系列変換の構成を示した。その後、大規模な事前学習済みモデルを用途に合わせて適応する方法が広がった。2020年のRAG、2021年のLoRA、2023年のQLoRAという節目は、知識を外から参照する方法と、追加学習の負担を下げる方法を区別するために覚える。
上の節目は Transformer原論文、RAG原論文、LoRA原論文、QLoRA原論文 に対応する。公開年は異なる仕組みの区別に使い、現行製品の順位には使わない。
サービス開発者が先に決めること
「AIを入れる」では要件にならない。入力は何か、出力は誰が使うか、許容できない失敗は何かを決める。検索候補の並べ替えなら多少の誤りを修正できる一方、金額確定や医療判断なら検証と人の判断を切り離せない。生成の上手さと、業務を正しく完了できることは別の評価軸である。
自分で進める工程
- 自分のサービスを一つ選ぶ
- 入力、変換、出力、利用者を書き出す
- ルールだけの基準案とAIを使う案を作る
- 失敗時に人へ戻せる箇所を決める
品質を確認する
- AI、機械学習、深層学習、生成AIの包含関係を説明できる
- 予測と生成を入力・出力で分けられる
- 回答を作ることと外部へ送ることの権限が分離されているか
失敗を切り分ける
| 注意すること | 具体的な確認方法 |
|---|---|
| LLMの新しさだけで方式を選ばない | 同じ入力・出力・利用者について、ルールだけの基準案とAIを使う案を書く。 |
| 精度という一語で、事実性・形式・速度・安全性をまとめない | 事実の裏付け、形式遵守、待ち時間、安全性を別々の項目で評価する。 |
演習: AI・機械学習・LLMの地図をつくる
状態: 未実行 (not-run)。
問い合わせ対応を「検索」「分類」「回答生成」「送信」に分解し、LLMが必要な箇所を選ぶ
提出するもの: 4工程の担当表と、人の確認が必要な条件
完了の確認: 回答を作ることと外部へ送ることの権限が分離されているか
実験記録用ワークシートに計画・条件・観察を記録する。未測定値は null とし、推定値は式と仮定を残します。
用語集
| 用語 | 意味 |
|---|---|
| parameter / weight | 学習で調整されるモデル内部の数値。ファイル容量の主要部分。 |
| token | tokenizerが扱う文章の単位。文字数・単語数とは異なる。 |
| embedding | tokenや文書などを数値ベクトルへ表したもの。 |
| context | 一度の推論で参照する入力・履歴・生成の範囲。 |
| KV cache | 過去tokenのattention計算で使うkey/valueを再利用する領域。 |
| quantization | 重み等をより少ないbitで表現する方法。容量と品質・対応のトレードオフがある。 |
| checkpoint | ある学習段階の重みや必要な状態を保存したもの。 |
| adapter | base modelに組み合わせる追加学習された小さな重み。 |
| RAG | 外部資料を検索して生成入力へ加える構成。 |
| SFT | 入力と望ましい出力の組から行う教師あり追加学習。 |
| LoRA | 低ランク行列を使う省パラメータな適応方法。 |
| TTFT | 要求開始から最初の出力tokenが利用可能になるまでの時間。 |
| GPU-hour | GPU1枚を1時間使う計算資源の単位。token単位の課金とは別。 |
| hallucination | 根拠のない、または誤った内容をもっともらしく生成すること。 |
| data leakage | 評価で未知であるべき情報が学習や設定選択に混入すること。 |
MENTAL MODEL / メモリ
モデルの重さを、分けて考える。
重みとKVキャッシュは別々に増える。下の値は設計用の概算です。
GBは10⁹ byte。KVは32層・8 KV heads・128 head dim・FP16・batch 1の仮定。量子化メタデータ、実行バッファ、OS、モデル固有の構造は別途必要。MoEでは総重みとactive parametersを分けます。
出典
公開日は資料の日付、確認日は内容を参照した日です。コミュニティの観測は公式の確定事項と区別します。
01