fine-tuning について
fine-tuningは、カスタムデータセットを使って事前学習済み機械学習モデルを特定のタスクに適応させるスキルです。OpenClawのAIMLOpsフレームワークを通じた学習、調整、分散実行、評価を扱います。
主な機能
- 01事前学習済みモデルのファインチューニング
- 02勾配チェックポイントによるメモリ節約
- 03Transformers、TensorFlow、PyTorch対応
- 04ハイパーパラメーター調整
- 05GPUまたはクラウドでの分散学習
- 06精度、F1-score、損失の追跡
活用シーン
- 01BERTをドメイン固有の感情分析に適応
- 02カスタム画像で分類器を学習
- 03AIMLOpsワークフローへの組み込み
インストール
コマンドをコピーしてターミナルで実行します。
npx skills add https:/ / github.com/ alphaonedev/ openclaw-graph --skill fine-tuningインストール後、Claude Code で/fine-tuningを入力して読み込まれたか確認します。
詳細
ファインチューニング
目的
このスキルを使うと、転移学習によって事前学習済みのMLモデルをファインチューニングし、テキスト分類や画像認識などの特定のタスクに適応させることができます。OpenClawのAIMLOpsフレームワークを活用し、学習ループとリソース使用量を最適化します。
使用する場面
事前学習済みモデル(例:NLP向けのBERT)と、ドメイン固有のテキストに対する感情分析など、適応が必要なカスタムデータセットがある場合にこのスキルを使用します。データが限られる本番環境など、ゼロから学習するのが非効率なタスクに適用してください。
主な機能
- メモリ効率を高める勾配チェックポイントなどの手法でモデルをファインチューニングします。
- Hugging Face Transformers、TensorFlow、PyTorchなどの一般的なフレームワークに対応しています。
- 学習率スケジューラーなどの統合ツールでハイパーパラメーターを調整します。
- GPUまたはクラウドインスタンスを使った分散学習に対応しています。
- 精度、F1スコア、損失の追跡など、モデル評価指標を利用できます。
使用パターン
まず、データセットとモデルを準備します。データを互換性のある形式(例:テキストの場合はJSONL)に読み込み、ファインチューニングコマンドを実行します。ログまたはコールバックで進捗を監視します。パイプラインでは、AIMLOpsワークフローのステップとして組み込み、ファインチューニングの前にデータ前処理が行われるようにします。
一般的なコマンド/API
すばやく実行するにはOpenClaw CLIを使用し、プログラムからアクセスするにはREST APIを使用します。認証には、環境変数として$OPENCLAW_API_KEYを設定する必要があります。
-
CLIコマンドの例:データセットでBERTモデルをファインチューニングします。
openclaw fine-tune --model bert-base-uncased --data-path ./data.jsonl --epochs 3 --batch-size 16 --learning-rate 5e-5このコマンドはモデルを読み込み、3エポック学習して、出力を現在のディレクトリに保存します。
-
APIエンドポイント:JSON本文を指定して
/api/v1/fine-tuneにPOSTします。 リクエスト本文の例:{ "model_id": "bert-base-uncased", "dataset_url": "s3://my-bucket/data.jsonl", "epochs": 3, "hyperparameters": {"learning_rate": 5e-5, "batch_size": 16} }curlで送信します:
curl -X POST -H "Authorization: Bearer $OPENCLAW_API_KEY" -d '{"model_id": "bert-base-uncased", ...}' https://api.openclaw.ai/api/v1/fine-tune -
設定形式:設定ファイルにはYAMLを使用します。 記述例:
model: bert-base-uncased data: path: ./data.jsonl format: jsonl training: epochs: 3 optimizer: adamwCLIに渡します:
openclaw fine-tune --config config.yaml
統合に関する注意事項
他のOpenClawスキルと出力を連結して統合します。たとえば、ファインチューニングの前に「data-preprocessing」スキルを使ってデータセットを準備します。クラウド環境では、設定でAWSなどのプロバイダーを指定します(例:JSONに"provider": "aws"を追加)。pip install transformers==4.28.0 torch==1.13.1で必要なパッケージをインストールし、依存関係を処理します。$OPENCLAW_CLUSTER_IDなどの環境変数を設定して、AIMLOpsクラスターとの互換性を確保します。
エラー処理
無効なモデルIDやデータ形式の不一致など、よくあるエラーを確認します。スクリプトではtry-catchを使用します:
try:
response = requests.post('https://api.openclaw.ai/api/v1/fine-tune', headers={'Authorization': f'Bearer {os.environ["OPENCLAW_API_KEY"]}'}, json=payload)
response.raise_for_status()
except requests.exceptions.HTTPError as e:
print(f"Error: {e.response.status_code} - {e.response.text}")
CLIで--verboseフラグを使用して詳細なエラーを記録します(例:openclaw fine-tune --verbose)。GPUの問題がある場合は、実行前にnvidia-smiで利用可能か確認します。
具体的な使用例
-
感情分析のファインチューニング:映画レビュー向けにBERTを適応させます。
- データの準備:レビューをJSONL形式で保存します。
- 実行:
openclaw fine-tune --model bert-base-uncased --data-path reviews.jsonl --epochs 5 --output-dir ./models - モデルを学習してチェックポイントを保存します。
openclaw evaluate --model-path ./models/checkpoint-5で評価します。
-
画像分類器のファインチューニング:事前学習済みのResNetをカスタム画像に使用します。
- データセット:画像をフォルダーに整理します(例:train/class1/*.jpg)。
- コマンド:
openclaw fine-tune --model resnet50 --data-path ./image_dataset --epochs 10 --batch-size 32 - 統合:「model-serving」スキルを使ってデプロイし、推論を行います。
グラフ上の関係
- 関連先:「data-preprocessing」(データセット処理における入力依存関係)
- 関連先:「model-evaluation」(パフォーマンス指標の出力先)
- 関連先:「aimlops-deployment」(ファインチューニング後のモデル提供用)
- 同じクラスター:「aimlops」(ML運用の共通エコシステム)