Kurz: Vytvoření konfiguračního souboru posouzení

V tomto kurzu se naučíte:

  • Jak navrhnout vlastní posouzení
  • Jak napsat konfigurační soubor posouzení
  • Jak překládat SimConfig typy na konfiguraci voyeu.

Pokud chcete postupovat podle tohoto kurzu, musíte mít platný účet Microsoft nebo Azure a platný pracovní prostor Bonsai zřízený v Azure. Pokud potřebujete účet nebo zkušební verzi Azure, než budete pokračovat, postupujte podle Microsoft account setup for Bonsai pokynů v tématu .

Přidání vlastního posouzení

Snímek obrazovky s automaticky otevíraného okna Přidat vlastní uživatelské rozhraní posouzení Uživatelské rozhraní zobrazí výzvu k zadání zobrazovaný název, popisu a výzvy k nahrání souboru JSON.

Návrh vlastního posouzení

Hodnocení ve strojové výuce znamená vyhodnocení toho, jak dobře vaše AI vyhodnotí zásady v rámci sady scénářů (konfigurace scénářů).

Posouzení umožňuje určit kvalitu a odolnost naučené chování v simulaci s protokolováním dat a pro simulace, které ho podporují, živé vizualizace.

Při navrhování vlastního posouzení mějte na paměti následující:

  • Začněte určením konkrétních prvků, které chcete vyhodnotit o výkonu zásad, a vytvořte plány posouzení pro každý z těchto prvků.
  • Pokud máte různé scénáře, které chcete posoudit, zvažte jejich rozdělení do samostatných posouzení, abyste si usnadnili analýzu dat.
  • Otestujte širokou škálu scénářů, včetně běžných, optimálních a nejhorších.
  • Vezměte v úvahu scénáře, které jsou extrémní nebo k tomu dochází jen zřídka (hraniční případy a rohové případy).
  • Pokud vaše zásady umožňují neočekávané nebo neplatné počáteční stavy, zahrpište do posouzení neplatné scénáře.
  • Pokud simulace zahrnuje náhodné rozdělení pravděpodobnosti (stochastický simulátor) a chcete spustit konkrétní scénář vícekrát, musíte mít několik položek stejné konfigurace scény.

Vytvoření prázdného konfiguračního souboru posouzení

Bonsai pomocí konfiguračních souborů posouzení inicializuje simulační prostředí použité k vyhodnocení cílového mozku. Konfigurační soubory posouzení jsou jednoduché soubory JSON se třemi poli: versioncontext , a episodeConfigurations :

{
  "version": "ASSESSMENT_SCHEMA_VERSION",
  "context": {},
  "episodeConfigurations": []
}

Základním prvkem konfiguračního souboru posouzení je episodeConfigurations pole . episodeConfiguration je pole jedné nebo více položek, které představují počáteční konfiguraci simulace pro vaše posouzení na základě typu vašeho SimConfig souboru rukopisu. Pokud v konfiguračním souboru nezadáte explicitní počáteční hodnoty, použije se výchozí Bonsai hodnota definovaná v trénovací simulaci.

Vytvoření nové konfigurace posouzení:

  1. Otevřete upřednostňovaný editor prostého textu (Visual Studio Code, Atom atd.).
  2. Vytvořte nový soubor a pojmnte ho datem a účelem .json posouzení. Například "Bad Nějin-2021-01-21.json" nebo "HighTemps-2021-02-05.json".
  3. Zkopírujte následující šablonu konfigurace do nového souboru.
{
  "version": "1.0.0",
  "context": {},
  "episodeConfigurations": []
}

Tip

Pomocí uživatelského Bonsai rozhraní můžete vytvořit základní konfigurační soubor:

  1. Otevřete třídu Bonsai UI.
  2. Vyberte verzi mozku, kterou chcete posoudit.
  3. Vyberte na kartě Train (Trénovat).
  4. Na panelu posouzení vyberte tlačítko + Nové posouzení.
  5. Nastavte počet seriálů pro vaše hodnocení.
  6. Zadejte hodnotu, sadu hodnot nebo rozsah hodnot pro všechny konfigurovatelné proměnné, které chcete omezit pomocí syntaxe rukopisu.
  7. Klikněte na Vygenerovat.
  8. Zkopírujte vygenerovaný json do textového editoru a uložte soubor s příponou .json.
  9. Postupujte podle zbývající části kurzu a proveďte další přizpůsobení.

Převod typu SimConfig na konfiguraci věštců

Nejdůležitější součástí konfiguračního souboru posouzení je pole konfigurací scény. V konfiguracích v Bonsai předsecích se řekne, jak nakonfigurovat simulaci při spuštění posouzení. Každý konfigurační soubor posouzení musí mít aspoň jednu konfiguraci typu nasazení.

Konfigurace voeku musí mít stejnou strukturu jako typ v souboru Inkling pro verzi SimConfig mozku, kterou chcete posoudit.

Následující typ rukopisu:

type SimConfig {
  ConfigField_1: Field_1_Type,
  ConfigField_2: {
    TypeSubField_1: SubField_1_Type,
    TypeSubField_2: SubField_2_Type,
  }
  ...
  ConfigField_N: Field_N_Type,
}

Přeloží na následující definici scény v konfiguraci posouzení:

{
  "ConfigField_1": "Value_1",
  "ConfigField_2": {
    "TypeSubField_1": "SubValue_1",
    "TypeSubField_2": "SubValue_2",
  },
  ...
  "ConfigField_N": "Value_N",
}

Důležité

I když se většina čísel polí předává jako čísla v konfiguračním souboru, výčtové číselné typy musí být předány jako řetězce.

Překlad typů s jedním SimConfig polem

SimConfigPředpokládejme, že typ v souboru rukopisu obsahuje jedno pole s názvem typu DriveDirection :

type Direction number<Left = 0, Right = 1, Straight = 2, Back = 3>
type SimConfig { Drive: Direction }

Každá položka v konfiguračním poli musí poskytnout platnou hodnotu pro , Drive jak je definováno Direction typem . Například:

[
  {"Drive": "Left"},
  {"Drive": "Right"},
  {"Drive": "Back"}
]

Vzhledem k tomu, že informace o konfiguraci simulace jsou jedinou hodnotou, může namapovat hodnoty na pole BonsaiDrive bez explicitního názvu pole. V důsledku toho mohou položky v konfiguračním poli vaší scény pro zjednodušení vyloučit název pole, pokud chcete:

[
  "Left",
  "Right",
  "Back"
]

Překlad jednoduchých SimConfig typů

SimConfigPředpokládejme, že typ v souboru rukopisu obsahuje dvě hodnoty s názvem a typu Drive a RoadConditionDirectionTerrain :

type Direction number<Left = 0, Right = 1, Straight = 2, Back = 3>
type Terrain string<Bad = "B", Rough = "R", Clear = "C">

type SimConfig {
  Drive: Direction,
  RoadCondition: Terrain
}

Každý záznam v konfiguračním poli scény musí nastavit pole a s platnými hodnotami definovanými DriveRoadCondition typy a DirectionTerrain .

Předpokládejme například, že chcete posoudit podněťový mozek v následujících dvou scénářích:

  • Začněte tím, že se vyjíždíte doleva na hrubé cestě.
  • Začněte jízdou doleva na čisté cestě.

Váš konfigurační soubor by měl dvě konfigurace typu seriálu. Ta, která nastaví počáteční hodnoty na a {Left, Rough} jednu, která nastaví počáteční hodnoty na {Left, Clear} :

[
  {
    "Drive": "Left",
    "RoadCondition": "Rough"
  },
  {
    "Drive": "Left",
    "RoadCondition": "Clear"
  }

Překlad s SimConfig vnořenými slovníky

SimConfigPředpokládejme, že typ v souboru rukopisu obsahuje tři pole:

Název Typ Účel
Drive Movement označuje aktuální orientaci a stav vozovky pro elektromobil.
BatteryLevel number<0 .. 1> označuje aktuální nábídku automobilové baterie v procentech.
AmbientTemp Temperature označuje teplotu okolní oblasti ve stupních Celsia.
type Direction number<Left = 0, Right = 1, Straight = 2, Back = 3>
type Terrain string<Bad = "B", Rough = "R", Clear = "C">
type Movement {
  Orientation: Direction,
  RoadCondition: Terrain
}
type Temperature number<-90 .. 60>

type SimConfig {
  Drive: Movement,
  BatteryLevel: number<0 .. 1>,
  AmbientTemp: Temperature
}

Každý záznam v konfiguračním poli scény musí nastavit platné počáteční hodnoty pro , a DriveBatteryLevel tak, AmbientTemp jak je definováno odpovídajícími typy.

Předpokládejme například, že chcete posoudit podněťový mozek v následujících scénářích:

  • Začněte tím, že se vyděsíte doleva na vozítku s plnou bídnou vozítku v Berkeley.
  • Začněte tím, že se v letním dni v Berkeley v cace posunete zpět na čisté cestě s téměř prázdným bateriem.
  • Začněte tím, že nasádáte rovnou na špatnou cestu s polovinou baterie na spring day v Berkeley v CA.

Váš konfigurační soubor by měl tři konfigurace v náccích:

[
  {
    "Drive": {
      "Orientation": "Left",
      "RoadCondition": "Rough"
    },
    "BatteryLevel": 1,
    "AmbientTemp": 14
  },
  {
    "Drive": {
      "Orientation": "Back",
      "RoadCondition": "Clear"
    },
    "BatteryLevel": 0.1,
    "AmbientTemp": 22
  },
  {
    "Drive": {
      "Orientation": "Straight",
      "RoadCondition": "Bad"
    },
    "BatteryLevel": 0.5,
    "AmbientTemp": 18
  },

Další kroky

Teď, když víte, jak vytvořit konfigurační soubory posouzení, zkuste pomocí jednoho posoudit trénovaný mozek.