MLflow AI GatewayとLlama 2を使ってジェネレーティブAIアプリを構築する
翻訳:Junichi Maruyama. - Original Blog Link
顧客サポートボット、社内ナレッジグラフ、またはQ&Aシステムを構築するために、顧客は多くの場合、事前に訓練されたモデルを独自のデータと一緒に活用するRAG(Retrieval Augmented Generation)アプリケーションを使用します。しかし、安全なクレデンシャル管理と不正使用防止のためのガードレールがないため、お客様はこれらのアプリケーションへのアクセスと開発を民主化することができません。私たちは最近、MLflow AI Gatewayを発表しました。これは拡張性の高いエンタープライズグレードのAPIゲートウェイで、組 織がLLMを管理し、実験や生産に利用できるようにします。本日、AI Gatewayを拡張し、RAGアプリケーションをより良くサポートすることを発表できることを嬉しく思います。組織は、プライベートホスティングモデルAPI(Databricks Model Serving経由)、プロプライエタリAPI(OpenAI、Co:here、Anthropic)、そして今回MosaicML経由のオープンモデルAPIのガバナンスを一元化し、安心してRAGアプリケーションを開発・展開できるようになりました。
このブログポストでは、MosaicMLの Starter Tier Inference APIsを通じてホストされ最適化された、テキスト生成用のLlama2-70B-Chat modelとテキスト埋め込み用の Instructor-XLモデルを使って、Databricks Lakehouse AIプラットフォーム上でRAGアプリケーションを構築しデプロイする方法を説明します。ホストされたモデルを使うことで、私たちはすぐに始めることができ、低いスループットで実験するための費用対効果の高い方法を手に入れることができます。
このブログで構築しているRAGアプリケーションは、ガーデニングの質問に答え、植物の手入れ方法を推奨します。
What is RAG?
RAGは、顧客が自身のデータを活用することで、モデルのパフォーマンスを向上させることができる一般的なアーキテクチャである。これは、関連するデータやドキュメントを取得し、LLMのコンテキストとして提供することで実現される。RAGは、最新の情報を維持したり、ドメイン固有の知識にアクセスしたりする必要があるチャットボットやQ&Aシステムで成功を収めている。
AI Gatewayを使用して、モデルAPIを呼び出すためのガードレールを設置する
最近発表されたMLflow AI Gatewayは、組織がRouteと呼ばれるオブジェクトを介して、SaaS LLMを含むモデルAPIのガバナンス、クレデンシャル管理、レート制限を一元化することを可能にします。Routeを配布することで、組織はLLMへのアクセスを民主化すると同時に、ユーザーの行動がシステムを悪用したりダウンさせたりしないようにすることができます。AIゲートウェイはまた、LLMをクエリするための標準インターフェースを提供し、新しい最先端のモデルがリリースされたときに、Routeの背後にあるモデルを簡単にアップグレードできるようにします。
私たちは通常、組織がユースケースごとにRouteを作成し、多くのRouteが同じモデルAPIエンドポイントを指し、それが十分に活用されていることを確認するのを見ます。
このRAGアプリケーションでは、2つのAI Gateway Routesを作成したいと思います。1つは埋め込みモデル用、もう1つはテキスト生成モデル用です。ベンダーロックインを避けるために、将来的にファインチューニングやプライベートホスティングのためにサポートされる経路を持ちたいからです。そのためにMosaicMLの推論APIを使います。これらのAPIは、迅速な実験とトークン・ベースの価格設定のために、最先端のオープンソース・モデルへの迅速で簡単なアクセスを提供します。MosaicMLはテキスト補完にMPT と Llama2 モデル、テキスト埋め込みにInstructorモデルをサポートしています。この例では、2兆個のトークンで学習され、Metaによって対話、安全性、有用性をファインチューニングされたLlama2-70b-Chatと、HKUNLPによって1.2Bパラメータ命令でファインチューニングされた埋め込みモデルのInstructor-XLを使います。
AIゲートウェイのMosaicML推論APIの新しいサポートを使って、Llama2-70B-Chatのルートを簡単に作成できます:
上記で設定したテキスト補完ルートと同様に、MosaicML Inference APIで利用可能なInstructor-XL用の別のルートを作成することができます。
MosaicMLホストモデルのAPIキーを取得するには、こちらからサインアップしてください。
LangChainを使ってレトリーバーとテキスト生成を組み合わせる
ここで、ドキュメントの類似度をリアルタイムで検索できるように、ドキュメントの埋め込みからベクトル・インデックスを構築する必要があります。LangChainを使い、AI Gateway Routeに埋め込みモデルを指定します:
次に、プロンプト・テンプレートとテキスト生成モデルをつなぎ合わせる必要がある:
RetrievalQAチェーンは、ベクトルデータベースから検索された文書がテキスト要約モデルのコンテキストとなるように、2つのコンポーネントを連鎖させる:
MLflow LangChain flavorを使用してチェーンを記録し、DatabricksのCPU Model Servingエンドポイントにデプロイすることができます。MLflowを使用することで、モデルのバージョニングが自動的に行われ、本番プロセスに厳密性が加わります。
POCの完了後、品質向上のための実験を行う
要件に応じて、アプリケーションを本番稼動させるための適切な最適化を見つけるために実行できる多くの実験があります。MLflow のトラッキングおよび評価 API を使用すると、すべてのパラメータ、ベースモデル、パフォーマン ス指標、およびモデル出力をログに記録し、比較することができます。MLflow の新しい評価 UI を使用すると、モデル出力を並べて簡単に比較することができ、MLflow の追跡および評価データはすべて、さらなる分析のためにクエリ可能な形式で保存されます。よく見られる実験
- Latency - レイテンシーとコストを削減するため、小型モデルを試す
- Quality - オープンソースモデルを独自のデータで微調整してみてください。これは、ドメイン固有の知識や、望ましい応答形式を遵守するのに役立ちます
- Privacy - Databricks LLM-Optimized GPU Model Serving上でモデルをプライベートホスティングし、AI Gatewayを使用して、ユースケース全体でエンドポイントをフル活用してみてください
MosaicMLとLakehouse AIでRAGアプリケーションの開発を始めよう
Databricks Lakehouse AIプラットフォームにより、開発者は安心してGenerative AIアプリケーションを迅速に構築・展開することができます。上記のチャットアプリケーションをあなたの組織で再現するには、以下のものが必要です:
- テキスト埋め込みモデルやllama2-70b-chatに素早く簡単にアクセスできるMosaicML APIキー。アクセスするにはここからサインアップしてください。here
- MLflow AI Gateway Previewに参加してモデルAPIへのアクセスを管理する
RAGアプリケーションをさらに探求し、強化する:
- Databricks GPU Model Serving Previewに参 加すると、最先端のオープンソースまたはカスタマイズされたモデルをプライベートホストできます。
- Databricks Vector Search Previewに参加すると、サーバーレスでスケーラブルなベクトル類似性検索がLakehouse AIと緊密に統合されます。
- Databricks AutoML Embeddings Previewでは、エンベッディングをドメイン固有のプライベートデータにカスタマイズできます。
- MosaicMLであなたのLLMを独自のFine-tune または事前学習 して、IPを所有しましょう。