mcpField
A
ai-llm

ai-llm

github.com/vasilyu1983開発184 回インストール
リポジトリ

ai-llm について

ai-llmは、ファインチューニング、パラメーター効率の高い手法、蒸留でLLMを適応させる実務者向けのスキルです。データセット、評価、学習方法、リリース前の確認を扱います。

主な機能

  1. 01フルファインチューニングとPEFTの比較
  2. 02LoRAとQLoRAの設定
  3. 03SFTデータセットの準備と検証
  4. 04蒸留の計画と評価
  5. 05リリース前の適応モデル評価

活用シーン

  1. 01モデルのファインチューニング手法の選定
  2. 02データセットやトークナイザーの問題診断
  3. 03教師モデルから生徒モデルへの蒸留
  4. 04適応モデルのデプロイ前の品質確認

インストール

コマンドをコピーしてターミナルで実行します。

$npx skills add https://github.com/vasilyu1983/ai-agents-public --skill ai-llm

インストール後、Claude Code で/ai-llmを入力して読み込まれたか確認します。

同梱ファイル

SKILL.md と一緒にインストールされる参考資料やスクリプト。

learnings.consolidated.md
learnings.md
agents/
openai.yaml
assets/data-pipelines/
template-data-quality.md
assets/fine-tuning/
template-config.md
template-instruction.jsonl
template-sft-dataset.jsonl
assets/selection/
fine-tuning-roi-calculator.md
data/
sources.json
references/
advanced-llm-patterns.md
dataset-formatting-guide.md
fine-tuning-recipes.md
multimodal-patterns.md
tokenizer-diagnostics.md

詳細

LLM の適応

モデルの重みを変更して、特定のタスクの性能を向上させます。教師ありファインチューニング(SFT)、パラメータ効率の高いファインチューニング(PEFT:LoRA、QLoRA、DoRA)、フルファインチューニング、蒸留と圧縮後の品質回復に加え、成否を左右するデータセットとトークナイザーの調整も扱います。

そもそも適応させるべきか(プロンプトか、思考か、RAGか、ファインチューニングか、ポストトレーニングか)の判断は、このスキルの対象外です。まず ai-architecture-advisor の単一のビルド手順を使い、「fine-tune」または「distill」と判断されたら、こちらに進んでください。

このスキルを使う場面

  • LoRA または QLoRA の設定:ランク、alpha、alpha の規約、対象モジュール、学習率
  • フルファインチューニングと PEFT の選択、または LoRA が頭打ちになった際の次の手段の検討
  • SFT データセットの構築:チャットテンプレート、プロンプトトークンの損失マスキング、パッキング、汚染の制御
  • 大規模な教師モデルから小規模な生徒モデルへの蒸留、またはプルーニング後の品質回復
  • 一部の入力におけるトークナイザーの分割、トークン分割率、グリッチトークンの診断
  • ファインチューニングの投資対効果の判断(利用量と安定性に基づく損益分岐)

対象範囲の境界

必要な内容参照先
方式の選択、モデルとプロバイダーの選択、MoE と密モデルの比較ai-architecture-advisor
選好学習と RL のポストトレーニング:RLHF/PPO、DPO、GRPO、RLVR、報酬モデルai-post-training
評価設計、評価者のキャリブレーション、しきい値、ベンチマークハーネスai-evals
プロンプト、構造化出力、スキーマの適用ai-prompt-engineering
コンテキストの組み立てとメモリai-context-layer
RAG とエージェントai-rag、ai-agents
サービング、量子化形式、プルーニングのランタイムサポートai-llm-inference
ローカル実行と GGUF パッケージングai-local-model-ops
デプロイ、ロールアウト、監視、モデル/プロバイダーの移行ai-mlops
API のコストモデル、キャッシュ、セルフホストの損益分岐ops-cost-optimization
事前学習、トークナイザーの構築、スケーリング則ai-pretraining、ai-scaling-laws
マルチ GPU 並列処理ai-distributed-training
Hugging Face TRL のトレーナー固有の詳細huggingface-skills: プラグイン(外部)

デフォルトのワークフロー

  1. 課題が知識や推論ではなく、振る舞いにあることを確認します。 不足している事実は検索で、複数段階のロジックは思考予算で補います(アドバイザーの段階的な判断基準を参照)。プロンプトや RAG の修正後も残る、安定した振る舞い、形式、スタイルの課題に対してファインチューニングを行います。
  2. データセットを作る前に評価を構築します。 スライスごとにタスクセットをホールドアウトし、未調整モデルの同一シードのベースラインを取得して、ドメイン外の忘却評価セットを追加します。
  3. データセットを構築します。 拡張や合成データの生成を行う前に、重複したソース例と類似したソース例をグループ化し、グループ全体を学習用または評価用に割り当てます。その後、残存する重複がないか確認します。モデル独自のチャットテンプレートを適用し、学習時とサービング時で同じテンプレートを使用します(生成プロンプトとターン終了トークンを含む)。学習パイプラインとサービングエンジンのそれぞれで1つの例をレンダリングし、トークン ID を比較してください。不一致があってもエラーは発生せず、ファインチューニングが何もしていないように見えるためです(§5E)。アシスタントのトークンのみで損失を計算します(プロンプトのトークンには ignore_index=-100 を設定します)。パッキングによって、例の境界を越えてアテンションや損失が及ばないようにします。dataset-formatting-guide.md を参照してください。
  4. まず PEFT から始めます。 すべての線形層を対象に LoRA または QLoRA を適用し、ランク、アルファ、アルファの規約、対象モジュール、有効バッチサイズ(マイクロバッチ × 蓄積ステップ数 × ワールドサイズ)を記録します。学習可能な割合 = 適応対象の行列についての Σ r·(d_in + d_out) ÷ 総パラメーター数です。割合を引用するのではなく、使用するモデルについて計算してください。
  5. 根拠がある場合にのみ段階を引き上げます。 事前学習から大きく離れた難しいドメインで LoRA が頭打ちになった場合は、fine-tuning-recipes.md の段階的な引き上げ順に従い、忘却評価を維持してください。
  6. 蒸留の手順。 教師モデルを呼び出す前に、その利用規約で競合モデルの学習が許可されていることを確認し、ライセンスを記録してください。その後、advanced-llm-patterns.md に従い、利用できるアクセスに応じて教師信号(ロジット、生成テキスト、または推論根拠)を選びます。
  7. リリースを判定します。 実際に使用するサービング成果物と構成で判定を実行します。アダプターを別に読み込んでサービングする場合はその状態でテストし、マージ済みの量子化成果物をデプロイする場合はその成果物をテストします。量子化後にのみ現れる差分は、ファインチューニングによるものではありません(マージと量子化)。タスクと忘却の各スライスに基づいてリリースするチェックポイントを選びます。検証損失は早期終了のためのチェックポイント順位付けにのみ使用します。スライスごとにベースラインと比較し、スキーマの有効率、ツール呼び出し率、忘却評価セットも比較します。デプロイメントは ai-mlops に引き継ぎます。

クイックリファレンス

判断項目デフォルト変更する条件避けること
手法LoRA/QLoRA、すべての線形層を対象ランクと DoRA を試した後も難しいドメインで頭打ちになる → GaLore、その後にフルファインチューニングいきなりランク 256 にする
メモリベースモデルが BF16 で収まらない場合は QLoRAベースモデルが収まる → 通常の LoRAアクティブなパラメーター数で MoE のサイズを見積もる(すべてのエキスパートが読み込まれます)
マルチ GPU凍結したベースモデルが 1 つの GPU に収まる場合はデータ並列ベースモデルが収まらない → FSDP / ZeRO-3(メモリモデル)やみくもにシャーディングする
損失アシスタントのトークンのみ生テキストで事前学習スタイルの継続学習を行うシステムとユーザーのトークンで学習する
蒸留教師の出力を使った系列 KDロジットにアクセスできる → ソフトラベル KD、推論トレースがある → トレース KD競合モデルの学習を禁止する利用規約の教師モデルを使う
投資回収ROI 計算ツールを使う利用量が多く、ドメインが安定している変化する知識のためにファインチューニングする

よくある落とし穴

  • 検索で扱うべき情報や、より大きな思考予算で解消できる推論上の不足に対して、ファインチューニングを行うこと
  • 実際のモデルについて Σ r·(d_in + d_out) を計算せず、LoRA のパラメーター割合を引用すること
  • プロンプトトークンの損失を計算したり、注意機構が境界をまたぐようにサンプルをパッキングしたりすること
  • ほぼ重複するソースのサンプルを train/eval に分けたり、ソースグループを分割に割り当てる前にデータ拡張したりすること
  • 競合モデルのトレーニングを禁止する利用規約を持つホステッドモデルから蒸留すること
  • 圧縮または調整済みモデルをパープレキシティでゲートすること。推論、スキーマ準拠、ツール呼び出しのスライスが最初に破綻します
  • 評価スコアが高すぎることを、データリークの警告ではなく成功と見なすこと
  • MoE のファインチューニング規模をアクティブパラメーターで見積もったり、ルーターが一部のエキスパートに偏ることを無視したりすること

トレーナーの機能、サポートされる損失、フレームワークのメンテナンス状況は頻繁に変わります。

  1. ある手法を約束する前に、トレーナーの公式ドキュメントでサポートされる手法と損失を確認してください(たとえば、選好損失が組み込まれているかどうか)。
  2. アーキテクチャに関する事実(レイヤー、隠れサイズ、KV ヘッド、MoE エキスパート)は、記憶に頼らず、モデルカードと config.json で確認してください。
  3. 新しい作業を始める前に、フレームワークのリポジトリの状況を確認してください。一部のファインチューニングライブラリは開発を終了しています。

スクリプト

このスキルにはスクリプトは含まれていません。呼び出しごとのコスト見積もりツールは ops-cost-optimization(scripts/cost_estimator.py)にあり、オフラインのプロンプト回帰ランナーは ai-evals(scripts/prompt_eval_runner.py)にあります。

ナビゲーション:リファレンス

  • ファインチューニングのレシピ:SFT、指示チューニング、LoRA/QLoRA の設定、PEFT 手法ファミリー、フル FT へのエスカレーション、マルチ GPU と MoE に関する注意事項、安全性データ、中間トレーニング、データフィードバックループ、汚染管理
  • データセット形式ガイド:指示、チャット、変換の形式、データセットの衛生管理、損失マスキング(ignore_index=-100、最初の EOS はマスクしない)、サンプル境界内でのパッキング。ai-pretraining は SFT の形式設定をここに委譲します。
  • 適応パターン:タスク固有のチューニング、合成データ、知識蒸留(ロジット、シーケンス、オンポリシー、根拠、枝刈り後の蒸留、推論トレース)と教師モデルのライセンスゲート、圧縮チェックリスト、マルチタスク学習。蒸留するかどうかは ai-architecture-advisor が担当し、蒸留については ai-pretraining がここに委譲します。
  • トークナイザー診断:分割効率とパリティ、グリッチトークンと学習不足のトークン、ドメインの断片化、数値のトークン化、誤字への脆弱性。BPE トークナイザーの構築は ai-pretraining が担当します。
  • マルチモーダルパターン:ビジョン、音声、ドキュメントのワークフロー。適応の範囲外ですが、担当者が決まるまではここに置いています。

このスキルから移動した項目:ポストトレーニング → ai-post-training、評価パターン → ai-evals、コストの経済性 → ai-api-cost-guide、デプロイ、移行、モニタリング → ai-mlops、構築の段階的手順とモデル選択 → ai-architecture-advisor。

テンプレート

外部ソース

レシピ(LoRA、QLoRA、DoRA、rsLoRA、IA³、LoRA とフルファインチューニングの比較、蒸留)の根拠となる論文やドキュメント、および最新情報の確認に使うプロバイダーの検索ページについては、data/sources.json を参照してください。

学びのループ

過去の判断や落とし穴が関係する場合は、learnings.consolidated.md があれば参照してください。必要な履歴を確認するときや、利用可能な代替ファイルとしてのみ learnings.md を使用してください。それ以外の場合は、どちらも参照しないでください。

適用後、覚えておく価値のあるパターン、防止すべきミス、または意外だった分野の事実に気づいた場合は、agents-skills-feedback-loop/scripts/append_learning.py を使って、日付付きの箇条書きを learnings.md に1つ追記してください。SKILL.md 自体は変更しないでください。

コメント