目次
はじめに
ChatGPTの登場以降、大規模言語モデル(Large Language Model; LLM)が革新的な進歩を遂げる中、ビジネスへの活用に向けた取り組みが始まっています。
近年では、2024年4月にMeta社が開発したLlama 3のような商用利用可能なLLMが登場し、LLMを活用したシステム開発の取り組みが様々な企業で始まっています。そのため、LLMの運用ワークフローの構築が必要不可欠です。機械学習(Machine Learning; ML)のモデルを効率的、持続的に運用する技術として、MLOps(Machine Learning Operations)があります。しかし、大量のデータからパターンを見つけ予測する機械学習モデルとテキストデータを理解して生成するLLMでは、その性質が異なるため、LLMの性質にあったMLOpsが必要になります。これをLLMOps(Large Language Model Operations)といいます。
LLMのビジネスへの活用にはLLMOpsの適切な運用が重要になります。本記事では、今後LLMの開発や運用を取り組む担当者の皆様に向けて、LLMOps導入による効果やMLOpsと異なる要素について焦点を当て解説していきます。
LLMOpsとは?
LLMOpsは、LLMの開発管理、デプロイ、保守に焦点を当てた運用管理をスムーズに進めるための手法のことを指します。
基本的な概念はMLOps と変わりませんが、LLM独自の要件があります。具体的には、次のような要件を考慮する必要があります。
- ■ LLMOpsで要求されるポイント
1. 基盤モデルの開発:ゼロからの構築?ファインチューニングやプロンプトで追加学習?
2. 精度改善の手段:ファインチューニングによる再学習?プロンプトエンジニアリングの実施?
3. 精度指標の設計:どのようにしてLLMの性能の良し悪しを定義するのか?
4. モニタリング項目:LLMの性能が低下しているとどのように判断するのか?
LLMを含むAIプロジェクトの目的は、「高い性能を持つ」だけでなく、「適切なユースケースを計画しユーザーが求める回答を出力することができる」LLMを構築することにあります。そのため、評価指標やモニタリング項目の設計が重要です。常に最新情報に対してLLMが対応できるように、メンテナンスをし続ける必要もあります。LLMの性能を常に監視しスムーズにモデル改善ができる環境を作るために、LLMOpsを取り入れることが大切です。
LLMOps環境を構築すると具体的にどのような効果が得られるのでしょうか。確認していきましょう。
LLMOpsを導入することで得られる効果とは?
LLMOps環境を構築することは様々な場面で「効率性」「迅速性」「持続可能性」をもたらしますが、例として以下の2つの効果を説明します。
1. LLMとパイプラインの開発を迅速にし、モデルの性能が劣化することを防げる
2. セキュリティとプライバシーを強化し、不正アクセスのリスクを防げる
LLMとパイプラインの開発を迅速にし、モデルの性能が劣化することを防げる
LLMも機械学習モデルと同様、学習直後では性能が優れていたとしても時間が経つごとに性能は劣化します。これは学習後に発生した新しい情報や出来事についてはモデルが直接知ることができないため、時間が経つにつれて出力される情報が徐々に古くなっていくからです。
LLMOpsの概念を用いる場合、運用チームと開発チームの緊密な情報連携の体制を構築することになるため、運用チームが「ユーザーが求める回答を出力できているのか」を常に検証し、学習済みの情報が古くなり適切な回答が出力されていないと判断したタイミングで、開発チームが速やかに最新データを用いて再学習し、LLMの性能を維持させることが可能です。
開発チームと運用チームの情報連携が不十分だと、モデルの再学習が遅れてしまいます。その結果、LLMの性能が低下しユーザーに使われなくなる恐れがあります。LLMOpsを用いると同時に、プロジェクト間のチーム連携も重要になってきます。
セキュリティとプライバシーを強化し、不正アクセスのリスクを防げる
LLMは大量のデータを学習することでテキスト生成を行うため、セキュリティ上の懸念があります。例えば、意図的に悪意のあるテキスト指示(プロンプト)を行いモデルに開発者が意図しない回答を出力させる「プロンプト・インジェクション攻撃」があります。これによって、会社が保持するソースコードや機密事項などのデータをLLM自身が回答してしまう可能性があります。
LLMOpsはモデルへのアクセス権限の制御や不正なプロンプトを排除するフィルタリングを迅速に行うことが可能となり、セキュリティ強化やモデルの機密性を向上することができます。
MLOpsにはないLLMOpsの構成要素とは?
LLMOpsはMLOpsをLLMに特化させたものであり、基本的概念は変わりません。しかし、機械学習モデルにはないLLM独自の要素が必要になります。ここではLLMOpsを運用するにあたって、求められる要素について解説していきます。
基盤モデルの開発
機械学習モデルの多くはゼロから作成し学習していきますが、LLMは気軽にモデルをスクラッチ開発することが難しいため、ユースケースにあった基盤モデルを活用します。LLMのモデル開発には、主に3つのアプローチが存在します。
出典元:https://note.com/wandb_jp/n/n1aa6d77f33cf①自社で基盤モデルを開発(スクラッチ開発)
自社で基盤モデルをスクラッチ開発する場合、汎用性の高いLLMを構築することができ、様々な利用価値を生み出す可能性を秘めています。しかし、学習に多種多様な大規模なテキストデータが必要となるため、膨大なリソースとコストがかかり、実現の難易度は非常に高いと言えます。
② 公開済みの基盤モデルに対して、追加学習でカスタマイズ
チャットAIのタスクが得意なMeta社のLLM「Llama 3」やハルシネーション(もっともらしい嘘をつく現象)を大幅に抑えているストックマーク社のLLM「Stockmark-LLM-100b」など商用利用可能なLLMをファインチューニング(追加学習)することで、プログラムコードの生成に適したモデルの作成や顧客の問い合わせに即時回答できるチャットボットの開発など、様々なタスクに特化したカスタマイズが可能です。いずれのケースでも各タスクに適応させるために、受け答えのパターンを示した訓練データが必要になります。
③ ファインチューニング済みモデルの知識に自社のデータの知識を追加
OpenAI社のGPT-4やGoogle社のGeminiは、既に公開されているファインチューニング済みモデルで、APIを利用することにより使用することができます。この時点で基本的な受け答えは可能ですので、モデルが知らない最新の情報や自社にしかない特別な情報を知識として与えるだけで手軽にLLMを構築することができます。また、LLMに直接知識を与えるのではなく外部のデータベースから情報を参照し理解することにより、回答を生成する検索拡張生成(Retrieval Augmented Generation; RAG)を用いても構築することができます。これらは少ないデータで「ユーザーが求める回答を出力できる」LLMの構築が可能で、①、②と比較すると低コストで運用することができます。
精度改善の手段
MLOpsで取り扱う機械学習モデルは、線形回帰や決定木などの小さいモデルから、BERTなどの言語モデルやVision Transformerなどの画像分類モデルなどの大きいモデルまで、多様なモデルがあります。これらの多くは教師あり学習(機械学習の一種で事前に人間が用意した正解データをもとに学習させる方法)であり、正解となるデータが必要になります。そのため最新データの分布がモデル構築に使用したデータ分布から離れてしまった場合は精度が低下してしまいます。精度を向上させる手段として、最新データを使用したモデルの追加学習があり、MLOpsはこの追加学習をいかに効率よく回すかを重視しています。
一方、LLMはテキスト生成などのタスク精度を向上させる方法として、以下のような手段があります:
1. プロンプトの調整(プロンプトエンジニアリング)
2. ファインチューニング(モデルの追加学習)
3. 外部のデータベースの活用(RAG)
ファインチューニングは機械学習モデルの追加学習と同様に、最新のデータを用いてLLMの追加学習を行います。
プロンプトエンジニアリングは、LLMへ与える指示(プロンプト)を調整することでLLMの出力をうまく制御しようという技術のことを言います。例えば、Few-shot promptingという手法があります。これは数十件ほどの少数の例を与えることで、適切な回答を出力させるように学習することです。すなわち、LLMの精度向上の対処法としては、従来の追加学習の方法に加えて、プロンプトの差し替えにより適切な回答を促す方法があります。
RAGは文書検索モデルとLLMを組み合わせた技術です。これはユーザーの質問に対して外部のデータベースから参照し、その情報を使ってLLMが回答生成します。この方法もプロンプトの調整と同様、LLMに手を加えずに回答の精度を向上させることができます。
評価指標の設計とモニタリング項目
機械学習モデルの多くは「正解」を定義しやすく、accuracyやAUCなど定量的な指標を用いて簡単に精度の評価が可能です。一方、LLMは「正解」の定義が難しく目的に沿った精度評価指標の設計が必要になります。例えば、ROUGEは要約生成等のモデルの評価に利用される指標で、用意した正解テキストと、生成されたテキストがどれぐらい一致しているかを評価する指標です。またGPT-4などの強力なLLMに、開発したLLMの評価そのものを実施させる手法「LLM-as-a-Judge」があります。これは評価用のLLMに評価基準や評価に必要な情報をインプットして対象のLLMを評価します。
評価指標はモニタリングする上でとても重要です。LLMは古い情報の出力を防ぐために、必要に応じて最新のデータを知識として学習させる必要があります。古い情報が出力される、もしくはLLMの性能低下であると判断する材料としては、評価指標の監視以外にユーザーのフィードバックなども効果的です。ユーザーがLLMを利用して生成された回答に対して良し悪しの評価をつけてもらうことで、モデル改善のタイミングを把握することができます(この手法は人間のフィードバックによる強化学習(RLHF)と呼ばれ、ハルシネーション(もっともらしい嘘)や有害なテキストの出力を防ぐことができます)。
参考論文 ” Judging LLM-as-a-Judge with MT-Bench and Chatbot Arena” (2023): https://arxiv.org/pdf/2306.05685
おわりに
LLMOpsとMLOpsは、AI技術の運用において企業に新たな価値を見出してくれますが、それぞれ役割が異なります。LLMOpsでは生成AIに特化した運用手法であり、MLOpsとの違いを理解して、適切なツールと戦略を考えることが企業にとって重要になります。
TDSEでは、10年以上のAI/データ利活用支援の実績を元に、最新の技術を常に取り入れながら最適なソリューションをご提案させていただきます。豊富な経験を持った、データサイエンティスト、データエンジニアがLLMのビジネス活用を強力にご支援します。
ご興味お持ちいただけましたら是非お問い合わせ、ご相談ください。