すべてのプロダクト
Search
ドキュメントセンター

DashVector:ModelScope のオープンソース埋め込みモデルを使用してテキストをベクトルに変換する

最終更新日:Jan 08, 2025

このトピックでは、オープンソースの埋め込みモデルModelScope から使用して、テキストをベクトルに変換し、ベクトルを DashVector に格納してベクトル検索を実行する方法について説明します。

ModelScope は、次世代のオープンソースのモデル・アズ・ア・サービス(MaaS)プラットフォームを構築し、汎 AI 開発者に柔軟で使いやすく、費用対効果の高いワンストップモデルを提供することを目指しています。

ModelScope は、業界をリードする事前トレーニング済みモデルをまとめて、反復的な研究開発コストを削減し、より環境に優しく、よりオープンな AI 開発環境とモデルサービスを提供することを目指しています。このようにして、ModelScope はデジタル経済の発展に貢献できます。 ModelScope は、試用および無料でダウンロードできる、さまざまな高品質のオープンソースモデルを提供しています。

ModelScope では、次のことができます。

  • 事前トレーニング済みモデルを無料で使用およびダウンロードする。

  • コマンドラインベースのモデル予測を実行して、モデルの効果を簡単かつ迅速に検証する。

  • 独自のデータを使用してモデルを微調整してカスタマイズする。

  • 理論と実践のトレーニングに参加して、研究開発能力を効果的に向上させる。

  • コミュニティ全体とアイデアを共有する。

前提条件

  • DashVector:

    • クラスタが作成されています。詳細については、「クラスタの作成」をご参照ください。

    • API キーが取得されています。詳細については、「API キーの管理」をご参照ください。

    • 最新バージョンの SDK がインストールされています。詳細については、「DashVector SDK のインストール」をご参照ください。

  • ModelScope:

    • 最新バージョンの SDK は、pip install -U modelscope コマンドを実行することでインストールされます。

CoROM 単語埋め込みモデル

概要

モデル ID

ベクトル次元

距離メトリック

ベクトルデータ型

備考

damo/nlp_corom_sentence-embedding_chinese-base

768

コサイン

Float32

  • 中国語 - 一般ドメイン - ベース

  • 最大テキスト長:512

damo/nlp_corom_sentence-embedding_english-base

768

コサイン

Float32

  • 英語 - 一般ドメイン - ベース

  • 最大テキスト長:512

damo/nlp_corom_sentence-embedding_chinese-base-ecom

768

コサイン

Float32

  • 中国語 - E コマース - ベース

  • 最大テキスト長:512

damo/nlp_corom_sentence-embedding_chinese-base-medical

768

コサイン

Float32

  • 中国語 - ヘルスケア - ベース

  • 最大テキスト長:512

damo/nlp_corom_sentence-embedding_chinese-tiny

256

コサイン

Float32

  • 中国語 - 一般ドメイン - タイニー

  • 最大テキスト長:512

damo/nlp_corom_sentence-embedding_english-tiny

256

コサイン

Float32

  • 英語 - 一般ドメイン - タイニー

  • 最大テキスト長:512

damo/nlp_corom_sentence-embedding_chinese-tiny-ecom

256

コサイン

Float32

  • 中国語 - E コマース - タイニー

  • 最大テキスト長:512

damo/nlp_corom_sentence-embedding_chinese-tiny-medical

256

コサイン

Float32

  • 中国語 - ヘルスケア - タイニー

  • 最大テキスト長:512

説明

CoROM モデルの詳細については、CoROM モデルページをご覧ください。

説明

コードを正しく実行するには、次の置換を行ってください。

  1. サンプルコードの {your-dashvector-api-key} を DashVector API キーに置き換えます。

  2. サンプルコードの {your-dashvector-cluster-endpoint} を DashVector クラスタのエンドポイントに置き換えます。

  3. サンプルコードの {model_id} を上記の表のモデル ID に置き換えます。

  4. タイニーモデルのベクトル次元数は 256 であることに注意してください。

from modelscope.pipelines import pipeline
from modelscope.utils.constant import Tasks
from typing import List
from dashvector import Client


pipeline_se = pipeline(Tasks.sentence_embedding, model='{model_id}')


def generate_embeddings(texts: List[str]):
    inputs = {'source_sentence': texts}
    result = pipeline_se(input=inputs)
    return result['text_embedding']


########### DashVector にベクトルを格納し、ベクトル検索を実行するための汎用サンプルコード ###########
# DashVector クライアントを作成します。
client = Client(
    api_key='{your-dashvector-api-key}',
    endpoint='{your-dashvector-cluster-endpoint}'
)

# DashVector コレクションを作成します。
# 注:dimension パラメータは、モデルで指定された次元数に設定する必要があります。
rsp = client.create('CoROM-text-embedding', dimension=768)
assert rsp
collection = client.get('CoROM-text-embedding')
assert collection

# テキストをベクトルに変換し、DashVector に格納します。
collection.insert(
    ('ID1', generate_embeddings(['Alibaba Cloud DashVector is one of the best vector databases in performance and cost-effectiveness.'])[0])
)

# ベクトル検索を実行します。
docs = collection.query(
    generate_embeddings(['The best vector database'])[0]
)
print(docs)

GTE 単語埋め込みモデル

概要

モデル ID

ベクトル次元

距離メトリック

ベクトルデータ型

備考

damo/nlp_gte_sentence-embedding_chinese-base

768

コサイン

Float32

  • 中国語 - 一般ドメイン - ベース

  • 最大テキスト長:512

damo/nlp_gte_sentence-embedding_chinese-large

768

コサイン

Float32

  • 中国語 - 一般ドメイン - ラージ

  • 最大テキスト長:512

damo/nlp_gte_sentence-embedding_chinese-small

512

コサイン

Float32

  • 中国語 - 一般ドメイン - スモール

  • 最大テキスト長:512

damo/nlp_gte_sentence-embedding_english-base

768

コサイン

Float32

  • 英語 - 一般ドメイン - ベース

  • 最大テキスト長:512

damo/nlp_gte_sentence-embedding_english-large

768

コサイン

Float32

  • 英語 - 一般ドメイン - ラージ

  • 最大テキスト長:512

damo/nlp_gte_sentence-embedding_english-small

384

コサイン

Float32

  • 英語 - 一般ドメイン - スモール

  • 最大テキスト長:512

説明

GTE モデルの詳細については、GTE モデルページをご覧ください。

サンプルコードは、CoROM 単語埋め込みモデルのサンプルコードと同じです。対応するコードをモデル IDベクトル次元に置き換えてください。

Udever 多言語ユニバーサル単語埋め込みモデル

概要

モデル ID

ベクトル次元

距離メトリック

ベクトルデータ型

備考

damo/udever-bloom-560m

1,024

コサイン

Float32

  • モデルパラメータ:560m

  • 最大テキスト長:2,048

damo/udever-bloom-1b1

1,536

コサイン

Float32

  • モデルパラメータ:1b1

  • 最大テキスト長:2,048

damo/udever-bloom-3b

2,048

コサイン

Float32

  • モデルパラメータ:3b

  • 最大テキスト長:2,048

damo/udever-bloom-7b1

4,096

コサイン

Float32

  • モデルパラメータ:7b1

  • 最大テキスト長:2,048

説明

Udever モデルの詳細については、Udever モデルページをご覧ください。

サンプルコードは、CoROM 単語埋め込みモデルのサンプルコードと同じです。対応するコードをモデル IDベクトル次元に置き換えてください。

StructBERT FAQ モデル

概要

モデル ID

ベクトル次元

距離メトリック

ベクトルデータ型

備考

damo/nlp_structbert_faq-question-answering_chinese-base

768

コサイン

Float32

  • 中国語 - 一般ドメイン - ベース

  • 最大テキスト長:無制限

damo/nlp_structbert_faq-question-answering_chinese-finance-base

768

コサイン

Float32

  • 中国語 - 金融 - ベース

  • 最大テキスト長:無制限

damo/nlp_structbert_faq-question-answering_chinese-gov-base

768

コサイン

Float32

  • 中国語 - 電子政府 - ベース

  • 最大テキスト長:無制限

説明

StructBERT FAQ モデルの詳細については、StructBERT モデルページをご覧ください。

説明

コードを正しく実行するには、次の置換を行ってください。

  1. サンプルコードの {model_id} を上記の表のモデル ID に置き換えます。

from modelscope.pipelines import pipeline
from modelscope.utils.constant import Tasks
from typing import List

pipeline = pipeline(Tasks.faq_question_answering, model='{model_id}')


def generate_embeddings(texts: List[str], max_len=30):
    return pipeline.get_sentence_embedding(texts)
説明

DashVector にベクトルを格納し、ベクトル検索を実行するためのコードの詳細については、CoROM 単語埋め込みモデルの「例」セクションのサンプルコードをご参照ください。

その他の単語埋め込みモデル

モデル名

モデル ID

ベクトル次元

距離メトリック

ベクトルデータ型

備考

Bert エンティティ埋め込みモデル - 中国語 - 一般ドメイン - ベース

damo/nlp_bert_entity-embedding_chinese-base

768

コサイン

Float32

  • デフォルトの最大テキスト長:128

  • 詳細

MiniLM 単語埋め込みモデル - 英語 - TextRetrieval

damo/nlp_minilm_ibkd_sentence-embedding_english-msmarco

384

コサイン

Float32

  • デフォルトの最大テキスト長:128

  • 詳細

MiniLM 単語埋め込みモデル - 英語 - IBKD-STS

damo/nlp_minilm_ibkd_sentence-embedding_english-sts

384

コサイン

Float32

  • デフォルトの最大テキスト長:128

  • 詳細

text2vec-base-chinese

thomas/text2vec-base-chinese

768

コサイン

Float32

  • デフォルトの最大テキスト長:不明

  • 詳細

text2vec-large-chinese

thomas/text2vec-large-chinese

1,024

コサイン

Float32

  • デフォルトの最大テキスト長:不明

  • 詳細

説明
  1. サンプルコードは、CoROM 単語埋め込みモデルのサンプルコードと同じです。対応するコードをモデル IDベクトル次元に置き換えてください。

  2. ModelScope のその他のオープンソース単語埋め込みモデルの詳細については、このページをご覧ください。