TL;DR
- 要点: ファインチューニングしたモデルはOpenAIのモデルより高精度だったが、評価の実装は難しかった。
- 主な内容: ファインチューニングの過程では多くのコードが隠されており、実行速度も遅かった。システムがなければ保守の複雑さは増すだろう。
データセットの読み込み
- データセット: Hugging Face Hub の公開リポジトリにあるテストデータセットを使用。
- データセット構造: 'name', 'eventrefnumber', 'text', 'StartDate', 'eventtype', 'province', 'citydistrict', 'village', 'targetgroup', 'commander', 'position', 'minkilled', 'mincaptured', 'capturedcharacterisation', 'killedcharacterisation', 'killq', 'captureq', 'killcaptureraid', 'airstrike', 'noshotsfired', 'dataprocessed', 'flagged', 'glossarymeta', 'minleaderskilled', 'minfacilitatorskilled', 'minleaderscaptured', 'minfacilitatorscaptured', 'leaderq' など。
予測の追加
- 予測の追加: 各データセット行に予測結果を追加し、これを繰り返し行うことで計算負荷の高いステップを回避。
- Pydanticオブジェクトの使用: データ検証と品質管理機能を扱うため、Pydanticオブジェクトとしてデータを構成。
JSON妥当性テスト
- 予測結果: モデルがJSON文字列を出力するよう設定。
- GPTモデルの使用: GPT-4o と GPT-4 Turbo モデルを使って予測を実行。
- 問題点: GPTモデルは同一のプロンプトで訓練されていないため、正確な比較が難しい。
非同期予測
- 非同期処理: 多数のイベントを処理するため、非同期方式で予測を実行。
- リトライロジック: GPT-3.5-turbo モデルのレート制限を考慮してリトライロジックを追加。
データセットの変換とプッシュ
- データセット変換: 予測結果をデータセットに追加して Hugging Face Hub にプッシュ。
- 関数の使用: 変換とプッシュの過程を繰り返し実行するために関数を使用。
ファインチューニング済みモデルの予測追加
- ローカルモデル: ローカルで訓練したモデルの予測結果をデータセットに追加。
- OpenAIモデル: OpenAI のワンクリック・ファインチューニングサービスで訓練したモデルの予測結果を追加。
- さまざまなモデル: Mistral、Llama3、Solar LLM など、さまざまなモデルの予測結果を追加。
最終評価
- 評価指標: JSON妥当性テスト、開始日精度、週単位の精度、ターゲットグループ精度、イベントタイプ精度など、さまざまな評価指標を使用。
- 最終結果: ファインチューニングしたモデルがOpenAIモデルより高い精度を示した。
GN⁺の見解
- ファインチューニングの重要性: ファインチューニングしたモデルがOpenAIのベースモデルより高い精度を示したことから、特定タスク向けモデルの重要性が強調される。
- 評価の複雑さ: 評価実装が難しかった点から、システム的なアプローチの必要性を感じさせる。
- 多様なモデルの利用: さまざまなモデルを使って比較評価を行っている点が興味深い。これにより各モデルの長所と短所をより明確に把握できる。
- オープンソース活用: Hugging Face Hub のようなオープンソースプラットフォームを活用してデータセットを管理・共有した点は有用。
- 非同期処理の必要性: 大量データを処理する際に非同期方式が効率的であることを示している。
1件のコメント
Hacker Newsの意見