Nomic
МоделиNomic - это серия передовых решений для встраивания текста и изображений, разработанных компанией Nomic AI и предназначенных для преобразования различных форм данных в плотные числовые векторы, передающие их семантический смысл.
Milvus интегрируется с моделями встраивания Nomic через класс NomicEmbeddingFunction. Этот класс предоставляет методы для кодирования документов и запросов с использованием моделей встраивания Nomic и возвращает встраивания в виде плотных векторов, совместимых с индексированием Milvus. Чтобы воспользоваться этой функцией, получите API-ключ от Nomic Atlas.
Чтобы воспользоваться этой функцией, установите необходимые зависимости:
pip install --upgrade pymilvus
pip install "pymilvus[model]"
Затем инстанцируйте 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`
)
Параметры:
model_name
(string)Имя модели встраивания Nomic, которую следует использовать для кодирования. По умолчанию используется значение
nomic-embed-text-v1.5
. Для получения дополнительной информации обратитесь к официальной документации Nomic.
Чтобы создать вкрапления для документов, используйте метод 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)
Ожидаемый результат будет похож на следующий:
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,)
Для создания вкраплений для запросов используйте метод 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)
Ожидаемый результат похож на следующий:
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,)