InstructLab とは

URL をコピー

InstructLab は、プライベートデータを使用して大規模言語モデル (LLM) をカスタマイズするプロセスを単純化します。 

LLM は、チャットボットやコーディング・アシスタントなどの生成 AI の基盤として機能します。そうした LLM には、専有のもの (OpenAI の GPT モデルや Anthropic の Claude モデルなど) もあれば、事前学習データや使用制限に関して、さまざまなレベルのオープン性を提供しているもの (Meta の Llama モデル、Mistral AI の Mistral モデル、IBM の Granite モデルなど) もあります。

AI の担当者は、ビジネスの特定の目的に合わせ、事前トレーニング済みの LLM を調整しなければならないことがよくあります。しかし、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 プロジェクトは、迅速な反復処理を重視し、定期的にモデルを再トレーニングします。組織は、InstructLab モデル・アライメント・ツールを使用して、自社独自のスキルや知識でプライベート LLM をトレーニングすることもできます。

AI を企業で活用する方法

LAB メソッドは、3 つの要素で構成されています。

  • 分類を活用したデータキュレーション。分類とは、モデルのための新しい知識やスキルの例として、人間がキュレーションした多様なトレーニングデータのセットのことを指します。
  • 大規模な合成データの生成。次に、モデルを使用して、シード・トレーニング・データに基づき、新しい例を生成します。合成データは品質にばらつきがあるため、LAB メソッドでは回答例を精緻化するための自動化されたステップが追加されています。これにより、現実に即した安全な回答が得られるようにしています。
  • 反復的で大規模なアライメント・チューニング。最後に、合成データのセットに基づいて、モデルを再トレーニングします。LAB メソッドには、2 つのチューニングのフェーズがあります。知識のチューニング、そしてスキルのチューニングです。

スキルと知識の貢献によってデータセットが拡大し、追加されるたびに、チューニングされるモデルの品質が向上します。 

Red Hat のリソース

ドメイン固有のユースケースに対応するように LLM をカスタマイズする他の方法を、InstructLab と比較してみましょう。

事前トレーニング

事前トレーニングはモデルの最も深いレベルのカスタマイズであり、組織はモデルの基礎的な理解を形成するトレーニングデータを厳選することができます。 

事前トレーニングにおいて、LLM は何兆ものラベルなしデータのトークンを使って、次のトークンを予測するようトレーニングされます。これには非常にコストがかかり、何千もの GPU と何カ月もの時間が必要になることもあります。莫大なリソースを持つ組織のみが高性能な LLM を事前トレーニングすることが可能です。

アライメント・チューニング

事前トレーニングの後、モデルの回答をできるだけ正確で有用なものにするため、LLM にアライメント・チューニングを行います。アライメント・チューニングの最初のステップは通常、指示チューニングであり、特定のタスクに関してモデルをトレーニングします。 

その次はプリファレンス・チューニングです。これには人間からのフィードバックを用いた強化学習 (RLHF) が含まれる場合もあります。このステップでは、人間がモデルをテストしてその出力を評価し、モデルの回答が好ましいか好ましくないかを判定します。RLHF プロセスでは、モデルを最適化するために、フィードバックと改良を複数回繰り返す場合もあります。

研究者は、このアライメント・チューニングのフェーズにおけるフィードバックの量を、最初のトレーニング・データセットよりはるかに少なくしても (事前トレーニングに必要な数兆のデータのトークンに比べ、人間による数万のアノテーションのみ)、モデルの潜在的な能力を引き出すことが可能であることを発見しました。

InstructLab

LAB メソッドは、人間が生成したさらに小さなデータセットからでも、モデルアライメントの利点を実現できるはずだという考えから生まれました。AI モデルは、人間により作成されたほんの一握りの例を使用して、大量の合成データを生成し、そのリストの品質を向上させ、その高品質の合成データセットを使用して、さらにチューニングとトレーニングを行うことができます。指示チューニングには、通常、何千例もの人間からのフィードバックが必要ですが、LAB では、人間が提供する比較的少数のフィードバックの例により、モデルを大幅に改善することができます。

InstructLab と検索拡張生成 (RAG) の違い

簡単に言えば、InstructLab と検索拡張生成 (RAG) は異なる問題を解決します。

RAG は、LLM の事前トレーニングに含まれていなかったドメイン固有の知識を補うためのコスト効率の良い方法です。RAG を使えば、モデルを再トレーニングすることなく、チャットボットが特定の分野やビジネスに関連する質問に正確に回答できるようになります。 

RAG では、知識のドキュメントはベクトルデータベースに格納され、チャンク単位で取得されて、ユーザーからのクエリの一部としてモデルに送信されます。これは、情報の管理を他者に委ねることなく LLM に独自のデータを追加したい場合や、タイムリーな情報にアクセスするために LLM を必要としている場合に役立ちます。 

これは InstructLab のメソッドとは対照的です。InstructLab では、エンドユーザーからのデータをソースとして、LLM の強化版の定期的なビルドをサポートします。InstructLab は、LLM に知識を追加し、新しいスキルを引き出すのに役立ちます。

InstructLab でチューニングされたモデルに RAG の手法を活用することで、RAG プロセスを大幅に強化することが可能です。

RAG の詳細はこちら

Red Hat AI InstructLab on IBM Cloud を使用すると、ハードウェア・インフラストラクチャを所有したり運用したりすることなく LLM に貢献できます。

Red Hat InstructLab は LLM 開発を単純化するオープンソース・プロジェクトであり、使用するデータやリソースを最小限に抑えたモデルアライメントを可能にする、コスト効率の高いアプローチを実現しています。

IBM Cloud は、規制の厳しい業界にも対応できるよう設計されたエンタープライズ向けクラウド・プラットフォームであり、回復力、パフォーマンス、安全性、コンプライアンスに優れたクラウドを提供します。

これらが一緒になった Red Hat AI InstructLab on IBM Cloud は、組織独自のユースケースに合わせて LLM のアライメントを単純化、拡張、保護するための、スケーラブルでコスト効率の高いソリューションを提供します。

Red Hat InstructLab on IBM Cloud の詳細

リソース

エンタープライズ AI を始める:初心者向けガイド

この初心者向けガイドでは、Red Hat OpenShift AI と Red Hat Enterprise Linux AI によって AI 導入をどのように加速できるのかについて説明します。

すべての Red Hat 製品のトライアル

Red Hat の無料トライアルは、Red Hat 製品をハンズオンでお試しいただける無料体験版です。認定の取得に向けた準備をしたり、製品が組織に適しているかどうかを評価したりするのに役立ちます。

関連情報

Ansible と Chef の違いとは?をわかりやすく解説

Ansible と Chef はオープンソースの IT 自動化ツール。アーキテクチャ(エージェントベースかエージェントレス)、言語(Python ベースの YAML か Ruby)等の違いがあります。

KVM とは?をわかりやすく解説

KVM(カーネルベースの仮想マシン)は、Linuxカーネルに統合された仮想化技術であり、Linuxは複数の独立した仮想マシン(VM)を実行するハイパーバイザーとして機能させます。

Apache Kafka とは?をわかりやすく解説

Apache Kafka は、分散データ・ストリーミング・プラットフォームであり、複数のソースから大規模なストリーミングデータをリアルタイムで取り込んで処理し、配信します。

オープンソースリソース

関連記事