概要
InstructLab は、生成人工知能 (生成 AI) アプリケーションで使用される大規模言語モデル (LLM) を強化するためのオープンソース・プロジェクトです。IBM と Red Hat によって作成された InstructLab コミュニティ・プロジェクトは、LLM のアライメントを改善するための費用対効果の高いソリューションを提供し、機械学習の経験が少ない人でも貢献できる環境を提供しています。
InstructLab の取り組み
LLM は、チャットボットやコーディング・アシスタントのような、役に立つ幅広いアプリケーションを強化することができます。これらの LLM は、専有のもの (OpenAI の GPT モデルや Anthropic の Claude モデルなど) もあれば、事前学習データや使用制限に関して、さまざまなレベルのオープン性を提供しているもの (Meta の Llama モデル、Mistral AI の Mistral モデル、IBM の Granite モデルなど) もあります。
AI の担当者は、ビジネスの特定の目的に合わせ、事前トレーニング済みの LLM を調整しなければならないことがよくあります。しかし、LLM を変更するには、いくつかの制限があります。
- 特定の分野の知識やスキルを理解するよう LLM をファインチューニングするには、通常、既存のオープンモデルをフォークし、リソースを大量に消費する高価なトレーニングを実施する必要があります。
- アップストリーム・プロジェクトに改良を反映させる方法がないため、コミュニティへの貢献内容を活用して継続的にモデルを改良することができません。
- LLM の改良には通常、人間が作成した大量のデータが必要ですが、それには時間とコストがかかります。
InstructLab は、このような制限を打破するアプローチを採用しています。InstructLab なら、通常のモデルの再トレーニングに比べ、はるかに少ない量の、人間により生成された情報とコンピューティング・リソースで、LLM を強化することができます。また、アップストリームへの貢献内容を活用して、継続的にモデルを改良することが可能になります。
InstructLab は、IBM Research の Large-scale Alignment for chatBots (LAB) の研究にちなんで名付けられ、またその研究に基づいています。LAB の手法は、MIT-IBM Watson AI Lab と IBM Research のメンバーによる 2024 年の研究論文に記述されています。
InstructLab は、モデルに特化したものではありません。お好みの LLM に対し、補足的なスキルや知識のファインチューニングを行うことができます。この「スキルと知識の木」は、コミュニティへの貢献によって継続的に改良され、強化された LLM の定期的なビルドをサポートするために利用することもできます。InstructLab は、IBM Granite の強化版を保持しています。IBM がリリースした他の 2 つのラボ強化モデルには、Llama 2 から派生した Labradorite と Mistral から派生した Merlinite があります。InstructLab プロジェクトは、迅速な反復処理を重視し、定期的にモデルを再トレーニングします。組織は、InstructLab モデル・アライメント・ツールを使用して、自社独自のスキルや知識でプライベート LLM をトレーニングすることもできます。
InstructLab の機能
LAB メソッドは、3 つの要素で構成されています。
- 分類を活用したデータキュレーション 分類とは、モデルのための新しい知識やスキルの例として、人間がキュレーションした多様なトレーニングデータのセットのことを指します。
- 大規模な合成データの生成 次に、モデルを使用して、シード・トレーニング・データに基づき、新しい例を生成します。合成データは品質にばらつきがあるため、LAB メソッドでは回答例を精緻化するための自動化されたステップが追加されています。これにより、現実に即した安全な回答が得られるようにしています。
- 反復的で大規模なアライメント・チューニング 最後に、合成データのセットに基づいて、モデルを再トレーニングします。LAB メソッドには、2 つのチューニングのフェーズがあります。知識のチューニング、そしてスキルのチューニングです。
コミュニティから得られるデータにより、強化された LLM の定期的な反復ビルドが可能になり、コミュニティへのさまざまな貢献によって生まれたスキルの木によりさらに改良されていきます。
InstructLab と他の LLM トレーニングのメソッドの違い
LLM の作成と改善に関する他のステップでも、InstructLab の特徴を見てみましょう。
事前トレーニング
事前トレーニングにおいて、LLM は何兆ものラベルなしデータのトークンを使って、次のトークンを予測するようトレーニングされます。これには非常にコストがかかり、何千もの GPU と何カ月もの時間が必要になることもあります。莫大なリソースを持つ組織のみが高性能な LLM を事前トレーニングすることが可能です。
アライメント・チューニング
事前トレーニングの後、モデルの回答をできるだけ正確で有用なものにするため、LLM にアライメント・チューニングを行います。アライメント・チューニングの最初のステップは、通常指示チューニングで、特定のタスクに関してモデルをトレーニングします。次は、プリファレンス・チューニングで、これには人間からのフィードバックを用いた強化学習 (RLHF) が含まれる場合もあります。このステップでは、人間がモデルをテストしてその出力を評価し、モデルの回答が好ましいか好ましくないかを判定します。RLHF プロセスでは、モデルを最適化するために、フィードバックと改良を複数回繰り返す場合もあります。
研究者は、このアライメント・チューニングのフェーズにおけるフィードバックの量を、最初のトレーニング・データセットよりはるかに少なくしても (事前トレーニングに必要な数兆のデータのトークンに比べ、人間による数万のアノテーションのみ)、モデルの潜在的な能力を引き出すことが可能であることを発見しました。
InstructLab
LAB メソッドは、人間が生成したさらに小さなデータセットからでも、モデルアライメントの利点を実現できるはずだという考えから生まれました。AI モデルは、人間により作成されたほんの一握りの例を使用して、大量の合成データを生成し、そのリストの品質を向上させ、その高品質の合成データセットを使用して、さらにチューニングとトレーニングを行うことができます。指示チューニングには、通常、何千例もの人間からのフィードバックが必要ですが、LAB では、人間が提供する比較的少数のフィードバックの例により、モデルを大幅に改善することができます。
InstructLab と検索拡張生成 (RAG) の違い
簡単に言えば、InstructLab と RAG は異なる問題を解決します。
RAG は、LLM の事前トレーニングに含まれていなかったドメイン固有の知識を補うためのコスト効率の良い方法です。RAG を使えば、モデルを再トレーニングすることなく、チャットボットが特定の分野やビジネスに関連する質問に正確に回答できるようになります。知識のドキュメントは、ベクトルデータベースに格納され、チャンク単位で取得されて、ユーザーからのクエリの一部としてモデルに送信されます。これは、情報の管理を他者に委ねることなく LLM に独自のデータを追加したい場合や、タイムリーな情報にアクセスするために LLM を必要としている場合に役立ちます。
これは InstructLab のメソッドとは対照的です。InstructLab では、エンドユーザーからのデータをソースとして、LLM の強化版の定期的なビルドをサポートします。InstructLab は、LLM に知識を追加し、新しいスキルを引き出すのに役立ちます。
InstructLab でチューニングされたモデルに RAG の手法を活用することで、RAG プロセスを大幅に強化することが可能です。
InstructLab プロジェクトの要素
InstructLab は、いくつかのプロジェクトで構成されています。
分類
InstructLab は、主に手作業で慎重に作成された分類をその基盤としています。InstructLab には分類ツリーが含まれており、ユーザーはそれに沿って人間が提供したデータでチューニングされたモデルを作成し、それを合成データ生成で強化することができます。
コマンドライン・インターフェース (CLI)
コントリビューターは、InstructLab CLI を使用することで、自分のノートパソコンやワークステーションから自身の貢献内容をテストできます。コミュニティメンバーは、InstructLab の手法を使用して、特別なハードウェアにアクセスすることなく、合成データ生成とモデルの指示チューニングの低忠実度の近似を生成することができます。
モデル・トレーニング・インフラストラクチャ
最後に、強化された LLM の作成プロセスについてです。コミュニティへの新たな貢献内容に基づいて、モデルを定期的に再トレーニングするには、GPU 負荷の高いインフラストラクチャが必要です。IBM は、InstructLab プロジェクトの強化されたモデルを頻繁に再トレーニングするために必要となるインフラストラクチャを無償で提供し、維持しています。
Red Hat Enterprise Linux AI のご紹介
AI を企業に導入する準備が整ったら、Red Hat® Enterprise Linux® AI は、オープンソース・ライセンス LLM の Granite ファミリー、InstructLab のモデル・アライメント・ツール、Red Hat Enterprise Linux の起動可能なイメージ、エンタープライズ・グレードのテクニカルサポート、およびモデルの知的財産の補償を合わせて提供します。
Red Hat Enterprise Linux は、世界をリードするエンタープライズ Linux プラットフォームであり、何百ものクラウド、何千ものハードウェアおよびソフトウェアベンダーで認証されています。Red Hat のオープンなハイブリッドのクラウド戦略は、Linux、コンテナ、自動化という技術基盤により、AI アプリケーションを必要な場所で実行できるという柔軟性を提供しています。
Red Hat Enterprise Linux AI と InstructLab プロジェクトは、このビジョンの実現を促進し、AI モデルの実験と構築におけるコストとリソースの障壁を取り除くと同時に、インテリジェント・ワークロードの次の波を後押しするために必要なツール、データ、コンセプトを提供していきます。