0 / 0
Volver a la versión inglesa de la documentación

Sintonizar un foundation model a programáticamente ( Python )

Última actualización: 21 feb 2025
Sintonizar un foundation model a programáticamente ( Python )

Puede ajustar los modelos de base en IBM watsonx.ai mediante programación utilizando la biblioteca Python.

Para ajustar rápidamente un foundation model , ejecuta un experimento que utiliza datos de entrenamiento proporcionados por ti. El experimento es un proceso de aprendizaje automático que muestra al e foundation model a los resultados que espera que el modelo devuelva para sus entradas rápidas. El proceso de ajuste es complejo e implica un activo de datos, un activo de entrenamiento y un activo de despliegue.

La biblioteca python tiene métodos y clases de ayuda para ajustar modelos de base. Para obtener más información sobre la biblioteca, consulte Tuning.

Utilice las funciones que están disponibles en la biblioteca watsonx.ai Python de los cuadernos en watsonx.ai para solicitar el ajuste de los modelos base.

Ejemplo de cuaderno para una rápida puesta a punto

El documento de ejemplo de cuaderno Python Use watsonx to tune IBM granite-13b-instruct-v2 model with Car Rental Company customer satisfaction" contiene código para ajustar rápidamente los modelos básicos en watsonx.ai .

El cuaderno de ejemplo le ayuda con las dos fases principales de ajuste:

El cuaderno de ejemplo está diseñado para solicitar-ajustar el modelo granite-13b-instruct-v2 . Pero también puede utilizarlo para ajustar otros modelos de base. Para ello, sustituya las referencias base_model como se indica a continuación:

  • base_model='google/flan-t5-xl'

Si cambia el foundation model , también deberá reemplazar los datos de entrenamiento. Sustituya la vía de acceso de archivo en la sección Carga de datos del cuaderno.

url = "{path to your file}"
if not os.path.isfile(filename): 
    wget.download(url)

También puede utilizar un cuaderno de ejemplo que ajuste los otros modelos de base que se pueden ajustar rápidamente.

Utilización del cuaderno de ejemplo para optimizar los valores de los parámetros de ajuste

El cuaderno de ejemplo tiene código que optimiza el valor del parámetro learning_rate . El cuaderno de ejemplo cambia sistemáticamente el valor de la tasa de aprendizaje y vuelve a ejecutar el experimento 10 veces, por lo que la pérdida se puede comparar entre las 10 ejecuciones. El cuaderno de ejemplo calcula el valor de tasa de aprendizaje óptimo.

El cuaderno de ejemplo genera 10 experimentos separados; no ejecuta el mismo experimento 10 veces.

El parámetro para optimizar se define en la sección Espacio de búsqueda y optimización del cuaderno.

Puede editar o añadir al cuaderno de ejemplo para ejecutar código automatizado para optimizar los parámetros siguientes además de la tasa de aprendizaje:

  • accumulate_steps
  • batch_size
  • num_epochs

Para comprobar los valores óptimos para muchos parámetros a la vez, puede cambiar el cuaderno de ejemplo para utilizar código como este, por ejemplo:

SPACE = [
    skopt.space.Real(0.001, 0.09, name='learning_rate', prior='log-uniform'),
    skopt.space.Integer(1, 50, name='num_epochs', prior='uniform'),
    skopt.space.Integer(1, 16, name='batch_size', prior='uniform')
]

La optimización de muchos parámetros a la vez puede ahorrar tiempo porque los parámetros funcionan conjuntamente. Sus valores se afectan unos a otros y el correcto equilibrio de valores entre ellos conduce a los mejores resultados.

El cuaderno de ejemplo utiliza métodos de la biblioteca scikit-optimize. Para obtener más información, consulte la referencia de la API de scikit-optimize .

Utilización del cuaderno de ejemplo para evaluar el modelo ajustado

El cuaderno de ejemplo tiene código que despliega el modelo ajustado, infiere el modelo ajustado y, a continuación, calcula la precisión de la salida del modelo ajustado. También infiere el foundation model subyacente y calcula la precisión de la salida del modelo base, para que pueda ver una comparación.

Si desea utilizar el cuaderno de ejemplo para ajustar y evaluar otros modelos, puede sustituir el valor del parámetro model_id en el código siguiente.

base_model = ModelInference(
    model_id='ibm/granite-13b-instruct-v2',
    params=generate_params,
    api_client=client
)

Por ejemplo, especifique google/flan-t5-xl.

También debe sustituir el texto de solicitud por una solicitud de su propio conjunto de datos de entrenamiento.

response = tuned_model.generate_text(prompt="{your text here}")

Si la puntuación de precisión del modelo ajustado es baja, revise algunas ideas para ver cómo mejorar los datos de entrenamiento en Abordar problemas de calidad de datos en la salida del modelo ajustado.

Recuerde que la optimización de los parámetros de ajuste es específica del modelo y los datos de entrenamiento que está utilizando. Si cambia el modelo o los datos de entrenamiento, debe volver a evaluar el experimento de ajuste. Vuelva a ajustar los parámetros de ajuste para optimizarlos para el conjunto de datos aumentado.

Tema padre: BibliotecaPython