1
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

XinferenceにhuggingfaceからRuriシリーズのモデルを登録

Last updated at Posted at 2025-02-04

はじめに

前回の続き

Difyにモデルプロバイダーを統合する上で、OllamaはLLMとText Embeddingのみのようだけど、Xinferenceはこれに加えてRerank, Speech-to-Text, Text-to-Speechもサポートしている様子。
Xinference経由で標準モデル以外を入れたい、日本語特化モデルが無いしね。
どうやらRegister modelから登録できるようだけどドキュメントが見当たらない。公式を参考にするしかないか。
公式ドキュメント > Models > Custom Models

モチベーション

  • LLM, Embedding, Rerankをすべて日本語モデルでRAGを構築したい
  • GGUF形式以外のモデルも使えるようにしたい
  • huggingfaceの膨大な公開モデルから自由に選択したい

JSONの用意

名大 笹野研のRuriが良いようなので、ありがたく使わせて頂きます。

hppさんの記事: Ruri: 日本語に特化した汎用テキスト埋め込みモデル
ぬこぬこさんの記事: 日本語の高性能な文埋め込みモデルを試す

LLMは前回いれたcyberagentが日本語でファインチューニングしたDeepSeek-R1のまま。

公式によるとURLの記述がなかったらmodel_idでhuggingfaceのリポジトリを読みに行くそうな。なんて素晴らしいんだ!!
ファイル形式に指定はないのかな。

model_id: A string representing the model ID, possibly referring to an identifier used by Hugging Face. If model_uri is missing, Xinference will try to download the model from the huggingface repository specified here..

とりあえずJSONにhuggingfaceのモデルを書いて準備する。

Embedding model

ruri-large

ruri-large.json
{
    "model_name": "ruri-large",
    "model_type": "embedding",
    "model_id": "cl-nagoya/ruri-large",
    "dimensions": 1024,
    "max_tokens": 512,
    "language": [
        "ja"
    ]
}

model_typeをembeddingにして、dimとmax tokenは公式の数値を指定しています。
model_idはhuggingfaceのリポジトリ名とモデル名を入れる。

Rerank model

ruri-reranker-large

Rerankも同じ要領で、typeをnormalに指定するくらい。

ruri-reranker-large.json
{
    "model_name": "ruri-reranker-large",
    "type": "normal",
    "model_id": "cl-nagoya/ruri-reranker-large",
    "language": [
        "ja"
    ]
}

xinferenceのコンテナにモデルを登録

前回 docker composeで起動しておいたxinferenceコンテナにjsonを入れてCLIで登録を実行します。

まずはEmbedding model

  1. JSONをコピー
    docker cp ruri-large.json xinference:/ruri-large.json
    
  2. コンテナの外(ホスト)から登録を試みる
    docker exec -it xinference xinference register --model-type embedding --file /ruri-large.json --persist
    

次にRerank model

  1. JSONをコピー
    docker cp ruri-reranker-large.json xinference:/ruri-reranker-large.json
    
  2. コンテナの外(ホスト)から登録を試みる
    docker exec -it xinference xinference register --model-type rerank --file /ruri-reranker-large.json --persist
    

登録したモデルをロード(Launch)

Launch Model > CUSTOM MODELS > EMBEDDING MODELS / RERANK MODELS に追加されました。
Launch時はDifyに渡すModel UIDをちゃんと書きましょう。
CLIでlaunchする方法は公式ドキュメントに記載があります。

launch

WebアプリからではなくCLIでコンテナの外(ホスト)からLaunchする場合

docker exec -it xinference xinference launch -n ruri-large -t embedding
docker exec -it xinference xinference launch -n ruri-reranker-large -t rerank

Dify

Difyの管理ページに移って、前回と同様にServer urlとModel UIDに注意してモデルプロバイダーから登録します。

dify

jina-embeddingとbge-rerankerがまだ残ってますが、ひとまず連携完了。

おわりに

以上で、日本語DeepSeek-R1に日本語特化Embeddin, RerankでRAGを構築する準備が整いました。
前回の組み合わせより賢くなってる気がする(不要な前置きが無くなって完結に返事してくれてる気がする)。

※ Dify + Xinferenceで用意できるのでollamaは不要かもしれないが、VRAMの管理をみて検討します。

参考

1
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?