HKU NLP / instructor-base
Milvus Integrated
Tâche: Intégration
Modalité: Texte
Métrique de similarité: Cosinus
Licence: Apache 2.0
Dimensions: 768
Tokens d'entrée max: 512
Prix: Gratuit
Introduction à la famille de modèles d'instructeurs
Le modèle Instructor de NKU NLP est un modèle d'intégration de texte affiné par des instructions. Il crée des encastrements spécifiques à une tâche (pour la classification, la recherche, le regroupement, l'évaluation de texte, etc.) dans divers domaines (comme la science et la finance) en fournissant simplement des instructions sur la tâche - aucun réglage fin supplémentaire n'est nécessaire.
Figure Fonctionnement du modèle de l'instructeur
Figure : Fonctionnement du modèle de l'instructeur (image de NKU NLP)
Le modèle Instructeur se décline en trois variantes : instructor-base, instructor-xl, et instructor-large. Chaque version offre différents niveaux de performance et d'évolutivité pour répondre à divers besoins d'intégration.
Introduction à instructor-base
instructor-base est la plus petite variante de la famille de modèles Instructor, conçue pour équilibrer l'efficacité et les performances. Elle est idéale pour les tâches qui requièrent des incorporations de texte de haute qualité avec une empreinte informatique réduite.
Comparaison entre instructeur-base, instructeur-xl et instructeur-large
Feature | instructeur-base | instructeur-large | instructeur-xl | instructeur-xl | instructeur-xl | instructeur-xl | **instructeur-xl | ----------------------- | ------------------- | -------------------- | ----------------- | | Taille des paramètres ** 86 millions | 335 millions | 1,5 milliard | 1,5 milliard | 1,5 milliard Dimension d'emboîtement ** 768 | 768 | 768 | 768 | 768 | 768 | 768 | Score MTEB moy. MTEB Score | 55.9 | 58.4 | 58.8 |
Comment créer des embeddings avec instructor-base
Il existe deux façons principales de générer des embeddings vectoriels :
- PyMilvus](https://github.com/milvus-io/pymilvus) : le SDK Python pour Milvus qui intègre de manière transparente le modèle
instructor-base. - Bibliothèque Instructor : la bibliothèque Python
InstructorEmbedding.
Une fois les vector embeddings créés, ils peuvent être stockés dans Zilliz Cloud (un service de base de données vectorielles entièrement géré par Milvus) et utilisés pour la recherche de similarité sémantique. Voici les quatre étapes clés :
- S'inscrire pour un compte Zilliz Cloud gratuit.
- Configurez un cluster sans serveur (https://docs.zilliz.com/docs/create-cluster#set-up-a-free-cluster) et obtenez le point de terminaison public et la clé API (https://docs.zilliz.com/docs/on-zilliz-cloud-console#free-cluster-details).
- Créez une collection de vecteurs et insérez vos embeddings vectoriels.
- Exécutez une recherche sémantique sur les encastrements stockés.
Créer des embeddings via PyMilvus
from pymilvus.model.dense import InstructorEmbeddingFunction
from pymilvus import MilvusClient
ef = InstructorEmbeddingFunction(
"hkunlp/instructor-base",
query_instruction="Représentez la question Wikipédia pour récupérer les documents d'appui :",
doc_instruction="Représentez le document Wikipédia à récupérer :")
docs = [
"L'intelligence artificielle a été fondée en tant que discipline universitaire en 1956,
"Alan Turing a été la première personne à mener des recherches substantielles sur l'intelligence artificielle,
"Né à Maida Vale, Londres, Turing a grandi dans le sud de l'Angleterre."
]
# Générer des embeddings pour les documents
docs_embeddings = ef.encode_documents(docs)
queries = ["Quand l'intelligence artificielle a-t-elle été fondée ?
"Où est né Alan Turing ?"]
# Génère des embeddings pour les requêtes
query_embeddings = ef.encode_queries(queries)
client = MilvusClient(
uri=ZILLIZ_PUBLIC_ENDPOINT,
token=ZILLIZ_API_KEY)
COLLECTION = "documents"
if client.has_collection(collection_name=COLLECTION) :
client.drop_collection(nom_de_la_collection=COLLECTION)
client.create_collection(
nom_de_la_collection=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(
nom_de_la_collection=COLLECTION,
data=query_embeddings,
niveau de cohérence="Fort",
output_fields=["text"])
Générer des embeddings vectoriels via la bibliothèque InstructorEmbedding
from InstructorEmbedding import INSTRUCTOR
from pymilvus import MilvusClient
model = INSTRUCTOR('hkunlp/instructor-base')
docs = [["Représenter le document Wikipédia pour l'extraire : ", "L'intelligence artificielle a été fondée en tant que discipline universitaire en 1956"],
["Représenter le document Wikipédia à retrouver : ", "Alan Turing a été la première personne à mener des recherches substantielles sur l'intelligence artificielle."],
["Représenter le document Wikipédia pour le retrouver : ", "Né à Maida Vale, Londres, Turing a grandi dans le sud de l'Angleterre."]]
# Générer des embeddings pour les documents
docs_embeddings = model.encode(docs, normalize_embeddings=True)
queries = [["Représenter la question Wikipédia pour récupérer les documents d'appui : ", "Quand l'intelligence artificielle a-t-elle été fondée"],
["Représenter la question Wikipédia pour retrouver des documents d'appui : ", "Où est né Alan Turing ?"]]
# Générer des embeddings pour les requêtes
query_embeddings = model.encode(queries, normalize_embeddings=True)
# Se connecter au nuage Zilliz avec le point de terminaison public et la clé API
client = MilvusClient(
uri=ZILLIZ_PUBLIC_ENDPOINT,
token=ZILLIZ_API_KEY)
COLLECTION = "documents"
if client.has_collection(collection_name=COLLECTION) :
client.drop_collection(nom_de_la_collection=COLLECTION)
client.create_collection(
nom_de_la_collection=COLLECTION,
dimension=768,
auto_id=True)
pour doc, embedding dans zip(docs, docs_embeddings) :
client.insert(COLLECTION, {"text" : doc, "vector" : embedding})
results = client.search(
nom_de_la_collection=COLLECTION,
data=query_embeddings,
niveau de cohérence="Fort",
output_fields=["text"])
- Introduction à la famille de modèles d'instructeurs
- Introduction à instructor-base
- Comment créer des embeddings avec **instructor-base**
Contenu
Workflows IA fluides
Des embeddings à la recherche IA évolutive - Zilliz Cloud vous permet de stocker, indexer et récupérer des embeddings avec une vitesse et une efficacité inégalées.
Essayer Zilliz Cloud gratuitement

