本文介紹如何通過ModelScope魔搭社區中的文本向量開源模型將文本轉換為向量,併入庫至向量檢索服務DashVector中進行向量檢索。
ModelScope魔搭社區旨在打造下一代開源的模型即服務共用平台,為泛AI開發人員提供靈活、易用、低成本的一站式模型服務供應項目,讓模型應用更簡單。
ModelScope魔搭社區的願景是彙集行業領先的預訓練模型,減少開發人員的重複研發成本,提供更加綠色環保、開源開放的AI開發環境和模型服務,助力綠色“數字經濟”事業的建設。 ModelScope魔搭社區將以開源的方式提供多類優質模型,開發人員可在平台上免費體驗與下載使用。
在ModelScope魔搭社區,您可以:
免費使用平台提供的預訓練模型,支援免費下載運行
一行命令實現模型預測,簡單快速驗證模型效果
用自己的資料對模型進行調優,定製自己的個人化模型
學習系統性的知識,結合實訓,有效提升模型研發能力
分享和貢獻你的想法、評論與模型,讓更多人認識你,在社區中成長
前提條件
DashVector:
已建立Cluster:建立Cluster
已獲得API-KEY:API-KEY管理
已安裝最新版SDK:安裝DashVector SDK
ModelScope:
已安裝最新版SDK:
pip install -U modelscope
CoROM文本向量
簡介
模型ID | 向量維度 | 度量方式 | 向量資料類型 | 備忘 |
damo/nlp_corom_sentence-embedding_chinese-base | 768 | Cosine | Float32 |
|
damo/nlp_corom_sentence-embedding_english-base | 768 | Cosine | Float32 |
|
damo/nlp_corom_sentence-embedding_chinese-base-ecom | 768 | Cosine | Float32 |
|
damo/nlp_corom_sentence-embedding_chinese-base-medical | 768 | Cosine | Float32 |
|
damo/nlp_corom_sentence-embedding_chinese-tiny | 256 | Cosine | Float32 |
|
damo/nlp_corom_sentence-embedding_english-tiny | 256 | Cosine | Float32 |
|
damo/nlp_corom_sentence-embedding_chinese-tiny-ecom | 256 | Cosine | Float32 |
|
damo/nlp_corom_sentence-embedding_chinese-tiny-medical | 256 | Cosine | Float32 |
|
關於CoROM文本向量模型更多資訊請參考:CoROM文本向量
使用樣本
需要進行如下替換代碼才能正常運行:
DashVector api-key替換樣本中的{your-dashvector-api-key}
DashVector Cluster Endpoint替換樣本中的{your-dashvector-cluster-endpoint}
使用上表中模型ID替換樣本中的{model_id}
需注意,若所使用的模型若為tiny模型,則向量維度為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 = Client(
api_key='{your-dashvector-api-key}',
endpoint='{your-dashvector-cluster-endpoint}'
)
# 建立DashVector Collection
# 注意:需根據模型對應向量維度調整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(['阿里雲向量檢索服務DashVector是效能、性價比具佳的向量資料庫之一'])[0])
)
# 向量檢索
docs = collection.query(
generate_embeddings(['The best vector database'])[0]
)
print(docs)
GTE文本向量
簡介
模型ID | 向量維度 | 度量方式 | 向量資料類型 | 備忘 |
damo/nlp_gte_sentence-embedding_chinese-base | 768 | Cosine | Float32 |
|
damo/nlp_gte_sentence-embedding_chinese-large | 768 | Cosine | Float32 |
|
damo/nlp_gte_sentence-embedding_chinese-small | 512 | Cosine | Float32 |
|
damo/nlp_gte_sentence-embedding_english-base | 768 | Cosine | Float32 |
|
damo/nlp_gte_sentence-embedding_english-large | 768 | Cosine | Float32 |
|
damo/nlp_gte_sentence-embedding_english-small | 384 | Cosine | Float32 |
|
關於GTE文本向量模型更多資訊請參考:GTE文本向量
使用樣本
本模型使用樣本同CoROM文本向量-使用樣本,進行相應模型ID和向量維度替換即可運行。
Udever 多語言通用文本表示模型
簡介
模型ID | 向量維度 | 度量方式 | 向量資料類型 | 備忘 |
damo/udever-bloom-560m | 1024 | Cosine | Float32 |
|
damo/udever-bloom-1b1 | 1536 | Cosine | Float32 |
|
damo/udever-bloom-3b | 2048 | Cosine | Float32 |
|
damo/udever-bloom-7b1 | 4096 | Cosine | Float32 |
|
關於Udever 多語言通用文本表示模型更多資訊請參考:Udever 多語言通用文本表示模型
使用樣本
本模型使用樣本同CoROM文本向量-使用樣本,進行相應模型ID和向量維度替換即可運行。
StructBERT FAQ問答
簡介
模型ID | 向量維度 | 度量方式 | 向量資料類型 | 備忘 |
damo/nlp_structbert_faq-question-answering_chinese-base | 768 | Cosine | Float32 |
|
damo/nlp_structbert_faq-question-answering_chinese-finance-base | 768 | Cosine | Float32 |
|
damo/nlp_structbert_faq-question-answering_chinese-gov-base | 768 | Cosine | Float32 |
|
關於StructBERT FAQ問答模型更多資訊請參考:StructBERT FAQ問答
使用樣本
需要進行如下替換代碼才能正常運行:
使用上表中模型ID替換樣本中的{model_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實體向量-中文-通用領域-base | damo/nlp_bert_entity-embedding_chinese-base | 768 | Cosine | Float32 |
|
英文文本向量表示模型-TextRetrieval | damo/nlp_minilm_ibkd_sentence-embedding_english-msmarco | 384 | Cosine | Float32 |
|
英文文本向量表示模型MiniLM-IBKD-STS | damo/nlp_minilm_ibkd_sentence-embedding_english-sts | 384 | Cosine | Float32 |
|
text2vec-base-chinese | thomas/text2vec-base-chinese | 768 | Cosine | Float32 |
|
text2vec-large-chinese | thomas/text2vec-large-chinese | 1024 | Cosine | Float32 |
|
列表中模型樣本同CoROM文本向量-使用樣本,進行相應模型ID和向量維度替換即可運行
更多ModelScope社區中的開源文本向量模型在本文中不再一一列舉,更多文本向量模型待您探索、發現和共建,點擊進入。