Jina AI

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

Um modelo de incorporação monolingue em inglês para um comprimento de sequência de até 8192 tokens; a variante mais pequena da família Jina Embeddings v2.

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 expandido 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 ao jina-embeddings-v2-small-en

O jina-embeddings-v2-small-en é um modelo de embedding monolingue em inglês concebido para um comprimento de sequência de até 8192 tokens. É a variante mais pequena da família Jina Embeddings v2, que foi treinada com 33 milhões de parâmetros e gera embeddings de 512 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-small-en

Existem duas formas principais de gerar embeddings vectoriais:

  • PyMilvus: o SDK Python para Milvus que integra perfeitamente o modelo jina-embeddings-v2-small-en.
  • Biblioteca SentenceTransformer: a biblioteca Python 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 similaridade semântica. Eis quatro passos fundamentais:

  • Inscrever-se](https://cloud.zilliz.com/signup) para uma conta Zilliz Cloud gratuitamente.
  • Configurar um cluster sem servidor](https://docs.zilliz.com/docs/create-cluster#set-up-a-free-cluster) e obter o Ponto de extremidade público e chave de API.
  • Crie uma coleção de vectores e insira os seus embeddings vectoriais.
  • Execute uma pesquisa semântica nos embeddings armazenados.

Criar embeddings via PyMilvus

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

ef = SentenceTransformerEmbeddingFunction("jinaai/jina-embeddings-v2-small-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):
    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.

Criar embeddings via sentence-transformer

from sentence_transformers import SentenceTransformer
from pymilvus import MilvusClient

model = SentenceTransformer("jinaai/jina-embeddings-v2-small-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):
    client.drop_collection(nome_da_colecção=COLLECTION)
client.create_collection(
    nome_da_colecção=COLLECTION,
    dimension=512,
    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"])

Consulte a Documentação do Hugging Face para mais detalhes.