
自社のデータで生成AIを強化すべし:ファインチューニングしてビジネスに活用させたい基盤モデル(その1)
最近、クラウドサービスプロバイダ各社が言語系の基盤モデルとそのファインチューニング機能を提供し始めました。企業が生成AIをビジネスに本格的に活用させたいと思うならば、自社がもつデータセットで基盤モデルをファインチューニングする必要があるからです。
AIは、他の技術が成長する上で不可欠な基盤的な技術であり、ビジネスや社会の進化を後押ししています。最近、世間を賑わせているAIと言えば、生成AIでしょう。その中でもここ数ヶ月、メディアで数多く取り上げられて一躍注目を浴び、ビジネス現場を賑わせ続けているのが、OpenAIが開発したChatGPTです。ChatGPTは、GPT-3.5 Turboという大規模言語モデルを用いたAIチャットサービスです。(ただし、ChatGPTを大規模言語モデルと呼ぶ場合もあります。)GPT-3.5 Turboは、GPT-3.5という基盤モデルを人間のような自然な会話ができるようにファインチューニングしたものです。最近では、GPT-3.5の次期バージョンであるGPT-4がリリースされ、ChatGPTで利用できるもう一つの基盤モデル(かつ、対話用にファインチューニングされた大規模言語モデル)となっています。
基盤モデル(foundation models)とは、大規模で広範なデータセットを用いて(多くの場合、教師なし学習で)事前学習され、広範囲にわたる下流タスクにファインチューニングすることができるニューラルネットワークモデルのことです。(この定義からわかるように、学習に用いられるデータセットは、テキストでも、画像でも、音声など何でもよいのですが、ここでは特にテキストデータを用いて事前学習された自然言語処理向けの基盤モデルに絞って説明します。)ここで、ファインチューニング(fine-tuning)とは、事前学習されたモデルに対して特定タスク向けのデータセットを用いて再学習させ、モデルの重みを微調整させることです。これにより、モデルはそのタスクに適用するようになります。また、下流タスク(downstream tasks)とは、要約、翻訳、分類、感情分析、文章生成、質問応答などのように、ファインチューニングによって解こうとしているタスクのことです。
一方、大規模言語モデル(LLM:Large Language Models)とは、大規模な自然言語のデータセットを大規模なモデルパラメータ数をもつニューラルネットワークに学習させることにより、言語を単語の出現確率を用いてモデル化したものです。LLMは言語系の基盤モデルより広い概念です。GPT-3.5やGPT-4は、大規模な事前学習を受けた汎用的な言語モデルであり、幅広いタスクに対応できます。基盤モデルであると同時にLLMでもあります。GPT-3.5 Turboは、ファインチューニングによって、より対話型のタスクに対応する能力をもつようになったLLMですが、さきほどの定義からは基盤モデルとは言えません。他のLLMの例を挙げると、Googleが開発したBardは対話用にファインチューニングされたLLM、かつ、AIチャットサービスであり、そのベースとなったLaMDAやPaLM 2などが基盤モデルです。Metaが開発したLlama 2 Chatも同様で、そのベースとなったLlama 2が基盤モデルです。(ただし、最近では、対話用にファインチューニングされたモデルについては、特定の下流タスクを扱うためにさらにファインチューニングすることがあるため、基盤モデルと呼ばれることがあります。)
LLMは一般的な公開知識をよく理解していますが、企業が利用するワークフローの大部分にとって重要な、その企業独自の非公開情報についてはまったく認識していません。そのため、企業がLLMを自社のビジネスに活用するには、企業独自のデータセットを用いて基盤モデルをファインチューニングする必要があるのです。基盤モデルは、特定のタスクまたはドメイン向けにファインチューニングされたモデルを構築するための基盤を提供します。企業は以下のような理由からファインチューニングされたLLMを必要とします。
- ・企業には多くの場合、基盤モデルでは対応できない独自のニーズがあります。パーソナライズされたマーケティングコンテンツの生成や、プラットフォーム上でユーザが生成したコンテンツの理解など、特定の目的に合わせてモデルをファインチューニングできます。
- ・機密データを扱う企業や厳格な規制環境下でビジネスを展開している企業は、プライバシー要件を尊重し、コンテンツガイドラインを遵守し、業界規制に準拠した適切な応答を生成できるようにモデルのファインチューニングが必要となる場合があります。
- ・多くの業界では、基盤モデルの一般的な学習データでは十分に表現されない可能性のある専門用語や技術用語が使用されています。業界固有のデータに基づいてモデルをファインチューニングすることで、業界のコンテキスト内でモデルを理解し、正確な応答を生成できるようになります。
- ・ファインチューニングにより、感情分析、文書分類、情報抽出のようなビジネスに関連する特定のタスクにおけるモデルのパフォーマンスが向上し、意思決定が改善されます。
- ・ファインチューニングされたモデルは、チャットボット、AIアシスタント、カスタマーサポートのようなアプリケーションにおいて、より正確で関連性のあるコンテキストを認識した応答を生成することで、より優れたユーザ体験を提供し、顧客満足度の向上につながります。
今後は、さらに多くの企業が、ゼロから新しいLLMを構築するのではなく、事前学習された基盤モデルをファインチューニングして、AIへの取り組みを加速させていくとものと思われます。
主な言語系基盤モデルの一覧表
自然言語処理の分野において大きな衝撃をもたらしたGPT-3の出現前夜以降の、主要な言語系基盤モデルを一覧表にすると以下のようになります。ABEJA、rinna、CyberAgentやAI insideが開発した日本語に特化したモデルも含めています。
基盤モデル名 | 公開日 | 公開元 | パラメータ※1 | トークン※2 | ライセンス※3 |
---|---|---|---|---|---|
T5 | 2019/10 | 11B | 34B | Apache 2.0 | |
GPT-3 | 2020/6 | OpenAI | 175B | 499B | proprietary |
HyperCLOVA | 2021/5 | NAVER | 82B | 560B | proprietary |
GPT-J | 2021/6 | EleutherAI | 6B | 825GiB | Apache 2.0 |
MT-NLG | 2021/10 | Microsoft & NVIDIA | 530B | 270B | proprietary |
GLaM | 2021/12 | 1162B | 1600B | proprietary | |
ERNIE 3.0 Titan | 2021/12 | Baidu | 260B | 4TB | proprietary |
LaMDA | 2022/1 | 137B | 168B | proprietary | |
GPT-NeoX | 2022/2 | EleutherAI | 20B | 825GiB | Apache 2.0 |
Chinchilla | 2022/3 | DeepMind | 70B | 1400B | proprietary |
GPT-3.5 | 2022/3 | OpenAI | 非公開 | 非公開 | proprietary |
PaLM | 2022/4 | 540B | 768B | proprietary | |
OPT | 2022/5 | Meta | 175B | 180B | OPT-175B(非営利) |
Cohere Base | 2022/6 | Cohere | 53B | 非公開 | proprietary |
BLOOM | 2022/7 | BigScience | 176B | 366B | BigScience RAIL |
gpt-neox-japanese | 2022/7 | ABEJA | 2.7B | 不明 | MIT License |
GLM | 2022/8 | Tsinghua University | 130B | 400B | Code:Apache 2.0、Model:研究目的のみ |
Galactica | 2022/11 | Meta | 120B | 106B | CC BY-NC 4.0(非営利) |
AlexaTM | 2022/12 | Amazon | 20B | 1300B | Apache 2.0 |
RWKV | 2022/12 | EleutherAI | 14B | 332B | Apache 2.0 |
AnthropicLM v4-s3 | 2022/11 | Anthropic | 52B | 400B | proprietary |
LLaMA | 2023/2 | Meta | 65B | 1400B | Code:GPLv3、Model:研究目的のみ |
Pythia | 2023/2 | EleutherAI | 12B | 300B | Apache 2.0 |
GPT-4 | 2023/3 | OpenAI | 非公開 | 非公開 | proprietary |
Falcon | 2023/3 | TII | 40B | 1000B | Apache 2.0 |
PanGu-Σ | 2023/3 | Huawei | 1085B | 329B | proprietary |
Jurassic-2 | 2023/3 | AI21 Labs | 非公開 | 非公開 | proprietary |
BloombergGPT | 2023/3 | Bloomberg | 50B | 700B | proprietary |
Tongyi Qianwen | 2023/4 | Alibaba | 非公開 | 非公開 | proprietary |
StableLM-alpha | 2023/4 | Stability AI | 7B | 800B | CC BY-NC-SA 4.0(非営利) |
PaLM 2 | 2023/5 | 340B | 3600B | proprietary | |
OpenLLaMA | 2023/5 | OpenLM Research | 13B | 600B | Model:Apache 2.0 |
RedPajama-INCITE | 2023/5 | Together | 7B | 1000B | Apache 2.0 |
StarCoderBase | 2023/5 | Hugging Face | 15B | 1000B | BigCode Open RAIL-M |
japanese-gpt-neox | 2023/5 | rinna | 3.6B | 不明 | MIT License |
OpenCALM | 2023/5 | CyberAgent | 6.8B | 不明 | CC BY-SA 4.0 |
MPT | 2023/6 | MosaicML | 30B | 1000B | Apache 2.0 |
Ernie 3.5 | 2023/6 | Baidu | 不明 | 不明 | proprietary |
PolySphere-1 | 2023/6 | AI inside | 14B | 不明 | proprietary |
InternLM | 2023/7 | Shanghai AI Laboratory | 104B | 1600B | Code:Apache 2.0、Model:許可制 |
Llama 2 | 2023/7 | Meta | 70B | 2000B | Llama 2 Community |
- ※1パラメータ数の異なる複数のモデルがある場合、モデルの中で最大のモデルがもつパラメータ数。単位のBは10億個。
- ※2学習に用いられたデータセットの総トークン数。単位のBは10億個。GPT-J、ERNIE 3.0 Titan、GPT-NeoXのみ、トークン数ではなく学習データのバイト数。
- ※3コードとモデルの重みのライセンス。ちなみに、"proprietary"、"非営利"、"研究目的のみ"、"許可制"と書かれているもの以外は、営利利用可能。
この一覧表の基盤モデルにおいて、ニューラルネットのアーキテクチャとして、RWKV以外はすべてTransformerを採用しています。Transformerには、エンコーダとデコーダの2つの主要なコンポーネントがあります。エンコーダは、複数のエンコーダ層から構成されており、入力系列の情報を段階的に抽象化します。各層は自己注意機構(self-attention mechanism)を使用して入力系列の各トークン間の関連性を計算します。エンコーダの出力は、入力情報の文脈を考慮した隠れ状態(hidden state)の系列として、意味や特徴をエンコードしています。一方、デコーダは、自己回帰的に過去の生成結果や内部状態を使用して次のトークンを予測し、エンコーダの情報を参照しながら、文脈と意味を考慮した系列を生成します。デコーダは、複数のデコーダ層から構成されており、各層は、自己注意機構により入力系列の文脈を捉えるのに加え、エンコーダとの注意機構(attention mechanism)によってエンコーダの情報を利用します。すなわち、エンコーダの各層の隠れ状態を注意機構の入力として利用し、エンコーダの隠れ状態とデコーダ自身の内部状態の関連性を計算します。これにより、デコーダはエンコーダの情報を効果的に利用して文脈や意味の把握に役立てることができるのです。
Transformerを用いた言語系基盤モデルには、BERTのようにTransformerのエンコーダのみを用いたもの、T5のようにエンコーダとデコーダを用いるもの、GPT-3のようにデコーダのみを用いるものがあります。エンコーダのみを用いた言語モデルは、事前学習によって非常に多くの文章を理解する力を得ることができますが、生成タスクはデコーダを用いて新しい文章を生成することが求められるため、生成AIには向きません。文章を生成する際には、文法や意味のルールに従って適切な文章を生成する能力が必要ですが、エンコーダのみではこのような能力が不足しています。
Transformerのエンコーダとデコーダを用いるモデルは、一般的に系列間の変換や生成タスクに使用されます。たとえば、機械翻訳では、エンコーダがソース言語の入力テキストをエンコードし、デコーダがターゲット言語の出力テキストを生成します。入力テキストの意味や特徴をより豊かに捉えることが可能ですが、生成タスクにおいては冗長な情報を生成してしまう可能性があります。上の一覧表では、T5、GLM、AlexaTMがエンコーダとデコーダを組み合わせたTransformerモデルを用いています。
一方、Transformerのデコーダのみを用いるモデルは、通常、単一の系列の生成タスクに使用されます。たとえば、文章の自動生成や要約のようなタスクに使用されます。デコーダのみを用いるモデルでは、デコーダの自己回帰的な生成能力を活用し、入力テキストから後続するトークンを生成します。デコーダは、過去の生成結果や内部状態を使用して次のトークンを予測し、それを生成に利用します。これらのモデルはテキスト生成タスクに特化しており、コンテキストからの次のトークンの生成や文章の流暢さに重点を置いています。そのため、デコーダ部分のみを使用することで、自然な文章の生成や長期的な依存関係の捉えることを強化することができます。
基盤モデルとファインチューニング機能の提供の現状
企業がビジネスに活用するために基盤モデルをファインチューニングしようとした場合、それらはどのように提供されているのでしょうか?
OpenAIは、ファインチューニングできる基盤モデルとして、現時点でGPT-3のサイズの異なる4つのモデル(ada、babbage、curie、davinci)を既に提供しています。また、Microsoftが提供するAzure OpenAI Serviceでも同じようにこれらの基盤モデルをファインチューニングできます。ちなみに、OpenAIのAPIで提供されているGPT-3の4つのモデルをGPT-3の論文に書かれている同じベンチマークを使って評価して結果を照らし合わせると、それぞれ、350M、1.3B、6.7B、175Bのパラメータをもつモデルだと推測されるそうです。(出典)OpenAIの2023年7月6日(米国時間)の発表によりますと、GPT-4およびGPT-3.5 Turboのファインチューニングは2023年後半に利用可能になる予定とのことです。同じ発表で、GPT-4 APIの一般提供が開始されましたが、このAPIにはまだファインチューニングの機能は含まれないということです。
OpenAIのファインチューニングの料金についても紹介しておきます。たとえば、一番大きなモデルと思われるDavinciを使って学習させる場合、学習データのトークン数に学習エポック数(デフォルトでは4)を掛けた値に対して、1,000トークンあたり0.03米ドルの料金がかかります。また、ファインチューニングして学習させたモデルを使う場合、プロンプトとその結果の合計トークン数に対して、1,000トークンあたり0.12米ドルかかります。(出典)ここで、トークンという用語について説明します。言語モデルにテキストを入力して処理させるためには、テキストを数値データとして扱う必要があります。トークンはテキストを小さな単位に分割したものです。入力テキストを数値化するために、テキストをトークン化して、それぞれのトークンに対応する一意の数値を割り当てます。たとえば、GPT-3ではあらゆる言語のテキストをトークン化し、ゼロから約5万までの整数値に置き換えます。すなわち、トークンの語彙数は約5万あり、それにより、あらゆる言語の語彙を表現することができるということです。GPT-3.5 TurboやGPT-4では、さらにトークンの語彙数は拡張されています。経験則として、一般的な英語テキストの場合、1トークンはおよそ0.75単語に相当します。日本語の場合は、GPT-3では1トークンはおよそ0.7文字に相当し、GPT-3.5 TurboやGPT-4ではおよそ0.9文字に相当します。
Google Cloudは2023年6月8日(米国時間)にブログの投稿により、基盤モデルであるPaLM 2のファインチューニングの一般提供開始を発表しました。APIの提供だけでなく、Generative AI StudioのUIツールを用いてモデルをファインチューニングできます。PaLM 2には、サイズの異なる4つのモデル(Gecko、Otter、Bison、Unicorn)がありますが、現時点でファインチューニングに利用できるのは、4つのうちで2番目に規模の大きなBisonモデルのみです。
Amazon Web Services(AWS)は2023年4月13日(米国時間)にブログの投稿により、ファインチューニング可能な4つの基盤モデルにAPI経由でアクセスできるようにする新しいサービスAmazon Bedrockを発表しました。bedrockというのは岩盤という意味です。4つの基盤モデルとは、AI21 LabsのJurassic-2、AnthropicのClaude、Stability AIのStable Diffusion、Amazon Titanです。Stable Diffusionは画像系なので、言語系としては3つになります。Amazon Bedrockは現在、限定プレビュー版を提供中で一般提供はまだされていません。また、現在、Amazon Titanに関する詳細はほとんど明らかにされていません。
Scale AI、NLP Cloud、Cerebrasなどのスタートアップ企業は、オープンソースの基盤モデルをファインチューニングできる環境をサービスとして提供しています。たとえば、企業評価額73億ドルのユニコーン企業Scale AIは、Llama 2、MPT、Falconなどのオープンソースの基盤モデルを提供しています。オープンソースの基盤モデルは、プロプライエタリな基盤モデルに匹敵するような性能をもつようになってきていますが、モデルをクラウドにデプロイしてファインチューニングするには、システム基盤と機械学習の専門知識が必要でコストもかかります。Scale AIは、基盤モデルとファインチューニングに必要な機能をもつLLM Engineもオープンソースとして提供しています。
次回からは、上の一覧表で示した各基盤モデルについて概要やトピックスを述べていこうと思います。
- ※文中の商品名、会社名、団体名は、一般に各社の商標または登録商標です。