colbertv1-camembert-base-mmarcoFR

antoinelouis
Similitud de oraciones

Este es un modelo ColBERTv1 para francés que se puede utilizar para búsqueda semántica. Codifica consultas y pasajes en matrices de incrustaciones a nivel de token y encuentra eficazmente pasajes que coinciden contextualmente con la consulta utilizando operadores de similitud vectorial escalables (MaxSim).

Como usar

Uso

Aquí hay algunos ejemplos de cómo usar el modelo con RAGatouille o colbert-ai.

Usando RAGatouille

Primero, necesitará instalar las siguientes bibliotecas:

pip install -U ragatouille

Luego, puede usar el modelo de esta manera:

from ragatouille import RAGPretrainedModel

index_name: str = "my_index"  # El nombre de su índice, es decir, el nombre de su base de datos de vectores
documents: list = ["Ceci est un premier document.", "Voici un second document.", "etc."]  # Corpus

# Paso 1: Indexación.
RAG = RAGPretrainedModel.from_pretrained("antoinelouis/colbertv1-camembert-base-mmarcoFR")
RAG.index(name=index_name, collection=documents)

# Paso 2: Búsqueda.
RAG = RAGPretrainedModel.from_index(index_name)  # Si no ya está cargado
RAG.search(query="Comment effectuer une recherche avec ColBERT ?", k=10)

Usando ColBERT-AI

Primero, necesitará instalar las siguientes bibliotecas:

pip install git+https://github.com/stanford-futuredata/ColBERT.git torch faiss-gpu==1.7.2

Luego, puede usar el modelo de esta manera:

from colbert import Indexer, Searcher
from colbert.infra import Run, RunConfig

n_gpu: int = 1  # Establezca su número de GPUs disponibles
experiment: str = "colbert"  # Nombre de la carpeta donde se almacenarán los registros e índices creados
index_name: str = "my_index"  # El nombre de su índice, es decir, el nombre de su base de datos de vectores
documents: list = ["Ceci est un premier document.", "Voici un second document.", "etc."]  # Corpus

# Paso 1: Indexación. Este paso codifica todos los pasajes en matrices, los almacena en disco y construye estructuras de datos para una búsqueda eficiente.
with Run().context(RunConfig(nranks=n_gpu,experiment=experiment)):
indexer = Indexer(checkpoint="antoinelouis/colbertv1-camembert-base-mmarcoFR")
indexer.index(name=index_name, collection=documents)

# Paso 2: Búsqueda. Dado el modelo y el índice, puede emitir consultas sobre la colección para recuperar los pasajes principales para cada consulta.
with Run().context(RunConfig(nranks=n_gpu,experiment=experiment)):
searcher = Searcher(index=index_name)  # No necesita especificar el checkpoint nuevamente, el nombre del modelo se almacena en el índice.
results = searcher.search(query="Comment effectuer une recherche avec ColBERT ?", k=10)
# resultados: tupla de tuplas de longitud k que contiene ((id_pasaje, rango_pasaje, score_pasaje), ...)

Funcionalidades

Codificación de consultas y pasajes en matrices de incrustaciones a nivel de token
Búsqueda eficiente de pasajes que coinciden contextualemente con la consulta
Utiliza operadores de similitud vectorial escalables (MaxSim)

Casos de uso

Búsqueda semántica en francés
Recuperación de pasajes contextuales
Implementaciones de búsqueda eficientes en grandes corpus de texto