見出し画像

Vicuna の学習と評価

以下の記事が面白かったので、軽くまとめました。

Vicuna: An Open-Source Chatbot Impressing GPT-4 with 90%* ChatGPT Quality

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)

Assistant #1 は、旅行ブログ記事の概要を説明しましたが、実際にリクエスト通りのブログ記事を作成しなかったため、低得点となりました。一方、Assistant #2 は、最近行ったハワイ旅行について、文化的な体験や必見の観光スポットに焦点を当てた詳細で魅力的な旅行ブログ記事を作成し、ユーザーのリクエストに完全に応えたため、高得点となりました。

しかし、チャットAIを評価するのは決して簡単な作業ではありません。「GPT-4」の最近の進歩により、その能力が人間並みの自動評価が可能になったか興味がありました。試した結果、「GPT-4」は、チャットAIの回答を比較する際に、非常に一貫したランクと詳細な評価を生成できることがわかりました。

図1にまとめた「GPT-4」による評価では、「Vicuna」は「Bard」「ChatGPT」の90%の能力を達成することが示されました。これは、、チャットAIの評価を自動化する可能性を示していますが、まだ厳密なアプローチとは言えません。チャットAIの評価システムを構築することは、さらなる研究を必要とします。

3. Vicunaができるまでの作業の流れ

以下の図は、「Vicuna」ができるまでの作業の流れは、次のとおりです。

・データ収集 : 「ShareGPT」から約7万件のChatGPTのログを収集しました。
・ 学習 : Alpacaが提供する学習スクリプトを改良し、多ラウンドの会話や長いシーケンスをよりよく扱えるようにしました。学習は、PyTorch FSDPを用い、8台のA100 GPUで1日かけて行いました。
・配信 : デモの配信には、軽量の分散配信システムを実装しました。
・評価 : 80の多様な質問セットを作成し、「GPT-4」でモデルの品質を評価しました。2つの異なるモデルを比較するため、質問ごとに各モデルからの出力を1つのプロンプトに統合して評価しました。

「LLaMA」「Alpaca」「ChatGPT」「Vicuna」の比較は、以下の表のとおりです。

4. 学習

「Vicuna」は、データ品質を確保するため、収集したChatGPTのログをマークダウンに変換し、不適切なサンプルや低品質のサンプルをフィルタリングしました。さらに、長い会話を、モデルの最大コンテキスト長に合うように、より小さなセグメントに分割しました。

「Vicuna」では「Alpaca」の学習方法に、以下のような改良を加えています。

・メモリの最適化: 「Vicuna」が長いコンテキストを理解できるようにするため、最大コンテキスト長をAlpacaの512から2048に拡張し、GPUメモリ要件を大幅に増加させました。「utilizing gradient checkpointing 」と「flash attention」を利用することで、メモリの圧迫に対処しています。

・複数ラウンドの会話 : 複数ラウンドの会話を考慮して学習 loss を調整し、チャットAIの出力のみからファインチューニング lossを計算します。

・スポットインスタンスによるコスト削減 : 40倍のデータセットと4倍のシーケンス長を学習用に使用するため、学習費用にかなりの課題があります。そこで、SkyPilotマネージドスポットを採用し、より安価なスポットインスタンスを活用することで、先読みの自動回復や自動ゾーン切り替えなど、コストを削減しました。これにより、7Bモデルの学習費用は500ドルから140ドル程度に、13Bモデルの学習費用は1000ドルから300ドル程度に削減されました。

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. 評価とデータクリーニングのコード

評価のコードの使用手順は、以下を参照。

Evaluations - FastChat

データクリーニングのコードの使用手順は、以下を参照。

Data Cleaning - FastChat

関連


この記事が気に入ったらサポートをしてみませんか?