Tema traducido automáticamente Puede cambiar a la versión en inglésConsulte la declaración de limitación de responsabilidad
Consulte la versión en inglés (original) para obtener la versión más precisa y actualizada de esta documentación. IBM no se responsabiliza de los daños o pérdidas resultantes del uso de contenido traducido automáticamente (máquina).
Guía de aprendizaje de Federated Learning Tensorflow
Última actualización: 28 nov 2024
Guía de aprendizaje de Federated Learning Tensorflow
En esta guía de aprendizaje, se demuestra el uso de Federated Learning con el objetivo de entrenar un modelo de aprendizaje automático con datos de distintos usuarios sin necesidad de que los usuarios compartan sus datos. Los pasos se realizan en un entorno de bajo código con la interfaz de usuario y con una infraestructura de Tensorflow .
Nota:
Esta es una guía de aprendizaje paso a paso para ejecutar un experimento de aprendizaje federado controlado por interfaz de usuario. Para ver un ejemplo de código para un enfoque controlado por API, consulte Ejemplos de Tensorflow de Federated Learning.
Consejo:
En esta guía de aprendizaje, admin hace referencia al usuario que inicia el experimento de aprendizaje federado, y party hace referencia a uno o más usuarios que envían sus resultados de modelo después de que el administrador haya iniciado el experimento. Aunque la guía de aprendizaje la pueden completar el administrador y varias partes, un usuario individual también puede realizar una ejecución completa como el administrador y la parte. Para fines de demostración más sencillos, en la siguiente guía de aprendizaje, una parte envía solo un conjunto de datos. Para obtener más información sobre el administrador y la parte, consulte Terminología.
En esta guía de aprendizaje, realizará estas tareas:
Vea este breve tutorial en vídeo sobre cómo crear un experimento de aprendizaje federado con watsonx.ai Studio.
Declaración de limitación de responsabilidad de vídeo: algunos pasos menores y elementos gráficos de este vídeo pueden diferir de su plataforma.
Este vídeo proporciona un método visual para aprender los conceptos y tareas de esta documentación.
Requisitos previos
Copy link to section
Verificar el Python versión
Copy link to section
Asegúrese de que está utilizando la misma versión de Python que el administrador. Si se utiliza una versión diferente de Python se pueden producir problemas de compatibilidad. Para ver las versiones de Python compatibles con diferentes infraestructuras, consulte Compatibilidad de infraestructuras y versión de Python.
Abrir un proyecto
Copy link to section
Utilice un proyecto existente o cree uno nuevo. Debe tener al menos permiso de administrador.
Asocie el servicio watsonx.ai Runtime a su proyecto.
En el proyecto, pulse Gestionar > Servicio e integraciones.
Pulse Asociar servicio.
Seleccione su instancia de watsonx.ai Runtime de la lista y haga clic en Asociar; o haga clic en Nuevo servicio si no tiene ninguno para configurar una instancia.
Tarea 1: iniciar Federated Learning como administrador
Copy link to section
En su proyecto, creará un experimento de aprendizaje federado con un Tensorflow marco utilizando el conjunto de datos MNIST.
Tarea 1a: Definir los detalles del experimento.
Copy link to section
En su proyecto, haga clic en Activos pestaña en su proyecto.
Hacer clic Nuevo activo > Entrenar modelos en datos distribuidos para crear el activo del experimento de aprendizaje federado.
Escriba un Nombre para el experimento y, opcionalmente, una descripción.
Verifique la instancia asociada de watsonx.ai Runtime en Seleccionar una instancia de aprendizaje automático. Si no ves una instancia de watsonx.ai Runtime asociada, sigue estos pasos:
Pulse Asociar una instancia de servicio de Machine Learning.
Seleccione una instancia existente y pulse Asociaro cree un Nuevo servicio.
Pulse Volver a cargar para ver el servicio asociado.
Pulse Siguiente.
Tarea 1b: Configurar el experimento
Copy link to section
En la página Configurar , seleccione una Especificación de hardware.
Para Marco de aprendizaje automático, seleccionar Tensorflow 2.
En el experimento de aprendizaje federado, pulse Seleccionar en Especificación del modelo.
Arrastre el archivo descargado denominado tf_mnist_model.zip al recuadro de archivo Cargar .
Si es necesario, seleccione runtime-23.1-py3.10 Para el Especificación de software desplegable.
Escriba un nombre para su modelo y luego haga clic en Agregar.
Pulse Promedio ponderado para el Método de fusióny pulse Siguiente.
Tarea 1c: Definir los hiperparámetros.
Copy link to section
Acepte los hiperparámetros predeterminados o ajústelo según sea necesario.
Cuando haya terminado, pulse Siguiente.
Tarea 1d: Seleccionar sistemas de entrenamiento remoto
Copy link to section
Pulse Añadir nuevos sistemas.
Escriba un nombre para su sistema de capacitación remota.
En Identidades permitidas, elija el usuario que es su parte y, a continuación, pulse Añadir. En este tutorial, puede agregar un usuario ficticio o usted mismo, con fines de demostración. Este usuario debe agregarse a su proyecto como colaborador de Editor o permisos superiores. Añada sistemas adicionales repitiendo este paso para cada parte remota que desee utilizar.
Cuando haya terminado, pulse Añadir sistemas.
Vuelva a la página Seleccionar sistemas de entrenamiento remotos , verifique que el sistema está seleccionado y, a continuación, pulse Siguiente.
Tarea 1e: Revisa tu configuración
Copy link to section
Revise los valores. y haga clic Crear.
Observe el estado. El estado del experimento de aprendizaje federado es Pendiente cuando se inicia. Cuando el experimento esté preparado para que las partes se conecten, el estado cambiará a Configuración - Esperando sistemas remotos. Esta acción puede tardar varios minutos.
Hacer clic Ver información de configuración para descargar la configuración de la parte y el script del conector de la parte que puede ejecutar en la parte remota.
Haga clic en el icono Descargar configuración ' ' situado junto a cada uno de los sistemas de teleformación que haya creado. Guarde el script del conector de grupo en un directorio de su máquina con el nombreremote-test-system-configuration.py .
Pulse Finalizado.
' Comprueba tu progreso
Copy link to section
La siguiente imagen muestra el experimento con el estado "esperando sistemas remotos".
Tarea 2: Entrenar al modelo como parte
Copy link to section
Para entrenar el modelo, debe descargar los conjuntos de datos y luego editar y ejecutar scripts de Python. Siga estos pasos para entrenar el modelo como parte:
Tarea 2a: Descargue los conjuntos de datos y los scripts
Copy link to section
Cree un nuevo directorio local y mueva el script del conector de grupo que descargó en Task 1e en el nuevo directorio.
Edite el script de Python del controlador de datos para cambiaribm_watson_machine_learning aibm_watsonx_ai .
Guarde el archivo.
Descargue el conjunto de datos de escritura manuscrita MNIST de nuestro Centro de recursos. En el mismo directorio que el script del conector del grupo, el controlador de datos y el resto de sus archivos, descomprímalo ejecutando el comando unzip.unzip MNIST-pkl.zip . Ahora tienes el script del conector de grupo,mnist_keras_data_handler.py ,mnist-keras-test.pkl ymnist-keras-train.pkl en el mismo directorio.
Tarea 2b: Instalar watsonx.ai Runtime
Copy link to section
Si está utilizando Windows o Linux, ejecute el siguiente comando:
pip install 'ibm_watsonx_ai[fl-rt23.1-py3.10]'
Copy to clipboardSe ha copiado en el portapapeles
Si está utilizando Mac OS con CPU de la serie M y Conda, descargue el guión de instalación y luego ejecuta:
./install_fl_rt23.1_macos.sh <name for new conda environment>
Copy to clipboardSe ha copiado en el portapapeles
Tarea 2c: Editar y ejecutar el script del conector de grupo
Copy link to section
La secuencia de comandos del conector de su grupo es similar a la siguiente secuencia de comandos:
from ibm_watsonx_ai import APIClient
wml_credentials = {
"url": "https://us-south.ml.cloud.ibm.com",
"apikey": "<API KEY>"
}
wml_client = APIClient(wml_credentials)
wml_client.set.default_project("XXX-XXX-XXX-XXX-XXX")
party_metadata = {
wml_client.remote_training_systems.ConfigurationMetaNames.DATA_HANDLER: {
# Supply the name of the data handler class and path to it.# The info section may be used to pass information to the# data handler.# For example,# "name": "MnistSklearnDataHandler",# "path": "example.mnist_sklearn_data_handler",# "info": {# "train_file": pwd + "/mnist-keras-train.pkl",# "test_file": pwd + "/mnist-keras-test.pkl"# }"name": "<data handler>",
"path": "<path to data handler>",
"info": {
"<information to pass to data handler>"
}
}
}
party = wml_client.remote_training_systems.create_party("XXX-XXX-XXX-XXX-XXX", party_metadata)
party.monitor_logs()
party.run(aggregator_id="XXX-XXX-XXX-XXX-XXX", asynchronous=False)
Show more
Edite el archivo del conector de grupo,remote-test-systm-configuration.py y realice los siguientes cambios:
Proporcione sus credenciales: pegue la clave API del usuario definido en el sistema de capacitación remota. Si no dispone de una clave de API, vaya a la página Claves de API deIBM Cloud y haga clic en Crear clave de API, rellene los campos y haga clic en Crear.
En el fiesta_metadatos, proporcione el nombre, la ruta y la información, que deben ser similares al siguiente texto JSON.
Ejecute el script del conector de grupo utilizando cualquiera de los dospython opython3 dependiendo de lo que tengas instalado.
python remote-test-system-configuration.py
Copy to clipboardSe ha copiado en el portapapeles
En la interfaz de usuario puede supervisar el estado de su experimento de Federated Learning.
' Comprueba tu progreso
Copy link to section
La siguiente imagen muestra el experimento completado.
Tarea 3: guardar e implementar el modelo en línea
Copy link to section
En esta sección, aprenderá a guardar y desplegar el modelo que ha formado.
Tarea 3a: Guarda tu modelo
Copy link to section
En su experimento de aprendizaje federado completado, haga clic en Guardar agregado.
Sobre el Guardar modelo agregado en proyecto pantalla, escriba un nombre para el modelo. y haga clic Crear.
Cuando vea la notificación de que se creó el modelo, haga clic en Ver en proyecto. Si no recibe la notificación, haga clic en el nombre del proyecto para volver a la pestaña de activos y haga clic en el nombre del modelo para verlo.
Tarea 3b: Promocionar el modelo en un espacio.
Copy link to section
En la página de detalles del modelo, haz clic en Promover al espacio de despliegue ' .
Escoge un Espacio objetivo de la lista o cree un nuevo espacio de implementación.
Seleccionar Crear un nuevo espacio de implementación.
Escriba un nombre para el espacio de implementación.
Selecciona tu servicio de almacenamiento.
Seleccione su servicio de aprendizaje automático.
Pulse Crear.
Cuando se cree el espacio de implementación, cierre la ventana.
Seleccione la opción Ir al modelo en el espacio después de promocionarlo .
Haga clic en Promover.
Tarea 3c: Crear y ver la implementación en línea
Copy link to section
Cuando el modelo se visualice dentro del espacio de despliegue, pulse Nuevo despliegue.
Seleccione En línea como Tipo de despliegue.
Especifique un nombre para el despliegue.
Pulse Crear.
Espere a que el estado de implementación cambie a Desplegada y luego haga clic en el nombre de la implementación.
Vea los puntos finales y los fragmentos de código para usar esta implementación en su aplicación.
Acerca de las cookies de este sitioNuestros sitios web necesitan algunas cookies para funcionar correctamente (necesarias). Además, se pueden utilizar otras cookies con su consentimiento para analizar el uso del sitio, para mejorar la experiencia del usuario y para publicidad.Para obtener más información, consulte sus opciones de preferencias de cookies. Al visitar nuestro sitio web, acepta que procesemos la información tal y como se describe en ladeclaración de privacidad de IBM.Para facilitar la navegación, sus preferencias de cookies se compartirán entre los dominios web de IBM que se muestran aquí.