Ajuste y despliegue de un LLM de código abierto en GPU mediante Data Science y acciones rápidas de IA
Introducción
En este tutorial se muestra cómo utilizar el servicio Oracle Cloud Infrastructure (OCI) Data Science para ajustar un LLM de código abierto mediante la funcionalidad de acciones rápidas de IA que proporciona Data Science. Con la facilidad de apuntar y hacer clic, utilizará acciones rápidas de IA para ajustar un LLM Mistral proporcionado por Hugging Face, con ese LLM ajustado en una pregunta frecuente publicada por NVIDIA. A continuación, AI Quick Actions se utiliza para desplegar ese modelo ajustado en OCI en una unidad de GPU A10. El código Python que se ejecuta en un Notebook de Jupyter se utiliza para mostrar que la salida del modelo ajustado tiene el estilo y el tono deseados que es similar a los datos de entrenamiento de NVIDIA.
Objetivos
- Inicie una sesión de Notebook de Data Science en OCI.
- Descargue las FAQ de NVIDIA.
- Utiliza acciones rápidas de IA para ajustar un LLM Hugging Face en esas preguntas frecuentes, con el ajuste realizado en una unidad de GPU en OCI.
- Utilice acciones rápidas de IA para comprobar la curva de aprendizaje del modelo ajustado y confirmar que el LLM ajustado es adecuado para el despliegue.
- Utilice acciones rápidas de IA para desplegar el LLM ajustado en la GPU.
- Utilice el código para llamar al punto final del modelo desplegado.
- Utilice el log de OCI para supervisar el tráfico en el punto final del modelo desplegado.
- Utilice python en un Notebook de Jupyter en Data Science para evaluar la calidad del modelo desplegado.
Requisitos
- Familiaridad con OCI Data Science.
- Acceso a un arrendamiento de OCI en una región que tiene unidades de GPU A10 o superiores disponibles.
- Políticas de OCI que le permiten iniciar un bloc de notas de Data Science y utilizar acciones rápidas de IA para ajustar e implementar un LLM en GPU; consulte https://github.com/oracle-samples/oci-data-science-ai-samples/tree/main/ai-quick-actions/policies para obtener orientación detallada sobre políticas.
- Entidad de recurso de OCI activada para que pueda escribir archivos en un cubo de OCI Object Storage.
- La entidad de recurso de OCI se ha activado para que pueda interactuar con un modelo desplegado en OCI.
- Una cuenta Hugging Face con un token activo.
Tarea 1: Aprovisionamiento de una sesión de bloc de notas de Data Science
-
Utilice la consola de OCI para crear un proyecto de Data Science.
-
Navegue hasta ese proyecto y cree una sesión de bloc de notas de Data Science con dos o más ECPU.
-
Abra esa sesión de bloc de notas y haga clic en Ampliar.
-
Inicie una sesión de terminal en Data Science.
-
Utilice ese terminal para clonar un repositorio de github que contenga los blocs de notas de Jupyter que utilizará este tutorial:
git clone https://github.com/oracle-nace-dsai/quick-actions-demo-archive.git -
Clonar preguntas frecuentes sobre NVIDIA:
git clone https://huggingface.co/datasets/ajsbsd/nvidia-qa -
Copie las preguntas frecuentes de NVIDIA en el directorio de datos del primer repositorio
cp nvidia-qa/NvidiaDocumentationQandApairs.csv quick-actions-demo-archive/data/. -
Instale y, a continuación, active el conda
General Machine Learning for CPUs on Python 3.11:odsc conda install -s generalml_p311_cpu_x86_64_v1 conda activate /home/datascience/conda/generalml_p311_cpu_x86_64_v1 -
Instalar LangChain por https://github.com/oracle-samples/oci-data-science-ai-samples/blob/main/ai-quick-actions/model-deployment-tips.md#using-python-sdk-without-streaming
pip install langgraph "langchain>=0.3" "langchain-community>=0.3" "langchain-openai>=0.2.3" "oracle-ads>2.12"
Tarea 2: Configurar una cuenta de Hugging Face
-
Crear una cuenta de Hugging Face en https://huggingface.co.
-
Vaya a su cuenta de Hugging Face > Tokens de acceso y cree un nuevo token de acceso de usuario que tenga estos permisos marcados:
- Acceso de lectura a los contenidos de todos los repositorios de su espacio de nombres personal
- Acceso de lectura a los contenidos de todos los repositorios cerrados públicos a los que puede acceder
-
Utilice una sesión de terminal de Data Science para registrar el token de acceso de usuario con Hugging Face:
git config --global credential.helper store huggingface-cli login
Tarea 3: Creación de un bloque de Object Storage
Cree un cubo de Object Storage en la misma región y compartimento que el bloc de notas de Data Science.
- Seleccione Activar Control de Versiones de Objeto
Tarea 4: Configurar registro
Crear un grupo de logs y, a continuación, Crear log personalizado
- Para Crear configuración de agente, seleccione
Add configuration later
Tarea 5: Uso de las acciones rápidas de IA de Data Science para desplegar el LLM en la unidad de GPU A10, sin ajuste detallado
-
Vaya a Cuaderno de Data Science > Iniciador > Acciones rápidas de IA.
a. Busque los modelos
Mistral
b. Haga clic en el mosaicomistralai/Mistral-7B-Instruct-v0.3
c. Haga clic en Desplegar con el log anterior seleccionado -
El despliegue del modelo tarda unos 15 minutos. Puede supervisar el log de despliegue seleccionando Abrir logs en terminal.
-
Una vez completado el despliegue del modelo, vaya a Despliegues > <su modelo recién desplegado> > Pruebe el modelo y pruebe ese modelo con preguntas simples, como:
Who wrote the Harry Potter book series? -
Algunos LLM simples pueden no responder correctamente las siguientes preguntas de prueba, pero
Mistral-7B-Instruct-v0.3hace un trabajo bastante bueno respondiendo a estas:A bat and a ball cost $1.10 in total. The bat costs $1.00 more than the ball. How much does the ball cost? Every cat has four legs. My pet has four legs. Is my pet a cat? Who is President of the United States?
Tarea 6: Interacción con el punto final del modelo desplegado
-
Vaya a Despliegues > <su modelo recién desplegado> Llame al modelo para ver el punto final del modelo desplegado. A continuación, utilice el terminal de Data Science para almacenar ese punto final como una variable de shell. Por ejemplo:
endpoint=https://modeldeployment.<region>.oci.customer-oci.com/<model_ocid>/predict -
Envíe una petición de datos al punto final del modelo desplegado:
prompt="Who is President of the United States?" request_body='{"model":"odsc-llm","prompt":"'$prompt'","max_tokens":100,"temperature":0.1,"top_k":50,"top_p":0.99,"stop":[],"frequency_penalty":0,"presence_penalty":0}' oci raw-request --http-method POST --target-uri $endpoint --request-body "$request_body" --auth resource_principal -
Utilice este bucle bash para llamar al punto final del modelo 100 veces en diez segundos:
for i in $(seq 1 100); do oci raw-request --http-method POST --target-uri $endpoint --request-body "$request_body" --auth resource_principal & echo $i sleep 0.1 done -
Vaya a Despliegues > <su modelo recién desplegado> > Log para ver el tráfico que acaba de enviar al punto final del modelo.

Descripción de la ilustración log_traffic.png
Tarea 7: Uso de acciones rápidas de IA para ajustar un LLM
La tarea anterior desplegó un LLM de Mistral sin ajuste. Esta tarea ajustará y, a continuación, desplegará el mismo LLM. La tarea 9 comparará las salidas de ambos modelos, ajustadas y sin ajustar. Esta tarea y la siguiente también utilizan dos blocs de notas de Jupyter que se descargaron de este archivo de código.
-
Utilice el explorador de archivos del bloc de notas de Data Science para navegar a la carpeta
quick-actions-demo-archivey abrir el bloc de notas de Jupyterprep_data.ipynb. -
Seleccione el núcleo
generalml_p311_cpu_x86_64_v1. -
Revise el segundo al último párrafo del bloc de notas para que haga referencia a su arrendamiento/espacio de nombres y al cubo de Object Storage.
-
Ejecute el bloc de notas de Jupyter
prep_data.ipynb, que:- Lea las preguntas frecuentes de NVIDIA desde el archivo
data/NvidiaDocumentationQandApairs.csv - vuelva a generar las preguntas frecuentes de CSV como registros JSON con los campos
promptycompletionque esperan las acciones rápidas de IA. - realizar una división de 90:10 de esos datos en muestras de train:test.
- transferir el ejemplo de formación al archivo
quick_actions/tuning_data/tune_sample.jsonlen Object Storage.
- Lea las preguntas frecuentes de NVIDIA desde el archivo
-
Vaya a Acciones rápidas de IA > Modelos >
mistralai/Mistral-7B-Instruct-v0.3. A continuación, haga clic en Ajustar con esta configuración:- Ruta de Object Storage =
quick_actions/tuning_data/tune_sample.jsonl - división de validación =
20% - ruta de Object Storage de resultados =
quick_actions/tuning_results - unidad =
BM.GPU.A10.4si existe disponibilidad. De lo contrario, utilice las unidades10.2o10.1 - seleccione el grupo de logs y el log
- Ruta de Object Storage =
-
Active Mostrar configuraciones avanzadas con estos valores:
batch_size = 64sequence_len = 256learning_rate = 0.000025epochs = 12
-
El ajuste tarda aproximadamente 60 minutos en una versión A10.2, de modo que haga clic en Abrir logs en el terminal para supervisar los logs del trabajo de ajuste.
-
Vea la curva de aprendizaje del modelo ajustado en la sección Métricas. Un modelo bien ajustado tendrá una curva de pérdida de validación que desciende y luego se mesea con el aumento de la época.

Descripción de la ilustración learning_curve.png
Tarea 8: Despliegue del LLM ajustado
-
Vaya a AI Quick Actions > Modelos ajustados > <su modelo ajustado> > Desplegar con esta configuración:
- Unidad de computación =
VM.GPU.A10.1 - Seleccione el grupo de logs y el log
- Unidad de computación =
-
Haga clic en Abrir logs en el terminal para supervisar el log de despliegue
Tarea 9: Prueba del despliegue del LLM ajustado
-
Una vez finalizado el despliegue del modelo, vaya a Despliegues > <su modelo recién ajustado> > Pruebe el modelo y pruébelo mediante preguntas de ejemplo de prueba que se muestran en el bloc de notas
prep_data.ipynb, como:What benefits does Unified Memory bring to complex data structures and classes? -
Copie/pegue el punto final del modelo en la variable de shell de la sesión de terminal:
endpoint=https://modeldeployment.<region>.oci.customer-oci.com/<model_ocid>/predict -
Envíe una petición de datos al punto final del modelo desplegado:
prompt="What benefits does Unified Memory bring to complex data structures and classes?" request_body='{"model":"odsc-llm","prompt":"'$prompt'","max_tokens":100,"temperature":0.1,"top_k":50,"top_p":0.99,"stop":[],"frequency_penalty":0,"presence_penalty":0}' oci raw-request --http-method POST --target-uri $endpoint --request-body "$request_body" --auth resource_principal -
Utilice este bucle bash para llamar al punto final del modelo 100 veces:
for i in $(seq 1 100); do oci raw-request --http-method POST --target-uri $endpoint --request-body "$request_body" --auth resource_principal & echo $i sleep 0.1 done -
Haga clic en el log del modelo ajustado/desplegado para ver el tráfico reciente en el punto final de ese modelo
-
Abra el bloc de notas de Jupyter
compare_models.ipynby actualice el párrafo [8] para hacer referencia a los puntos finales de los dos modelos, ajustados y sin ajustar. -
Ejecute ese bloc de notas, que:
- Lea la muestra de prueba de los registros de preguntas frecuentes.
- Utilice python para alimentar cinco preguntas de prueba en los puntos finales del modelo ajustado y sin ajustar, y compare sus respuestas.
-
Tenga en cuenta el párrafo [10], que ilustra cómo llamar al punto final de un modelo desplegado mediante python, que es bastante simple:

-
Revise los principales resultados de esta prueba:
- Las respuestas del LLM ajustadas tienen un tono, estilo y longitud bastante similares a las respuestas reales de las preguntas frecuentes compuestas por NVIDIA.
- Las respuestas del LLM sin ajustar son mucho más detalladas e incluyen muchas sentencias extrañas que probablemente sean incorrectas.
- Las respuestas del LLM ajustado frente a no ajustado son incorrectas la mayoría de las veces, y casi de la misma manera.
- El ajuste en un conjunto de datos mucho más grande probablemente aumentaría la precisión de sus respuestas.
Tarea 10: Suprimir los recursos
-
Vaya a Acciones rápidas de IA > Despliegues y suprima los despliegues de modelo.
-
Vaya a Acciones rápidas de IA > Modelos > Modelos ajustados y suprímalos.
-
Utilice la página de la consola de OCI para navegar a la sesión de bloc de notas de Data Science y Terminar.
-
Haga clic en Trabajos y suprima los trabajos de ajuste.
-
Suprima el proyecto de Data Science.
-
Utilice la página de la consola de OCI para navegar al cubo de Object Storage y suprimirlo.
-
Utilice la consola de OCI para suprimir el log y el grupo de logs.
Enlaces relacionados
- Más información sobre acciones rápidas de IA
- Fragmentos de código de acciones rápidas de IA útiles
- Políticas recomendadas para acciones rápidas de IA
- Blocs de notas de Jupyter asociados a este tutorial
Acuses de recibo
- Autores: Joe Hahn, científico sénior de datos, joe.hahn@oracle.com
- Colaboradores - Kevin Ortiz, arquitecto sénior de nube, kevin.ortiz@oracle.com
Más recursos de aprendizaje
Explore otros laboratorios en docs.oracle.com/learn o acceda a más contenido de aprendizaje gratuito en el canal YouTube de Oracle Learning. Además, visite education.oracle.com/learning-explorer para convertirse en un explorador de Oracle Learning.
Para obtener documentación sobre el producto, visite Oracle Help Center.
Fine-Tune & Deploy an Open Source LLM on GPU using Data Science and AI Quick Actions
G42929-02