Nomic / nomic-embed-text-v1
検索、類似度、クラスタリング、分類に特化した、8192のコンテキスト長を持つテキスト埋め込みモデル
Milvus Integrated
タスク: 埋め込み
モダリティ: テキスト
類似性メトリック: コサイン
ライセンス: アパッチ2.0
次元: 768
最大入力トークン: 8192
価格: 無料
nomic-embed-text-v1 の紹介
nomic-embed-text-v1 モデルは、完全に再現可能かつ監査可能であるように設計された、オープンソース、オープンデータのテキスト埋め込みモデルで、学習コードも公開されています。8192 トークンのコンテキストウィンドウをサポートし、検索、類似度、クラスタリング、分類に特化しており、短いコンテキストと長いコンテキストの両方のタスクで高い性能を発揮します。
Nomic-embed-text-v1 は現在、同じ埋め込み空間を共有する nomic-embed-vision-v1 によってマルチモーダルになっているため、テキスト埋め込みを画像埋め込みと直接併用できます。
nomic-embed-text-v1 で埋め込みを作成する方法
ベクトル埋め込みを生成する主な方法は 2 つあります。
- PyMilvus:
nomic-embed-text-v1モデルをシームレスに統合する、Milvus 向けの Python SDK。 - Nomic Python SDK の
embedモジュールは、Nomic Embedding API を使用した埋め込み機能を提供します。
ベクトル埋め込みが生成されたら、それらを Zilliz Cloud(Milvus を基盤とするフルマネージドのベクトルデータベースサービス)に保存し、セマンティック類似性検索に使用できます。主な手順は次の 4 つです。
- Zilliz Cloud アカウントに無料でサインアップします。
- サーバーレスクラスターをセットアップし、Public Endpoint と API Keyを取得します。
- ベクトルコレクションを作成し、ベクトル埋め込みを挿入します。
- 保存された埋め込みに対してセマンティック検索を実行します。
PyMilvus 経由で埋め込みを作成し、セマンティック検索のために Zilliz Cloud に挿入する
from pymilvus import MilvusClient
from nomic import embed
# Prepare documents
docs = [
"Artificial intelligence was founded as an academic discipline in 1956.",
"Alan Turing was the first person to conduct substantial research in AI.",
"Born in Maida Vale, London, Turing was raised in southern England.",
]
# Generate embeddings for documents using nomic-embed-text-v1.5
docs_embeddings = embed.text(
texts=docs, model="nomic-embed-text-v1.5", task_type="search_document"
)["embeddings"]
# Prepare queries
queries = ["When was artificial intelligence founded", "Where was Alan Turing born?"]
# Generate embeddings for queries
query_embeddings = embed.text(
texts=queries, model="nomic-embed-text-v1.5", task_type="search_query"
)["embeddings"]
# Connect to Zilliz Cloud with Public Endpoint and API Key
client = MilvusClient(uri=ZILLIZ_PUBLIC_ENDPOINT, token=ZILLIZ_API_KEY)
COLLECTION = "nomic_v1_5_documents"
# Drop collection if it exists
if client.has_collection(collection_name=COLLECTION):
client.drop_collection(collection_name=COLLECTION)
# Create collection with dimension 768 (nomic-embed-text-v1.5 output dimension)
client.create_collection(collection_name=COLLECTION, dimension=768, auto_id=True)
# Insert documents with embeddings
for doc, embedding in zip(docs, docs_embeddings):
client.insert(COLLECTION, {"text": doc, "vector": embedding})
# Search for similar documents
results = client.search(
collection_name=COLLECTION,
data=query_embeddings,
# consistency_level="Strong", # Strong consistency ensures accurate results but may increase latency
output_fields=["text"],
limit=2,
)
# Print search results
for i, query in enumerate(queries):
print(f"\nQuery: {query}")
for result in results[i]:
print(f" - {result['entity']['text']} (distance: {result['distance']:.4f})")
詳細については、当社の PyMilvus Embedding Model ドキュメントを参照してください。





