Expand description
LearnModel - 学習の統合モデル
§設計思想
LearnModel は「何を学習するか」を統合的に定義する。
- 何を目的とするか (objective)
- 何を Episode として切り出すか (build_episodes)
- 何を Success/Failure とするか (evaluate)
- どう TrainingData に変換するか (convert)
§Learn の価値
Core(Swarm本体)は性能制約で 3-gram までしか取れない。 しかし Learn は非同期/オフラインなので、5-gram や 10-gram など 自由に分析できる。これが Learn モジュールの価値。
§モジュール構造
learn_model/
├── mod.rs # LearnModel trait 定義
├── dpo.rs # 汎用 DPO 基盤 (DpoLearnModel<F>)
├── dependency_graph.rs # DependencyGraph 推論の学習
├── worker_task.rs # Worker の Task 完了パターン学習
├── worker_decision.rs # Worker の意思決定シーケンス学習
└── error.rs # エラー型§実装一覧
| 実装 | 目的 | グルーピング |
|---|---|---|
DpoLearnModel | 汎用 DPO 学習 | group_id |
DependencyGraphLearnModel | DependencyGraph 推論 | - |
WorkerTaskLearn | Task 完了パターン | task_id |
WorkerDecisionSequenceLearn | 意思決定シーケンス | worker_id |
§DPO (Direct Preference Optimization)
DPO は成功/失敗 Episode のペアから学習する手法。
group_id でグルーピングし、カスタム extractor で prompt/response を抽出。
DependencyGraphLearnModel::extractor() を使って DPO を行う例:
ⓘ
let dpo = DpoLearnModel::new(
DependencyGraphLearnModel::default_system_prompt(),
DependencyGraphLearnModel::extractor(),
);
let pairs = dpo.build_pairs(&episodes);§Record による抽象化
ActionEvent と LlmDebugEvent を Record enum で統一的に扱う。
LearnModel は Record のストリームから Episode を構築する。
ActionEvent ──┐
├──▶ Vec<Record> ──▶ LearnModel.build_episodes()
LlmDebugEvent ┘ ↓
Vec<Episode>
↓
LearnModel.convert()
↓
TrainingDataModules§
- system_
events - システムイベント定数
Structs§
- Dependency
Graph Learn Model - DependencyGraph 推論の学習モデル
- DpoConfig
- DPO LearnModel の設定
- DpoLearn
Model - 汎用 DPO LearnModel
- DpoPair
- DPO 学習用の比較ペア
- Worker
Decision Sequence Learn - Worker Decision 学習モデル(シーケンスベース)
- Worker
Task Learn - Worker タスク完了ベースの LearnModel
Enums§
- Learn
Error - LearnModel のエラー型
Traits§
- Learn
Model - 学習の統合モデル