今まで、Weaviate が公式に用意してくれている ms-marco-MiniLM-L-6-v2
を使用していましたが、日本語においては?あまり精度が高くないように感じたので、日本語に特化したモデルを使用したカスタムイメージを作っていきます。
時間がない人向け
今回ビルドしたカスタムモデルは、ghcr で公開していますので、そちらを利用してください。
docker-compose.yml
の以下 image を書き換え
reranker-transformers:
# image: cr.weaviate.io/semitechnologies/reranker-transformers:cross-encoder-ms-marco-MiniLM-L-6-v2
image: ghcr.io/microaijp/reranker-transformers:japanese-reranker-cross-encoder-large-v1
docker compose
で再起動すれば完了です。
docker compose donw
docker compose up -d
japanese-reranker-cross-encoder とは
Yuichi Tateno (舘野 祐一)さんが作成してくださった、日本語に特化したリランカーモデルです。
日本語に特化した形で学習されたRerankerがほとんど無かったので、日本語を適切に学習させた Reranker ファミリーを作りました。小さいモデルから大きなモデルまで揃っています。
とのことです。
に性能の評価結果が掲載されています。
なんだかすごい人ですね。憧れます。
ローカルモデルの作成
作業用ディレクトリ作成
mkdir -p ~/weaviate/japanese-reranker-cross-encoder-large-v1
cd ~/weaviate/japanese-reranker-cross-encoder-large-v1
nano Dockerfile
Dockerfile
FROM semitechnologies/reranker-transformers:custom
RUN apt-get update && apt-get install -y mecab libmecab-dev mecab-ipadic-utf8 && \
pip install fugashi[unidic-lite] ipadic
RUN MODEL_NAME=hotchpotch/japanese-reranker-cross-encoder-large-v1 ./download.py
ビルド
docker build -f Dockerfile -t microaijp/reranker-transformers:japanese-reranker-cross-encoder-large-v1 .
ビルド結果確認
$ docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
microaijp/reranker-transformers japanese-reranker-cross-encoder-large-v1 e6d1910b5731 2 minutes ago 11.2GB
(必要に応じて)ghcr に push
リポジトリ名などは書き換えてご利用ください。
echo "ghp_XXXXXXXXXXXXXXXXX" | sudo docker login ghcr.io -u microaijp --password-stdin
sudo docker tag microaijp/reranker-transformers:japanese-reranker-cross-encoder-large-v1 ghcr.io/microaijp/reranker-transformers:japanese-reranker-cross-encoder-large-v1
sudo docker push ghcr.io/microaijp/reranker-transformers:japanese-reranker-cross-encoder-large-v1
Weaviate の設定変更&再起動
設定変更
cd ~/weaviate
nano docker-compose.yml
reranker-transformers:
# image: cr.weaviate.io/semitechnologies/reranker-transformers:cross-encoder-ms-marco-MiniLM-L-6-v2
image: ghcr.io/microaijp/reranker-transformers:japanese-reranker-cross-encoder-large-v1
再起動
docker compose down
docker compose up -d
起動確認
$ docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
67000872e187 sum-transformers:facebook-bart-large-cnn-1.0.0 "/bin/sh -c 'uvicorn…" About a minute ago Up About a minute weaviate-sum-transformers-1
51aad710e49c ghcr.io/microaijp/transformers-inference:bert-base-japanese-v3 "/bin/sh -c 'uvicorn…" About a minute ago Up About a minute weaviate-t2v-transformers-1
5b3685c4f2b0 ghcr.io/microaijp/reranker-transformers:japanese-reranker-cross-encoder-large-v1 "/bin/sh -c 'uvicorn…" About a minute ago Up About a minute weaviate-reranker-transformers-1
149f867f4068 cr.weaviate.io/semitechnologies/weaviate:1.26.1 "/bin/weaviate --hos…" About a minute ago Up About a minute 0.0.0.0:8080->8080/tcp, :::8080->8080/tcp, 0.0.0.0:50051->50051/tcp, :::50051->50051/tcp weaviate-weaviate-1
きれいに起動してくれています🍻