JaColBERT
Bienvenido a JaColBERT versión 1, el lanzamiento inicial de JaColBERT, un modelo de recuperación de documentos exclusivamente en japonés basado en ColBERT. Supera a los modelos japoneses comunes utilizados anteriormente para la recuperación de documentos y se acerca al rendimiento de los modelos multilingües, a pesar de que los conjuntos de datos de evaluación están fuera del dominio para nuestros modelos pero dentro del dominio para los enfoques multilingües. Esto demuestra el fuerte potencial de generalización de los modelos basados en ColBERT, ¡incluso aplicados al japonés! JaColBERT es solo un lanzamiento inicial: está entrenado en solo 10 millones de tríos de un solo conjunto de datos. Esta es una primera versión, que esperamos demuestre el fuerte potencial de este enfoque.
Como usar
Instalación
JaColBERT funciona utilizando ColBERT+RAGatouille. Puedes instalarlo y todas sus dependencias necesarias ejecutando:
pip install -U ragatouille
Para más ejemplos sobre cómo usar RAGatouille con modelos ColBERT, puedes consultar la sección de ejemplos en el repositorio de GitHub. Específicamente, el ejemplo 01 muestra cómo construir/consultar un índice, el ejemplo 04 muestra cómo puedes usar JaColBERT como un re-ranqueador, y el ejemplo 06 muestra cómo usar JaColBERT para búsquedas en memoria en lugar de usar un índice.
Codificación y consulta de documentos sin un índice
Si deseas usar JaColBERT sin construir un índice, es muy simple, solo necesitas cargar el modelo,
encode() algunos documentos y luego
search_encoded_documents():
from ragatouille import RAGPretrainedModel
RAG = RAGPretrainedModel.from_pretrained('bclavie/JaColBERT')
RAG.encode(['document_1', 'document_2', ...])
RAG.search_encoded_documents(query='your search query')
Las llamadas subsecuentes a
encode()
agregarán a la colección en memoria existente. Si deseas vaciarla, simplemente ejecuta
RAG.clear_encoded_docs().
Indexación
Para que el enfoque de recuperación de interacción tardía utilizado por ColBERT funcione, primero debes construir tu índice.
Piensa en ello como usar un modelo de embeddings, como e5, para embutir todos tus documentos y almacenarlos en una base de datos de vectores.
La indexación es el paso más lento, la recuperación es extremadamente rápida. Hay algunos trucos para acelerarlo, pero la configuración predeterminada funciona bastante bien:
from ragatouille import RAGPretrainedModel
RAG = RAGPretrainedModel.from_pretrained('bclavie/JaColBERT')
documents = ['マクドナルドのフライドポテトの少量のカロリーはいくつですか?マクドナルドの小さなフライドポテトのカロリーマクドナルドのウェブサイトには、次のように記載されています。フライドポテトの小さな注文で230カロリーケチャップで25カロリー、ケチャップパケットで15カロリー。',]
RAG.index(name='Mi_primer_índice', collection=documents)
Los archivos de índice se almacenan, por defecto, en
.ragatouille/colbert/indexes/{index_name}.
¡Y eso es todo! Deja que se ejecute, y tu índice y todas sus representaciones (comprimidas a 2 bits por defecto) se habrán generado.
Búsqueda
Una vez que hayas creado un índice, buscar en él es igual de simple. Si estás en la misma sesión y
RAG está cargado, puedes buscar directamente en el nuevo índice creado.
De lo contrario, querrás cargarlo desde el disco:
RAG = RAGPretrainedModel.from_index('.ragatouille/colbert/indexes/Mi_primer_índice')
Y luego consultarlo:
RAG.search(query='¿Qué estudio de animación fundó Miyazaki?')
Aquí tienes un ejemplo de resultados de búsqueda:
> [{
'content': 'In April 1984, Miyazaki opened his own office in Suginami Ward, naming it Nibariki.\n\n\n=== Studio Ghibli ===\n\n\n==== Early films (1985–1996) ====\nIn June 1985, Miyazaki, Takahata, Tokuma and Suzuki founded the animation production company Studio Ghibli, with funding from Tokuma Shoten. Studio Ghibli\'s first film, Laputa: Castle in the Sky (1986), employed the same production crew of Nausicaä. Miyazaki\'s designs for the film\'s setting were inspired by Greek architecture and \\"European urbanistic templates\\".',
'score': 25.90448570251465,
'rank': 1,
'document_id': 'miyazaki',
'document_metadata': {'entity': 'person', 'source': 'wikipedia'}
},
{
'content': 'Hayao Miyazaki (宮崎 駿 or 宮﨑 駿, Miyazaki Hayao, Japanese: [mijaꜜzaki hajao]; born January 5, 1941) is a Japanese animator, filmmaker, and manga artist. A co-founder of Studio Ghibli, he has attained international acclaim as a masterful storyteller and creator of Japanese animated feature films, and is widely regarded as one of the most accomplished filmmakers in the history of animation.\nBorn in Tokyo City in the Empire of Japan, Miyazaki expressed interest in manga and animation from an early age, and he joined Toei Animation in 1963. During his early years at Toei Animation he worked as an in-between artist and later collaborated with director Isao Takahata.',
'score': 25.572620391845703,
'rank': 2,
'document_id': 'miyazaki',
'document_metadata': {'entity': 'person', 'source': 'wikipedia'}
}]
Funcionalidades
- Modelo de recuperación de documentos exclusivamente en japonés
- Basado en ColBERT
- Rendimiento superior a modelos japoneses comunes
- Potencial de generalización fuerte fuera del dominio
- Entrenado en 10 millones de tríos de un solo conjunto de datos
- Coste computacional menor en comparación con cross-encoders
Casos de uso
- Recuperación de documentos en japonés
- Rendimiento superior en recuperación de información
- Aplicación de búsqueda en grandes volúmenes de datos
- Utilización como re-ranqueador en aplicaciones de búsqueda
- Búsquedas en memoria