ここ最近、大手テクノロジベンダが開催するカンファレンスでは必ずと言っていいほどメインテーマに生成AIが掲げられています。5月6日~9日(米国時間)にかけて米デンバーで開催されたRed Hatの年次カンファレンス「Red Hat Summit 2024(RHS 2024) 」も同様で、カンファレンス期間中に発表された10数本のリリースはすべて生成AIに関連した内容でした。
また、Red Hatの親会社であるIBMが米ボストンで開催した「IBM Think 2024」( 5/20~5/23)も同様で、同社のアービンド・クリシュナ(Arvind Krishna)CEOは「企業が生成AIを活用し、大規模にビジネス価値を創出できるようにする」と基調講演で明言しています。
両社のAI戦略が他社と大きく異なる点は、オープンソースコミュニティで培ってきた開発アプローチをAIの大規模言語モデル(LLM)にも本格的に適用しようとしている点です。今回、両社はほぼ同時期に開催されたそれぞれのカンファレンスでIBMの大規模言語モデル「Granite」ファミリのオープンソース化(Apache 2.0ライセンス)と、LLMの事後学習(カスタマイズ/チューニング)を効率的に行うためのオープンソースプロジェクト「InstructLab」を発表し、AIモデル開発のオープンソース化を促進していく姿勢を明確にしました。本稿ではこの2つのプロジェクトの概要の紹介を中心に、Red HatがIBMと目指す“ オープンソースなAI” へのアプローチについて検証してみます。
Red Hat Summit 2024で発表されたRed HatのAIへの2つのアプローチ。いずれも親会社であるIBMとの深いシナジーのもとで進められている
他の“オープン”とは大きく違うGraniteのオープンソース化
IBMが2023年9月に発表した基盤モデル群「IBM Granite」は複数の言語やパラメータサイズ、ユースケースに対応しており、2024年2月には日本語版の提供も開始されています。とくにパラメータ数80億の「Granite-8B-Code」は比較的小ぶりなサイズのLLMでありながら、他社LLMと比較しても高いパフォーマンスを示しており、追加学習もしやすいという特徴をもっています。今回、Red HatはIBMと共同でGraniteが提供するモデル群をオープンソース(Apache 2.0)で提供することを発表し、すでにHugging Faceで公開 、今後も地理空間情報などに関する新たなモデルが追加されていく予定となっています。
IBMが2023年から提供する大規模言語モデル「IBM Granite」ファミリの一覧。言語、コード、時系列、地理空間情報などの分野に特化したモデルを提供する
パラメータサイズが70億~80億のコード生成に特化したLLMの性能比較。Granite‐8B-Code(各グラフの右から1番目)は他のLLMと同等またはそれ以上のパフォーマンスを示している(出典: IBM Reserach )
Graniteのオープンソース化が他の” オープン(ソース)モデル” と大きく異なる点は、モデルトレーニングで利用した学習データについても開示していること、そして後述するInstructLabのしくみを利用して、誰もがモデル本体を拡張するコミュニティに参加できる点です。現在、オープンAIモデルとして人気の高いMetaのLlama2/Llama3やMistral AIはモデルのダウンロードや商用利用、カスタマイズなどを認めてはいますが、学習データの開示は行っておらず、またモデル本体を拡張できるのはオリジナルの開発元1社のみで、コミュニティによる開発は限定的です。
またこれらのAIモデルはオープンソースを標榜しつつも、そのライセンスには一定の制限を課した独自のコミュニティライセンスを採用するケースが多く、これまでのオープンソースプロジェクトの定義から外れる部分がいくつも見受けられます。現にオープンソースの推進団体であるOpen Source Initiativeは2023年7月に「MetaのLlama 2ライセンスはオープンソースではない」とする声明を発表 し、AI関連企業がカジュアルに「オープンソースモデル」というキーワードを使う風潮に強い懸念を示しました。加えて、これらの“ オープン” AIモデルをベースにした派生モデルも数多く誕生していますが、その成果がアップストリームであるモデルに還元されることはほどんどなく、この点も従来のオープンソース開発とは大きく異なります。
オープンソース開発という観点から現在のLLMコミュニティを見た際の課題は「派生モデルからアップストリームモデルへの還元が行われていない」「モデルは公開されていても学習データの開示はなく、従来のオープンソースとは独自のコミュニティライセンスを適用しているケースも多い」
単にソースコードを公開したモデルを「オープンソースAIモデル」と呼ぶのではなく、これまでオープンソースプロジェクトを支えてきた価値観であるコミュニティドリブンな開発やアップストリームへの貢献/還元、データセットの透明性、さらに誰でも開発に参加できる民主化や頻繁なアップデート、明確に定義されたAPI/機能ロードマップなどを前提にした、本当の意味でオープンソースといえる基盤モデルがAIの世界にも必要 ―そうしたコンセプトのもと、オープンソース企業として長い歴史と多くの実績をもつRed Hatが、IBMとともに最初に世の中に示したオープンソースAIモデルがGraniteです。
InstructLabによるLLM開発の進め方
ではGraniteが採用しているコミュニティドリブンなオープンソースアプローチ「InstructLab」は具体的にどのようなしくみなのでしょうか。
InstructLabは任意のLLMに対して補足的にスキルや知識を追加し、ファインチューニングによって精度を高めていくシステムです。ベースとなっているのはIBM Researchの研究成果である「Large-scale Alignment for chatBots(LAB:チャットボットのための大規模アラインメント) 」というメソッドで、InstructLabはさらにプルリクエストを起点とした知識/スキルの追加や、新しい学習データ(合成データ)の生成、モデルのフォークなどを可能にしています。
IBM Researchによって開発されたLABメソッドをもとに、AIモデル開発の新たなしくみとしてオープンソースプロジェクトとして提供されるInstructLab。GraniteもInstructLabを採用しているが、InstructLab自体は特定のモデルに特化したものではなく、LlamaやMistralなどの他のAIモデルや企業のプライベートLLMをトレーニングすることが可能
IBM/Red Hatは開発者に対し、以下のリソースを提供します。
分類ツリー … 学習データを構造的に追加できるタクソノミー(taxonomy:分類学)にもとづいたデータ基盤
コマンドラインインタフェース(CLI) … 開発者が自分のデスクトップ環境から貢献内容をテストできるツール
モデルトレーニングインフラストラクチャ … 強化されたモデルを高い頻度で再トレーニングするためのインフラストラクチャ(GPUリソースなど)
InstructLabによる具体的な開発ステップは以下のようになります。
開発者(コントリビュータ)は学習用データをテキスト(YAML形式)で作成し、InstructLabリポジトリ にプルリクエストとして送信
追加された学習データは選別された後、LLM(教師モデル)に追加
2で選別されたデータを利用して、事前学習済みのLLMに対して2段階のファインチューニング(指示チューニング/プリファレンスチューニング)を実施し、新たな知識/スキルを習得したLLMを作成
この1~3のステップを繰り返し、定期的なモデルのビルド/リリースを行うことがInstructLabのアプローチです。
InstructLabによるモデル開発のステップ。開発者(コントリビュータ)は自身のPC/ワークステーションからYAML形式で記述した学習データをInstructLabリポジトリに送信する。なおステップ2のデータ拡張のバックエンドでは、追加されたデータをもとにした合成データ生成とマルチフェーズ学習が実行される
通常、LLMの開発には膨大なコンピューティングリソースが必要で、さらにファインチューニングを行えるのは一部の限られたデータサイエンティストのみでした。しかしInstructLabではひとりひとりの開発者がもつ知識やスキルを手元のマシンからLLM開発に簡単に反映することができ、ファインチューニングのハードルを大幅に下げることが可能となります。また、プルリクエストを起点にしてモデル本体を拡張できるという点も、コミュニティドリブンなオープンソースプロジェクト開発のスタイルを踏襲しており、他のLLM開発とは一線を画していることがわかります。
もうひとつ、InstructLabの特徴として注目されるのがタクソノミーをベースとしたスキルと知識の表現、そして合成データによるモデル学習を採用している点です。これらはInstructLabのベースとなっているLABの構成要素でもありますが、個々のエンドユーザが生成した小さなデータセットを構造的にLLMに追加し、さらにこれらの小さなデータをもとに大規模な合成データを作成することで、少ないリソースでも継続的なLLMの強化が可能となります。一般に合成データの品質にはばらつきが多いのですが、LABでは2段階のチューニングがステップに含まれており、これはInstructLabにも反映されています。
なお、InstructLabの活用事例としては、IBMがメインフレームアプリケーションのモダナイゼーション製品「IBM watsonx Code Assistant for Z」でCOBOLからJavaへのコード変換を学習させたケースが公開されています。watsonx Code Assistant for Zの内部で使われているGraniteコードモデルを既存のメソッドで学習した場合、およそ9ヵ月/14イテレーションを要していましたが、InstructLabを適用したことで学習期間がわずか1週間/1イテレーションに短縮され、さらに既存メソッドを大幅に上回る精度での学習が実現しました。
IBMでInstructLabを活用し、Granite Codeモデルを強化した事例。メインフレームモダナイゼーションの一環として、watsonx Code Assistant for Z内部のCOBOL→Java変換学習にかかる期間と精度を大幅に向上した(9ヵ月/14イテレーション→1週間/1イテレーション)
「RHEL AI」の登場
Red Hatはこれらの2つの発表に加え、エンタープライズ企業のAIモデル開発を支援するためのプロダクトとして、シングルサーバ上で商用グレードのLLMトレーニングを可能にする「Red Hat Enterprise Linux AI ( RHEL AI) 」を開発者プレビュー としてリリースしました。RHEL AIにはGraniteファミリの各種トレーニングデータセットやInstructLabで使用するモデルアラインメントツール、ユーザのハードウェア環境に最適化されたOSイメージとパッケージ化されたGrraniteモデルおよびInstructLabツール、およびRed Hatによるサポートが含まれています。Grranite/InstructLabを使ったモデル開発を具現化するベースプラットフォームとして位置づけられます。
InstructLabとともにRed Hatから発表された「Red Hat Enterprise Linux AI」の構成(現時点ではデベロッパプレビュー)。GPUリソースを含むRHELイメージ上に開発ツールとともにInstructLabコンテナ、教師モデルを含むvLLMコンテナ、学習用のトレーニングコンテナが配置されている
“オープンソースAI”に対するRed Hatからの回答
生成AIのブーム、とくに“ AI特化型のGitHub” とも呼ばれるHugging FaceがAIモデル開発の世界で一般的になって以来、AIモデル開発の世界ではひんぱんに「オープンソースAIモデル」という言葉を聞くようになりました。しかし前述したように、二次使用などに制限がある独自のライセンス定義や学習データの非開示など、彼らが使う” オープンソース” は従来のオープンソースの定義とは必ずしも一致しておらず、単にソースコードをHugging Faceなどで公開したモデルをオープンソースと呼んでいるケースも見受けられます。
AI業界のあいまいな” オープンソース” という言葉の使い方を、オープンソース企業としてRed Hatはどう見ているのか ―この質問に対し、Red Hat米国本社のInstructLab / RHEL AI / OpenShift AIの関係者から回答を得たので、以下、引用します。
Red Hatからの回答
AI業界では「オープンソース」の定義をあいまいに使っているという点に関しては、ご指摘のとおりだと思います。AI全般に関して言えば、業界はまだ「オープンソース」が何を意味するのかを定義しようとしているというのが今の現実だとみています。この点に関しては、Red Hat CTOのクリス・ライト(Chris Wright)の最近のブログ記事 で、これらのコンセプトのいくつかに触れているので、参考になるかもしれません。
この問題を解決するために、Red HatはIBMと協力することでこの道を切り拓こうとしています。これは簡単なことではありません。つまり、LLMモデルだけをオープンにしても、AIモデル(LLM)を維持するためのツールやデータに対して、「 誰もが参加できるというオープンソースモデルの哲学」に追いついていないということです。
InstructLabはこの問題を解決させるために登場しました。AIのモデル、つまりLLMの世界を真のオープンソースにするためには、ソース(AIモデルのデータ)とGitのようなバージョン管理システム(人々が貢献するためのツール)が必要です。Red Hatは、IBMやパートナーの助けを借りながらも、同じオープンソースの哲学を持ち、誰もがモデルへのオープンな貢献を促進するためのツール/データ/モデルをInstructLabを通して提供しようとしているのです。
この点をまとめると以下のとおりです。
Red Hat/IBM Graniteモデルは、Apache 2.0ライセンスでリリースされています。これは、オープンを謳いながら、認知されたオープンソースライセンスを使用していない他の多くのモデルとは異なります。
Graniteモデルは、モデルのトレーニングに使用されたデータセットに対する透明性をもって公開されています。
Graniteのモデルへのチューニングは、InstructLabのコミュニティを通じて、誰でも貢献することができます。現在は、Granite 7b言語モデル、そして将来的にはGranite Codeモデルも同様です。
InstructLabは、エンドユーザー(専門的な知識をもったデータサイエンティストでない人々)にとって、モデルへの貢献をより身近なものにします。これは、Graniteコミュニティモデルへのパブリックデータの貢献であれ、商用のRHEL AIを利用したお客様が構築したいであろうプライベートな環境にコピーしたLLMに対してモデルへのプライベートデータによる貢献であれ、InstructLabの仕組みは、エンドユーザ(業務ユーザ)が直接LLMモデルのチューニングに参加でき、かつ、非常に少ないコンピューターリソース ( GPUの使用時間など)でLLMのモデルに偏りを作ることなくチューニングできるようになります。
OpenShift AIは、RHEL AIの開発環境で個別にチューニングされたLLMをスケールさせ、エッジでも、クラウドでも、あらゆる環境に展開できるMLOps プラットフォームとして位置付けます。OpenShift AIは、Red Hatが数年前に立ち上げたOpen Data Hubコミュニティをもとに、MLOpsを支援するプラットフォームとして、多くのオープンソースプロジェクトによって構成されているオープンなアプローチから生まれています。
Red HatのCEOであるマット・ヒックス(Matt Hicks)氏はRHS 2024での報道関係者向けセッションで「私はオープンソースのビリーバー(believer)として、AIモデルのオープンソース化が可能だと信じている。AIの現在はオープンソースが誕生した1990年代後半とよく似ており、若干の混乱はあるが、大きなポテンシャルがあることも同じ」とコメントしていました。
Red Hatが言う通り、AIのオープンソース化は簡単な道ではありませんが、30年以上にわたってオープンソースを推進してきた企業として、オープンソースによるAIの民主化を推進するリーダーとしての役割が期待されます。
RHS 2024基調講演に登壇したRed Hatのマット・ヒックスCEO