>100 Views
July 02, 26
スライド概要
はじめまして、yukikoと申します。 IT教育支援や、DX推進が可能です。 ◆ スキル LPIC レベル2 AI / Python Splunk BI(データ可視化・分析) ◆ その他 新卒・未経験の学生向けに、エンジニア転職を応援する資料を趣味で作成しています。 もしよろしければご活用ください。
IT研修講師向け 徹底解説シリーズ YAML構文 徹底解説 原理原則から、画像生成・動画生成の実務活用まで 国内・海外の一次情報(YAML公式仕様/Red Hat/IBM/Rubyist Magazine 他)にもとづき、 「コピペで終わらない」理解と実践演習を1本にまとめました。 うさうさ研修工房|面白きこともなき世を面白く
AGENDA 本日のゴールと進め方 この研修は「WHY → WHAT → HOW」の3部構成です。単なる構文暗記ではなく、なぜ・何を・どう使うかを一気通貫で扱います。 WHY なぜ学ぶのか WHAT → 何を理解するのか HOW → どう使いこなすのか YAMLの位置づけと 原理原則・構文・ 演習と実践パターンで 現場での必要性を理解する 仕様の変遷を図解でつかむ 手を動かして定着させる YAML構文 徹底解説|うさうさ研修工房 2
WHY なぜ今、 YAMLを学ぶ必要があるのか インフラ・ CI/CD GitHub Actions、Docker Compose、Kubernetesの設定はほぼ YAML 画像生成 AI ComfyUI/InvokeAIのワークフロー、 Stable Diffusion系のプリセット YAML構文 徹底解説|うさうさ研修工房 AIエージェント構成 LangChain・AutoGen・CrewAIなど、AIエージェントの構成定義に採用 動画・コンテンツ制作 ストーリーボードやレンダリングパイプラインの構造化に活用 3
WHY
YAMLの成り立ちと位置づけ
2001
2005
2009
2021
YAML誕生
(Clark Evans他)
YAML 1.1
(Norway Problem含む型推論)
YAML 1.2
JSONの正式な上位互換に
1.2.2
公式仕様の整備・現行版
データ記述形式としての立ち位置(海外一次情報より)
観点
YAML
JSON
XML
構造の表現
インデント
括弧 {} []
開始/終了タグ
コメント
書ける(#)
書けない
書ける(<!-- -->)
人間の可読性
高い
中程度
低い(冗長)
JSONとの関係
1.2以降は上位互換
―
非互換
YAML構文 徹底解説|うさうさ研修工房
4
WHAT 原理原則:たった 3つのデータ構造で全部表せる YAML公式仕様(yaml.org)は、スカラー・シーケンス・マッピングという型システムを核として定義しています。この 3つの組み合わせだけで、あらゆるデータを表現 できます。 スカラー シーケンス マッピング Scalar Sequence Mapping 単一の値。文字列・数値・真偽値・null。 name: 山田太郎 age: 30 YAML構文 徹底解説|うさうさ研修工房 順序付きのリスト(配列)。 skills: - Python - YAML キーと値のペアの集合(辞書)。 address: city: 東京 zip: 100-0001 5
WHAT インデントの図解:階層はスペースだけで決まる タブ文字は使用不可。同じ階層は必ず同じ幅で揃える一貫性が、 YAMLの構文ルールの中核です。 profile: name: Sakura contact: email: [email protected] social: name: Sakura email: sakura@... contact profile social: @sakura_dev skills twitter: "@sakura_dev" skills: - Python - Python / YAML / Docker - YAML - Docker YAML構文 徹底解説|うさうさ研修工房 6
WHAT 発展構文①:アンカー( &)とエイリアス( *) 同じ値を何度も書かない仕組み。共通設定を 1箇所にまとめ、変更を 1点集中管理できます。 base_style: &base_style quality: "high detail, 8k" negative_prompt: "blurry" scene_a → 白いうさぎ &base_style(原本) scene_b → 桜並木 *base_styleで呼び出し scene_a: <<: *base_style subject: " 白いうさぎ " scene_b: <<: *base_style subject: " 桜並木" 発展構文②:複数行文字列( | と >) | 改行を保持 > 改行をスペースに変換 台本・セリフ・ナレーション向き 説明文・キャプション向き YAML構文 徹底解説|うさうさ研修工房 7
WHAT 落とし穴の正体: YAML 1.1→1.2 の仕様変更 YAML公式仕様(yaml.org, Revision 1.2.2)によれば、 1.2での最大の変更点は「コア型スキーマ」の導入です。ここを知らないと初心者が必ずハマります。 項目 YAML 1.1 YAML 1.2(現行) 真偽値と解釈される文字列 true/false に加え y, yes, on 等も真偽値化 (=通称『ノルウェー問題』) true / false のみ (y, yes, on はただの文字列) 数値の記法 8進数は先頭0のみでOK 8進数は 0o プレフィックス必須 マージキー << 使用可能 仕様上は削除(実装依存で残存) JSONとの関係 多くは互換 正式にJSONの上位互換と規定 講師向けポイント: 「NO」「Off」「Yes」のようなクォートなしの文字列が、パーサーによって真偽値扱いされることがあります。国名コード「 NO(ノルウェー)」がtrueやfalseとして誤解釈 された事例が有名で、俗に「ノルウェー問題」と呼ばれます。実務では文字列にしたい値は必ずクォートで囲む、と徹底させるのが指導の勘所です。 YAML構文 徹底解説|うさうさ研修工房 8
HOW 演習①:この YAML、どこが間違い? 受講者に「なぜ動かないか」を言語化させてから正解を見せると定着率が上がります。 ❌ Before(エラーになる) character: ✅ After(正しい) character: hair_color: silver hair_color: silver outfit: navy suit outfit: navy suit lighting: type: soft light art_style: name: NO lighting: type: soft light art_style: name: "NO" 誤り3点:①hair_colorのインデントが1マス不足 ②タブ文字混入 ③NOがクォートなしで真偽値と誤解釈される YAML構文 徹底解説|うさうさ研修工房 9
HOW 演習②:重複コードをアンカーでリファクタリング 「同じ設定を 3回コピペしている」状態を見せ、アンカー・エイリアスで 1箇所にまとめる書き換えを体験させます。 Before:3シーンで設定を毎回コピペ scene_a: quality: high detail negative: blurry subject: うさぎ scene_b: quality: high detail negative: blurry subject: 桜並木 After:アンカーで一元管理 base: &base quality: high detail negative: blurry scene_a: <<: *base subject: うさぎ scene_b: <<: *base subject: 桜並木 修正コスト:共通設定の変更が 1箇所で完結。行数も約 25%削減。 YAML構文 徹底解説|うさうさ研修工房 10
HOW 実践活用パターン:現場の 3つの入口 CI/CD自動化 画像生成プリセット 動画ストーリーボード GitHub Actions Stable Diffusion系 シーン管理 on: [push] jobs: prompt: positive: "1girl..." build: steps: negative: "blurry" parameters: - run: npm test YAML構文 徹底解説|うさうさ研修工房 scenes: - id: 1 camera: close-up duration_sec: 5 steps: 28 11
TIPS 研修講師向け:教え方のコツ 『閉じ括弧がない』を最初に強調 JSON経験者ほど「終わりはどこ?」と混乱する。インデント=構造、を体で覚えさ せる演習を先に。 『書かせる』前に『読ませる』 既存のGitHub Actions/ComfyUIワークフローYAMLを読み解く時間を最初に取る と自走度が上がる。 YAML構文 徹底解説|うさうさ研修工房 エラーは実際に起こしてから見せる タブ混入・インデント不揃いをわざと再現し、パーサーのエラーメッセージを読む練 習をセットにする。 検証ツールを教材に組み込む オンラインのYAMLバリデーター/YAML→JSON変換ツールを常時開かせ、自己解 決させる。 12
まとめ • YAMLは3つのデータ構造(スカラー/シーケンス/マッピング)だけで全データを表現する • 階層はインデントのみで決まる。タブ禁止・幅の一貫性が最重要ルール • アンカー/エイリアス/複数行文字列で、実務では『使い回す』設計ができる • 1.1→1.2の仕様変更(ノルウェー問題など)を知らないと必ずハマる • CI/CD・画像生成・動画生成、すべて同じ原理原則の応用でしかない 参考情報(国内・海外一次情報) • YAML Ain't Markup Language (YAML™) 1.2.2 — 公式仕様(yaml.org) • Red Hat「YAML in a Nutshell」「YAML explained for ROSA users」 • IBM「YAMLとは」/CircleCI「YAML入門」 • プログラマーのためのYAML入門(るびま)/Qiita技術備忘録 うさうさ研修工房|面白きこともなき世を面白く