MLflow AI Gatewayはこれらの課題に対処するためのツールとして設計され、特定のモデルプロバイダ(例:OpenAI、Anthropicなど)に対して、一元化されたインターフェースを提供します。これにより、APIトークンの管理や利用コストのコントロール、ガバナンスの強化が実現します。
本記事では、MLflow AI Gatewayのセットアップ方法と、APIドキュメントへのアクセス方法、そしてGatewayを利用したレクエスト方法について解説します。ここでは、特にOpenAIを例に挙げて説明しますが、MLflow AI Gatewayは他の多くのプロバイダにも対応しています。 詳細は公式ドキュメントを参考にしてください。
Note
MLflow 2.5以降が必要です。
MLflow AI Gatewayのセットアップ
このセクションでは、MLflow AI Gatewayのセットアップについてに解説します。 環境の準備、必要なコンフィグレーションの設定、Gatewayの起動について説明します。 詳細は、GitHubレポジトリを参考にしてください。
インストール
pip install 'mlflow[gateway]'
OpenAI API Keyの設定
pip install 'mlflow[gateway]'
設定ファイルの用意
MLflow AI Gatewayの動作には、適切な設定ファイルが必要です。このファイルでは、ルート、プロバイダー、モデルなどの重要なパラメータを定義します。
上記のようにMLflow AI Gatewayサーバーを起動すると、Swaggerによるlocalhost:5000に自動的にAPIドキュメントが生成されます。
Fluent APIによるリクエストの実行
MLflow AI Gatewayがセットアップされたら、Fluent APIを利用してリクエストを実行できます。他にも、Client API, REST APIも利用可能です。
Code
from mlflow.gateway import query, set_gateway_uriset_gateway_uri(gateway_uri="http://localhost:5000")response = query("chat", {"messages": [{"role": "user", "content": "What is the best day of the week?"}]},)import pprintpprint.pprint(response)
{'candidates': [{'message': {'content': 'The best day of the week is '
'subjective and can vary depending on '
'individual preferences and '
'circumstances. Some people may prefer '
'weekends (Saturday and Sunday) as '
'they offer a break from work or '
'school and allow for relaxation or '
'leisure activities. Others may enjoy '
'Fridays as they mark the end of the '
'workweek and the beginning of the '
'weekend. Ultimately, the best day of '
'the week is a personal preference.',
'role': 'assistant'},
'metadata': {'finish_reason': 'stop'}}],
'metadata': {'input_tokens': 16,
'model': 'gpt-3.5-turbo-0613',
'output_tokens': 78,
'route_type': 'llm/v1/chat',
'total_tokens': 94}}
まとめ
本記事では、MLflow AI Gatewayのセットアップ方法とその使用方法について詳細に説明しました。MLflow AI Gatewayを使用することで、大規模言語モデルの管理が効果的に行えるため、セキュリティ、コスト、ガバナンスの各観点での課題に対処できます。また、異なるプロバイダのモデルも一元化されたインターフェースを通じてアクセスできるため、開発の効率化が図れます。