Jina AI

Jina AI / jina-embeddings-v2-base-en

Modelo de incorporação especializado para texto em inglês e documentos longos; suporta sequências de até 8192 tokens

Introdução aos modelos Jina Embedding v2

Os modelos Jina Embeddings v2 foram concebidos para lidar com documentos longos com um tamanho máximo de entrada alargado de 8.192 tokens. A partir de outubro de 2024, o Jina AI Embedding V2 tem as seguintes variantes, cada uma atendendo a diferentes necessidades de embedding:

Introdução a jina-embeddings-v2-base-en

O jina-embeddings-v2-base-en é um modelo de incorporação monolingue em inglês para um comprimento de sequência de até 8192 tokens. É a variante média ou básica da família Jina Embeddings v2, que foi treinada com 137 milhões de parâmetros e gera embeddings de 768 dimensões.

Comparação do jina-embeddings-v2-small-en com outros modelos de incorporação Jina.

ModeloTamanho do parâmetroDimensão de incorporaçãoTexto
jina-embeddings-v3570Mtamanho de embedding flexível (Padrão: 1024)embeddings de texto multilíngüe; suporta 94 idiomas no total
jina-embeddings-v2-small-en33M512embeddings monolingues em inglês
jina-embeddings-v2-base-en137M768Embeddings monolingues em inglês
jina-embeddings-v2-base-zh161M768Embeddings bilingues chinês-inglês
jina-embeddings-v2-base-de161M768Embeddings bilingues alemão-inglês
jina-embeddings-v2-base-code161M768Inglês e linguagens de programação

Como criar embeddings com jina-embeddings-v2-base-en

Existem duas formas principais de utilizar o modelo jina-embeddings-v2-base-en para gerar embeddings vectoriais:

  1. PyMilvus: o Python SDK para Milvus que integra perfeitamente o modelo jina-embeddings-v2-base-en.
  2. Biblioteca SentenceTransformer: a biblioteca python sentence-transformer.

Gera embeddings vectoriais através do PyMilvus e insere-os no Zilliz Cloud para pesquisa semântica

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

ef = SentenceTransformerEmbeddingFunction("jinaai/jina-embeddings-v2-base-en", trust_remote_code=True)

docs = [
   "A inteligência artificial foi fundada como disciplina académica em 1956",
   "Alan Turing foi a primeira pessoa a efetuar investigação substancial em IA",
   "Nascido em Maida Vale, Londres, Turing foi criado no sul de Inglaterra."
]
# Gerar embeddings para os documentos
docs_embeddings = ef(docs)

consultas = ["Quando foi fundada a inteligência artificial",
          "Onde nasceu Alan Turing?"]
# Gerar incorporações para consultas
consultas_embeddings = ef(consultas)

# Ligar ao Zilliz Cloud com o ponto de extremidade 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):
    cliente.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 via SentenceTransformer e inseri-los no Zilliz Cloud para pesquisa semântica

from sentence_transformers import SentenceTransformer
from pymilvus import MilvusClient

model = SentenceTransformer("jinaai/jina-embeddings-v2-base-en", trust_remote_code=True)

docs = [
   "A inteligência artificial foi fundada como disciplina académica em 1956",
   "Alan Turing foi a primeira pessoa a efetuar investigação substancial em IA",
   "Nascido em Maida Vale, Londres, Turing foi criado no sul de Inglaterra."
]
# 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):
    cliente.drop_collection(nome_da_colecção=COLLECTION)
client.create_collection(
    nome_da_colecção=COLLECTION,
    dimension=768,
    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 SentenceTransformer documentation.