HKU NLP / instructor-base
Milvus Integrated
Aufgabe: Einbettung
Modalität: Text
Ähnlichkeitsmetrik: Kosinus
Lizenz: Apache 2.0
Dimensionen: 768
Maximale Eingabe-Tokens: 512
Preis: Kostenlos
Einführung in die Instructor Model Familie
Das Instructor-Modell von NKU NLP ist ein Text-Einbettungsmodell, das mit Anweisungen fein abgestimmt ist. Es erstellt aufgabenspezifische Einbettungen (für Klassifizierung, Retrieval, Clustering, Textbewertung usw.) in verschiedenen Bereichen (wie Wissenschaft und Finanzen), indem es einfach Anweisungen für die Aufgabe gibt - eine zusätzliche Feinabstimmung ist nicht erforderlich.
Abbildung: Wie funktioniert das Instructor Model? (https://assets.zilliz.com/Figure_How_the_Instructor_Model_works_2b174dc8aa.png)
Abbildung: Funktionsweise des Instructor-Modells (Bild von NKU NLP)
Das Instructor-Modell gibt es in drei Varianten: instructor-base, instructor-xl und instructor-large. Jede Version bietet ein unterschiedliches Maß an Leistung und Skalierbarkeit, um verschiedenen Einbettungsanforderungen gerecht zu werden.
Einführung in instructor-base
instructor-base ist die kleinste Variante der Instructor-Modellfamilie, die auf ein ausgewogenes Verhältnis von Effizienz und Leistung ausgelegt ist. Es ist ideal für Aufgaben, die hochwertige Texteinbettungen mit einem geringeren Rechenaufwand erfordern.
Vergleich von instructor-base, instructor-xl und instructor-large
| Feature | instructor-base | instructor-large | instructor-xl |
|---|---|---|---|
| Parametergröße | 86 Millionen | 335 Millionen | 1,5 Milliarden |
| Einbettungsdimension | 768 | 768 | 768 |
| Avg. MTEB Ergebnis | 55.9 | 58.4 | 58.8 |
So erstellen Sie Einbettungen mit instructor-base
Es gibt zwei primäre Möglichkeiten, Vektoreinbettungen zu erzeugen:
- PyMilvus: das Python SDK für Milvus, das nahtlos das
instructor-baseModell integriert. - Instructor-Bibliothek: die Python-Bibliothek
InstructorEmbedding.
Sobald die Vektoreinbettungen erstellt sind, können sie in der Zilliz Cloud (ein vollständig verwalteter, von Milvus betriebener Vektor-Datenbankdienst) gespeichert und für die semantische Ähnlichkeitssuche verwendet werden. Dies sind die vier wichtigsten Schritte:
- Registrieren Sie sich für ein kostenloses Zilliz Cloud-Konto.
- Richten Sie einen serverlosen Cluster ein und erhalten Sie den Public Endpoint and API Key.
- Erstellen Sie eine Vektorsammlung und fügen Sie Ihre Vektoreinbettungen ein.
- Führen Sie eine semantische Suche nach den gespeicherten Einbettungen durch.
Einbettungen über PyMilvus erstellen
from pymilvus.model.dense import InstructorEmbeddingFunction
von pymilvus importieren MilvusClient
ef = InstructorEmbeddingFunction(
"hkunlp/instructor-base",
query_instruction="Stellen Sie die Wikipedia-Frage zum Abrufen von Belegen dar:",
doc_instruction="Stellen Sie das Wikipedia-Dokument für den Abruf dar:")
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.encode_documents(docs)
queries = ["Wann wurde die künstliche Intelligenz begründet",
"Wo wurde Alan Turing geboren?"]
# Einbettungen für Abfragen generieren
query_embeddings = ef.encode_queries(queries)
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"])
Erzeugen von Vektoreinbettungen über die InstructorEmbedding Library
von InstructorEmbedding importieren INSTRUCTOR
von pymilvus importieren MilvusClient
model = INSTRUCTOR('hkunlp/instructor-base')
docs = [["Stellen Sie das Wikipedia-Dokument zum Abruf bereit: ", "Künstliche Intelligenz wurde 1956 als akademische Disziplin gegründet."],
["Stellen Sie das Wikipedia-Dokument zum Abruf bereit: ", "Alan Turing war der erste Mensch, der umfangreiche Forschungen im Bereich der Künstlichen Intelligenz betrieb."],
["Stellen Sie das Wikipedia-Dokument zum Abruf bereit: ", "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 = [["Stellen Sie die Wikipedia-Frage für die Suche nach unterstützenden Dokumenten dar: "Wann wurde die künstliche Intelligenz gegründet"],
["Stellen Sie die Wikipedia-Frage zum Abrufen von Belegen dar: ", "Wo wurde Alan Turing geboren?"]]
# Erzeugen von Einbettungen für Abfragen
query_embeddings = model.encode(queries, 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"])
- Einführung in die Instructor Model Familie
- Einführung in instructor-base
- So erstellen Sie Einbettungen mit **instructor-base**
Inhalte
Nahtlose KI-Workflows
Von Embeddings bis hin zu skalierbarer KI-Suche – Zilliz Cloud ermöglicht es Ihnen, Embeddings mit beispielloser Geschwindigkeit und Effizienz zu speichern, zu indizieren und abzurufen.
Zilliz Cloud kostenlos ausprobieren

