Recientemente, se han lanzado varios modelos básicos que sirven como cerebro de la IA generativa, y muchas empresas están revisando o desarrollando aplicaciones que utilizan modelos básicos. Sin embargo, no es fácil inferir modelos a gran escala en una sola GPU, y no es fácil servirlos para producción o ajustarlos.
Esta práctica está escrita para aquellos que desean revisar rápidamente la IA generativa y aplicarla a la producción, proporcionando una guía paso a paso sobre cómo servir y ajustar de manera eficiente modelos coreanos a gran escala en la infraestructura de AWS.
1_prepare-dataset-alpaca-method.ipynb
: prepara un conjunto de datos de entrenamiento a partir del conjunto de datos de instrucciones. Este método tokeniza cada muestra.1_prepare-dataset-chunk-method.ipynb
: prepara un conjunto de datos de entrenamiento a partir del conjunto de datos de instrucciones. Este método concatena todas las muestras y las divide según el tamaño del fragmento.2_local-train-debug-lora.ipynb
: depure con algunos datos de muestra en el entorno de desarrollo antes de actuar seriamente en instancias de capacitación. Si ya está familiarizado con el ajuste fino, omita esta práctica y continúe con 3_sm-train-lora.ipynb.3_sm-train-lora.ipynb
: realiza ajustes finos en instancias de entrenamiento de SageMaker. 1_local-inference.ipynb
: carga el modelo desde Hugging Face Hub y realiza una inferencia simple. Aunque no es obligatorio, te recomendamos comenzar con este curso si quieres probar el modelo.2_local-inference-deepspeed.py
y 2_run.sh
: Experimente con la inferencia distribuida de DeepSpeed. Se recomienda una instancia o servidor equipado con varias GPU. (por ejemplo, ml.g5.12xlarge
)3_sm-serving-djl-deepspeed-from-hub.ipynb
: Realiza la entrega del modelo SageMaker utilizando el contenedor de entrega SageMaker DJL (Deep Java Library) (inferencia distribuida de DeepSpeed). El servidor de alojamiento descarga modelos directamente desde Hugging Face Hub.3_sm-serving-djl-deepspeed-from-hub.ipynb
: Realiza la entrega del modelo SageMaker utilizando el contenedor de entrega SageMaker DJL (Deep Java Library) (inferencia distribuida de DeepSpeed). El servidor de alojamiento descarga el modelo de S3. La velocidad de descarga es muy rápida porque los archivos se descargan en paralelo internamente mediante s5cmd.3_sm-serving-tgi-from-hub.ipynb
: realiza la entrega del modelo de SageMaker utilizando el contenedor de entrega de SageMaker TGI (Text Generation Inferface). TGI es un servidor de inferencia distribuido desarrollado por Hugging Face y muestra una velocidad de inferencia muy rápida.3_sm-serving-djl-fastertransformer-nocode.ipynb
: realiza la entrega del modelo SageMaker utilizando el contenedor de entrega SageMaker DJL (Deep Java Library) (inferencia distribuida NVIDIA FasterTransformer). Muestra velocidades más rápidas que DeepSpeed solo para los modelos compatibles. Para realizar esta práctica, recomendamos preparar una instancia con las especificaciones a continuación.
Alternativamente, puede utilizar SageMaker Studio Lab o SageMaker Studio.
ml.t3.medium
(especificación mínima)ml.m5.xlarge
(recomendado)ml.g5.2xlarge
(especificación mínima)ml.g5.12xlarge
(recomendado)ml.g5.2xlarge
: Modelo con parámetros 7B o menosml.g5.12xlarge
(recomendado) Este código de muestra se proporciona bajo la licencia MIT-0. Consulte el archivo de licencia.