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