La forma más sencilla de ofrecer modelos AI/ML en producción
Escriba una vez, ejecute en cualquier lugar: empaquete y pruebe el código, los pesos y las dependencias del modelo con un servidor modelo que se comporta igual en desarrollo y producción.
Bucle rápido para desarrolladores: implemente su modelo con retroalimentación rápida de un servidor de recarga en vivo y omita la configuración de Docker y Kubernetes con un entorno de servicio de modelos que incluye baterías.
Compatibilidad con todos los marcos de Python : desde transformers
y diffusers
hasta PyTorch
y TensorFlow
, pasando por TensorRT
y Triton
, Truss admite modelos creados y servidos con cualquier marco.
Consulte Trusses para ver modelos populares que incluyen:
Llama 2 7B (13B) (70B)
Difusión estable XL
Susurro
y docenas de ejemplos más.
Instale Truss con:
pip install --upgrade truss
Como ejemplo rápido, empaquetaremos una canalización de clasificación de texto del paquete transformers
de código abierto.
Para comenzar, cree un Truss con el siguiente comando de terminal:
clasificación de texto de inicio de truss
Cuando se le solicite, asigne a su Truss un nombre como Text classification
.
Luego, navegue hasta el directorio recién creado:
clasificación-de-texto-cd
Uno de los dos archivos esenciales en un Truss es model/model.py
. En este archivo, escribe una clase Model
: una interfaz entre el modelo de ML que está empaquetando y el servidor de modelo en el que lo está ejecutando.
Hay dos funciones miembro que debes implementar en la clase Model
:
load()
carga el modelo en el servidor de modelos. Se ejecuta exactamente una vez cuando el servidor modelo se activa o se parchea.
predict()
maneja la inferencia del modelo. Se ejecuta cada vez que se llama al servidor modelo.
Aquí está el model/model.py
completo para el modelo de clasificación de texto:
desde transformadores importar clase de canalización Modelo:def __init__(self, **kwargs):self._model = Nonedef load(self):self._model = pipeline("clasificación de texto")def predict(self, model_input):return self._model (entrada_modelo)
El otro archivo esencial en un Truss es config.yaml
, que configura el entorno de servicio del modelo. Para obtener una lista completa de las opciones de configuración, consulte la referencia de configuración.
El modelo de canalización se basa en Transformers y PyTorch. Estas dependencias deben especificarse en la configuración de Truss.
En config.yaml
, busque la línea requirements
. Reemplace la lista vacía con:
requisitos: - antorcha==2.0.1 - transformadores==4.30.0
No se necesita ninguna otra configuración.
Baseten mantiene Truss, que proporciona infraestructura para ejecutar modelos de ML en producción. Usaremos Baseten como host remoto para su modelo.
Próximamente llegarán otros controles remotos, comenzando con AWS SageMaker.
Para configurar el control remoto Baseten, necesitará una clave API de Baseten. Si no tiene una cuenta Baseten, no se preocupe, simplemente regístrese para obtener una cuenta y recibirá muchos créditos gratuitos para comenzar.
truss push
Con su clave API de Baseten lista para pegar cuando se le solicite, puede implementar su modelo:
Empuje de armadura
Puede monitorear la implementación de su modelo desde el panel de su modelo en Baseten.
Una vez que el modelo haya terminado de implementarse, puede invocarlo desde la terminal.
Invocación
truss predict -d '"¡Truss es increíble!"'
Respuesta
[ {"etiqueta": "POSITIVO","puntuación": 0.999873161315918 } ]
Truss cuenta con el respaldo de Baseten y se desarrolló en colaboración con ingenieros de ML de todo el mundo. Un agradecimiento especial a Stephan Auerhahn @ Stability.ai y Daniel Sarfati @ Salad Technologies por sus contribuciones.
Agradecemos con entusiasmo las contribuciones de acuerdo con nuestra guía y código de conducta para contribuyentes.