Microsoft

Microsoft / multilingual-e5-large

Adaptado para documentos multilingues; suporta mais de 100 línguas; ideal para tarefas de recuperação de informação multilingue e de pesquisa semântica.

Introdução ao modelo de incorporação multilingue-e5-large

  • Adaptado para documentos multilingues; suporta mais de 100 línguas; ideal para tarefas de recuperação de informação multilingue e [pesquisa semântica] (https://zilliz.com/glossary/semantic-search).

O modelo multilingual-e5-large é um modelo de incorporação de texto topo de gama desenvolvido pela Microsoft com base na arquitetura XLM-RoBERTa-large. Com a sua estrutura de 24 camadas e 560 milhões de parâmetros, o modelo multilingual-e5-large gera 1024 dimensões de incorporação e suporta 100 línguas, oferecendo um desempenho robusto mesmo em contextos multilingues.

Treinado com mil milhões de pares de texto pouco supervisionados e afinado em conjuntos de dados específicos, o modelo destaca-se em tarefas de recuperação de informação multilingue e de pesquisa semântica. Processa entradas de texto prefixadas com "query:" ou "passage:" para criar incorporações que reflectem com precisão o conteúdo semântico. Este modelo demonstra um desempenho superior em testes de referência multilingues, ultrapassando modelos mais pequenos e métodos tradicionais, tornando-o ideal para análise de texto multilingue, agrupamento e comparações de semelhanças.

Como criar embeddings vetoriais com o modelo multilingual-e5-large

Há duas maneiras principais de criar embeddings vetoriais com o modelo multilingual-e5-large:

  1. PyMilvus: o Python SDK para Milvus que se integra perfeitamente com o modelo multilingual-e5-large.
  2. Biblioteca SentenceTransformer: a biblioteca Python do sentence-transformer.

Uma vez gerados os embeddings vectoriais, estes podem ser armazenados na Zilliz Cloud (um serviço de base de dados vetorial totalmente gerido pela Milvus) e utilizados para [pesquisa de semelhança semântica] (https://zilliz.com/glossary/semantic-search). Eis quatro passos fundamentais:

  1. Inscreva-se para obter uma conta Zilliz Cloud gratuitamente.
  2. Configurar um cluster sem servidor e obter o Ponto de extremidade público e chave de API.
  3. Crie uma coleção de vectores e insira os seus embeddings vectoriais.
  4. Execute uma pesquisa semântica nos embeddings armazenados.

Gerar embeddings vectoriais através do PyMilvus e inseri-los no Zilliz Cloud para pesquisa semântica

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

ef = SentenceTransformerEmbeddingFunction("intfloat/multilingual-e5-large")
    
docs = [
   "passagem: A inteligência artificial foi fundada como disciplina académica em 1956.",
   "passagem: Alan Turing foi a primeira pessoa que realizou investigações aprofundadas no domínio da inteligência artificial", "passage: Alan Turing war die erste Person, die umfassende Forschungen im Bereich der künstlichen Intelligenz durchgeführt hat",
   "passagem: 图灵出生在伦敦的梅达维尔,他在英格兰南部长大。"
]
    
# Gerar embeddings para documentos
docs_embeddings = ef(docs)
    
consultas = ["consulta: Quando é que a inteligência artificial foi fundada",
           "pergunta: Wo wurde Alan Turing geboren?"]
               
# Gerar ligações para as consultas
consultas_embeddings = ef(consultas)

# Ligar ao Zilliz Cloud com o ponto final público e a chave da API
cliente = MilvusClient(
    uri=ZILLIZ_PUBLIC_ENDPOINT,
    token=ZILLIZ_API_KEY)

COLLECTION = "documents" (coleção)
if client.has_collection(nome_da_colecção=COLLECTION):
    client.drop_collection(nome_da_colecção=COLLECTION)
client.create_collection(
    nome_da_colecção=COLLECTION,
    dimension=ef.dim,
    auto_id=True)

for doc, embedding in zip(docs, docs_embeddings):
    client.insert(COLLECTION, {"text": doc, "vetor": embedding})
    
resultados = cliente.search(
    nome_da_colecção=COLLECTION,
    data=query_embeddings,
    consistency_level="Strong",
    output_fields=["text"])

Para mais informações, consulte a nossa PyMilvus Embedding Model documentation.

Gerar embeddings vectoriais através do SentenceTransformer e inseri-los no Zilliz Cloud para pesquisa semântica

from sentence_transformers import SentenceTransformer
from pymilvus import MilvusClient

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

docs = [
   "passagem: A inteligência artificial foi fundada como disciplina académica em 1956.",
   "passagem: Alan Turing foi a primeira pessoa que realizou investigações aprofundadas no domínio da inteligência artificial", "passage: Alan Turing war die erste Person, die umfassende Forschungen im Bereich der künstlichen Intelligenz durchgeführt hat",
   "passagem: 图灵出生在伦敦的梅达维尔,他在英格兰南部长大。"
]
# Gerar embeddings para documentos
docs_embeddings = model.encode(docs, normalize_embeddings=True)

consultas = ["consulta: Quando é que a inteligência artificial foi fundada",
           "consulta: Wo wurde Alan Turing geboren?" ]
# Gerar embeddings para as consultas
consultas_embeddings = model.encode(consultas, normalize_embeddings=True)

# Ligar ao Zilliz Cloud com o ponto final público e a chave API
cliente = MilvusClient(
    uri=ZILLIZ_PUBLIC_ENDPOINT,
    token=ZILLIZ_API_KEY)

COLLECTION = "documents" (coleção)
if client.has_collection(nome_da_colecção=COLLECTION):
    client.drop_collection(nome_da_colecção=COLLECTION)
client.create_collection(
    nome_da_colecção=COLLECTION,
    dimension=1024,
    auto_id=True)

for doc, embedding in zip(docs, docs_embeddings):
    client.insert(COLLECTION, {"text": doc, "vetor": embedding})
    
resultados = cliente.search(
    nome_da_colecção=COLLECTION,
    data=query_embeddings,
    consistency_level="Strong",
    output_fields=["text"])

Para mais informações, consulte a Documentação do SentenceTransformer.