LLMOps とは
大規模言語モデル (LLM) は、コンテンツやコードの生成のほか、翻訳、質問への回答、チャットやコンテンツの要約など、言語関連のタスクを実行する機械学習 (ML) モデルです。GPT-3、LLaMA、Falcon などの LLM は革新的なツールであり、データセットでトレーニングすることで質問に回答できるようになります。これらのツールは進化し続けており、こうしたモデルの運用方法に関するベストプラクティスが必要とされています。その穴を埋めるのが LLMOps です。
大規模言語モデル運用 (LLMOps) は、本番環境で大規模言語モデルの運用管理に使用されるプラクティス、技術、ツールです。具体的には、ファインチューニングからメンテナンスまでの LLM のライフサイクルを、ツールや手法を使用して管理し自動化します。モデル固有の運用が可能であり、データサイエンティスト、エンジニア、IT チームは大規模言語モデルを効率的にデプロイ、監視、保守できます。
LLMOps とMLOps
LLM が ML モデルのサブセットなら、LLMOps は機械学習運用 (MLOps) の大規模言語モデル版です。MLOps とは、ML モデルのデプロイと保守のプロセスを最適化することを目的としたワークフローの一連のプラクティスです。MLOps は、ML モデルをソフトウェア開発プロセスに統合するための、継続的な進化の確立を目指しています。同様に、LLMOps は LLM の開発とデプロイのライフサイクルの継続的な実験、反復、導入、改善を目指しています。
LLMOps と MLOps には類似点がありますが、相違点もあります。例として次のようなものがあります。
学習:従来の ML モデルの多くはゼロから作成またはトレーニングされますが、LLM は基盤モデルから開始され、特定の領域でのパフォーマンスを向上させるために新しいデータを使用してファインチューニングされます。
チューニング:LLM のファインチューニングは特定のアプリケーションのパフォーマンス向上、精度の向上、特定の主題に関するより多くの知識をもたらします。プロンプトチューニングは、LLM が特定のタスクでより良いパフォーマンスを発揮できるようにする、効率的で最適化されたプロセスです。ハイパーパラメーターのチューニングも相違点の 1 つです。従来の ML では、チューニングは精度やその他の指標の改善に重点を置いています。一方、LLM の場合、チューニングはトレーニングと推論に必要なコストと計算能力を削減するためにも重要です。従来の ML モデルも LLM も、チューニングプロセスの追跡と最適化によるメリットはありますが、その重点は異なります。また、回答の精度を向上させるためにチューニングと並行して使用できる追加プロセスである、検索拡張生成 (RAG) というものも存在します。RAG は、外部のナレッジベースを使用して、LLM へのクエリ時に最新かつ正確な事実が提供され、より適切な応答を生成できるようにするプロセスです。
フィードバック:ヒューマンフィードバックによる強化学習 (RLHF) により、LLM のトレーニングは改善されました。LLM のタスクの多くはオープンエンドであるため、パフォーマンスを評価するにはアプリケーションのエンドユーザーからのヒューマンフィードバックが重要です。従来の ML モデルが特定の自動化された指標を使用して正確性を確保するのに対し、LLM は人間によるフィードバックを使用してプロンプトに対する応答を評価し、正確性と一貫性を確保します。
パフォーマンス指標:ML モデルには、精度、AUC、F1 スコアなどの明確に定義されたパフォーマンス指標があります。しかし、LLM には、BLEU (バイリンガル評価アンダースタディ) や ROUGE (要旨評価のための再現率重視アンダースタディ) など、別の標準指標とスコアリングが適用されます。
LLMOps のメリット
LLMOps は長期的に LLM のパフォーマンスを監視し強化するための最適な方法になりつつあり、特記すべき主なメリットとして次の 3 つがあります。
効率:LLMOps を使用することで、より迅速なモデルおよびパイプライン開発を実現し、より高品質なモデルを提供し、より迅速にプロダクションにデプロイできるようになります。作業が効率化され、コミュニケーションと知見共有のための統合プラットフォーム上でチーム間のコラボレーションが向上します。
スケーラビリティ:LLMOps によってスケーラビリティと管理が向上し、継続的インテグレーションおよび継続的デリバリー/デプロイメント (CI/CD) のために複数のモデルを監視、制御、管理、観察できます。LLM パイプラインはコラボレーションを促進し、競合を減らし、リリースサイクルを短縮することができます。また、LLMOps はモデルのレイテンシーを改善することで、より応答性の高いユーザーエクスペリエンスを実現します。
リスクの軽減:LLMOps により、透明性の向上とリクエストへの迅速な対応が可能になり、組織や業界のポリシーへのコンプライアンスが強化されます。高度な LLMOps は機密情報の保護を優先することでセキュリティとプライバシーを向上し、脆弱性や不正アクセスを防止します。
LLMOps のユースケース
LLMOps には次のようなユースケースがあります。
継続的インテグレーションおよびデリバリー (CI/CD):CI/CD は、モデル開発ライフサイクルの最適化、迅速化、自動化を目的としています。Jenkins のようなツールを使用すると、プロジェクトのビルドとテストを継続的に行えるため、開発者はプロジェクトに対する変更を統合しやすくなり、ユーザーは新しいビルドを入手しやすくなります。これによってシームレスなモデルの更新とロールバックが可能になり、中断が最小限に抑えられます。
データ収集、ラベル付け、ストレージ:データ収集はさまざまなソース、ドメイン、言語から取得できます。人間によるフィードバックとともにデータのラベル付けを行うことで、ドメイン固有の複雑な判断が可能になります。適切なデータベース・ソリューションやストレージ・ソリューションを使用したデータストレージにより、LLM のライフサイクルを通じてデジタル情報を収集し保持することができます。
モデルのファインチューニング、推論、監視:モデルのファインチューニングは、ドメイン固有のタスクを実行するようにモデルを最適化します。モデル推論では、既存の知識に基づいてプロダクションを管理し、推論された情報に基づいてアクションを実行できます。ヒューマンフィードバックを含むモデル監視では、モデルの動作に関するデータを収集して保存し、モデルがプロダクションデータでどのように動作するかを学習します。
LLMOps の段階
LLMOps にはいくつかの段階やコンポーネントがあり、それぞれにベストプラクティスがあります。
探索的データ分析 (EDA):データを調査し、データセット、テーブル、視覚化を作成することで機械学習ライフサイクルを発見し、共有し、準備するプロセス。
- データ収集:コードリポジトリやソーシャルメディアなどのさまざまなソースから収集される LLM のトレーニングに使用される最初のステップです。
- データクリーニング:データを収集したら、エラーの削除、不一致の修正、重複データの削除など、データをクリーニングしてトレーニングの準備をする必要があります。
- データ探索:次のステップでは、外れ値の特定やパターンの発見など、データを探索してその特性をより深く理解します。
データの準備とプロンプト・エンジニアリング:データをチーム間で可視化して共有できるようにし、LLM への構造化された信頼性の高いクエリに対するプロンプトを開発するプロセス。
- データの準備:LLM のトレーニングに使用されるデータは、ストップワードの削除やテキストの正規化など、特定の方法で準備されます。
- プロンプト・エンジニアリング:テキストの生成に使用されるプロンプトを作成することで、LLM が目的の出力を生成できるようにします。
モデルのファインチューニング:PyTorch などの一般的なオープンソースライブラリを利用して、モデルのパフォーマンスをファインチューニングして改善します。
- モデルのトレーニング:データが準備された後、機械学習アルゴリズムを使用してデータ内のパターンを学習させることによって、LLM のトレーニングやファインチューニングを行います。
- モデルの評価:トレーニングの完了後、LLM のトレーニングに使用されなかったデータのテストセットを使用して LLM がどの程度うまく機能するかを確認し、LLM を評価する必要があります。
- モデルのファインチューニング:LLM のパフォーマンスが良好でない場合は、LLM のパラメーターを変更してパフォーマンスを向上させるなどのファインチューニングが可能です。
モデルのレビューとガバナンス:MLflow や Kubeflow など、オープンソースの MLOps プラットフォームを利用した、ML モデルにおける発見、共有、コラボレーションのプロセス。
- モデルのレビュー:ファインチューニングの完了後、LLM が安全で信頼できることを確認するためにレビューが必要になります。これにはバイアス、安全性、セキュリティに関するリスクのチェックが含まれます。
- モデルガバナンス:モデルガバナンスは、ライフサイクルを通じて LLM を管理するプロセスです。これにはパフォーマンスの追跡、必要に応じた変更、不要になった場合の廃棄が含まれます。
モデルの推論と提供:モデルの更新頻度、推論リクエスト時間、テストにおける同様のプロダクションの詳細を管理するプロセス。
- モデルの提供:LLM のレビューと承認が完了すると、プロダクションにデプロイして、アプリケーション・プログラミング・インタフェース (API) を通じて利用できるようになります。
- モデル推論:アプリケーションが API にクエリを実行することで、API はテキストを生成したり、質問に答えたりすることができます。これは、REST API (Representational Sate Transfer Application Programming Interface) や Web アプリケーションなど、さまざまな方法で実行できます。
ヒューマンフィードバックによるモデル監視:モデルのドリフトと悪意のあるユーザーの行動の両方に対するアラート機能を備えたモデルおよびデータ監視パイプラインの作成。
- モデルの監視:LLM をデプロイしたら、期待どおりに動作していることを確認するために LLM を監視する必要があります。これにはパフォーマンスの追跡、問題の特定、必要に応じた変更が含まれます。
- ヒューマンフィードバック:LLM のパフォーマンスを向上させるために使用します。LLM が生成するテキストに関するフィードバックを提供するか、LLM のパフォーマンスの問題を特定します。
LLMOps プラットフォームとは
LLMOps プラットフォームは、データサイエンティストとソフトウェアエンジニアに対し、データ探索、実験追跡のためのコワーキング機能、迅速なエンジニアリング、モデルおよびパイプライン管理を容易にする共同作業環境を提供します。また、LLM の制御されたモデルの移行、デプロイ、監視も可能にします。
このプラットフォームによってより効率的なライブラリ管理が実現できるため、運用コストが削減され、少ない技術担当者でタスクを完了できるようになります。これらの運用にはデータの前処理、言語モデルのトレーニング、監視、ファインチューニング、デプロイが含まれます。LLMOps は、機械学習ライフサイクルの運用、同期、監視のさまざまな側面を自動化します。
Red Hat を選ぶ理由
Red Hat® OpenShift® は Kubernetes を活用した、業界を牽引するハイブリッドクラウド・アプリケーション・プラットフォームであり、データセンターからネットワークエッジ、複数のクラウドに至るハイブリッドクラウド環境全体で AI 対応アプリケーションのロールアウトを加速します。
Red Hat OpenShift を活用することで、ソフトウェア開発プロセス、本番環境のロールアウト、監視、再トレーニング、再デプロイにモデルを統合する反復プロセスを自動化および単純化して、継続的な予測精度の向上を実現します。
Red Hat OpenShift AI は、AI 対応アプリケーションを構築、デプロイ、管理するツールを備えた柔軟でスケーラブルな MLOps プラットフォームです。これにより、データサイエンティストやアプリケーション開発者は、アプリケーションへの人工知能 (AI) の統合を安全かつ一貫して大規模に単純化できるようになります。OpenShift AI は、オンプレミスとパブリッククラウドで AI/ML の実験およびモデルのライフサイクル全体をサポートするツールを提供します。
Red Hat OpenShift AI と Red Hat OpenShift の機能を単一のエンタープライズ対応 AI アプリケーション・プラットフォームに組み入れることで、一貫性、セキュリティ、スケーラビリティを促進する単一の共同作業環境で複数のチームが連携できます。