Vicuna の学習と評価
以下の記事が面白かったので、軽くまとめました。
1. Vicuna
「Vicuna」は、「ShareGPT」から収集したChatGPTのログを使って、「LLaMA」をファインチューニングしたオープンソースのチャットAIです。
「GPT-4」を用いた評価では、「Vicuna-13B」は「ChatGPT」や「Bard」の90%以上の品質を達成しました。学習費用は約300ドルです。
コード、ウェイト、オンラインデモは、非商用で利用できるように公開されています。
2. Vicunaの能力
ベンチマークとなる質問に対する「Alpaca」と「Vicuna」の質問応答の例 は、次のとおりです。
(以下、英語の質問応答をDeepLで翻訳してます)
◎ 質問
◎ Assistant #1 - Alpaca-13B
◎ Assistant #2 - Vicuna-13B
◎ GPT-4 Evaluation (Score: Alpaca-13b 7/10, Vicuna-13b 10/10)
しかし、チャットAIを評価するのは決して簡単な作業ではありません。「GPT-4」の最近の進歩により、その能力が人間並みの自動評価が可能になったか興味がありました。試した結果、「GPT-4」は、チャットAIの回答を比較する際に、非常に一貫したランクと詳細な評価を生成できることがわかりました。
図1にまとめた「GPT-4」による評価では、「Vicuna」は「Bard」「ChatGPT」の90%の能力を達成することが示されました。これは、、チャットAIの評価を自動化する可能性を示していますが、まだ厳密なアプローチとは言えません。チャットAIの評価システムを構築することは、さらなる研究を必要とします。
3. Vicunaができるまでの作業の流れ
以下の図は、「Vicuna」ができるまでの作業の流れは、次のとおりです。
「LLaMA」「Alpaca」「ChatGPT」「Vicuna」の比較は、以下の表のとおりです。
4. 学習
「Vicuna」は、データ品質を確保するため、収集したChatGPTのログをマークダウンに変換し、不適切なサンプルや低品質のサンプルをフィルタリングしました。さらに、長い会話を、モデルの最大コンテキスト長に合うように、より小さなセグメントに分割しました。
「Vicuna」では「Alpaca」の学習方法に、以下のような改良を加えています。
5. 配信
複数のモデルを分散ワーカーで提供できる配信システムを構築します。オンプレミスクラスターとクラウドの両方からGPUワーカーの柔軟なプラグインをサポートしています。SkyPilotの「a fault-tolerant controller」と「managed spot feature」を利用することで、この配信システムは複数のクラウドから安価なスポットインスタンスとうまく連携し、配信コストを削減することができます。
6. 評価
チャットAIの評価は、言語理解、推論、文脈認識を調べる必要があるため、難しいタスクです。チャットAIがより高度になるにつれ、現在のオープンベンチマークではもはや十分でない可能性があります。例えば、「Alpaca」で使用された評価データセット、「self-instruct」は、SOTA チャットAIが効果的に回答できるため、人間がパフォーマンスの違いを識別することは困難です。さらに、学習/テストデータの汚染や、新しいベンチマークを作成するためのコストが高くつく可能性があるなどの制限があります。これらの問題に対処するため、チャットAIの性能評価を自動化するために、「GPT-4」ベースの評価フレームワークを提案します。
まず、チャットAIの性能の様々な側面をテストするために、フェルミ問題、ロールプレイシナリオ、コーディング/数学タスクなど、8つの質問カテゴリを考案しました。「GPT-4」は、プロンプトエンジニアリングによって、ベースラインモデルが苦手とする多様で難しい問題を生成することができます。カテゴリーごとに10問を選び、5つのチャットAI (LLaMA、Alpaca、ChatGPT、Bard、Vicuna) から回答を収集しました。そして、「GPT-4」に、有用性、関連性、正確性、詳細性にもとづいて回答の品質を評価するよう依頼しました。その結果、「GPT-4」は、比較的安定した点数だけでなく、なぜそのような点数が付けられたのかについての詳細な説明もできることがわかりました(詳しくはこちら)。しかし、「GPT-4」はコーディングや数学の課題を評価するのは苦手であることもわかりました。
以下の図は、すべてのベースラインと「Vicuna」の比較結果になります。
7. 制限事項
「Vicuna」にも一定の限界があることに気づきました。例えば、推論や数学を含むタスクは苦手で、自分自身を正確に識別したり、出力の事実上の正確さを保証したりすることにも限界があるかもしれません。さらに、安全性を保証したり、潜在的な毒性やバイアスを軽減するための最適化が十分に行われていません。安全性の懸念に対処するため、OpenAIのモデレーションAPIを使用して、オンラインデモで不適切なユーザー入力をフィルタリングしています。
8. 評価とデータクリーニングのコード
評価のコードの使用手順は、以下を参照。
データクリーニングのコードの使用手順は、以下を参照。
関連
この記事が気に入ったらサポートをしてみませんか?