BAAI

BAAI / bge-reranker-base

Un modello di cross-encoder ottimizzato per i compiti di reranking costruito sulla base dell'architettura BERT.

Introduzione a bge-reranker-base

bge-reranker-base è un modello cross-encoder ottimizzato per i compiti di reranking. Costruito sulle fondamenta dell'architettura RetroMAE, cattura efficacemente le relazioni semantiche all'interno dei dati testuali, consentendo una classificazione più accurata e pertinente dei risultati di ricerca. Questo modello genera embeddings a 768 dimensioni ed è ottimizzato per il reranking dei risultati considerando sia il contenuto della query che quello del documento, rendendolo molto adatto ad applicazioni come i motori di ricerca, la risposta alle domande e il reperimento di documenti. Si consiglia di utilizzarli e di perfezionarli per riordinare i documenti top-k restituiti dai modelli di embedding.

Per ulteriori informazioni sul reranking e sui reranker, leggere i seguenti blog.

Come riordinare i risultati con bge-reranker-base

Esistono due modi principali per utilizzare il modello bge-reranker-base per riordinare i risultati:

  • PyMilvus: l'SDK Python per Milvus che si integra perfettamente con il modello bge-reranker-base.
  • FlagEmbedding: l'SDK Python ufficiale offerto da BAAI.

Risultati del reranking con bge-reranker-base tramite PyMilvus

da pymilvus.model.reranker import BGERerankFunction

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

query = "Quale evento del 1956 ha segnato la nascita ufficiale dell'intelligenza artificiale come disciplina?".

documenti = [
    "Nel 1950, Alan Turing pubblicò il suo articolo fondamentale, 'Computing Machinery and Intelligence', proponendo il Test di Turing come criterio di intelligenza, un concetto fondamentale nella filosofia e nello sviluppo dell'intelligenza artificiale.",
    "La conferenza di Dartmouth del 1956 è considerata il luogo di nascita dell'intelligenza artificiale come campo; qui John McCarthy e altri coniarono il termine 'intelligenza artificiale' e ne definirono gli obiettivi fondamentali",
    "Nel 1951, il matematico e informatico britannico Alan Turing sviluppò anche il primo programma progettato per giocare a scacchi, dimostrando un primo esempio di IA nella strategia di gioco",
    "L'invenzione del Logic Theorist da parte di Allen Newell, Herbert A. Simon e Cliff Shaw nel 1955 segnò la creazione del primo vero programma di IA, in grado di risolvere problemi logici, simili alla dimostrazione di teoremi matematici".
]

risultati = rf(
    query=query,
    documenti=documenti,
    top_k=3,
)

Per ulteriori informazioni, consultare la Documentazione di PyMilvus.

Risultati del reranking con bge-reranker-basevia FlagEmbedding Python SDK

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

query = "Quale evento del 1956 ha segnato la nascita ufficiale dell'intelligenza artificiale come disciplina?".

documenti = [
    "Nel 1950, Alan Turing pubblicò il suo articolo fondamentale, 'Computing Machinery and Intelligence', proponendo il Test di Turing come criterio di intelligenza, un concetto fondamentale nella filosofia e nello sviluppo dell'intelligenza artificiale",
    "La conferenza di Dartmouth del 1956 è considerata il luogo di nascita dell'intelligenza artificiale come campo; qui John McCarthy e altri coniarono il termine 'intelligenza artificiale' e ne definirono gli obiettivi fondamentali",
    "Nel 1951, il matematico e informatico britannico Alan Turing sviluppò anche il primo programma progettato per giocare a scacchi, dimostrando un primo esempio di IA nella strategia di gioco",
    "L'invenzione del Logic Theorist da parte di Allen Newell, Herbert A. Simon e Cliff Shaw nel 1955 segnò la creazione del primo vero programma di IA, in grado di risolvere problemi logici, simili alla dimostrazione di teoremi matematici".
]
results = reranker.compute_score([[query, document] for document in documents])