Arabic-ColBERT-100K

akhooli
Similitud de oraciones

Primera versión de Arabic ColBERT (modelos mejores están disponibles, ver los de 250k y 711k). Este modelo fue entrenado en 100K triplets filtrados del conjunto de datos akhooli/arabic-triplets-1m-curated-sims-len, que contiene un millón de triplets en árabe (traducidos). El conjunto de datos fue recopilado de diferentes fuentes y enriquecido con una puntuación de similitud. Más detalles sobre el conjunto de datos están disponibles en la tarjeta de datos. El entrenamiento utilizó la librería Ragatouille usando una cuenta de Kaggle con 2 GPU y el modelo base aubmindlab/bert-base-arabertv02. Se recomienda descargar la versión actual si lo descargaste antes del 27 de julio a las 8 pm (hora de Jerusalén). Usa los ejemplos de Ragatouille para aprender más, solo reemplaza el nombre del modelo preentrenado y asegúrate de usar texto en árabe y dividir los documentos para obtener los mejores resultados. Puedes entrenar un modelo mejor si tienes acceso a los recursos adecuados (puedes ajustar este modelo en más datos, se usó la semilla 42 para elegir la muestra de 100K).

Como usar

from datasets import load_dataset
from ragatouille import RAGTrainer
sample_size = 100000
ds = load_dataset('akhooli/arabic-triplets-1m-curated-sims-len', split="train", trust_remote_code=True, streaming=True)

# Some data processing not in this script (data filtered based on similarity scores) and 100K selected at random
sds = ds.shuffle(seed=42, buffer_size=10_000)
dsf = sds
triplets = []
for item in iter(dsf):
    triplets.append((item["query"], item["positive"], item["negative"]))
trainer = RAGTrainer(model_name="Arabic-ColBERT-100k", pretrained_model_name="aubmindlab/bert-base-arabertv02", language_code="ar",)
trainer.prepare_training_data(raw_data=triplets, mine_hard_negatives=False)

trainer.train(batch_size=32,
    nbits=4, # How many bits will the trained model use when compressing indexes
    maxsteps=3125, # Maximum steps hard stop
    use_ib_negatives=True, # Use in-batch negative to calculate loss
    dim=128, # How many dimensions per embedding. 128 is the default and works well.
    learning_rate=1e-5, # Learning rate, small values ([3e-6,3e-5] work best if the base model is BERT-like, 5e-6 is often the sweet spot)
    doc_maxlen=256, # Maximum document length. Because of how ColBERT works, smaller chunks (128-256) work very well.
    use_relu=False, # Disable ReLU -- doesn't improve performance
    warmup_steps="auto", # Defaults to 10%```

Instala datasets y ragatouille primero. El último punto de control se guarda en .ragatouille/../../colbert.

Funcionalidades

Traducción de triplets árabes
Curación de datos con puntuación de similitud
Utilización de la librería Ragatouille
Entrenamiento en una cuenta de Kaggle con 2 GPU
Modelo base aubmindlab/bert-base-arabertv02

Casos de uso

Similitud de oraciones
Entrenamiento de modelos en árabe
Uso de triplets curados con puntuación de similitud