lodestone-base-4096-v1

Hum-Works
Similitud de oraciones

Este nuevo modelo de sentence-transformers de Hum mapea oraciones largas y párrafos a un espacio vectorial denso de 768 dimensiones y puede usarse para tareas como agrupamiento o búsqueda semántica. El modelo fue desarrollado como parte de un proyecto que busca aumentar la longitud máxima de secuencia de entrada de los modelos de embeddings de oraciones aprovechando los avances recientes en el diseño de modelos de transformadores, como la incorporación de FlashAttention, Attention with Linear Biases (ALiBi) y Gated Linear Units (GLU). Estas modificaciones y mejoras fueron implementadas por el equipo de MosaicML que diseñó y construyó el modelo preentrenado mosaic-bert-base-seqlen-2048. Aunque el procedimiento de fine-tuning seguido durante el curso de este proyecto refleja en gran medida el de los equipos originales de Flax-sentence-embeddings, nuestra metodología incluye técnicas novedosas para la carga de datos, muestreo en lotes y checkpointing del modelo, destinadas a mejorar la eficiencia del entrenamiento en cuanto a la asignación de memoria y el almacenamiento de datos. Combinando estas prácticas de fine-tuning bien establecidas y probadas con los avances recientes en los elementos arquitectónicos de los transformadores, nuestro modelo lodestone-base-4096-v1 es capaz de lograr métricas de rendimiento comparables en benchmarks estándar de evaluación de embeddings de texto, al tiempo que soporta una longitud de secuencia de entrada más larga y robusta de 4096, manteniendo un tamaño más pequeño y manejable, capaz de ejecutarse en una GPU o CPU.

Como usar

Usar este modelo se vuelve relativamente fácil cuando tienes sentence-transformers instalado. Al momento de la publicación, sentence-transformers no soporta código remoto, lo cual es requerido para flash-attention usado por el modelo. Un fork del repositorio de sentence-transformers que permite la ejecución de código remoto es provisto para conveniencia. Puede ser instalado usando el siguiente comando:

pip install git+https://github.com/Hum-Works/sentence-transformers.git
pip install einops

Luego puede usar el modelo de la siguiente manera:

from sentence_transformers import SentenceTransformer

model = SentenceTransformer('Hum-Works/lodestone-base-4096-v1', trust_remote_code=True, revision='v1.0.0')
sentences = ["Esta es una oración de ejemplo", "Cada oración es convertida"]
embeddings = model.encode(sentences)
print(embeddings)

Nota: El modelo usará la implementación openAI/Triton de FlashAttention si está instalada. Esto es más eficiente que la implementación por defecto de torch. Algunas plataformas y GPUs pueden no ser soportadas por Triton; se puede encontrar la compatibilidad actualizada en la página de GitHub de Triton.

Funcionalidades

Soporta secuencias de entrada de hasta 4096 caracteres.
Incorpora FlashAttention.
Utiliza Attention with Linear Biases (ALiBi).
Implementa Gated Linear Units (GLU).
Desarrollado con un objetivo de aprendizaje contrastivo auto-supervisado.

Casos de uso

Codificación de oraciones largas y párrafos.
Búsqueda de información.
Agrupamiento semántico.
Tareas de similitud de oraciones.