Adición de un simulador de entrenamiento al área de Bonsai trabajo

Las simulaciones de entrenamiento son entornos virtuales que modelan el comportamiento de un entorno físico y las interacciones de objetos o agentes basados en ese entorno para entrenar un cerebro de inteligencia artificial. El estado observable de un simulador es el conjunto de datos que representa el entorno virtual en un momento dado. Normalmente, el estado observable incluye las medidas que tomarían los sensores conectados a la instancia artificial que se está entrenando; por ejemplo: cámaras, medidores de temperatura o sensores de profundidad.

En la programación, un contenedor es un conjunto de software ejecutable que incluye todo lo necesario para ejecutar una aplicación, incluidos los archivos o la tecnologías complementarios que se usan para ejecutar un fragmento de código. Para escalar eficazmente el número de instancias de simulador disponibles para la enseñanza automática, debe "incluir en contenedores" el simulador antes de agregarlo a Bonsai .

Importante

Cada vez que ejecute simuladores administrados por Bonsai , se cobrará su suscripción de Azure. Pruebe el simulador localmente y confirme que funciona según lo previsto antes de escalarlo.

Antes de comenzar

  • Debe tener la CLI de Azure instalada.
  • Debe tener Docker instalado en la máquina local. Docker Community Edition está disponible para Windows, Linux y MacOS.
  • Debe tener acceso de lectura y escritura a Azure Container Registry (ACR) . Bonsai proporciona un ACR predeterminado al aprovisionar un área de trabajo en el mismo grupo de recursos que el área de trabajo.
  • Debe tener la herramienta VPLinkSim_ 3 del grupo wood. Puede descargar la herramienta desde el repositorio de GitHub Cabo Software.

Paso 1: Preparación del simulador

Para agregar una simulación de VP Link a su entorno, debe crear un archivo ZIP,sim.zipBonsai , que incluya lo siguiente: Bonsai

  • vplink_interface.json:un archivo JSON generado por la herramienta VPLinkSim_ 3. El archivo de interfaz describe todas las etiquetas de VP Link usadas en el archivo de Inkling para las estructuras SimState y SimAction.
  • cfg: directorio que contiene uno o varios archivos de etiquetas ( .tag) y archivos de instantánea opcionales (**.icf) para la simulación de VP Link. Bonsai usa instantáneas de VP Link para inicializar el modelo de simulación al principio de cada episodio, tal y como indican las instrucciones lesson del código inkling. Si incluye varios archivos de etiquetas, las etiquetas de cada archivo deben ser únicas.
  • data: directorio que contiene cualquier otro archivo que el modelo requiere para ejecutarse. Para la mayoría de los usuarios, el directorio data estará vacío.
  • sces: directorio vacío. Bonsai usa este directorio para guardar los escenarios de VP Link que se ejecutan durante un entrenamiento o un episodio de evaluación.

Para crear la agrupación ZIP:

  1. Ejecute el VPLinkSim_ Bonsai ejecutable 3.
  2. Use el botón Add tags to State (Agregar etiquetas al estado) para seleccionar las etiquetas pertinentes para los estados del simulador.
  3. Use el botón Add tags to Button (Agregar etiquetas al botón) para seleccionar las etiquetas pertinentes para las acciones del simulador.
  4. Presione el botón Build Interface (Interfaz de compilación) para crear el vplink_interface.json.
  5. Presione el botón Create Loadable (Crear cargable) para crear sim.zip archivo para cargarlo.

Herramienta VP Link

Captura de pantalla de la interfaz de usuario de la herramienta VP Link que se usa para generar un paquete de carga para Bonsai . La mayor parte de la interfaz de usuario está formada por selectores de etiquetas para Acción y Estado. Hay dos botones en la parte inferior derecha de la interfaz de usuario para crear el archivo de interfaz y el paquete ZIP para la carga.

  1. Descargue Bonsai wrapper for Anylogic.
  2. Siga las instrucciones del PDF Wrapper Model Workflow para integrar y configurar el contenedor para el simulador.
  1. Instale Microsoft Project Bonsai Simulink Toolbox
  2. Siga las instrucciones del archivo LÉAME para integrar y configurar el cuadro de herramientas para el simulador.

Para agregar el simulador personalizado, debe empaquetarlo como un contenedor de Docker y agregarlo a Azure Container Registry (ACR).

  1. Cree un Dockerfile para el código de simulación.
  2. Inicie sesión en su instancia de Azure Container Registry (ACR):
    az acr login --name ACR_NAME
    
  3. Cree una imagen a partir del Dockerfile con un nombre único y una etiqueta de versión:
    az acr build             \
      --image IMAGE_NAME:TAG \
      --registry ACR_NAME    \
      --file Dockerfile .
    
  4. Compruebe la lista de imágenes del registro para asegurarse de que la carga se ha llevado a cabo correctamente:
    az acr repository list --name ACR_NAME --output table
    

Sugerencia

El comando az acr build ejecuta la compilación como una tarea directamente en ACR y puede agotar el tiempo de espera al crear un contenedor grande. Si descubre que se agota el tiempo de espera de las compilaciones, use la marca para aumentar el límite de tiempo de espera.

Paso 2: Agregar el simulador al área de Bonsai trabajo

Esta es la parte fácil.

  1. Haga clic en + Agregar sim junto a la lista Simuladores de la interfaz de usuario.
  2. Seleccione "VP Link" en la lista de tipos de simulador.
  3. Seleccione el archivo ZIP de VP Link (sim.zip) para la carga.
  4. Proporcione un nombre para mostrar para el paquete del simulador.
  5. Haga clic en el botón Create simulator (Crear simulador) para agregar el paquete del simulador a la lista Simulators (Simuladores).

Carga de simulador de VP Link

Captura de pantalla del cuadro de diálogo de carga del simulador de VP Link.

  1. Haga clic en + Agregar sim junto a la lista Simuladores de la interfaz de usuario.
  2. Seleccione "AnyLogic" en la lista de tipos de simulador.
  3. Seleccione el archivo de AnyLogic para cargarlo.
  4. Proporcione un nombre para mostrar para el paquete del simulador.
  5. Haga clic en el botón Create simulator (Crear simulador) para agregar el paquete del simulador a la lista Simulators (Simuladores).

Sugerencia

AnyLogic agrupará automáticamente el simulador en un único paquete que incluya todos los archivos necesarios. En la carpeta del modelo exportado, puede eliminar de forma segura la carpeta chromium para ahorrar espacio en la unidad.

Carga del simulador de AnyLogic

Captura de pantalla del cuadro de diálogo de carga del simulador de AnyLogic.

  1. Haga clic en + Agregar sim junto a la lista Simuladores de la interfaz de usuario.
  2. Seleccione "Simulink" en la lista de tipos de simulador.
  3. Seleccione el archivo de Simulink para cargarlo.
  4. Proporcione un nombre para mostrar para el paquete del simulador.
  5. Haga clic en el botón Create simulator (Crear simulador) para agregar el paquete del simulador a la lista Simulators (Simuladores).

Carga del simulador de Simulink

Captura de pantalla del cuadro de diálogo de carga del simulador de Simulink.

Puede cargar simuladores personalizados a través de la Bonsai interfaz de usuario o la CLI.

Como alternativa, puede publicar una imagen de ACR como un paquete de simulador mediante Bonsai CLI . Por ejemplo:

bonsai simulator package container create -n clientmoabdemo:latest \
   -u bonsaisimdev.azurecr.io/clientmoabdemo:latest \
   --i 500 \
   --min-instance-count 50 \
   --max-instance-count 500 \
   -r 0.25 \
   -m 0.5 \
   --auto-scale True \
   -p Linux

Sugerencia

Se recomiendan los siguientes valores predeterminados para la mayoría de los simuladores:

  • Núcleos: 1
  • Memoria: 1 GB
  • Sistema operativo: Linux

Sugerencia

Al cargar un nuevo simulador, puede generar automáticamente código de Inkling para las estructuras SimState y SimAction. El código generado incluye comentarios para cada miembro de SimState y SimAction que indican los valores permitidos y los intervalos de valores.

Paso 3: Escalado del simulador

Importante

Las cuotas de Azure son límites de crédito, no garantías de capacidad. Como resultado, Azure limita el número de instancias de contenedor que puede crear en función de su suscripción. Las suscripciones de Azure suelen limitar el uso de recursos en un período de tiempo determinado (de horas) o en toda la suscripción. Si tiene necesidades de capacidad a gran escala, póngase en contacto con el soporte técnico de Azure para incrementar la cuota de Azure.

Una vez cargado el simulador en el área de trabajo, puede asignarlo a la sesión de Bonsai entrenamiento mediante Inkling o la interfaz de usuario. Bonsai pondrá en marcha automáticamente varias instancias del simulador para entrenar a escala.

  1. Seleccione la pestaña Enseñar para abrir el archivo de Inkling.
  2. Busque la cláusula simulator en Inkling.
  3. Asigne el nombre package del simulador para que sea el nombre para mostrar que estableció anteriormente:
    source simulator (Action: Action, Config: SimConfig): State {
    package "example-sim"
    }
    
  4. A continuación, haga clic en el botón Entrenar para iniciar el entrenamiento.