Nomic
ModelNomic adalah serangkaian solusi penyematan teks dan gambar canggih yang dikembangkan oleh Nomic AI, yang dirancang untuk mengubah berbagai bentuk data menjadi vektor numerik padat yang menangkap makna semantiknya.
Milvus terintegrasi dengan model penyematan Nomic melalui kelas NomicEmbeddingFunction. Kelas ini menyediakan metode untuk menyandikan dokumen dan kueri menggunakan model penyematan Nomic dan mengembalikan penyematan sebagai vektor padat yang kompatibel dengan pengindeksan Milvus. Untuk menggunakan fungsi ini, dapatkan kunci API dari Nomic Atlas.
Untuk menggunakan fitur ini, instal dependensi yang diperlukan:
pip install --upgrade pymilvus
pip install "pymilvus[model]"
Kemudian, instalasikan NomicEmbeddingFunction:
# Before accessing the Nomic Atlas API, configure your Nomic API token
import nomic
nomic.login('YOUR_NOMIC_API_KEY')
# Import Nomic embedding function
from pymilvus.model.dense import NomicEmbeddingFunction
ef = NomicEmbeddingFunction(
model_name="nomic-embed-text-v1.5", # Defaults to `mistral-embed`
)
Parameter:
model_name
(string)Nama model penyematan Nomic yang akan digunakan untuk pengkodean. Nilai defaultnya adalah
nomic-embed-text-v1.5
. Untuk informasi lebih lanjut, lihat dokumentasi resmi Nomic.
Untuk membuat penyematan untuk dokumen, gunakan metode encode_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.",
]
docs_embeddings = ef.encode_documents(docs)
# Print embeddings
print("Embeddings:", docs_embeddings)
# Print dimension and shape of embeddings
print("Dim:", ef.dim, docs_embeddings[0].shape)
Keluaran yang diharapkan mirip dengan yang berikut ini:
Embeddings: [array([ 5.59997560e-02, 7.23266600e-02, -1.51977540e-01, -4.53491200e-02,
6.49414060e-02, 4.33654800e-02, 2.26593020e-02, -3.51867680e-02,
3.49998470e-03, 1.75571440e-03, -4.30297850e-03, 1.81274410e-02,
...
-1.64337160e-02, -3.85437000e-02, 6.14318850e-02, -2.82745360e-02,
-7.25708000e-02, -4.15563580e-04, -7.63320900e-03, 1.88446040e-02,
-5.78002930e-02, 1.69830320e-02, -8.91876200e-03, -2.37731930e-02])]
Dim: 768 (768,)
Untuk membuat sematan untuk kueri, gunakan metode encode_queries()
:
queries = ["When was artificial intelligence founded",
"Where was Alan Turing born?"]
query_embeddings = ef.encode_queries(queries)
print("Embeddings:", query_embeddings)
print("Dim", ef.dim, query_embeddings[0].shape)
Keluaran yang diharapkan mirip dengan yang berikut ini:
Embeddings: [array([ 3.24096680e-02, 7.35473600e-02, -1.63940430e-01, -4.45556640e-02,
7.83081050e-02, 2.64587400e-02, 1.35898590e-03, -1.59606930e-02,
-3.33557130e-02, 1.05056760e-02, -2.35290530e-02, 2.23388670e-02,
...
7.67211900e-02, 4.54406740e-02, 9.70459000e-02, 4.00161740e-03,
-3.12805180e-02, -7.05566400e-02, 5.04760740e-02, 5.22766100e-02,
-3.87878400e-02, -3.03649900e-03, 5.90515140e-03, -1.95007320e-02])]
Dim 768 (768,)