メインコンテンツまでスキップ

YAMLファイル(YAMLは「YAML Ain't Markup Language」の再帰的頭字語)は、データの記述や設定に使われるファイルフォーマットです。人間が読みやすく、書きやすい形式でデータを表現することができます。YAMLは多くのプログラミング言語でサポートされており、設定ファイルやデータ交換フォーマットとしてよく使用されます。

YAMLファイルの基本

  1. 基本的な構造

    • キーと値: YAMLでは、キーと値のペアを使ってデータを表現します。キーと値はコロン(:)で区切ります。
      key: value
    • インデント: 階層を表現するためにインデントを使用します。スペースを使い、タブは使用しません。
      parent:
      child: value
  2. リスト(配列)

    • リストはハイフン(-)で表現します。
      fruits:
      - Apple
      - Banana
      - Cherry
  3. 辞書(マップ)

    • 辞書はキーと値のペアで構成されます。
      person:
      name: John Doe
      age: 30
      address:
      street: 123 Main St
      city: Anytown
  4. 複雑なデータ構造

    • YAMLでは、ネストされた辞書やリストを使って複雑なデータ構造を表現することができます。
      company:
      name: Tech Corp
      employees:
      - name: Alice
      role: Developer
      - name: Bob
      role: Designer
      departments:
      engineering:
      - team_lead: Alice
      members:
      - Charlie
      - David
      design:
      - team_lead: Bob
      members:
      - Eva
      - Frank
  5. コメント

    • コメントはシャープ(#)で始まり、行の終わりまで続きます。
      # これはコメントです
      key: value # ここもコメントです

YAMLファイルの用途

  • 設定ファイル: アプリケーションやツールの設定に使います(例: CI/CDパイプラインの設定、データベース設定など)。
  • データ交換: JSONの代替として、データ交換や保存に使います。
  • データのシリアライズ: データを一時的に保存したり、ネットワーク越しに送信したりする際に使用します。

YAMLファイルの例

以下は、UnityのML-Agentsの設定ファイルの例です:

behaviors:
MyAgent:
trainer_type: ppo
hyperparameters:
batch_size: 64
buffer_size: 10240
learning_rate: 3e-4
beta: 5.0e-3
epsilon: 0.2
num_epoch: 3
time_horizon: 100
reward_signal:
extrinsic:
gamma: 0.99
strength: 1.0
network_settings:
num_layers: 3
hidden_units: 256
normalize: true

この例では、エージェントのトレーニングパラメータやネットワーク設定がYAML形式で記述されています。