|
出典:Financial IT Matters まえがき:ここ2日間、A2Mカンファレンスに出席し、最近話題のAIGC(AI Generic Domain Name)に焦点を当ててきました。業界がAIGCを重視していることに驚きました。多くの企業が大規模モデルの構築に取り組み、AIアプリケーションの構築に活用しています。特に、He Mian教授の講演では、AIGCが製品のインタラクションとアプリケーションアーキテクチャに与える破壊的な影響が強調されていました。現在、LangChainやセマンティックカーネルなど、大規模モデルに基づくAIアプリケーション開発フレームワークが業界で台頭しており、これらのフレームワークはLLMOpsとも呼ばれています。そこで、本稿ではLLMOpsについて紹介します。原文はWeights & Biasesに掲載された英語の記事で、私が翻訳しました。原文へのリンクは以下です。 LLMOps を理解する: 大規模言語モデル操作 | 記事 – 重みとバイアス (wandb.ai) 著者:レオニー、翻訳者:トニー この記事では、大規模言語モデル (LLM) が AI 駆動型製品と機械学習運用 (MLOps) の構築の見通しをどのように変えているのかを探ります。 OpenAIのChatGPTのリリースは、「大規模言語モデル(LLM)の実稼働」というパンドラの箱を開けてしまったようです。近所の人たちが人工知能についてあなたとチャットするだけでなく、機械学習(ML)コミュニティでは「LLMOps」という新しい用語も話題になっています。 LLMは、AI駆動型製品の構築と保守の方法に変革をもたらしています。これにより、LLM駆動型アプリケーションのライフサイクルにおける新たなツールセットとベストプラクティスが生まれるでしょう。 この記事では、まず、新たに登場した用語「LLMOps」とその背景について説明します。LLMを用いたAI製品の構築が、従来の機械学習モデルとどのように異なるのかを考察します。これらの違いを踏まえ、MLOpsとLLMOpsの違いを理解します。最後に、LLMOps分野における今後の展開について考察します。 01 LLMOps とは何ですか? LLMOpsは「Large Language Model Operations(大規模言語モデル操作)」の略称です。簡単に言えば、LLM駆動型アプリケーションの開発、展開、保守を管理するための新しいツールとベストプラクティスのセットであり、LLM向けのMLOpsとも言えます。 「LLMOps は LLM の MLOps である」と言う場合、まず LLM と MLOps という用語を定義する必要があります。
これらのことを学んだ上で、さらに詳しく見てみましょう。 02 LLMOps はなぜ登場したのか? BERTやGPT-2といった初期のLLMは2018年から存在していました。しかし、LLMOpsの概念が急速に人気を集めたのは、それから約5年が経った今になってからです。その主な理由は、2022年12月にLLMsがChatGPTをリリースしたことでメディアの注目を集めたことです。 LLMの出現([1]を参考に著者が作成した画像) それ以来、次のようなさまざまなアプリケーションが LLM のパワーを活用してきました。
LLM 駆動型アプリケーションを開発してリリースする人が増えるにつれて、彼らは経験を共有し始めます。 「LLMでクールなものを作るのは簡単だが、それを製品品質にまで引き上げるのは非常に難しい。」 -チップ・フイエン[2] 明らかに、本番環境対応のLLM駆動型アプリケーションの構築は、従来のMLモデルを用いたAI製品の構築とは異なり、独自の課題を伴います。これらの課題に対処するには、LLMアプリケーションのライフサイクルを管理するための新しいツールとベストプラクティスを開発する必要があります。そのため、「LLMOps」という用語の使用が増えています。 LLMOps の手順は、いくつかの点で MLOps の手順と似ています。ただし、LLM ベースのアプリケーションを構築する手順は、基盤となるモデルの可用性によって異なります。LLM をゼロからトレーニングするのではなく、事前トレーニング済みの LLM を下流のタスクに適応させることに重点が置かれます。 1年以上が経過し、Andrej Karpathy[3]はAI製品の構築プロセスが今後どのように変化するかを次のように説明しています。 しかし、最も重要な傾向は、特定の対象タスクにおいてニューラルネットワークをゼロから学習するというセットアップ全体が、ファインチューニング、特にGPTのような基本モデルの出現によって急速に時代遅れになりつつあることです。これらの基本モデルは、十分な計算リソースを持つ少数の機関によってのみ学習されており、ほとんどのアプリケーションは、ネットワークの部分的な軽量ファインチューニング、エンジニアリングのヒント、またはより小規模で具体的な推論ネットワークへのデータまたはモデルの蒸留といったオプションの手順を通じて実装されています。 [...] - Andrej Karpathy [3] この引用文は一見すると圧倒されるかもしれません。しかし、ここで起こっていることのすべてを的確に要約しているので、以下のサブセクションで段階的に説明していきましょう。 ステップ1: ベースモデルを選択する ベースモデルは、様々な下流タスクに使用できる大量のデータで事前学習されたLLMです。ベースモデルをゼロから学習させるのは複雑で時間がかかり、非常に高価であるため、必要な学習リソースを持つ機関はごくわずかです[3]。 この点を説明すると、Lambda Labs による 2020 年の調査によると、Tesla V100 クラウド インスタンスを使用して OpenAI の GPT-3 (1,750 億のパラメータを持つ) をトレーニングするには、355 年と 460 万ドルかかります。 人工知能は現在、コミュニティが「Linuxの時代」と呼ぶ時期を迎えています。開発者は、パフォーマンス、コスト、使いやすさ、柔軟性のトレードオフに基づいて、独自仕様モデルとオープンソースモデルという2種類の基盤モデルから選択する必要があります。 グラフの独自モデルとオープンソースの基礎モデル(画像作成者、 Fiddler.aiに触発された) プロプライエタリモデルとは、大規模な専門家チームと多額のAI予算を持つ企業が所有する、クローズドソースの基礎モデルです。通常、オープンソースモデルよりも規模が大きく、パフォーマンスも優れています。また、入手しやすく、一般的に使いやすいという特徴もあります。 独自開発モデルの主な欠点は、高価なAPI(アプリケーション・プログラミング・インターフェース)です。さらに、クローズドソースのベースモデルは、開発者にとって柔軟性がほとんど、あるいは全くありません。
オープンソースモデルは通常、コミュニティハブとしてHuggingFace上に組織化され、ホストされています。通常、オープンソースモデルはプロプライエタリモデルよりも機能が限定され、小規模です。しかし、プロプライエタリモデルよりもコスト効率が高く、開発者に高い柔軟性を提供できるという利点があります。
ステップ2: 下流のタスクに適応する ベースモデルを選択したら、LLM APIを介してLLMにアクセスできます。他のAPIに慣れている場合、LLM APIの使用は最初は少し違和感があるかもしれません。どのような入力がどのような出力につながるのかが不明瞭だからです。テキストプロンプトに対しては、APIはパターンに一致するテキスト補完を返します。 これはOpenAI APIの使用例です。APIをプロンプトとして入力します。例えば、prompt="これを標準英語に修正してください:\n\nShe no went to the market."のように入力します。 API は、完了した応答 response['choices'][0]['text'] = "She did not go to the market." を含む応答を出力します。 主な課題は、LLM は強力ではあるものの万能薬ではないということです。そのため、重要な質問は、 LLM で望む成果を得るにはどうすればよいかということです。 LLMの生産現場に関する調査[4]では、回答者が挙げた問題点の一つとして、モデルの精度と錯覚が挙げられました。これは、LLM APIから目的の形式で出力を取得するには、ある程度の反復処理が必要になる可能性があり、LLMが必要な特定の知識を持っていない場合、錯覚が生じる可能性があることを意味します。これらの問題に対処するために、以下の方法でベースモデルを下流のタスクに適応させることができます。
プロジェクトを示唆する画像(チップ・ヒューエン氏[c]からインスピレーションを得て著者が作成した画像)
LLMを微調整した画像(チップ・ヒューエン[2]のインスピレーションに基づいて著者が作成した画像)
ステップ3: 評価 LLM の評価を支援するために、HoneyHive や HumanLoop などのツールが登場しました。 ステップ4: 展開と監視 LLMの完成度はリリースごとに大きく異なる可能性があります[2]。例えば、OpenAIはヘイトスピーチなどの不適切なコンテンツの生成を軽減するためにモデルを更新しました。その結果、Twitterで「AI言語モデルとして」というフレーズを検索すると、無数のボットがヒットするようになりました。 これは、LLM ベースのアプリケーションを構築するには、基盤となる API モデルの変更を監視する必要があることを示しています。 [Whylabs]( https://whylabs.ai/) や [HumanLoop](https://humanloop.com/) など、LLM を監視するためのツールが登場しています。 03 LLMOps と MLOps の違いは何ですか? MLOpsとLLMopsの違いは、従来のMLモデルとLLMをAI製品の構築に利用する方法の違いに起因します。これらの違いは主に、データ管理、実験、評価、コスト、レイテンシに影響を及ぼします。 データ管理 従来のMLOpsでは、大量のデータを必要とする機械学習モデルに慣れています。ニューラルネットワークをゼロから学習させるには大量のラベル付きデータが必要であり、事前学習済みモデルの微調整でさえ少なくとも数百のサンプルが必要です。データクリーニングは機械学習開発プロセスにおいて不可欠ですが、大規模データセットの欠点は認識しており、私たちはそれを受け入れています。 LLMOpsにおけるファインチューニングはMLOpsに似ています。ただし、Promptプロジェクトはゼロショットまたは少数ショットの学習設定です。つまり、厳選された少数のサンプルのみを使用します[5]。 実験 MLOpsでは、モデルをゼロからトレーニングする場合でも、事前トレーニング済みのモデルを微調整する場合でも、実験は非常に似ています。どちらの場合も、モデルアーキテクチャ、ハイパーパラメータ、データ拡張などの入力と、メトリクスなどの出力を追跡します。 しかし、LLMOpsにおいては、 Promptプロジェクトを実行するか、それとも微調整プロセスを実行するかが問題となります[2, 5]。LLMOpsにおける微調整はMLOpsと似ているように見えるかもしれませんが、Promptプロジェクトでは、Promptの管理を含め、異なる実験設定が必要となります。 評価する 従来のMLOpsでは、モデルのパフォーマンスは、予約された検証セット[5]における評価指標を用いて評価されます。LLMのパフォーマンス評価はより困難であるため、現在、多くの組織ではA/Bテストが用いられているようです[5]。 料金 従来のMLOpsのコストは通常、データ収集とモデル学習にかかるのに対し、LLMOpsのコストは推論にかかるものです[2]。実験中に高価なAPIを使用することで多少のコストがかかることは予想されますが[5]、Chip Huyen[2]は、長いヒントのコストは推論にかかることを示しています。 遅れ LLMプロダクション調査[4]の回答者が挙げたもう一つの課題はレイテンシです。LLMの完了にかかる時間はレイテンシに大きな影響を与えます[2]。MLOpsでもレイテンシは考慮する必要がありますが、LLMOpsでは開発における実験のスピード[5]とプロダクションにおけるユーザーエクスペリエンスの両方にとって重要な問題であるため、より顕著です。 04 LLMOpsの未来 LLMOpsは新興分野です。急速な発展を遂げているため、予測は困難です。「LLMOps」という用語が長期的に意味を持ち続けるかどうかさえ不透明です。確かなのは、LLMの新たなユースケースが数多く登場し、LLMライフサイクルを管理するためのツールやベストプラクティスも登場するということです。 人工知能分野は急速に進化しており、今私たちが書いたものはすべて1ヶ月以内に時代遅れになる可能性があります。LLM駆動型アプリケーションの本番環境への導入はまだ初期段階です。まだ答えが出ていない疑問が数多くありますが、今後の展開は時が経てば分かるでしょう。
近い将来、多くの開発や新しいツール、ベストプラクティスが登場すると確信しています。さらに、基本モデルのコストと遅延を削減するための取り組みも既に始まっています[2]。まさに今が興味深い時期です! 05 要約 OpenAIのChatGPTのリリース以来、LLMは人工知能分野で注目を集めています。これらの深層学習モデルは人間の言語による出力を生成できるため、会話型AI、ライティングアシスタント、プログラミングアシスタントなどのタスクに強力なツールとして活用されています。 しかし、LLM 駆動型アプリケーションを本番環境に導入するには独自の課題があり、「LLMOps」という新しい用語が登場しました。これは、開発、展開、保守を含む LLM 駆動型アプリケーションのライフサイクルを管理するための一連のツールとベストプラクティスを指します。 LLMOpsはMLOpsのサブカテゴリと見なすことができます。ただし、LLM駆動型アプリケーションの構築手順は、従来のMLモデルを使用したアプリケーションの構築手順とは異なります。 焦点はLLMをゼロから学習することではなく、事前学習済みのLLMを下流のタスクに適応させることにあります。これには、ベースモデルの選択、下流のタスクでLLMを使用し、それらを評価し、モデルのデプロイとモニタリングが含まれます。 LLMOpsはまだ比較的新しい分野ですが、AI業界でLLMが普及するにつれて、今後も発展と進化を続けると予想されます。LLMとLLMOpsの台頭は、AI駆動型製品の構築と保守における大きな変化を表しています。 LLMOpsに関する推奨読書 参考文献 |