Jina AI

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

Uma ferramenta de incorporação de texto bilingue (chinês/inglês) que pode processar até 8192 tokens por sequência.

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.

O que é jina-embeddings-v2-base-zh

jina-embeddings-v2-base-zh é uma ferramenta de incorporação de texto bilingue (chinês/inglês) que pode processar até 8192 tokens por sequência. Foi construída sobre uma arquitetura BERT especializada (chamada JinaBERT) para aplicações monolingues e multilingues.

Comparação do jina-embeddings-v2-base-zh com outros modelos de embedding do 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 usando jina-embeddings-v2-base-zh

Existem duas formas principais de gerar embeddings vectoriais:

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

Uma vez criados os embeddings vectoriais, estes podem ser armazenados numa base de dados vetorial como a Zilliz Cloud (uma base de dados vetorial totalmente gerida pela Milvus) e utilizada para pesquisa de similaridade semântica.

Aqui estão quatro etapas principais:

  • 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.

Crie embeddings via PyMilvus e insira-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-zh", trust_remote_code=True)

docs = [
   "人工智能于1956年作为一门学术学科成立。",
   "艾伦-图灵是第一位在人工智能领域进行实质性研究的人。",
   "图灵出生于伦敦的梅达韦尔,在英格兰南部长大。"
]
# Gerar embeddings para os documentos
docs_embeddings = ef(docs)

consultas = ["人工智能是什么时候创立的?",
          "艾伦-图灵出生在哪里?"]
# Gerar embeddings para consultas
query_embeddings = ef(queries)

# 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 obter detalhes, consulte a nossa [PyMilvus Embedding Model documentation](Para obter mais informações, consulte a nossa PyMilvus Embedding Model documentation.).

Criar embeddings através da biblioteca 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-zh", trust_remote_code=True)

docs = [
   "人工智能于1956年作为一门学术学科成立。",
   "艾伦-图灵是第一位在人工智能领域进行实质性研究的人。",
   "图灵出生于伦敦的梅达韦尔,在英格兰南部长大。"
]
# Gerar embeddings para os documentos
docs_embeddings = model.encode(docs, normalize_embeddings=True)

consultas = ["人工智能是什么时候创立的?",
          "艾伦-图灵出生在哪里?"]
# Gerar embeddings para consultas
query_embeddings = model.encode(queries, normalize_embeddings=True)

# 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=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"])