Gesicht umarmen

Gesicht umarmen / all-mpnet-base-v2

Ein Kodierer für Sätze und kurze Absätze; erzeugt 768-dimensionale Vektoren.

Modellübersicht

Das Modell "all-mpnet-base-v2" ist ein Kodierer für Sätze und kurze Absätze, der den eingegebenen Text in einen 768-dimensionalen Vektor umwandelt. Es handelt sich um eine verfeinerte Version des microsoft/mpnet-base Modells, das auf einem Datensatz von 1 Milliarde Satzpaaren mit Hilfe eines kontrastiven Lernziels feinabgestimmt wurde. Das Modell "all-mpnet-base-v2" eignet sich perfekt für Aufgaben wie Information Retrieval, Clustering und Satzähnlichkeit.

Weitere Einzelheiten finden Sie in diesem Beitrag: [All-Mpnet-Base-V2: Verbesserung der Satzeinbettung durch KI] (https://zilliz.com/learn/all-mpnet-base-v2-enhancing-sentence-embedding-with-ai)

Wie man Einbettungen mit All-Mpnet-Base-V2 erstellt

Es gibt zwei primäre Möglichkeiten, Vektoreinbettungen zu erzeugen:

  1. PyMilvus: das Python-SDK für Milvus, das das "all-mpnet-base-v2"-Modell nahtlos integriert.
  2. SentenceTransformer-Bibliothek: die Python-Bibliothek Sentence-Transformer.

Sobald die Vektoreinbettungen erstellt sind, können sie in einer Vektordatenbank wie Zilliz Cloud (eine vollständig verwaltete Vektordatenbank von Milvus) gespeichert und für die semantische Ähnlichkeitssuche verwendet werden.

Dies sind die vier wichtigsten Schritte:

Einbettungen über PyMilvus erstellen und in die Zilliz Cloud für die semantische Suche einfügen

from pymilvus.model.dense import SentenceTransformerEmbeddingFunction
von pymilvus importieren MilvusClient

ef = SentenceTransformerEmbeddingFunction("sentence-transformers/all-mpnet-base-v2")

docs = [
   "Künstliche Intelligenz wurde 1956 als akademische Disziplin gegründet.",
   "Alan Turing war die erste Person, die umfangreiche Forschungen im Bereich der KI durchführte.",
   "Geboren in Maida Vale, London, wuchs Turing in Südengland auf."
]
# Einbettungen für Dokumente generieren
docs_embeddings = ef(docs)

queries = ["Wann wurde die künstliche Intelligenz erfunden",
          "Wo wurde Alan Turing geboren?"]
# Einbettungen für Abfragen generieren
abfrage_einbettungen = ef(abfragen)

# Verbindung zur Zilliz-Cloud mit öffentlichem Endpunkt und API-Schlüssel
client = MilvusClient(
    uri=ZILLIZ_PUBLIC_ENDPOINT,
    token=ZILLIZ_API_KEY)

COLLECTION = "Dokumente"
if client.has_collection(collection_name=COLLECTION):
    client.drop_collection(collection_name=COLLECTION)
client.create_collection(
    collection_name=COLLECTION,
    dimension=ef.dim,
    auto_id=True)

for doc, embedding in zip(docs, docs_embeddings):
    client.insert(COLLECTION, {"text": doc, "vector": embedding})
    
results = client.search(
    collection_name=COLLECTION,
    data=query_embeddings,
    consistency_level="Strong",
    output_fields=["text"])

In dieser Dokumentation finden Sie weitere Details über PyMilvus-Integration mit all-mpnet-base-v2.

Erstellen Sie Einbettungen über die SentenceTransformer-Bibliothek und fügen Sie sie in Zilliz Cloud für die semantische Suche ein.

from sentence_transformers import SentenceTransformer
von pymilvus importieren MilvusClient

model = SentenceTransformer("sentence-transformers/all-mpnet-base-v2")

docs = [
   "Künstliche Intelligenz wurde 1956 als akademische Disziplin gegründet.",
   "Alan Turing war die erste Person, die umfangreiche Forschungen im Bereich der KI durchführte.",
   "Geboren in Maida Vale, London, wuchs Turing in Südengland auf."
]
# Einbettungen für Dokumente generieren
docs_embeddings = model.encode(docs, normalize_embeddings=True)


queries = ["Wann wurde die künstliche Intelligenz erfunden",
          "Wo wurde Alan Turing geboren?"]
# Einbettungen für Abfragen generieren
query_embeddings = model.encode(abfragen, normalize_embeddings=True)

# Verbindung zur Zilliz Cloud mit öffentlichem Endpunkt und API-Schlüssel
client = MilvusClient(
    uri=ZILLIZ_PUBLIC_ENDPOINT,
    token=ZILLIZ_API_KEY)

COLLECTION = "Dokumente"
if client.has_collection(collection_name=COLLECTION):
    client.drop_collection(collection_name=COLLECTION)
client.create_collection(
    collection_name=COLLECTION,
    dimension=768,
    auto_id=True)

for doc, embedding in zip(docs, docs_embeddings):
    client.insert(COLLECTION, {"text": doc, "vector": embedding})
    
results = client.search(
    collection_name=COLLECTION,
    data=query_embeddings,
    consistency_level="Strong",
    output_fields=["text"])

Weitere Lektüre