BAAI

BAAI / bge-reranker-base

Um modelo de codificador cruzado optimizado para tarefas de reranking construído sobre a base da arquitetura BERT.

Introdução ao bge-reranker-base

O bge-reranker-base é um modelo de codificador cruzado optimizado para tarefas de reranking. Construído sobre a base da arquitetura RetroMAE, captura eficazmente relações semânticas dentro de dados textuais, permitindo classificações de resultados de pesquisa mais precisas e relevantes. Este modelo gera 768 embeddings dimensionais e é ajustado para classificar resultados considerando tanto a consulta como o conteúdo do documento, tornando-o altamente adequado para aplicações como motores de busca, resposta a perguntas e recuperação de documentos. Recomendamos a sua utilização/afinação para classificar novamente os documentos top-k devolvidos pelos modelos de incorporação.

Para obter mais informações sobre reranking e rerankers, leia os blogues abaixo.

Como classificar novamente os resultados com bge-reranker-base

Existem duas maneiras principais de usar o modelo bge-reranker-base para re-classificar os seus resultados:

  • PyMilvus: o SDK Python para Milvus que se integra perfeitamente com o modelo bge-reranker-base.
  • FlagEmbedding: o SDK Python oficial oferecido pela BAAI.

Resultados do re-ranking com o bge-reranker-base via PyMilvus

from pymilvus.model.reranker import BGERerankFunction

rf = BGERerankFunction(
    nome_do_modelo="BAAI/bge-reranker-base",
    device="cpu"
)

query = "Que evento em 1956 marcou o nascimento oficial da inteligência artificial como disciplina?"

documents = [
    "Em 1950, Alan Turing publicou o seu artigo seminal, 'Computing Machinery and Intelligence', propondo o Teste de Turing como critério de inteligência, um conceito fundamental na filosofia e no desenvolvimento da inteligência artificial",
    "A Conferência de Dartmouth, em 1956, é considerada o berço da inteligência artificial como campo; aqui, John McCarthy e outros cunharam o termo 'inteligência artificial' e definiram os seus objectivos básicos.",
    "Em 1951, o matemático e informático britânico Alan Turing também desenvolveu o primeiro programa concebido para jogar xadrez, demonstrando um exemplo precoce de IA na estratégia de jogo",
    "A invenção do Logic Theorist por Allen Newell, Herbert A. Simon e Cliff Shaw, em 1955, marcou a criação do primeiro verdadeiro programa de IA, capaz de resolver problemas de lógica, semelhante à prova de teoremas matemáticos."
]

resultados = rf(
    query=query,
    documents=documents,
    top_k=3,
)

Para mais informações, consulte a PyMilvus Documentation.

Re-ranking de resultados com bge-reranker-basevia FlagEmbedding Python SDK

from FlagEmbedding import FlagReranker
reranker = FlagReranker('BAAI/bge-reranker-base', use_fp16=True)

query = "Que evento em 1956 marcou o nascimento oficial da inteligência artificial como disciplina?"

documents = [
    "Em 1950, Alan Turing publicou o seu artigo seminal, 'Computing Machinery and Intelligence', propondo o Teste de Turing como critério de inteligência, um conceito fundamental na filosofia e no desenvolvimento da inteligência artificial",
    "A Conferência de Dartmouth, em 1956, é considerada o berço da inteligência artificial como campo; aqui, John McCarthy e outros cunharam o termo 'inteligência artificial' e definiram os seus objectivos básicos.",
    "Em 1951, o matemático e informático britânico Alan Turing também desenvolveu o primeiro programa concebido para jogar xadrez, demonstrando um exemplo precoce de IA na estratégia de jogo",
    "A invenção do Logic Theorist por Allen Newell, Herbert A. Simon e Cliff Shaw em 1955 marcou a criação do primeiro verdadeiro programa de IA, capaz de resolver problemas lógicos, semelhante à prova de teoremas matemáticos."
]
resultados = reranker.compute_score([[consulta, documento] for documento in documentos])