milvus-logo
LFAI
Home
  • Modelle

Nomic

Nomic-Modelle sind eine Reihe von fortschrittlichen Text- und Bildeinbettungslösungen, die von Nomic AI entwickelt wurden, um verschiedene Formen von Daten in dichte numerische Vektoren zu konvertieren, die ihre semantische Bedeutung erfassen.

Milvus lässt sich über die Klasse NomicEmbeddingFunction mit den Einbettungsmodellen von Nomic integrieren. Diese Klasse bietet Methoden zur Kodierung von Dokumenten und Abfragen unter Verwendung der Nomic-Einbettungsmodelle und gibt die Einbettungen als dichte Vektoren zurück, die mit der Milvus-Indizierung kompatibel sind. Um diese Funktionalität zu nutzen, erhalten Sie einen API-Schlüssel von Nomic Atlas.

Um diese Funktion zu nutzen, installieren Sie die notwendigen Abhängigkeiten:

pip install --upgrade pymilvus
pip install "pymilvus[model]"

Dann instanziieren Sie die 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)

    Der Name des Nomic-Einbettungsmodells, das für die Kodierung verwendet werden soll. Der Wert ist standardmäßig nomic-embed-text-v1.5. Weitere Informationen finden Sie in der offiziellen Nomic-Dokumentation.

Um Einbettungen für Dokumente zu erstellen, verwenden Sie die Methode 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)

Die erwartete Ausgabe ist ähnlich wie die folgende:

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,)

Um Einbettungen für Abfragen zu erstellen, verwenden Sie die Methode 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)

Die erwartete Ausgabe ist ähnlich wie die folgende:

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,)

Übersetzt vonDeepLogo

Tabelle der Inhalte
Feedback

War diese Seite hilfreich?