Despliega modelos de incrustación con los puntos finales de inferencia de Hugging Face

Presenta modelos de incrustación con los puntos finales de inferencia de Hugging Face

El surgimiento de la IA generativa y los LLM como ChatGPT ha aumentado el interés y la importancia de los modelos de incrustación para una variedad de tareas, especialmente para la generación de recuperación aumentada, como la búsqueda o el chat con tus datos. Las incrustaciones son útiles porque representan oraciones, imágenes, palabras, etc. como representaciones numéricas vectoriales, lo que nos permite mapear elementos semánticamente relacionados y recuperar información útil. Esto nos ayuda a proporcionar un contexto relevante para nuestra solicitud y mejorar la calidad y especificidad de la generación.

En comparación con los LLM, los modelos de incrustación son más pequeños y más rápidos para la inferencia. Esto es muy importante ya que es necesario recrear las incrustaciones después de cambiar o mejorar el ajuste fino del modelo. Además, es importante que todo el proceso de recuperación y aumento sea lo más rápido posible para brindar una buena experiencia al usuario.

En esta publicación de blog, le mostraremos cómo implementar modelos de incrustación de código abierto en los puntos finales de inferencia de Hugging Face utilizando Inferencia de Incrustado de Texto, nuestra solución SaaS administrada que facilita la implementación de modelos. Además, le enseñaremos cómo ejecutar solicitudes de gran escala por lotes.

  1. ¿Qué son los puntos finales de inferencia de Hugging Face?
  2. ¿Qué es la Inferencia de Incrustado de Texto?
  3. Implementar modelo de incrustación como punto final de inferencia
  4. Enviar solicitud al punto final y crear incrustaciones

Antes de comenzar, repasemos nuestro conocimiento sobre los puntos finales de inferencia.

1. ¿Qué son los puntos finales de inferencia de Hugging Face?

Los puntos finales de inferencia de Hugging Face ofrecen una forma fácil y segura de implementar modelos de aprendizaje automático para su uso en producción. Los puntos finales de inferencia permiten a los desarrolladores y científicos de datos crear aplicaciones de IA generativa sin tener que gestionar la infraestructura: simplificando el proceso de implementación a unos pocos clics, incluyendo el manejo de grandes volúmenes de solicitudes con escalado automático, reduciendo los costos de infraestructura con escala a cero y ofreciendo seguridad avanzada.

Aquí hay algunas de las características más importantes:

  1. Implementación fácil: Implemente modelos como API listas para producción con solo unos pocos clics, eliminando la necesidad de manejar la infraestructura o MLOps.
  2. Eficiencia de costes: Benefíciese de la capacidad de escalar automáticamente a cero, reduciendo los costos al reducir la infraestructura cuando el punto final no esté en uso, y pagando en función del tiempo de actividad del punto final, garantizando la rentabilidad.
  3. Seguridad empresarial: Implemente modelos en puntos finales seguros sin conexión, accesibles solo a través de conexiones directas de VPC, respaldados por la certificación SOC2 Tipo 2 y ofreciendo acuerdos de procesamiento de datos BAA y GDPR para una mayor seguridad y cumplimiento de datos.
  4. Optimización de LLM: Optimizado para LLM, permite un alto rendimiento con Atención Paginada y baja latencia a través de código personalizado de transformadores y potencia de Atención en Flash mediante la Inferencia de Generación de Texto.
  5. Soporte integral de tareas: Admite de forma predeterminada las tareas y modelos de 🤗 Transformers, Sentence-Transformers y Diffusers, y permite una personalización sencilla para habilitar tareas avanzadas como la diarización de hablantes o cualquier tarea y biblioteca de aprendizaje automático.

Puede comenzar con los puntos finales de inferencia en: https://ui.endpoints.huggingface.co/

2. ¿Qué es la Inferencia de Incrustado de Texto?

Text Embeddings Inference (TEI) es una solución especializada para implementar y servir modelos de embeddings de texto de código abierto. TEI está construido para obtener un rendimiento óptimo y es compatible con los modelos más populares. TEI soporta los 10 principales modelos de la Tabla de clasificación de benchmark de modelos de embedding de texto masivo (MTEB), incluyendo FlagEmbedding, Ember, GTE y E5. TEI actualmente implementa las siguientes funciones de optimización del rendimiento:

  • No hay paso de compilación del grafo del modelo.
  • Imágenes de docker pequeñas y tiempos de inicio rápidos. ¡Prepárate para la verdadera serverless!
  • Batching dinámico basado en tokens.
  • Código optimizado de transformers para inferencia utilizando Flash Attention, Candle y cuBLASLt.
  • Carga de pesos con Safetensors.
  • Listo para producción (trazado distribuido con Open Telemetry, métricas de Prometheus).

Estas características han permitido obtener un rendimiento líder en la industria en términos de rendimiento y costos. En una prueba para BAAI/bge-base-en-v1.5 en un punto final de inferencia Nvidia A10G con una longitud de secuencia de 512 tokens y un tamaño de batch de 32, se logró un rendimiento de más de 450 solicitudes por segundo, lo que resulta en un costo de 0.00156$ / 1M tokens o 0.00000156$ / 1k tokens. Esto es 64 veces más barato que OpenAI Embeddings ($0.0001 / 1K tokens).

Rendimiento

3. Implementar el modelo de embedding como punto final de inferencia

Para comenzar, debes iniciar sesión con una cuenta de usuario u organización con un método de pago registrado (puedes agregar uno aquí), luego acceder a los Puntos finales de inferencia en https://ui.endpoints.huggingface.co

Luego, haz clic en “Nuevo punto final”. Selecciona el repositorio, la nube y la región, ajusta la configuración de la instancia y seguridad, y despliega en nuestro caso BAAI/bge-base-en-v1.5.

Crear modelo

Los Puntos finales de inferencia sugieren un tipo de instancia según el tamaño del modelo, que debe ser lo suficientemente grande para ejecutar el modelo. Aquí se utiliza Intel Ice Lake 2 vCPU. Para obtener el rendimiento de la prueba que realizamos, cambia la instancia a 1x Nvidia A10G.

Nota: Si no se puede seleccionar el tipo de instancia, debes contactarnos y solicitar una cuota de instancia.

Seleccionar instancia

Luego puedes implementar tu modelo con un clic en “Crear punto final”. Después de 1-3 minutos, el punto final debería estar en línea y disponible para recibir solicitudes.

4. Enviar solicitud al punto final y crear embeddings

La vista general del punto final proporciona acceso al Widget de inferencia, que se puede usar para enviar solicitudes manualmente. Esto te permite probar rápidamente tu punto final con diferentes entradas y compartirlo con los miembros del equipo.

Probar modelo

Nota: TEI actualmente no está truncando automáticamente la entrada. Puedes habilitar esto configurando truncate: true en tu solicitud.

Además del widget, la descripción general proporciona un fragmento de código para cURL, Python y Javascript, que puedes utilizar para enviar solicitudes al modelo. El fragmento de código te muestra cómo enviar una sola solicitud, pero TEI también admite solicitudes por lotes, lo que te permite enviar múltiples documentos al mismo tiempo para aumentar la utilización de tu punto final. A continuación, se muestra un ejemplo de cómo enviar una solicitud por lotes con truncamiento configurado en true.

import requestsAPI_URL = "https://l2skjfwp9punv393.us-east-1.aws.endpoints.huggingface.cloud"headers = {    "Authorization": "Bearer TU TOKEN",    "Content-Type": "application/json"}def query(payload):    response = requests.post(API_URL, headers=headers, json=payload)    return response.json()    output = query({"inputs": ["oración 1", "oración 2", "oración 3"],"truncate": True})# output [[0.334, ...], [-0.234, ...]]

Conclusión

TEI en los puntos finales de inferencia de Hugging Face permite la implementación ultrarrápida y ultracostos eficiente de modelos de incrustaciones de vanguardia. Con una velocidad de procesamiento líder en la industria de más de 450 solicitudes por segundo y costos tan bajos como $0.00000156 / 1k tokens, los puntos finales de inferencia ofrecen un ahorro de costos de 64 veces en comparación con las incrustaciones de OpenAI.

Para desarrolladores y empresas que aprovechan las incrustaciones de texto para habilitar la búsqueda semántica, los chatbots, las recomendaciones y más, los puntos finales de inferencia de Hugging Face eliminan la sobrecarga de infraestructura y brindan un alto rendimiento a menor costo, agilizando el proceso desde la investigación hasta la producción.


¡Gracias por leer! Si tienes alguna pregunta, no dudes en contactarme en Twitter o en LinkedIn.

We will continue to update Zepes; if you have any questions or suggestions, please contact us!

Share:

Was this article helpful?

93 out of 132 found this helpful

Discover more

Inteligencia Artificial

Reduciendo la huella de carbono en el entrenamiento de IA mediante la optimización

Investigadores de la Universidad de Michigan han creado un marco de optimización de código abierto llamado Zeus que a...

Ciencias de la Computación

Cómo la inteligencia artificial protege (y ataca) tu bandeja de entrada.

Las empresas, como Google, están buscando formas en que la inteligencia artificial y el aprendizaje automático puedan...

Inteligencia Artificial

Esta Investigación de IA presenta GAIA un referente que define el próximo hito en la competencia general de IA

“`html Investigadores de FAIR Meta, HuggingFace, AutoGPT y GenAI Meta abordan el problema de probar las capacid...

Inteligencia Artificial

La IA y los implantes cerebrales restauran el movimiento y la sensación para un hombre paralizado

En un logro médico innovador, médicos en Estados Unidos han aprovechado el poder de la Inteligencia Artificial (IA) y...