milvus-logo
LFAI
Home
  • Modelle

mGTE

mGTE ist ein mehrsprachiges Textrepräsentationsmodell und ein Reranking-Modell für Textretrievalaufgaben.

Milvus lässt sich über die Klasse MGTEEmbeddingFunction mit dem mGTE-Einbettungsmodell integrieren. Diese Klasse bietet Methoden zur Kodierung von Dokumenten und Abfragen unter Verwendung des mGTE-Einbettungsmodells und gibt die Einbettungen als dichte und spärliche Vektoren zurück, die mit der Milvus-Indizierung kompatibel sind.

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

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

Dann instanziieren Sie die MGTEEmbeddingFunction:

from pymilvus.model.hybrid import MGTEEmbeddingFunction

ef = MGTEEmbeddingFunction(
    model_name="Alibaba-NLP/gte-multilingual-base", # Defaults to `Alibaba-NLP/gte-multilingual-base`
)

Parameter:

  • model_name (string)

    Der Name des mGTE-Einbettungsmodells, das für die Kodierung verwendet werden soll. Der Wert ist standardmäßig Alibaba-NLP/gte-multilingual-base.

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 of embeddings
print(ef.dim)

Die erwartete Ausgabe ist ähnlich wie die folgende:

Embeddings: {'dense': [tensor([-4.9149e-03, 1.6553e-02, -9.5524e-03, -2.1800e-02, 1.2075e-02,
        1.8500e-02, -3.0632e-02, 5.5909e-02, 8.7365e-02, 1.8763e-02,
        2.1708e-03, -2.7530e-02, -1.1523e-01, 6.5810e-03, -6.4674e-02,
        6.7966e-02, 1.3005e-01, 1.1942e-01, -1.2174e-02, -4.0426e-02,
        ...
        2.0129e-02, -2.3657e-02, 2.2626e-02, 2.1858e-02, -1.9181e-02,
        6.0706e-02, -2.0558e-02, -4.2050e-02], device='mps:0')], 
 'sparse': <Compressed Sparse Row sparse array of dtype 'float64'
 with 41 stored elements and shape (3, 250002)>}

{'dense': 768, 'sparse': 250002}

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(ef.dim)

Die erwartete Ausgabe ist ähnlich wie die folgende:

Embeddings: {'dense': [tensor([ 6.5883e-03, -7.9415e-03, -3.3669e-02, -2.6450e-02, 1.4345e-02,
        1.9612e-02, -8.1679e-02, 5.6361e-02, 6.9020e-02, 1.9827e-02,
       -9.2933e-03, -1.9995e-02, -1.0055e-01, -5.4053e-02, -8.5991e-02,
        8.3004e-02, 1.0870e-01, 1.1565e-01, 2.1268e-02, -1.3782e-02,
        ...
        3.2847e-02, -2.3751e-02, 3.4475e-02, 5.3623e-02, -3.3894e-02,
        7.9408e-02, 8.2720e-03, -2.3459e-02], device='mps:0')], 
 'sparse': <Compressed Sparse Row sparse array of dtype 'float64'
 with 13 stored elements and shape (2, 250002)>}

{'dense': 768, 'sparse': 250002}

Übersetzt vonDeepLogo

Tabelle der Inhalte
Feedback

War diese Seite hilfreich?