GreptimeAI + Xinference 共同ソリューション: LLM アプリケーションを効率的に展開して監視します

人工知能テクノロジーの急速な進歩に伴い、OpenAI はこの分野のリーダーの 1 つとして浮上しました。機械翻訳、テキスト分類、テキスト生成など、さまざまな言語処理タスクで優れたパフォーマンスを発揮します。 OpenAI の台頭により、Llama、ChatGLM、Qwen など、他の多くの高品質なオープンソースの大規模言語モデルが登場しました。これらの優れたオープンソース モデルは、チームが優れた LLM アプリケーションを迅速に構築するのにも役立ちます。

しかし、非常に多くの選択肢がある中で、開発コストを削減しながら OpenAI インターフェイスを統一的に使用するにはどうすればよいでしょうか?開発をさらに複雑にすることなく、LLM アプリケーションの実行パフォーマンスを効率的かつ継続的に監視するにはどうすればよいでしょうか? GreptimeAI と Xinference は、これらの問題に対する実用的な解決策を提供します。

GreptimeAIとは

GreptimeAI は、オープン ソースの時系列データベース GreptimeDB 上に構築されており、大規模言語モデル (LLM) アプリケーション用の可観測性ソリューションのセットであり、現在、LangChain および OpenAI エコシステムをサポートしています。 GreptimeAI を使用すると、コスト、パフォーマンス、トラフィック、セキュリティをリアルタイムで包括的に理解できるようになり、チームが LLM アプリケーションの信頼性を向上できるようになります。

シンファレンスとは

Xinference は、大規模言語モデル (LLM)、音声認識モデル、およびマルチモーダル モデル向けに設計されたオープンソースのモデル推論プラットフォームであり、民営化された展開をサポートします。 Xinference は、OpenAI API と互換性のある RESTful API を提供し、 LangChain、LlamaIndex、 Dify.AIなどのサードパーティ開発者ツールを統合して、モデルの統合と開発を促進します。 Xinference は、複数の LLM 推論エンジン (Transformers、vLLM、GGML など) を統合し、さまざまなハードウェア環境に適しており、分散マルチマシン展開をサポートして、複数のデバイスまたはマシン間でモデル推論タスクを効率的に割り当てて、マルチマシンのニーズを満たすことができます。モデルと高速コンピューティングの導入ニーズ。

GreptimeAI + Xinference LLM アプリケーションのデプロイ/監視

次に、Qwen-14B モデルを例として、Xinference を使用してモデルをローカルにデプロイして実行する方法を詳しく紹介します。ここでは、OpenAI 関数呼び出し (Function Calling) に似たメソッドを使用して天気クエリを実行する例を示し、GreptimeAI を使用して LLM アプリケーションの使用状況を監視する方法を示します。

GreptimeAIの構成情報の登録と取得

https://console.greptime.cloudにアクセスしてサービスを登録し、AI ダッシュボードに移動した後、[セットアップ] ページをクリックして OpenAI 構成情報を取得します。

Xinference モデル サービスを開始する

Xinference モデル サービスをローカルで開始するのは非常に簡単で、次のコマンドを入力するだけです。

xinference-local -H 0.0.0.0

Xinference はデフォルトでサービスをローカルで開始します。デフォルトのポートは 9997 です。 Xinference をローカルにインストールするプロセスはここでは省略します。インストールについてはこの記事を参照してください。

Web UI 経由でモデルを開始する

Xinference が開始されたら、ブラウザにhttp://localhost:9997と入力してWeb UI にアクセスします。

コマンドラインからモデルを開始する

Xinference のコマンド ライン ツールを使用してモデルを開始することもできます。デフォルトのモデル UID は qwen-chat です (モデルは後でこの ID を通じてアクセスされます)。

xinference launch -n qwen-chat -s 14 -f pytorch

OpenAI スタイルのインターフェースを通じて気象情報を取得する

get_current_weatherパラメータと を指定して関数を呼び出すことで、指定した都市の気象情報を取得できるlocationしますformat

OpenAI の構成とインターフェイスの呼び出し

OpenAI の Python SDK を通じて Xinference ローカル ポートにアクセスし、GreptimeAI を使用してデータを収集し、chat.completionsインターフェイスを使用して会話を作成し、tools定義したばかりの関数リストを指定します。

from greptimeai import openai_patcher
from openai improt OpenAI

client = OpenAI(
    base_url="http://127.0.0.1:9997/v1",
)
openai_patcher.setup(client=client)

messages = [
    {"role": "system", "content": "你是一个有用的助手。不要对要函数调用的值做出假设。"},
    {"role": "user", "content": "上海现在的天气怎么样?"}
]
chat_completion = client.chat.completions.create(
    model="qwen-chat",
    messages=messages,
    tools=tools,
    temperature=0.7
)
print('func_name', chat_completion.choices[0].message.tool_calls[0].function.name)
print('func_args', chat_completion.choices[0].message.tool_calls[0].function.arguments)

ツールの詳細

関数呼び出し 関数 (ツール) リストは以下に定義されており、必須フィールドが指定されています。

tools = [
    {
        "type": "function",
        "function": {
            "name": "get_current_weather",
            "description": "获取当前天气",
            "parameters": {
                "type": "object",
                "properties": {
                    "location": {
                        "type": "string",
                        "description": "城市,例如北京",
                    },
                    "format": {
                        "type": "string",
                        "enum": ["celsius", "fahrenheit"],
                        "description": "使用的温度单位。从所在的城市进行推断。",
                    },
                },
                "required": ["location", "format"],
            },
        },
    }
]

chat_completion出力は次のとおりです。Qwenモデルによって生成された関数呼び出しを取得したことがわかります。

func_name: get_current_weather
func_args: {"location": "上海", "format": "celsius"}

関数呼び出し結果を取得し、再度インターフェースを呼び出します。

ここでは、指定されたパラメーターを使用して関数を呼び出してget_current_weather結果を取得し、その結果とコンテキストを Qwen モデルに再送信すると仮定します。

messages.append(chat_completion.choices[0].message.model_dump())
messages.append({
    "role": "tool",
    "tool_call_id": messages[-1]["tool_calls"][0]["id"],
    "name": messages[-1]["tool_calls"][0]["function"]["name"],
    "content": str({"temperature": "10", "temperature_unit": "celsius"})
})

chat_completion = client.chat.completions.create(
    model="qwen-chat",
    messages=messages,
    tools=tools,
    temperature=0.7
)
print(chat_completion.choices[0].message.content)

最終結果

Qwen モデルは最終的に次のような応答を出力します。

上海现在的温度是 10 摄氏度。

GreptimeAI 看板

GreptimeAI ダッシュボード ページでは、トークン、コスト、レイテンシー、トレースなどの主要な指標を含む、OpenAI インターフェイスに基づくすべての通話データを包括的かつリアルタイムで監視できます。以下にダッシュボードの概要ページを示します。

要約する

オープン ソース モデルを使用して LLM アプリケーションを構築し、OpenAI スタイルを使用して API 呼び出しを行う場合は、Xinference を使用して推論モデルを管理し、GreptimeAI を使用してモデルの動作を監視するのが良い選択です。複雑なデータ分析を実行している場合でも、単純な日常のクエリを実行している場合でも、Xinference は強力で柔軟なモデル管理機能を提供できます。同時に、GreptimeAI の監視機能と組み合わせることで、モデルのパフォーマンスとリソース消費をより効率的に理解して最適化できます。

私たちは皆さんの試みを楽しみにしており、GreptimeAI と Xinference を使用した経験や洞察を共有することを歓迎します。人工知能の無限の可能性を一緒に探求しましょう!

Greptime についての知識:

Greptime Greptime Technology は 2022 年に設立され、現在、時系列データベース GreptimeDB、GreptimeCloud、可観測性ツール GreptimeAI の 3 つの製品の改善と構築を行っています。

GreptimeDB は、Rust 言語で書かれた時系列データベースであり、分散型、オープンソース、高い互換性を備えており、企業が時系列データをリアルタイムで読み取り、書き込み、処理し、分析するのに役立ちます。 GreptimeAI は、可観測性、モノのインターネット、その他の分野と高度に統合できるフルマネージド DBaaS サービスをユーザーに提供し、コスト、パフォーマンス、生成プロセスのフルリンク監視を提供します。

GreptimeCloud と GreptimeAI は正式にテストされています。最新の開発状況については、公式アカウントまたは公式 Web サイトをフォローしてください。

公式サイト:https://greptime.cn/

GitHub: https://github.com/GreptimeTeam/greptimedb

ドキュメント: https://docs.greptime.cn/

Twitter: https://twitter.com/Greptime

スラック: https://greptime.com/slack

LinkedIn: https://www.linkedin.com/company/greptime/

1990 年代生まれのプログラマーがビデオ移植ソフトウェアを開発し、1 年足らずで 700 万以上の利益を上げました。結末は非常に罰的でした。 高校生が成人式にオープンソースプログラミング言語を自作―ネチズンの鋭いコメント: 詐欺横行でRustDesk依存、国内サービスの タオバオ(taobao.com)は国内サービスを一時停止、ウェブ版の最適化作業を再開 Java最も一般的に使用されている Java LTS バージョンは 17 、Windows 11 は減少し続ける Open Source Daily | Google がオープンソースの Rabbit R1 を支持、Microsoft の不安と野心; Electricがオープンプラットフォームを閉鎖 AppleがM4チップをリリース GoogleがAndroidユニバーサルカーネル(ACK)を削除 RISC-Vアーキテクチャのサポート Yunfengがアリババを辞任し、将来的にはWindowsプラットフォーム用の独立したゲームを制作する予定
{{名前}}
{{名前}}

おすすめ

転載: my.oschina.net/u/6839317/blog/10937278