Microsoft

Microsoft / multilingual-e5-large

È stato creato su misura per i documenti multilingue; supporta oltre 100 lingue; è ideale per il reperimento di informazioni multilingue e per le attività di ricerca semantica.

Introduzione al modello di incorporazione multilingua-e5-grande

  • Pensato per i documenti multilingue; supporta più di 100 lingue; è ideale per il recupero di informazioni multilingue e la ricerca semantica.

Il modello multilingual-e5-large è un modello di incorporazione del testo all'avanguardia sviluppato da Microsoft e basato sull'architettura XLM-RoBERTa-large. Con la sua struttura a 24 strati e 560 milioni di parametri, il modello multilingual-e5-large genera embedding a 1024 dimensioni e supporta 100 lingue, offrendo prestazioni solide anche in contesti multilingue.

Addestrato su un miliardo di coppie di testi con supervisione debole e messo a punto su set di dati specifici, il modello eccelle nel recupero di informazioni multilingue e nella ricerca semantica. Il modello elabora gli input di testo preceduti da "query:" o "passage:" per creare incorporazioni che riflettono accuratamente il contenuto semantico. Questo modello ha dimostrato prestazioni superiori nei benchmark multilingue, superando modelli più piccoli e metodi tradizionali, rendendolo ideale per l'analisi del testo multilingue, il clustering e i confronti di somiglianza.

Come creare embeddings vettoriali con il modello multilingue-e5-large

Esistono due modi principali per creare incorporazioni vettoriali con il modello multilingual-e5-large:

  1. PyMilvus: l'SDK Python per Milvus che si integra perfettamente con il modello multilingue-e5-large.
  2. Libreria SentenceTransformer: la libreria Python di sentence-transformer.

Una volta generate le incorporazioni vettoriali, queste possono essere archiviate in Zilliz Cloud (un servizio di database vettoriale completamente gestito da Milvus) e utilizzate per la [ricerca di similarità semantica] (https://zilliz.com/glossary/semantic-search). Ecco i quattro passaggi chiave:

  1. Iscriviti per un account Zilliz Cloud gratuito.
  2. Configurare un cluster serverless e ottenere il Public Endpoint and API Key.
  3. Creare una collezione di vettori e inserire i propri embeddings vettoriali.
  4. Eseguire una ricerca semantica sugli embeddings memorizzati.

Generare embeddings vettoriali tramite PyMilvus e inserirli in Zilliz Cloud per la ricerca semantica.

da pymilvus.model.dense import SentenceTransformerEmbeddingFunction
da pymilvus import MilvusClient

ef = SentenceTransformerEmbeddingFunction("intfloat/multilingual-e5-large")
    
docs = [
   "passaggio": L'intelligenza artificiale è stata fondata come disciplina accademica nel 1956",
   "passaggio: Alan Turing è stato la prima persona che ha portato avanti una serie di ricerche nel campo dell'intelligenza artificiale",
   "passaggio: 图灵出生在伦敦的梅达维尔,他在英格兰南部长大。"
]
    
# Generare embeddings per i documenti
docs_embeddings = ef(docs)
    
query = ["query: Quando è stata fondata l'intelligenza artificiale",
           "query: Wo wurde Alan Turing geboren?"]
               
# Generare le incorporazioni per le query
query_embeddings = ef(query)

# Connettersi a Zilliz Cloud con l'endpoint pubblico e la chiave API
client = MilvusClient(
    uri=ZILLIZ_PUBLIC_ENDPOINT,
    token=ZILLIZ_API_KEY)

COLLEZIONE = "documenti"
if client.has_collection(collection_name=COLLECTION):
    client.drop_collection(nome_raccolta=COLLEZIONE)
client.create_collection(
    nome_collezione=COLLEZIONE,
    dimensione=ef.dim,
    auto_id=True)

per doc, embedding in zip(docs, docs_embeddings):
    client.insert(COLLECTION, {"text": doc, "vector": embedding})
    
risultati = client.search(
    nome_collezione=COLLEZIONE,
    dati=query_embeddings,
    consistency_level="Strong",
    output_fields=["text"])

Per ulteriori informazioni, consultare la nostra [documentazione sul modello di incorporazione di PyMilvus] (https://milvus.io/docs/embeddings.md).

Generare embeddings vettoriali tramite SentenceTransformer e inserirli in Zilliz Cloud per la ricerca semantica

da sentence_transformers import SentenceTransformer
da pymilvus import MilvusClient

model = SentenceTransformer("intfloat/multilingual-e5-large")

docs = [
   "passaggio": L'intelligenza artificiale è stata fondata come disciplina accademica nel 1956",
   "passaggio: Alan Turing è stato la prima persona che ha portato avanti una serie di ricerche nel campo dell'intelligenza artificiale", "passage: Alan Turing è stato la prima persona che ha portato avanti una serie di ricerche nel campo dell'intelligenza artificiale", "passage: Alan Turing è stato la prima persona che ha portato avanti una serie di ricerche nel campo dell'intelligenza artificiale",
   "passaggio: 图灵出生在伦敦的梅达维尔,他在英格兰南部长大。"
]
# Generare le incorporazioni per i documenti
docs_embeddings = model.encode(docs, normalize_embeddings=True)

query = ["query: Quando è stata fondata l'intelligenza artificiale",
           "query: Wo wurde Alan Turing geboren?" ]
# Generare le incorporazioni per le query
query_embeddings = model.encode(queries, normalize_embeddings=True)

# Connettersi a Zilliz Cloud con l'endpoint pubblico e la chiave API
client = MilvusClient(
    uri=ZILLIZ_PUBLIC_ENDPOINT,
    token=ZILLIZ_API_KEY)

COLLEZIONE = "documenti"
if client.has_collection(collection_name=COLLECTION):
    client.drop_collection(nome_raccolta=COLLEZIONE)
client.create_collection(
    nome_collezione=COLLEZIONE,
    dimensione=1024,
    auto_id=True)

per doc, embedding in zip(docs, docs_embeddings):
    client.insert(COLLECTION, {"text": doc, "vector": embedding})
    
risultati = client.search(
    nome_collezione=COLLEZIONE,
    dati=query_embeddings,
    consistency_level="Strong",
    output_fields=["text"])

Per ulteriori informazioni, consultare SentenceTransformer documentation.