Oktatóanyag: Szimulátor hibakeresése

Kövesse ezt az oktatóanyagot a következők elsajátításért:

  • Hogyan lehet megmondani, hogy a szimuláció megbízhatóan és konzisztensen reagál-e az agyi betanítás támogatására a Bonsaiban.
  • Hogyan viselkedik a szimuláció, ha véletlenszerű eseményeknek vannak kitéve.

Az oktatóanyaghoz egy érvényes Microsoft- vagy Azure-fiókkal és az Azure-ban kiépített érvényes Bonsai-munkaterülettel kell rendelkeznie. Ha fiókra vagy Azure-próbaverzióra van szüksége, a folytatás előtt kövesse Microsoft-fiók a Bonsai beállítását.

Hibakeresési felhasználói felület

A szimulátor hibakeresési felhasználói felületének képernyőképe. A felhasználói felület egy folyamatban lévő hibakeresési munkamenetet mutat több idővonal-eseménytel.

Mi az a Bonsai-szimuláció hibakereső?

A Bonsai szimuláció hibakeresőjéhez betekintést nyerhet a Bonsai AI-motor és a szimulátor közötti kommunikációba. Adjon meg egy kezdeti konfigurációt, és vizsgálja meg a valószínű iterációs ciklusokat úgy, hogy végiglépked a betanítási motor folyamatán, hogy feltárja a szimuláció korai problémáit, mielőtt inklinget ír vagy betanít egy Bonsai-agyat.

Előkészületek

  • Hozzáféréssel kell lennie egy nemmanaged szimulátorhoz. Ha nem működik a szimulátora, letöltheti a Cartpole mintaszimulátort Pythonban, hogy követni tudja az oktatóanyagot.
  • Regisztrálnia kell a szimulátort a Bonsaiban. Ha a Cartpole-mintát használja, a regisztráció automatikusan megtörténik. Ha egy másik nem regisztrált szimulátort kell regisztrálnia, kövesse a Nem regisztrált szimulátor futtatása a Bonsai használatával útmutatót
  • A Bonsai-munkaterület azonosítójának kell lennie. A munkaterület-azonosító megkeresése a Get your workspace info (A munkaterületi adatok leése) dokumentumban található utasításokat követve érhető el.
  • A Bonsai-munkaterületen be kell állítania egy hozzáférési kulcsot. Ha nem rendelkezik hozzáférési kulccsal, kövesse a Get your workspace access key (Munkaterület hozzáférési kulcsának lekért) útmutatását egy új kulcs létrehozásához.

Ezt a lépést kihagyhatja, ha a Bonsai felhasználói felület egyik beépített mintáit használja.

1. lépés: A szimulátor regisztrálása

  1. Tárolóba helyezni a szimulátort (például a Docker használatával), és feltölteni a Bonsai-munkaterülethez üzembe Azure Container Registry (ACR) bonsai szimulátorba.
  2. Adja hozzá a tárolóba ezett szimulátort a Bonsai-munkaterülethez a szimulátorcsomag-tároló create Bonsai CLI-paranccsal:
    bonsai simulator package container create \
      --name '{YOUR_SIMULATOR_PACKAGE_NAME}'  \
      --image-uri {PATH_TO_ACR_UPLOAD}        \
      --instance-count 1                      \
      --cores-per-instance 4                  \
      --memory-in-gb-per-instance 12          \
      --os-type {OS_FOR_YOUR_SIMULATOR}
    
  3. Ellenőrizze, hogy a szimulátor felügyelt szimulátorként szerepel-e a Bonsai felhasználói felület Szimulátorok listájában.
  4. Kattintson a szimulátorra az Információ lap megnyitásához.

1. lépés: Csatlakozás a szimulátor használata

  1. Aktiválja Python- vagy virtuális környezetét, ha használ egyet.
  2. Indítsa el a szimulátort. Ha a Cartpole-mintát használja, lépjen arra a könyvtárra, ahová letöltötte a mintát, és futtassa a következő parancsot:
    python3 cartpole.py --workspace {YOUR_WORKSPACE_ID} --accesskey {YOUR_ACCESS_KEY}
    
  3. Ellenőrizze, hogy a szimulátor megjelenik-e a Bonsai felhasználói felületén a Szimulátorok listában nem szereplő szimulátorként.
  4. Kattintson a szimulátorra az Információ lap megnyitásához.

2. lépés: Kezdő konfiguráció létrehozása

A szimulátorral addig nem kommunikálhat, amíg meg nem adja az eseményadatokat. A hibakeresés megkezdéséhez fel kell töltenie egy kezdő eseménykonfigurációt. A hibakeresés megkezdése után az eseményadatokat közvetlenül a Bonsai felhasználói felületen szerkesztheti további iterációkhoz.

[
  {
    "type": "EpisodeStart",
    "session_id": "SIMULATOR_SESSION_ID",
    "sequence_id": ITERATIVE_COUNTER, 
    "episode_start": {
      "config": {
        "SIMCONFIG_FIELD_1": "CONFIG_VALUE_1",
        "SIMCONFIG_FIELD_2": "CONFIG_VALUE_2",
        "SIMCONFIG_FIELD_N": "CONFIG_VALUE_N"
      }
    }
  },
  {
    "type": "EpisodeStep",
    "session_id": " SIMULATOR _SESSION_ID",
    "sequence_id": ITERATIVE_COUNTER, 
    "episode_step": {
      "action": {
        "SIMACTION_FIELD_1": ACTION_VALUE_1, 
        "SIMACTION_FIELD_2": ACTION_VALUE_2, 
        "SIMACTION_FIELD_M": ACTION_VALUE_M
      }
    }
  }
]

Az eseménykonfigurációs fájl a következőket tartalmazza:

  • Egy EpisodeStart objektumot. A objektum határozza meg a szimulátor EpisodeStart kezdeti állapotát. Az Inkling fájlban található, Az tart object typically aligns with the fields that are, or will be, defined for the Énekek SimConfig objektumában található információk.
  • Egy vagy több EpisodeStep objektum. A objektum határozza meg azokat a műveleteket, amelyeken a szimulátornak végig kell lépkedni EpisodeStep az iteráción. Az objektumokban lévő információk általában igazodnak a inkling fájlban lévő objektumhoz definiált vagy definiálni kívánt EpisodeStep SimAction mezőkhöz.

A következő például egy érvényes eseménykonfigurációs fájl a Cartpole-mintához:

[
  {
    "type": "EpisodeStart",
    "session_id": "772427072_10.244.46.10",
    "sequence_id": 2,
    "episode_start": {
      "config": {}
    }
  },
  {
    "type": "EpisodeStep",
    "session_id": "772427072_10.244.46.10",
    "sequence_id": 3,
    "episode_step": {
      "action": {
        "command": 0.2360963076353073
      }
    }
  }
]

Az üres konfigurációs objektum arra utasítja a hibakeresőt, hogy a szimuláció kezdő konfigurációs értékeként definiált értékeket használja.

Fontos

Az session_id konfigurációs episode_start fájlban található összes adatmezőt a Bonsai belsőleg használja és adja meg. Bár nem szükséges, javasoljuk, hogy ezeket az értékeket a konfigurációs fájl céljának azonosításához konfigurálja.

3. lépés: A konfigurációs fájl feltöltése

  1. Válassza a Szimulátor indítása lehetőséget a szimulátor felületi részleteinek betöltéséhez.
  2. Válassza a Debugger (Hibakereső) koppintást a hibakeresési felület megnyitásához.

    Sim details (Sim részletei) panel felhasználói felülete

    Képernyőkép a szimulátor részletező paneljről a Bonsai felhasználói felületén, felül be van karikázva a Hibakeresés lapfül.

  3. Válassza a Feltöltés lehetőséget, és keresse meg az eseménykonfigurációs fájlt.
  4. A konfigurációs fájl feltöltéshez válassza a Megnyitás lehetőséget a fájl navigációs ablakában.

4. lépés: Az iteráció lépése

Új hibakeresési munkamenetet a Munkamenet kezdete gombra kattintva indít el.

Felhasználói felület hibakeresése jegyzetekkel

Képernyőkép a szimulátor hibakeresési felhasználói felületről, a különböző elemekkel címkézve. A "Step", "Run to selection" (Futtatás kijelöléshez) és "Restart" (Újraindítás) gombok a "hibakereső vezérlők" címkével vannak megcímkézve. A hibakereső vezérlői alatti terület a "hibakeresési idővonal" címkével van megjelölve. Az idővonalon blokkok sorozata látható, amelyek különálló eseményeket képviselnek a hibakeresési útmutatóban. Az interaktív szerkesztőt tartalmazó panel az "eseménykonfiguráció részletei" címkével van megcímkézve, és a kiemelt eseményhez kapcsolódó JSON-adatokat jeleníti meg. Egy másik panel a "szimulátorválasz" címkével van megcímkézve, és a szimulátor által JSON-objektumként visszaadott információkat jeleníti meg.

Most már használhatja a hibakeresési vezérlőket, hogy manuálisan végigvezrelheti a hibakeresőt az ügyfél számára elérhető különböző műveleteken:

Hibakereső vezérlők

A szimulátor előző képből származó hibakeresési vezérlőinek közeli képernyőképe.

  • Lépés: a hibakeresőt azStartstart kezdeti állapotáról a konfigurációs fájlban meghatározott első Című lépésre halad át.
  • Futtatás a kijelöléshez: a hibakeresőt a hibakeresési idővonalon aktuálisan kiemelt eseményre ékeli.
  • Reset: visszaküldi a hibakeresőt az indítási konfigurációnak azStart (Indítási útmutató) című részben meghatározottak szerint.

Ahogy halad az iterációkon, Bonsai állapotinformációkat ad meg a kimeneti ablakban. Például:

[2021-01-14 19:03:11][INFO] Received event: Idle
[2021-01-14 19:03:11][INFO] Idling for 0.0 seconds...
[2021-01-14 19:03:20][INFO] Received event: EpisodeStart
[2021-01-14 19:03:20][INFO] Received event: EpisodeStart
[2021-01-14 19:03:23][INFO] Received event: EpisodeStep
[2021-01-14 19:03:23][INFO] Received event: EpisodeStep
[2021-01-14 19:03:24][INFO] Received event: EpisodeStep

5. lépés: Az esemény idővonalának módosítása

Miután feltöltött egy kezdeti konfigurációs fájlt, a hibakereső felhasználói felületén sablont is használhat, és módosíthatja az eseményütemezést a szimuláció iterálása során.

Hibakeresési esemény részletei

Képernyőkép az előző képen látható egyetlen hibakeresési eseményről.

Megjegyzés

A hibakeresési idővonalon csak egy Indítási eseménynek (az elején), egy Befejezés eseménynek (a végén) és egy Regisztrációk regisztrációjának bontása eseménynek kell lennie (általában a Befejezés csomópont után).

  1. Az esemény típusának beállításhoz válassza a Lépés, Indítás, Befejezés, vagy A regisztrációjának megszabadulás lehetőséget.
  2. Az esemény hozzáadásához kattintson az + idővonal ablakában található gombra.

    Esemény hozzáadása gomb

    A hibakeresési idővonal közelről készült képernyőképe az idővonal végén lévő plusz gombbal.

  3. Adja hozzá vagy frissítse az eseménykonfigurációs adatokat a Kiválasztott esemény ablakban a szimulátor új viselkedésének meghatározásához. Az indítási események azStart (Indítási útmutató) beállításhoz meghatározott konfigurációs adatokat fogják használni. A lépésesemények a Következő lépéshez definiált konfigurációs adatokat használják.
  4. Ha befejezte az események hozzáadását és módosítását, a Visszaállítás, a Lépés és a Futtatás a kijelöléshez gombokkal navigálhat a hibakeresési idővonalon a szokásos módon.

Tipp

Ha el szeretne távolítani egy eseményt az idősorból, jelölje ki azt, és nyomja le a Backspace billentyűt a billentyűzeten.

A fölöslegessé vált elemek eltávolítása

A hibakeresési munkamenet befejezése után:

  1. Állítsa le a munkamenetet a hibakereső felhasználói felületén található Munkamenet befejezése gombra kattintva.
  2. Mentse a hibakeresési idővonal részleteit későbbi használatra egy hiba konfigurációs fájlként a hibakereső felhasználói felületén található Letöltés gombra kattintva.
  1. Állítsa le a munkamenetet a hibakereső felhasználói felületén található Munkamenet befejezése gombra kattintva.
  2. Mentse a hibakeresési idővonal részleteit későbbi használatra egy hiba konfigurációs fájlként a hibakereső felhasználói felületén található Letöltés gombra kattintva.
  3. Állítsa le a nemmaned szimulátort.

Következő lépések