Skip to content

Latest commit

 

History

History
241 lines (194 loc) · 12.9 KB

README_ja_JP.md

File metadata and controls

241 lines (194 loc) · 12.9 KB
xorbits

Xorbits Inference: モデルサービングを簡単に 🤖

PyPI Latest Release License Build Status Slack Twitter

English | 中文介绍 | 日本語


Xorbits Inference(Xinference) は、言語、音声認識、マルチモーダルモデルのために 設計された強力で汎用性の高いライブラリです。 Xorbits Inference を使えば、たった 1 つのコマンドで、 あなたや最先端のビルトインモデルを簡単にデプロイし、提供することができます。 Xorbits Inference は、 研究者、開発者、データサイエンティストを問わず、最先端の AI モデルの可能性を最大限に引き出すことができます。

主な特徴

🌟 モデルサービングを簡単に: 大規模な言語、音声認識、マルチモーダルモデルの提供プロセスを簡素化します。 1つのコマンドで、実験用と本番用のモデルをセットアップしてデプロイできます。

⚡️ 最先端モデル: コマンド1つで最先端のビルトインモデルを実験。 Inference は、最先端のオープンソースモデルへのアクセスを提供します!

🖥 異機種ハードウェアの利用: ggml でハードウェアリソースを最大限に活用しましょう。 Xorbits Inference は、GPU や CPU を含む異種ハードウェアをインテリジェントに利用し、モデル推論タスクを高速化します。

⚙️ 柔軟な API とインターフェース: OpenAI互換のRESTful API(Function Callingを含む)、RPC、コマンドライン、Web UIなど、 多様なインターフェースを提供し、モデルの管理と相互作用を容易にします。

🌐 配布デプロイメント: Excel の分散展開シナリオでは、複数のデバイスやマシンにモデルの推論をシームレスに分散させることができます。

🔌 サードパーティライブラリとの組み込み統合: Xorbits Inference は、LangChainLlamaIndex のような人気のあるサードパーティライブラリと シームレスに統合されています。

なぜ Xinference を選ぶのか

機能 Xinference FastChat OpenLLM RayLLM
OpenAI 互換の RESTful API
vLLM 統合
その他の推論エンジン(GGML、TensorRT)
その他のプラットフォーム(CPU、Metal)
マルチノードクラスター展開
画像モデル(テキストから画像へ)
テキスト埋め込みモデル
より多くのOpenAI機能(関数呼び出し)

はじめに

Xinference は PyPI から pip 経由でインストールできます。コンフリクトを避けるため、新しい仮想環境を作成することを強く推奨します。

インストール

$ pip install "xinference"

xinference はモデルを提供するための基本的なパッケージをインストールします。

GGML でのインストール

ggml モデルを提供するためには、以下の追加依存関係をインストールする必要があります:

$ pip install "xinference[ggml]"

異なるハードウェアでアクセラレーションを実現したい場合は、 対応するパッケージのインストールマニュアルを参照してください。

  • baichuanwizardlm-v1.0vicuna-v1.3orca を実行するには、llama-cpp-python が必要である。
  • chatglmchatglm2 を実行するには、chatglm-cpp-python が必要である。

PyTorch でのインストール

PyTorch のモデルを提供するには、以下の依存関係をインストールする必要があります:

$ pip install "xinference[transformers]"

すべての依存関係を含むインストール

サポートされているすべてのモデルにサービスを提供したい場合は、すべての依存関係をインストールします:

$ pip install "xinference[all]"

デプロイ

Xinference は、1 つのコマンドでローカルにデプロイすることも、分散クラスタにデプロイすることもできます。

ローカル

Xinference のローカルインスタンスを起動するには、以下のコマンドを実行します:

$ xinference-local

配布

Xinference をクラスタに展開するには、1 台のサーバーで Xinference supervisor を起動し、他のサーバーで Xinference workers を起動する必要があります。以下の手順に従ってください:

supervisor のスタート: Xinference supervisor を実行するサーバーで、以下のコマンドを実行します:

$ xinference-supervisor -H "${supervisor_host}"

${supervisor_host} を実際の supervisor サーバのホストに置き換えます。

Workers のスタート: Xinference ワーカーを実行したい他の各サーバーで、以下のコマンドを実行します:

$ xinference-worker -e "http://${supervisor_host}:9997"

Xinference が起動すると、CLI または Xinference クライアントからモデル管理のためのエンドポイントにアクセスできるようになります。

  • ローカル配置の場合、エンドポイントは http://localhost:9997 となります。
  • クラスタ展開の場合、エンドポイントは http://${supervisor_host}:9997 になります。 ${supervisor_host} は supervisor が稼動しているサーバのホスト名または IP アドレスです。

また、Xinference エンドポイントを使用してウェブ UI を表示し、すべての内蔵モデルとチャットすることもできます。

web UI

Xinference CLI

Xinference には、モデル管理のためのコマンドラインインターフェース(CLI)が用意されています。便利なコマンドをいくつか紹介します:

  • モデルを起動する(モデルの UID が返される): xinference launch
  • 実行中のモデルをリストアップする: xinference list
  • 全てのビルトインモデルをリストアップする: xinference registrations
  • モデルを終了する: モデルの終了: xinference terminate --model-uid ${model_uid}

Xinference クライアント

Xinference は、プログラムでモデルを管理し、アクセスするためのクライアントも提供しています:

from xinference.client import Client

client = Client("http://localhost:9997")
model_uid = client.launch_model(model_name="chatglm2")
model = client.get_model(model_uid)

chat_history = []
prompt = "What is the largest animal?"
model.chat(
    prompt,
    chat_history,
    generate_config={"max_tokens": 1024}
)

結果:

{
  "id": "chatcmpl-8d76b65a-bad0-42ef-912d-4a0533d90d61",
  "model": "56f69622-1e73-11ee-a3bd-9af9f16816c6",
  "object": "chat.completion",
  "created": 1688919187,
  "choices": [
    {
      "index": 0,
      "message": {
        "role": "assistant",
        "content": "The largest animal that has been scientifically measured is the blue whale, which has a maximum length of around 23 meters (75 feet) for adult animals and can weigh up to 150,000 pounds (68,000 kg). However, it is important to note that this is just an estimate and that the largest animal known to science may be larger still. Some scientists believe that the largest animals may not have a clear \"size\" in the same way that humans do, as their size can vary depending on the environment and the stage of their life."
      },
      "finish_reason": "None"
    }
  ],
  "usage": {
    "prompt_tokens": -1,
    "completion_tokens": -1,
    "total_tokens": -1
  }
}

その他の例は examples を参照。

内蔵モデル

内蔵モデルを表示するには、以下のコマンドを実行します:

$ xinference registrations
Type Name Language Ability
LLM baichuan ['en', 'zh'] ['generate']
LLM baichuan-2 ['en', 'zh'] ['generate']
LLM baichuan-2-chat ['en', 'zh'] ['chat']
LLM baichuan-chat ['en', 'zh'] ['chat']
LLM chatglm ['en', 'zh'] ['chat']
LLM chatglm2 ['en', 'zh'] ['chat']
LLM chatglm2-32k ['en', 'zh'] ['chat']
LLM chatglm3 ['en', 'zh'] ['chat']
LLM chatglm3-32k ['en', 'zh'] ['chat']
LLM code-llama ['en'] ['generate']
LLM code-llama-instruct ['en'] ['chat']
LLM code-llama-python ['en'] ['generate']
LLM falcon ['en'] ['generate']
LLM falcon-instruct ['en'] ['chat']
LLM glaive-coder ['en'] ['chat']
LLM gpt-2 ['en'] ['generate']
LLM internlm-20b ['en', 'zh'] ['generate']
LLM internlm-7b ['en', 'zh'] ['generate']
LLM internlm-chat-20b ['en', 'zh'] ['chat']
LLM internlm-chat-7b ['en', 'zh'] ['chat']
LLM llama-2 ['en'] ['generate']
LLM llama-2-chat ['en'] ['chat']
LLM mistral-instruct-v0.1 ['en'] ['chat']
LLM mistral-v0.1 ['en'] ['generate']
LLM OpenBuddy ['en'] ['chat']
LLM openhermes-2.5 ['en'] ['chat']
LLM opt ['en'] ['generate']
LLM orca ['en'] ['chat']
LLM qwen-chat ['en', 'zh'] ['chat']
LLM starchat-beta ['en'] ['chat']
LLM starcoder ['en'] ['generate']
LLM starcoderplus ['en'] ['generate']
LLM tiny-llama ['en'] ['generate']
LLM vicuna-v1.3 ['en'] ['chat']
LLM vicuna-v1.5 ['en'] ['chat']
LLM vicuna-v1.5-16k ['en'] ['chat']
LLM wizardcoder-python-v1.0 ['en'] ['chat']
LLM wizardlm-v1.0 ['en'] ['chat']
LLM wizardmath-v1.0 ['en'] ['chat']
LLM Yi ['en', 'zh'] ['generate']
LLM Yi-200k ['en', 'zh'] ['generate']
LLM zephyr-7b-alpha ['en'] ['chat']
LLM zephyr-7b-beta ['en'] ['chat']

:

  • Xinference は自動的にモデルをダウンロードし、デフォルトでは ${USER}/.xinference/cache の下に保存されます。
  • Hugging Face からモデルをダウンロードする際に問題が発生した場合は、 export XINFERENCE_MODEL_SRC=xorbits を実行して、ミラーサイトからモデルをダウンロードしてください。

カスタムモデル

カスタムモデルを参照してください。