milvus-logo
LFAI
Home
  • Modelle

Satztransformatoren

Milvus lässt sich über die Klasse SentenceTransformerEmbeddingFunction in die vortrainierten Sentence-Transformer-Modelle integrieren. Diese Klasse bietet Methoden zur Kodierung von Dokumenten und Abfragen unter Verwendung der trainierten Sentence-Transformer-Modelle und gibt die Einbettungen als dichte 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 SentenceTransformerEmbeddingFunction:

from pymilvus import model

sentence_transformer_ef = model.dense.SentenceTransformerEmbeddingFunction(
    model_name='all-MiniLM-L6-v2', # Specify the model name
    device='cpu' # Specify the device to use, e.g., 'cpu' or 'cuda:0'
)

Parameter:

  • model_name(string)

    Der Name des Sentence-Transformer-Modells, das für die Kodierung verwendet werden soll. Der Wert ist standardmäßig all-MiniLM-L6-v2. Sie können ein beliebiges der vortrainierten Modelle von Sentence Transformers verwenden. Eine Liste der verfügbaren Modelle finden Sie unter Vorgefertigte Modelle.

  • Gerät(Zeichenkette)

    Das zu verwendende Gerät, mit cpu für die CPU und cuda:n für das n-te GPU-Gerät.

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 = sentence_transformer_ef.encode_documents(docs)

# Print embeddings
print("Embeddings:", docs_embeddings)
# Print dimension and shape of embeddings
print("Dim:", sentence_transformer_ef.dim, docs_embeddings[0].shape)

Die erwartete Ausgabe ist ähnlich wie die folgende:

Embeddings: [array([-3.09392996e-02, -1.80662833e-02,  1.34775648e-02,  2.77156215e-02,
       -4.86349640e-03, -3.12581174e-02, -3.55921760e-02,  5.76934684e-03,
        2.80773244e-03,  1.35783911e-01,  3.59678417e-02,  6.17732145e-02,
...
       -4.61330153e-02, -4.85207550e-02,  3.13997865e-02,  7.82178566e-02,
       -4.75336798e-02,  5.21207601e-02,  9.04406682e-02, -5.36676683e-02],
      dtype=float32)]
Dim: 384 (384,)

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 = sentence_transformer_ef.encode_queries(queries)

# Print embeddings
print("Embeddings:", query_embeddings)
# Print dimension and shape of embeddings
print("Dim:", sentence_transformer_ef.dim, query_embeddings[0].shape)

Die erwartete Ausgabe ist ähnlich wie die folgende:

Embeddings: [array([-2.52114702e-02, -5.29330298e-02,  1.14570223e-02,  1.95571519e-02,
       -2.46500354e-02, -2.66519729e-02, -8.48201662e-03,  2.82961670e-02,
       -3.65092754e-02,  7.50745758e-02,  4.28900979e-02,  7.18822703e-02,
...
       -6.76431581e-02, -6.45996556e-02, -4.67132553e-02,  4.78532910e-02,
       -2.31596199e-03,  4.13446948e-02,  1.06935494e-01, -1.08258888e-01],
      dtype=float32)]
Dim: 384 (384,)

Übersetzt vonDeepLogo

Tabelle der Inhalte

Try Managed Milvus for Free

Zilliz Cloud is hassle-free, powered by Milvus and 10x faster.

Get Started
Feedback

War diese Seite hilfreich?