SONUB ホーム JA English 한국어 日本語 中文 हिन्दी বাংলা اردو Español Português Français Deutsch Русский العربية Bahasa Indonesia Tiếng Việt ไทย Türkçe

通知を有効にする方法

このブラウザーまたはアドレスでは通知を利用できません。対応ブラウザーで安全な接続のSONUBサイトを開いてください。

通知がブロックされている場合は、ブラウザーの設定で許可してください。

  1. アドレスバー横のサイト設定、またはブラウザーのサイト設定を開き、このサイトの通知を許可に変更してください。
  2. 端末の設定でブラウザーの通知を許可し、おやすみモードや集中モードを確認してください。
  3. SONUBに戻ってページを再読み込みし、ベルから通知を有効にしてください。

iPhoneやiPadではSONUBをホーム画面に追加し、そこから開いて通知を許可してください。

教材

AIコース

ツールを上手に使うところから、小さなを自分で作るところまで、1ページで章ごとに学びます。どの章にも授業の進め方ガイドがあるので、講師はこのページだけで授業ができます。

マイ学習
第1章 · 初級 · はじめに

始める前に: あなたのAIツール箱

目標

このコースで使うツールと、それぞれの用途、必要なアカウント、キーや個人情報を安全に守る方法がわかります。

このコースでは、まずAIを理解し、次にAIツールを使い、最後に小さなを自分で作ります。出てくるツールは3種類です。

  • チャットアシスタント — ChatGPTのように、会話で答えます。
  • — CodexやClaude Codeのように、パソコンのファイルを読んで書き換えます。
  • エージェントツール — Claude Coworkのように、何段階もの作業を代わりにこなします。

、、はこれらすべての土台なので、一緒に学びます。無料アカウントで足りる章もあれば、有料プランが必要な章もあります。どちらかは授業の進め方ガイドに書いてあります。いつでもSONUBのブラウザ練習で代わりについてこられます。

やさしく理解しよう

こんなふうに考えてみよう
このコースは、道具箱をいっぱいにしていくことだと考えてみましょう。チャットのお手伝いは、質問したり文章を書いたりする道具です。コーディングエージェントは、あなたのパソコンのファイルを直す道具です。タスクエージェントは、いくつもの手順がある仕事をやりとげる道具です。シェル・Git・Python は、道具をのせる作業台です。そして、どの道具箱にも小さな金庫が必要です。パスワードやキーはそこにしまい、チャットには決して貼りつけません。
例

クラブのホームページがほしいとします。チャットのお手伝いにアイデアや文章をたのみ、コーディングエージェントにプロジェクトフォルダーの中でページを作ってもらいます。動くバージョンができるたびに Git で保存し、公開します。同じ手順が、あとの章で道具ひとつずつくり返し出てきます。

よくある間違い
何かを動かすために「今回だけ」と やパスワードをチャットに貼りつけること。キーは環境変数か、しない に入れます。もれてしまったキーは、すぐに新しいものに替えましょう。
開いた道具箱に三つの仕切りがあります。チャットのふきだし、小さなロボットアームがついたノートパソコン、フォルダーを運ぶロボットがのったクリップボードです。道具箱は三つのブロックの上にのっています。ターミナルの画面、枝分かれする木、やさしい顔のヘビです。そのそばには、キーと南京錠が小さな金庫に入っています。
三種類の AI ツールは、三つの基本(シェル・Git・Python)の上に立っています。キーとパスワードは金庫にしまい、チャットには決して入れません。
もう少し詳しく

どんなツールよりも大切な習慣が2つあります。1つ目は、結果を確かめることです。AIの答え、画像、コードの変更は、自分で読んで、試して、情報源と比べるまでは下書きにすぎません。2つ目は、秘密を守ることです。パスワード、APIキー、他の人の個人情報を、チャットや、人と共有するファイルに決して貼り付けないでください。APIキー(がAIサービスを使うときに見せる秘密の鍵)は、環境変数か .env ファイル(自分のパソコンだけに置く設定ファイル)に置き、Gitに決して保存(コミット)してはいけません。Gitは13章で学びます。

自分の言葉で説明

このコースに出てくる3種類のAIツールを自分の言葉で説明し、それぞれ例を1つ挙げましょう。

説明と比べる

チャットアシスタントは会話で答えます(ChatGPT)。コーディングエージェントはプロジェクトの中でファイルを読んで書き換え、コマンドを実行します(Codex、Claude Code)。エージェントツールは複数のファイルやアプリにまたがる何段階もの作業をこなします(Claude Cowork)。3つとも、自分で確かめる必要がある下書きを作ります。

自分で記録する欄です。ここで採点はしません。

この章を理解したものとして記録しますか?

まだ取り消せないので、本当に理解できたときだけ記録してください。

理解したものとして記録しました

自分で記録する欄です。ここで採点はしません。

授業の進め方

この章を授業で進める方法です。生徒が読んでもかまいません。

授業の流れ

コースの全体図を紹介する(5分) → ツールの種類ごとに例を1つずつ見せる(10分) → 生徒がアカウントとコース用フォルダを用意する(15分) → 安全のルールと質問(10分)。授業時間に合わせて各パートを伸ばしたり縮めたりしてください。

画面で見せること

  1. このコースを開いて章の一覧を一緒に見ましょう。はじめに → AIのしくみ → AIツールを使う → 開発の基本 → 作って公開する → AIエージェント → 働き続けるエージェント → 自分でLLMを作る → 自分のモデルをどこでも動かす → 最終プロジェクトの順です。
  2. チャットアシスタントに短い質問を1つしてから、コーディングエージェントがファイルの1行を書き換えるところを見せましょう。「話す」と「行動する」の違いが生徒に伝わります。
  3. APIキーをどこに置くべきか(環境変数か.envファイル)と、.gitignoreの1行でそれをGitに入れないようにする方法を見せましょう。

生徒の活動

  1. すでに使えるツール(ChatGPT、Codex、Claude、GitHub)と、まだ登録が必要なツールを書き出しましょう。
  2. 自分のパソコンに ai-course という空のフォルダを作りましょう。あとの章で使います。

達成の目安

3種類のAIツールをそれぞれ例を1つ挙げて言えて、2つの安全の習慣を言えれば達成です。

生徒がつまずいたら

  • 有料プランがないとき: デモを見ながらついていき、SONUBのブラウザ練習を使いましょう。概念の章はすべてアカウントなしでできます。
  • 学校や会社のパソコンでインストールが禁止されているとき: ツールのWeb版と、SONUBのシェルとPythonの練習を使いましょう。

クラスへの問いかけ

  • チャットアシスタントに質問することと、コーディングエージェントにファイルを書き換えさせることは、どう違うでしょうか?
  • APIキーはどこに保存すべきで、どこには決して出てきてはいけないでしょうか?

製品情報は2026-10-15に確認しました。AIツールはすぐに変わるので、公式ページと見比べてください。

第2章 · 初級 · AIのしくみ

AIの用語: 毎日耳にする10の言葉

目標

、、、、ー、、、、、といった日常の用語を、それぞれやさしい1文で説明できるようになります。

モデルは、データからパターンを学んだです。(LLM)は、ものすごい量の文章からパターンを学び、次に来る文章のかけらを予測します。この章の言葉:

  • プロンプト — あなたが入力するもの
  • トークン — モデルが読む単位で、単語の小さなかけら
  • コンテキストウィンドウ — モデルが一度に見られるトークンの量で、それまでの会話も含まれる
  • パラメーター(ともいう) — モデルの中にある数で、学習によって調整される
  • 学習 — 時間もお金もかかる長い学びの段階
  • 推論 — できあがったモデルを使ってあなたに答えること

やさしく理解しよう

こんなふうに考えてみよう
レストランを思い浮かべてください。モデルは料理人、プロンプトは注文票、トークンは材料を小さく切った一切れです。コンテキストウィンドウは料理人の作業台の広さ、パラメータは料理人が身につけた腕前です。学習は料理学校に通う時間、推論は今まさにあなたの料理を作っている時間です。ハルシネーションは見た目はおいしそうでも注文とちがう料理、API は受け渡し窓口、エージェントは材料の買い出しまで自分で行く料理人です。
例

「明日のソウルの天気は?」と入力すると、モデルはそれをトークンとして読みます。検索の道具がないは明日の天気を知ることができないので、もっともらしい予報を作ってしまうことがあります(ハルシネーション)。検索の道具を持つエージェントは、先に天気サイトを調べてから答えます。

よくある間違い
「パラメータが多いほど、いつも正しい答えになる。」大きさはモデルの力の一部にすぎません。結果の良さは、と確認の仕方でも決まります。
もう少し詳しく

もう少し覚えておきたい言葉:

  • ハルシネーション — 自信たっぷりなのに間違っていたり、作り話だったりする答え。だからいつも確かめます。
  • API — 自分のプログラムからプロンプトを送って答えを受け取るための入り口。ふつうは秘密のが必要です。
  • チャットボットとエージェント — チャットボットは答えるだけですが、エージェントは行動もできます。目標に向かって一歩ずつ、ファイルを読み、コマンドを実行し、ツールを使います。
  • オープンなモデルとクローズドなモデル — のモデルや、重みが公開されたモデル(オープンウェイト)はダウンロードして自分のパソコンで動かせます。クローズドなモデルはその会社のアプリかAPIでしか使えません。

自分の言葉で説明

コンテキストウィンドウとは何か、なぜ大切なのかを友だちに説明しましょう。

説明と比べる

コンテキストウィンドウは、モデルが一度に見られる文章の量(トークン数)です。プロンプト、ファイル、それまでの会話が入ります。その外に出てしまったものはモデルにはもう見えないので、長い会話では最初のほうの細かい内容が抜け落ちることがあります。大切なことをもう一度プロンプトに入れれば解決します。

自分で記録する欄です。ここで採点はしません。

この章を理解したものとして記録しますか?

まだ取り消せないので、本当に理解できたときだけ記録してください。

理解したものとして記録しました

自分で記録する欄です。ここで採点はしません。

授業の進め方

この章を授業で進める方法です。生徒が読んでもかまいません。

授業の流れ

生徒が聞いたことのあるAI用語を尋ねる(5分) → 用語をペアで説明する: プロンプト/トークン、学習/推論、チャットボット/エージェント(15分) → 言葉の組み合わせゲーム(10分) → 自分で確認する(10分)。

画面で見せること

  1. トークナイザーのページか、SONUBのトークンの章に文を1つ入力し、トークンの数をみんなで数えましょう。
  2. チャットボットに、知りようのないこと(架空の人物)を質問してハルシネーションを見せ、それを確かめる方法を見せましょう。
  3. 「このファイルの名前はどうやって変えるの?」に答えるだけのチャットボットと、実際に名前を変えてしまうエージェントを比べましょう。

生徒の活動

  1. 自分だけの単語カードを作りましょう。10の言葉それぞれに、1文の意味と例を1つ書きます。
  2. とても地域的なことや、とても新しいことをチャットボットに聞いてハルシネーションを1つ見つけ、どうやって確かめたかを書きましょう。

達成の目安

10の言葉を自分の言葉で説明でき、学習と推論の違い、チャットボットとエージェントの違いを言えれば達成です。

生徒がつまずいたら

  • 学習と推論を混同するとき: 学習は試験勉強、推論は試験を受けること、とたとえましょう。
  • トークンがわかりにくいとき: 長い言葉や珍しい言葉はいくつものトークンになり、よく使う言葉は1つのトークンになることを見せましょう。

クラスへの問いかけ

  • とても長い会話の中で、モデルが最初に言ったことを「忘れて」しまうことがあるのはなぜでしょうか?
  • チャットボットに質問することと、エージェントに作業を任せることは、どう違うでしょうか?
出典と参考資料
第3章 · 初級 · AIのしくみ

AI・機械学習・言語モデル

目標

広い分野と個別のの種類を区別します。

は、予測・認識・計画・生成などを行うシステムを作る分野です。人が書いた規則を使うものもあります。はデータからパターンを学び、深層は多層のを使います。

やさしく理解しよう

こんなふうに考えてみよう
「乗り物」を考えてみましょう。乗り物はいちばん大きなグループ(人工知能)です。自動車は乗り物の一種(機械学習)、電気自動車は自動車の一種()、そしてある一つの電気自動車の車種がのようなものです。名前が後になるほど、範囲がせまくなります。
例

人が書いたルールで判断する(たとえば「無料」や「当選」が入ったメールを迷惑メールとして分けるルール)は、学習しない人工知能です。例のメールから学ぶ迷惑メールフィルターは機械学習です。写真の中のネコを見つけるのは、たいていディープラーニングです。質問に答えるは LLM の上に作られています。

よくある間違い
「人工知能 = ChatGPT。」ChatGPT はで作られた製品の一つです。おすすめの仕組み、画像認識、道案内も人工知能です。
4つの円が入れ子になっている。いちばん外の円にはロボットのアイコン、その次の円には点が打たれたグラフ、その次の円には何層にも重なったノードのネットワーク、いちばん内側の円には吹き出しが2つある。
人工知能がいちばん大きな円です。機械学習、ディープラーニング、言語モデルが、それぞれ前の円の中に入っています。
もう少し詳しく

大規模言語モデル(LLM)はAIの一種です。文章を生成する多くのLLMは、利用できるから次のを予測します。画像生成・分類・規則ベースのシステムは別の仕組みでも動きます。流暢な文章は、生きている証拠にも正しさの証拠にもなりません。

自分の言葉で説明

すべてのAIは次の単語を生成しますか。反例を挙げましょう。

説明と比べる

いいえ。迷惑メールフィルターは「迷惑メール」か「迷惑メールではない」かを選び、規則ベースのプログラムは決められた条件に従うだけです。どちらも次の単語を生成しません。

自分で記録する欄です。ここで採点はしません。

この章を理解したものとして記録しますか?

まだ取り消せないので、本当に理解できたときだけ記録してください。

理解したものとして記録しました

自分で記録する欄です。ここで採点はしません。

授業の進め方

この章を授業で進める方法です。生徒が読んでもかまいません。

授業の流れ

生徒がAIを何だと思っているか聞く(5分) → 例をルール、機械学習、言語モデルに分ける(10分) → 章を読んで話し合う(15分) → セルフチェック(10分)。

画面で見せること

  1. 3つの例を並べて見せましょう。ルールで作った迷惑メールフィルター、顔を見分けるよう学習した写真アプリ、文章を生成するチャットアシスタントです。
  2. 3つの円を入れ子にして描きましょう。人工知能の中に機械学習、その中にディープラーニングがあり、言語モデルはいちばん内側の円に入ります。

生徒の活動

  1. 自分が使っているアプリを5つ書き出し、それぞれがルール、機械学習、言語モデルのどれかを理由とともに書きましょう。

達成の目安

言葉を生成しないAIシステムを正しい反例として挙げられれば達成です。

生徒がつまずいたら

  • AIはすべてChatGPTだと思っているとき: ルールで作った迷惑メールフィルターやおすすめ機能を、別の種類のAIとして見せましょう。

クラスへの問いかけ

  • 「20 °Cを下回ったら暖房をつける」というルールに従うサーモスタットは人工知能でしょうか? なぜそう思いますか?
出典と参考資料
第4章 · 初級 · AIのしくみ

プロンプトを書いて確かめる

目標

目的・必要な・条件・確認方法を示します。

はの出力を導く入力です。「分数を説明して」と「初心者にピザで2分の1を説明し、答えを言わずに問題を一つ出して」を比べましょう。後者は対象・例・活動を指定しています。

やさしく理解しよう

こんなふうに考えてみよう
プロンプトは、タクシーの運転手に行き先を伝えるのと同じです。「街の中心までお願いします」なら、近くのどこかに着きます。「市役所駅の 3 番出口に、10 時までにお願いします」なら、行きたい場所にぴったり着きます。行き先がはっきりしているほど、運転手が推測することは少なくなります。
例
  • あいまい:「分数について教えて。」
  • はっきり:「9 歳の子に、ピザを使って 2 分の 1 を短い 3 つの文で説明して。そのあと、答えなしの練習問題を 1 つ出して。」

2 つ目のプロンプトは、読む人・例・長さ・やることを決めています。

よくある間違い
「『あなたは専門家です』と書けば、専門家レベルの答えになる。」役割で話し方は変わりますが、知識が増えるわけではありません。事実はやはり自分で確かめる必要があります。
もう少し詳しく

役割は口調を導きますが、専門性や指示の遵守を保証しません。必要なら出典を求め、主張を裏付けるか確認しましょう。同じ例で二つのプロンプトを比べます。必要な情報だけ共有し、明確な質問でもモデルの限界は残ると覚えましょう。

自分の言葉で説明

「あなたは専門家です」と書けば答えを信頼できますか。

説明と比べる

いいえ。表現は変えられても、根拠の確認やテストは必要です。

自分で記録する欄です。ここで採点はしません。

この章を理解したものとして記録しますか?

まだ取り消せないので、本当に理解できたときだけ記録してください。

理解したものとして記録しました

自分で記録する欄です。ここで採点はしません。

授業の進め方

この章を授業で進める方法です。生徒が読んでもかまいません。

授業の流れ

あいまいな頼み方と正確な頼み方を比べる(10分) → プロンプトを1つ一緒に改善する(10分) → 生徒がプロンプトを書いて試す(20分) → 答えの確かめ方を話し合う(10分)。

画面で見せること

  1. 「分数を説明して」と聞いたあと、章にある正確な頼み方で聞き直し、2つの答えの対象、例、活動を比べましょう。
  2. プロンプトに「あなたは専門家です」と加えても、答えに間違いが含まれることがあると見せましょう。

生徒の活動

  1. 今学んでいるテーマでプロンプトを書きましょう。対象、例を1つ、答えの確かめ方を入れます。

達成の目安

生徒のプロンプトに、やること、文脈、条件、確認方法がそろっていれば達成です。

生徒がつまずいたら

  • 答えがまだあいまいなとき: ほしい出力の例と長さの制限を加えましょう。

クラスへの問いかけ

  • プロンプトのどの部分が答えをいちばん大きく変えましたか?
出典と参考資料
第5章 · 初級 · AIのしくみ

プロンプトエンジニアリング: うまくいくプロンプトの6つの部分

目標

役割、目的、背景、例、条件、出力の形式を入れたを書き、一から書き直すのではなく一歩ずつ改善できるようになります。

とは、が必要な結果を出せるように指示を書くことです。よいプロンプトには、ふつう6つの部分があります。

  • 役割 — モデルが誰として振る舞うか
  • 目的 — 何がほしいか
  • 背景 — 必要な事実、ファイル、読む人
  • 例 — よい答えのサンプルを1つか2つ
  • 条件 — 長さ、レベル、避けること
  • 出力の形式 — リスト、表、、ファイル

たくさん伝えるほど、モデルが推測することは減ります。

やさしく理解しよう

こんなふうに考えてみよう
よいプロンプトは、料理人に渡すレシピカードのように働きます。だれが作るのか(役割)、どんな料理がほしいのか(目標)、冷蔵庫に何があるのか()、できあがりの写真(例)、避けること(制約)、どう盛りつけるのか(出力形式)を書きます。6 つがそろえば、料理人はほとんど推測しなくてすみます。
例
  • 役割:「あなたは小学校の理科の先生です。」
  • 目標:「水の循環を説明してください。」
  • 文脈:「読むのは 8 歳の子どもたちです。」
  • 例:「こんなふうに:『太陽が海をあたためると…』」
  • 制約:「5 つの文で、むずかしい言葉は使わないで。」
  • 出力形式:「番号つきのリストで。」
よくある間違い
一度で完ぺきなプロンプトを書こうとすること。まず一つ書いてみて、答えを読み、足りなかったことだけを足していきましょう。
仮面、的、フォルダー、星の見本、止まれマークのついた定規、表のアイコンが描かれた 6 つのパズルのピースが、レシピカードにはまっていく。ロボットの料理人ができあがったカードを受け取り、きれいなお皿を出す。横には、はてなマークだけが書かれたくしゃくしゃのメモが置かれている。
役割・目標・文脈・例・制約・出力形式が、レシピカードのように組み合わさります。あいまいなメモだけでは、料理人は推測するしかありません。
もう少し詳しく

プロンプトは下書きのように扱いましょう。答えを読み、足りないところや間違いを見つけて、まさにそれをプロンプトに書き足します。「もっとやさしい言葉で」「選択肢を3つ出して」「出典を示して」のようにです。

  • 難しい作業では、先に計画を立ててから答えるようにモデルに頼みましょう。
  • または、作業をいくつかの小さなプロンプトに分けましょう。
  • では、ずっと使う部分(ルール、コマンド、スタイル)をCLAUDE.mdやAGENTS.mdのようなプロジェクトのファイルに書いておきます。そうすれば毎回くり返さずにすみます。

自分の言葉で説明

「ホームページを作って」を、6つの部分が入ったプロンプトに書き直しましょう。

説明と比べる

たとえば「あなたはWebデザイナーです(役割)。私のパン屋さんの1ページのホームページを作ってください(目的)。ソウルでパンとケーキを売っていて、お客さんは家族連れです(背景)。このサンプルのような雰囲気にしてください: …(例)。とだけを使い、スマホ優先で、セクションは4つまでにしてください(条件)。index.htmlファイル1つで出してください(形式)。」6つの部分がすべて入っていれば、どんなプロンプトでも正解です。

自分で記録する欄です。ここで採点はしません。

この章を理解したものとして記録しますか?

まだ取り消せないので、本当に理解できたときだけ記録してください。

理解したものとして記録しました

自分で記録する欄です。ここで採点はしません。

授業の進め方

この章を授業で進める方法です。生徒が読んでもかまいません。

授業の流れ

弱いプロンプトとその答えを見せる(5分) → 6つの部分で作り直す(15分) → 生徒がプロンプトを3回かけて改善する(15分) → 結果を比べる(5分)。

画面で見せること

  1. 「気候について書いて」と頼んだあと、同じ依頼に役割、読む人、長さ、形式を加えて頼み、2つの答えを比べましょう。
  2. プロンプトに答えの例を1つ加え、結果の文体がその例に合わせて変わることを見せましょう。
  3. 同じプロンプトで、結果を表で、次にJSONで出すように頼みましょう。

生徒の活動

  1. 自分の実際の用事(勉強の計画、要約、メール)について、6つの部分がすべて入ったプロンプトを書きましょう。
  2. 2回改善しましょう。毎回、答えの間違いをもとに直す点を1つ加え、3つのバージョンをすべて残しておきます。

達成の目安

最後のプロンプトに6つの部分があり、それぞれの問題を解決した変更を指し示せれば達成です。

生徒がつまずいたら

  • 答えが長すぎる、または一般的すぎるとき: 読む人、長さの制限、形式を加えましょう。
  • モデルがルールを無視するとき: ルールを最後に移し、一度だけはっきり書き、答える前にそのルールを確認するよう頼みましょう。

クラスへの問いかけ

  • 答えの文体が違うとき、6つの部分のうちどれがいちばん役に立つでしょうか?
  • ずっと使うルールを毎回のプロンプトではなくCLAUDE.mdやAGENTS.mdに書くのはなぜでしょうか?
出典と参考資料
第6章 · 初級 · AIのしくみ

テキスト・トークン・ID

目標

文字列の断片()と、その断片につけた番号(ID)を区別します。

は文章をトークンという断片に分け、語彙のIDに対応させます。単語・単語の一部・文字・などが単位になり、空白や句読点も関係します。同じ文章でも方式によってトークン数が変わります。

やさしく理解しよう

こんなふうに考えてみよう
トークナイザーは、長い紙テープのような文章を大きさのちがう切れ端に切り、一つ一つに番号札をつける機械のようなものです。は文字を見ません。並んだ番号札だけを見ています。
例

英語の単語 “unbelievable” は “un”、“believ”、“able” のように切られることがあります。スペースや句点が、それだけで 1 つのトークンになることもあります。同じ文でもトークナイザーがちがえばトークンの数が変わり、同じ意味でも日本語は英語より多くのトークンが必要になることがよくあります。

よくある間違い
「トークンの数 = 単語の数(または文字の数)。」どちらでもありません。だから同じ内容でも、言語によって料金がちがったり、が早くいっぱいになったりします。
紙テープが切る機械に入り、長さのちがう切れ端になって出てくる。切れ端にはそれぞれ色つきの丸い札がついていて、一列に並んでいる。
文章は大きさのちがうトークンに切られ、トークンごとに ID 番号がつきます。モデルはその番号で仕事をします。
もう少し詳しく

実習では本番のトークナイザーではなく、簡単な単語分割を使います。IDは名札です。ID 8にID 4の2倍の意味があるわけではありません。コンテキストウィンドウにはトークン数の上限があり、アプリが資料を選択・要約・除外することがあります。

自分の言葉で説明

IDが隣り合うトークンは、意味も近いでしょうか。

説明と比べる

いいえ。IDは語彙を識別する番号で、その差は意味の距離ではありません。

自分で記録する欄です。ここで採点はしません。

この章を理解したものとして記録しますか?

まだ取り消せないので、本当に理解できたときだけ記録してください。

理解したものとして記録しました

自分で記録する欄です。ここで採点はしません。

授業の進め方

この章を授業で進める方法です。生徒が読んでもかまいません。

授業の流れ

トークンとは何か(10分) → 同じ文のトークンをいろいろな方法で数える(10分) → 生徒が自分の文をトークンに分ける(20分) → セルフチェック(10分)。

画面で見せること

  1. 「unbelievable!」を文字ごと、単語ごと、そして un + believ + able + ! のような単語のかけらに分け、それぞれいくつになるか数えましょう。
  2. IDはただの名札だと見せましょう。IDが隣り合う2つのトークンでも、意味はまったく違うことがあります。

生徒の活動

  1. 文を1つ書いて文字ごとと単語ごとに分け、それぞれのかけらの横に作ったIDを書きましょう。

達成の目安

同じ文章でもトークンの数が変わることがある理由を説明できれば達成です。

生徒がつまずいたら

  • トークンと単語を混同しているとき: 長い単語が複数のトークンに分かれる例、句読点がそれだけで1つのトークンになりうる例、そしてスペースがふつうは次の単語とくっついて1つのトークンになる例を見せましょう。

クラスへの問いかけ

  • AIサービスは、なぜ利用量を単語ではなくトークンで数えることが多いのでしょうか?
出典と参考資料
第7章 · 初級 · AIのしくみ

ベクトルと埋め込み

目標

ID・・済みを区別します。

IDは名札、は数値の並びです。ワンホットは語彙の一か所だけを1、残りを0にし、意味の近さを表しません。埋め込みは学習したベクトルです。データと学習目標に応じて、関連する用法が近くに配置されることがあります。

やさしく理解しよう

こんなふうに考えてみよう
埋め込みは、すべての言葉に大きな地図の上の場所をあたえることです。似た使われ方をする言葉は近くに、ちがう使われ方をする言葉は遠くに置かれます。紙の地図は座標が 2 つですが、は数百から数千の数字を使います。
例

「ネコ」と「イヌ」は近くに、「ネコ」と「車」は遠くにあります。だから「ドッグフード」で検索しても、言葉がちがう「子犬のごはん」の文書を見つけられるのです。

よくある間違い
「近ければ意味が同じ、またはその文は正しい。」近いというのは、の中で似た使われ方をしていたということだけです。「暑い」と「寒い」は同じような文によく出てくるので、近くなることがあります。
やわらかなマス目の地図の上に、動物どうし、果物どうし、乗り物どうしが集まったピンのグループが 3 つある。グループの間には長い点線があり、動物のグループの上には虫めがねがある。
似た使われ方をするものどうしが、地図の上で近くに置かれます。距離が表すのは使われ方の近さで、正しさではありません。
もう少し詳しく

現代の()はでの中のほかのの情報を混ぜ込むため(33章で学びます)、同じトークンでも文によって表現が変わります。類似度は真実や同義を保証しません。有名な王 − 男性 + 女性の例は一部の単語埋め込みでの結果で、普遍的な等式ではありません。検索では互換性のある埋め込み空間で質問と文書を比較します。

自分の言葉で説明

埋め込みが近ければ、二つの文が同じ真実を述べている証拠になりますか。

説明と比べる

いいえ。同じ話題でも反対の主張かもしれません。実際の内容を読んで確認します。

自分で記録する欄です。ここで採点はしません。

この章を理解したものとして記録しますか?

まだ取り消せないので、本当に理解できたときだけ記録してください。

理解したものとして記録しました

自分で記録する欄です。ここで採点はしません。

授業の進め方

この章を授業で進める方法です。生徒が読んでもかまいません。

授業の流れ

IDからベクトルへ(10分) → ワンホットベクトルと学習済み埋め込みを比べる(10分) → 生徒が単語を2次元の地図に置く(20分) → セルフチェック(10分)。

画面で見せること

  1. 5語の語彙で「cat(ネコ)」のワンホットベクトルを書き、それでは似ている度合いがまったくわからないことを見せましょう。
  2. ネコとイヌが近く、車が遠い2次元の地図を描き、学習によって単語がその位置に置かれると説明しましょう。

生徒の活動

  1. 好きな単語を8つ選んで意味ごとに2次元の地図に置き、そのうち2つの位置を説明しましょう。

達成の目安

ID、ワンホットベクトル、埋め込みの違いを区別できれば達成です。

生徒がつまずいたら

  • 埋め込みが近ければ「正しい」と思っているとき: 同じテーマについての正反対の2つの文が近くに置かれる例を見せましょう。

クラスへの問いかけ

  • 2つの文の埋め込みが近いとき、何が言えて、何が言えないでしょうか?
出典と参考資料
第8章 · 初級 · AIのしくみ

学習・推論・検索

目標

で変わるものとで使うものを説明します。

模型は直前の単語の次に何が出たか数えます。skyの次にredが3回、blueが1回ならは3/4と1/4です。現代のニューラルは(予測がどれだけ外れているかを表す数)を減らすよう多くのを最適化します。推論では重みとから次ののスコアを計算します。この実習は条件付き予測の例で、全体ではありません。

やさしく理解しよう

こんなふうに考えてみよう
学習は、何か月もかけてする試験勉強のようなものです。時間もエネルギーもたくさんかかり、頭の中(重み)が変わります。推論は、試験会場で問題に答えることです。速く、頭の中は変わりません。 は持ち込み可の試験です。答えながら本を開いて調べてもかまいません。
例

ある会社が、自分の会社の規則について答えるをほしがっているとします。は、規則をもう一度勉強させて重みを変える方法です。RAG は、規則集を開いておき、質問のたびに合うページをに渡す方法です。だから規則が変わっても、学習し直さずに更新できます。

よくある間違い
「モデルはチャットのたびにすぐ学ぶ。」ふつうのチャットは推論です。会社があとでそのデータを使って学習し直さないかぎり、あなたのチャットが重みを変えることはありません。
左:本の山に囲まれたロボットが、小さなつまみをたくさん回している。時計とエネルギーのアイコンがある。右:つまみがロックされた同じロボットが、いなずまマークといっしょに子どもの質問にすばやく答えている。
学習はつまみ(重み)をゆっくり合わせることです。推論は固定したつまみを使って、すばやく答えることです。
もう少し詳しく

ファインチューニングは重みを変えます。LoRAでは基礎の重みを固定して小さなアダプターを学習できます。RAG(検索拡張生成)は重み更新を必須とせず資料を検索し文脈に渡します。BM25は単語一致に頻度の飽和と文書長の補正を使い、検索は学習済みを比較します。どちらも証拠の見落としや誤った資料の取得はあり得ます。チャット一回が自動的な学習更新になるわけではありません。

自分の言葉で説明

新しい説明書を検索してに追加すると、必ずファインチューニングになりますか。

説明と比べる

いいえ。検索は文脈を追加します。ファインチューニングには重みを更新する学習が必要です。

自分で記録する欄です。ここで採点はしません。

この章を理解したものとして記録しますか?

まだ取り消せないので、本当に理解できたときだけ記録してください。

理解したものとして記録しました

自分で記録する欄です。ここで採点はしません。

授業の進め方

この章を授業で進める方法です。生徒が読んでもかまいません。

授業の流れ

学習と推論を比べる(10分) → バイグラムで数える例(10分) → 検索とファインチューニングを比べる(10分) → 生徒が場面を分類する(10分) → セルフチェック(10分)。

画面で見せること

  1. 章にある sky → red/blue を数える例を黒板で一緒に解き、確率を計算しましょう。
  2. マニュアルをプロンプトに貼り付けるアプリ(検索)を見せ、そのときモデルの重みは変わっていないと説明しましょう。

生徒の活動

  1. 5つの場面を学習、推論、検索に分けましょう。たとえば「チャットボットが答える前に今日のメニューを読む」といった場面です。

達成の目安

学習で何が変わり、推論のときにモデルが何を使うかを説明できれば達成です。

生徒がつまずいたら

  • チャットボットは会話のたびに学ぶと思っているとき: 学習し直さないかぎり重みは変わらないと説明しましょう。

クラスへの問いかけ

  • モデルは、なぜ一度も学習していない文書についても答えられるのでしょうか?
出典と参考資料
第9章 · 初級 · AIのしくみ

指示・サンプリング・検証

目標

いつも同じ答え(一貫性)と正しい答え(事実の正確さ)は違うことを知り、生成設定を変えながら比較します。

システム指示は回答を導きますが、従うことや安全なツールアクセスを保証しません。権限はアプリが制御します。は(スコアをに変える段階)前のスコアを調整し、小さい正の値は確率を集中、大きい値は平坦にします。は候補数、top-pは累積確率で候補を絞ります。事実確認の機能ではありません。は抽選せず最高スコアのを選びます。

やさしく理解しよう

こんなふうに考えてみよう
温度は、冒険心のつまみのようなものです。下げると、はほとんどいつも、いちばんありそうな言葉を選びます。上げると、意外な言葉をもっとよく試します。top-k はつぼの中にいちばんありそうな候補を k 個だけ残し、top-p は確率の大きい順に足していき、合計が p 以上になる、いちばん小さな候補のグループだけを残します。
例

算数の答えや、元の文章からはなれてはいけない要約には、低い温度を使います。お話のアイデアや名前を考えるときは、温度を少し上げると、いろいろな答えが出ます。どちらの場合も、事実は自分で確かめましょう。

よくある間違い
「温度を下げれば、答えが正しくなる。」選び方が予測しやすくなるだけです。ありそうでもまちがった文は、まちがったままです。
左:手がいつもいちばん高い棒だけを指すので、毎回同じブロックが出る。右:むらさきの玉が多く、うすむらさきの玉は少なく、ピーチ色の玉は少しだけ入ったつぼから手が玉を引き、結果はほとんどむらさきで、ときどき別の色がまじる。
貪欲法はいつもいちばん高い棒を選びます。はつぼから引くので、結果が毎回少しずつ変わります。
もう少し詳しく

作成実習で貪欲法とサンプリングを何度か比較しましょう。抽選でも同じ結果は出ます。実際のシステムではモデルの版・・ツール・数値計算も影響するため、温度0でも完全な再現は保証されません。次に曖昧な質問と、目的・背景・確認方法を含む質問を比較します。事実は原典で確かめ、ヒントを使って自分の言葉で説明しましょう。

自分の言葉で説明

低い温度のモデルも誤答を自信ありげに繰り返しますか。

説明と比べる

はい。確率の集中は真実の証拠ではありません。内容を別途検証します。

自分で記録する欄です。ここで採点はしません。

この章を理解したものとして記録しますか?

まだ取り消せないので、本当に理解できたときだけ記録してください。

理解したものとして記録しました

自分で記録する欄です。ここで採点はしません。

授業の進め方

この章を授業で進める方法です。生徒が読んでもかまいません。

授業の流れ

指示と権限を比べる(10分) → 数字で見るtemperature、top-k、top-p(15分) → 生徒が出力を予想する(15分) → セルフチェック(10分)。

画面で見せること

  1. 3つのトークンのスコアに低いtemperatureと高いtemperatureをかけ、確率がとがったり平らになったりするようすを見せましょう。
  2. 高いtemperatureで同じ質問を2回して答えが変わることを見せ、どちらも事実かどうかは確かめられていないと説明しましょう。

生徒の活動

  1. 確率が0.6、0.3、0.1のとき、top-k = 2とtop-p = 0.8がそれぞれどのトークンを残すか答えましょう。

達成の目安

temperatureを低くすると答えは一貫するけれど、正しいとは限らないと説明できれば達成です。

生徒がつまずいたら

  • システムプロンプトがセキュリティの壁だと思っているとき: 権限を守るのはプロンプトではなくアプリケーションだと説明しましょう。

クラスへの問いかけ

  • temperatureを高くしたいのはどんなときで、低くしたいのはどんなときでしょうか?
出典と参考資料
第10章 · 初級 · AIツールを使う

ChatGPT: 上手に頼んで答えを確かめる

目標

目的、、条件、出力形式のそろった依頼を書き、一歩ずつ改善し、答えを使う前に確かめられるようになります。

ChatGPTはで作られたチャットアシスタントです。文章を書き、要約し、翻訳し、説明し、計画を立てます。添付したファイルや画像を読むこともでき、機能がオンならWeb検索もします。

よい依頼には4つの部分があります:

  • 目的 — 何がほしいか
  • 文脈 — 誰のためのものか、すでに何があるか
  • 条件 — 長さ、口調、避けること
  • 形式 — 箇条書き、表、メール

最初の答えが外れていたら、最初からやり直さずに、何を変えてほしいかを正確に伝えましょう。1つの会話は1つのテーマにしぼると、前のメッセージが混乱のもとではなく助けになります。

やさしく理解しよう

こんなふうに考えてみよう
ChatGPT は、初出勤の日の有能な新しい助っ人だと思って接しましょう。仕事は速いけれど、あなたが話さないかぎり、あなたの事情は知りません。まちがっているのに自信たっぷりに話すこともあります。仕事をはっきり説明し、最初の下書きを見て、具体的に直してほしいところを伝えましょう。
例
  • 最初のお願い:「パーティーの招待状を書いて。」
  • もっとよいお願い:「10 歳の子のクラスメートに送る誕生日パーティーの招待状を書いて。土曜日の午後 2 時、うちで、水着を持ってきてね、80 語以内、親しみやすい口調で。」
  • 続けて:「2 つ目の文を短くして、木曜日までに保護者の方に返事をお願いする一行を足して。」
よくある間違い
1 つのチャットにいろいろな話題をまぜること。前のメッセージがあとの答えにずっと影響するので、新しい話題は新しいチャットで始めましょう。
3 つの飛び石の上に、チャット画面が 1 つずつある。ぐちゃぐちゃの結果、鉛筆の直しが入った少しきれいな結果、緑のチェックがついたきれいな結果。子どもが段階ごとに意見を書いたふせんをはり、最後の答えを本ともう一つの資料で確かめている。
具体的な意見で答えを一歩ずつよくし、使う前に別の資料で確かめましょう。
もう少し詳しく

はありそうな文章を予測するので、すらすら読める答えでも間違っていることがあります。情報源をたずねて実際に開き、数字は元の資料と比べ、にどんな前提を置いたかを書き出してもらいましょう。大事な事実は、独立した2つ目の情報源で確かめます。保存した指示やプロジェクト機能でChatGPTに好みを覚えさせることはできますが、それも指示であって保証ではないので、確認を続けましょう。

自分の言葉で説明

「発表を手伝って」という依頼を、目的、文脈、条件、形式が入るように書き直しましょう。

説明と比べる

たとえば「目的: スライド5枚の構成案。文脈: 13歳の生徒に向けた、リサイクルについての3分間の授業発表。条件: やさしい言葉で、スライドごとに出典つきの統計を1つ。形式: 各スライドにタイトルと箇条書き2つ。」4つの部分をすべてはっきり書いた答えなら正解です。

自分で記録する欄です。ここで採点はしません。

この章を理解したものとして記録しますか?

まだ取り消せないので、本当に理解できたときだけ記録してください。

理解したものとして記録しました

自分で記録する欄です。ここで採点はしません。

授業の進め方

この章を授業で進める方法です。生徒が読んでもかまいません。

授業の流れ

弱い依頼と強い依頼を比べる(10分) → 3回のやりとりでその場で改善する(10分) → 生徒が自分の依頼を書いて磨く(20分) → 答えを比べて確かめる(10分)。

画面で見せること

  1. 「韓国について教えて。」と聞いてみましょう。次に「目的: 10歳の子ども向けに韓国を5行で紹介する。文脈: その子はブラジルに住んでいる。条件: 歴史の年号は入れない。形式: 箇条書き。」と聞き、2つの答えを比べます。
  2. 最初から聞き直さずに、「3行目を短くして、食べ物の例を1つ加えて」のように、変えてほしい点を正確に続けて伝えましょう。
  3. 答えに数字が入る質問をし、情報源をたずねて開き、数字が合っているか確かめましょう。

生徒の活動

  1. 実際の作業(メール、勉強の計画、要約)を1つ選び、目的、文脈、条件、形式のそろった依頼を書きましょう。
  2. 少なくとも2回の追加メッセージで答えを改善し、確かめた主張を1つと、その確かめ方を書きましょう。

達成の目安

最後の依頼に4つの部分がすべて入っていて、情報源と照らし合わせて確かめた事実を1つ示せれば達成です。

生徒がつまずいたら

  • 答えが長すぎる、または一般的すぎるとき: 長さの制限と対象を加え、ほしいものの例を1つ示しましょう。
  • 答えが情報源や数字をでっち上げたとき: そう指摘してリンクを求め、確かめられないことは未確認として扱いましょう。

クラスへの問いかけ

  • あなたの例では、4つの部分のどれが答えをいちばん大きく変えましたか?
  • 自信たっぷりですらすら読める答えでも、なぜ間違っていることがあるのでしょうか?
出典と参考資料

製品情報は2026-10-15に確認しました。AIツールはすぐに変わるので、公式ページと見比べてください。

第11章 · 初級 · AIツールを使う

画像生成: 描写し、磨き、確かめる

目標

画像を正確に描写し、一度に1つだけ変え、使う前に間違い、権利、誠実さを確かめられるようになります。

画像は文章の説明を画像に変えます。多くのモデルは、渡した画像を編集することもできます。ChatGPTとCodexは画像を作って編集できます。GoogleはNano Bananaという画像モデルを提供しています(Gemini の以前のImagenモデルは提供が終了しました)。よい画像には、次のものが入ります。

  • 主題と場所
  • 画風
  • 構図 — アップか引きか、何がどこにあるか
  • 色
  • サイズや縦横比

編集するときは、変えるものと変えないものを両方伝えましょう。たとえば「女の子と背景はそのままで、傘だけ黄色にして」のようにです。

やさしく理解しよう

こんなふうに考えてみよう
絵をお願いするのは、電話で画家に場面を説明するのと同じです。画家にはあなたの頭の中が見えないので、だれが描かれているか、どこなのか、絵のスタイル、どれくらい近くから見た絵か、色、絵の形を伝えましょう。直してほしいときは、そのままにしてほしいところも伝えます。
例

「夕暮れの雨の通りを、黄色いかさをさして歩く女の子。あたたかい水彩画のスタイル、少しはなれたところから見た様子、やわらかな青とオレンジ、横長 3:2 の絵。」続けて:「女の子と通りはそのままで、かさだけを赤に変えて。」

よくある間違い
拡大して見ないまま絵を使うこと。多すぎる指、まちがった文字、ありえない影をさがしましょう。そして、作った絵を本物の写真のように見せてはいけません。
子どもがタブレットで、黄色いかさをさした女の子の生成された絵を見ている。虫めがねで見ると女の子の指が 6 本あり、赤い丸で囲まれている。タブレットの横には、チェックボックスのあるチェックリストと盾のアイコンがある。
生成した絵を使う前に拡大して、手・文字・影を確かめましょう。そして、 が作ったことを正直に伝えましょう。
もう少し詳しく

生成された画像には、小さな間違いが隠れていることがよくあります。間違った文字、多すぎる指、ありえない影などです。必ず拡大して確かめましょう。生成した画像を使って本当に起きたことのように見せかけない、存命のアーティストや実在の人物を許可なくまねしない、必要なときはAIで作った画像だと明かす、を守りましょう。画像を商用で使う前には、ツールの利用規約を読みましょう。

自分の言葉で説明

人物写真の背景だけを海辺に変え、人物はまったく同じままにする編集の依頼を書きましょう。

説明と比べる

たとえば「人物の顔、服、ポーズ、光の当たり方は今のままにしてください。背景だけを、人物の後ろに海が見える晴れた海辺に変えてください。」変えるものと変えないものの両方を書く必要があります。

自分で記録する欄です。ここで採点はしません。

この章を理解したものとして記録しますか?

まだ取り消せないので、本当に理解できたときだけ記録してください。

理解したものとして記録しました

自分で記録する欄です。ここで採点はしません。

授業の進め方

この章を授業で進める方法です。生徒が読んでもかまいません。

授業の流れ

弱いプロンプトと強いプロンプトを比べる(10分) → ほかはそのままで1か所だけ編集する(10分) → 生徒が自分の画像を作って編集する(20分) → 間違いと権利を振り返る(10分)。

画面で見せること

  1. 「ネコ」で画像を作り、次に「日当たりのよい窓辺の青いいすで眠るオレンジ色のネコの水彩画、引きの構図、4:3」で作って比べましょう。
  2. 2枚目の画像を「ほかはすべてそのままで、いすだけ緑にして」と編集しましょう。うっかり変わってしまった部分があれば指摘します。
  3. 結果を拡大し、文字、手、影、遠近法のどこかで間違いを1つ見つけましょう。

生徒の活動

  1. 主題、場所、画風、構図、色、サイズを入れた画像プロンプトを書いて、画像を生成しましょう。
  2. ちょうど1か所だけを変える編集をして、ほかの部分も変わったかどうかを書き留めましょう。

達成の目安

プロンプト、編集の依頼、そして結果の中で見つけた間違いを1つ示せれば達成です。

生徒がつまずいたら

  • 画像がプロンプトの一部を無視するとき: いちばん大事な内容を先頭に書き、矛盾する言葉を消しましょう。
  • 画像の中の文字のつづりが間違っているとき: 文字数を減らしてもらうか、あとから普通の編集ソフトで文字を入れましょう。

クラスへの問いかけ

  • 編集の依頼では、なぜ変えないものも伝えるべきなのでしょうか?
  • 生成した画像を使ってはいけないのは、どんなときでしょうか?
出典と参考資料

製品情報は2026-10-15に確認しました。AIツールはすぐに変わるので、公式ページと見比べてください。

第12章 · 初級 · AIツールを使う

シェルと基本コマンド: AIツールが動く場所

目標

の基本コマンド10個(pwd、ls、cd、mkdir、cat、cp、mv、rm、clear、exit)を使えるようになります。プロジェクトフォルダでツールを起動・終了し、どのコマンドが危険かがわかるようになります。

Codex、Claude Code、Antigravity 、そしてほとんどの開発ツールはターミナルで動きます。ターミナルは、というにコマンドを入力するウィンドウです。基本の言葉はこれです。

  • pwd — 今どこにいる?
  • ls — ここに何がある?
  • cd — そこへ移動する(cd .. で1つ上に戻る)
  • mkdir — フォルダを作る
  • cat — ファイルを表示する
  • cp — コピーする
  • mv — 移動する、または名前を変える
  • rm — 削除する(ごみ箱はない)
  • clear — 画面をきれいにする
  • exit — セッションを閉じる

AIツールも同じように、プロジェクトフォルダの中で起動します。claude(Claude Code)、codex(Codex)、agy(Antigravity CLI)と入力します。SONUBには、ブラウザの練習用ターミナルがついたシェルのコースがあります。この章では、そのコースの最初のユニットへ案内します。

もう少し詳しく

AIツールの中では、スラッシュで始まるコマンドがツールそのものを操作します:

  • /init — プロジェクトの指示ファイルを書きます。
  • /help — コマンドの一覧を表示します。
  • /clear — 新しい会話を始めます。
  • /exit — ツールを終了します。

シェルのコースのユニット11では、AIツールのインストール方法と、--version での確認方法を紹介しています。インストールコマンドは変わるので、公式ページと見比べましょう。まだ動いているコマンドを止めるには Ctrl+C を押します。AIがコマンドを提案したら、許可する前に読みましょう。rm はごみ箱も通さず、すぐにファイルを消してしまいます。rm -rf は、たずねることもなくフォルダの中身をすべて消します。

シェルコマンドコースで練習する

この章の進み具合はそのコースに記録されます。

ターミナルで入力するコマンド
pwd                 # where am I?
ls                  # what is here?
mkdir ai-course     # make a folder
cd ai-course        # go into it (cd .. goes back up)
cat notes.txt       # show a file
cp notes.txt copy.txt
mv copy.txt old.txt # move or rename
rm old.txt          # delete for good (no recycle bin)
clear               # clean the screen

claude              # start an AI agent in this folder (or: codex, agy)
/init               # inside the agent: write the project instruction file
/help               # list the agent's commands
/exit               # leave the agent

これらはこのページではなく、自分のパソコンやサーバーのターミナルで実行します。実行する前に1行ずつ読みましょう。

自分の言葉で説明

ai-course というフォルダに入り、中に何があるかを見て、今いる場所を確かめるには、どの3つのコマンドを使いますか?

説明と比べる

入るには cd ai-course、中身を一覧表示するには ls、今いる場所を表示するには pwd を使います。

授業の進め方

この章を授業で進める方法です。生徒が読んでもかまいません。

授業の流れ

AIツールにとってターミナルが大切な理由(5分) → pwd、ls、cd、mkdirをその場で見て回る(10分) → 生徒がSONUBのシェルでユニット1と2に取り組む(25分) → ユニット11のインストール確認(10分)。

画面で見せること

  1. SONUBのシェルのコースを開き、練習用ターミナルで pwd、ls、mkdir ai-course、cd ai-course を実行しましょう。
  2. わざと間違ったコマンドを入力し、エラーメッセージをみんなで声に出して読みましょう。
  3. ユニット11を見せましょう。Claude CodeとCodexのインストールコマンドと、--versionでインストールを確認する方法です。

生徒の活動

  1. シェルのユニット1(ターミナルに出会う)とユニット2(ファイルとフォルダ)を終えましょう。
  2. 自分のパソコンでターミナルを開き、コマンドラインで ai-course フォルダを作りましょう。

達成の目安

ユニット1と2を終え、助けなしで ai-course フォルダに移動できれば達成です。

生徒がつまずいたら

  • Windowsでは見た目が違うとき: シェルのコースの説明どおりにPowerShellかWSLを使うか、SONUBのターミナルで練習を続けましょう。
  • インストール直後に「command not found」と出るとき: ターミナルを閉じて開き直し、ユニット11のPATHの部分を確認しましょう。

クラスへの問いかけ

  • pwd、ls、cdは、それぞれ何を教えてくれたり、何を変えたりしますか?
  • AIエージェントにコマンドを実行させる前に、なぜそのコマンドを読むべきなのでしょうか?
出典と参考資料
第13章 · 中級 · 開発の基本

GitとGitHub: バージョンを保存して一緒に作業する

目標

ですべての変更を保存し、による編集を確認して元に戻せるようにします。また、でプロジェクトを共有し、プルリクエストを作ってレビューできるようになります。

Gitはと呼ばれるプロジェクトのスナップショットを記録するので、何が変わったかを見たり、前の状態に戻ったりできます。だからAIにとっての安全ネットになります。エージェントに作業させる前にコミットし、終わったら git で変更を確認して、残すか元に戻すかを決めましょう。

GitHubは、Gitのプロジェクトをオンラインで保管するWebサイトです。そこでは次のことをします:

  • を作る
  • コミットをプッシュする
  • プルリクエストを作る — 変更のまとまりを取り込むための提案で、ほかの人が読んで、コメントし、承認できる

SONUBのGitコースはコマンドを一歩ずつ教えてくれます。この章ではGitHubの側を加えます。

やさしく理解しよう

こんなふうに考えてみよう
Git はテレビゲームのセーブポイントのようなものです。コミットひとつひとつが、プロジェクト全体のスナップショットを持ったセーブポイントです。だから何かがうまくいかなくても、最後のうまくいっていた地点にもどれます。GitHub は、セーブポイントのコピーをオンラインで預かる雲の上の棚のようなものです。友だちがそれを見て、変更を提案することもできます。
例

エージェントに「ダークモードを追加して」とたのむ前に、コミットします。エージェントが終わったら git diff を実行して、変わった行をすべて見ます。よさそうならもう一度コミットします。ページがこわれていたら、git restore でセーブポイントにもどれます。

よくある間違い
エージェントに長い時間作業させて、一度もコミットしないこと。そうすると、もどれるよいセーブポイントがなく、ひとつの大きなまちがいが、よい変更とまざってしまいます。
くねくねした道に、光るチェックポイントの旗が立っています。旗の上にはそれぞれ小さなスナップショットのカードがあり、点線の矢印が前の旗へもどっていきます。上の雲がカードのコピーを預かっていて、わき道にいるもう一人のキャラクターが、合流しようと握手の手を差し出しています。
コミットひとつひとつが、もどれるセーブポイントです。GitHub はそのコピーをオンラインで預かり、 はわき道を本道に合流させてほしいとお願いするものです。
もう少し詳しく

GitHubでは、イシューで作業を説明し、でメインのコードを乱さずに作業し、プルリクエストでレビューします。個人的な作業が入ったリポジトリは非公開にし、やキーは決してコミットしないでください。一度プッシュしてしまったら、もう漏れたものと考えてキーを取り替えましょう。CodexやClaude Codeもプルリクエストを作れますが、取り込む前には人がdiffを読むべきです。

自分の言葉で説明

AIエージェントがファイルを5つ変更したら、何かが壊れました。変更を確認して元に戻すには、どのGitコマンドが役に立ちますか?

説明と比べる

git status と git diff で何が変わったかを見ます。まだコミットしていない変更は git restore <file> で元に戻し、コミット済みなら git revert でそのコミットを取り消します。

自分で記録する欄です。ここで採点はしません。

この章を理解したものとして記録しますか?

まだ取り消せないので、本当に理解できたときだけ記録してください。

理解したものとして記録しました

自分で記録する欄です。ここで採点はしません。

授業の進め方

この章を授業で進める方法です。生徒が読んでもかまいません。

授業の流れ

AIと使うときにバージョン管理が大切な理由(5分) → 画面でコミット、diff、元に戻す操作(10分) → GitHub: リポジトリを作り、プッシュし、プルリクエストを作ってレビューする(15分) → 生徒の練習(20分)。

画面で見せること

  1. プロジェクトフォルダで git init、git add、git commit -m "start" を実行し、1行変えてから git diff で何が変わったかを正確に見せましょう。
  2. GitHubにリポジトリを作り、プロジェクトをプッシュして、ブランチからプルリクエストを作りましょう。
  3. 変更された1行にレビューコメントを残し、承認するか変更を依頼しましょう。

生徒の活動

  1. Gitコースのステップ1–5に取り組み(またはもう知っていることを見せ)、ai-course フォルダで3回コミットしましょう。
  2. フォルダを新しいGitHubリポジトリにプッシュし、ファイルを1つだけ変えるプルリクエストを1つ作りましょう。

達成の目安

生徒のGitHubリポジトリにコミットが3つ以上あり、説明つきのプルリクエストが1つあれば達成です。

生徒がつまずいたら

  • 認証のせいでプッシュが拒否されるとき: GitHub CLI(gh auth login)か個人用アクセストークンでサインインしましょう。トークンは決してチャットに入力しないでください。
  • 秘密の値をうっかりコミットしたとき: すぐにそのキーを無効にして新しいキーに取り替え、それからコードから消しましょう。ファイルを消すだけでは足りません。

クラスへの問いかけ

  • AIエージェントにプロジェクトを変更させる前に、なぜコミットするのでしょうか?
  • プルリクエストがあると、ほかの人は何ができるでしょうか?
出典と参考資料
第14章 · 中級 · 開発の基本

PythonとNumPy: モデルを作るための道具

目標

小さなを書いて実行し、このコースのすべてのの部品となるNumPy配列を使えるようになります。

Pythonは短く書けて強力ながそろっているので、でいちばんよく使われる言語です。SONUBのPythonコースでは、出力、変数、リスト、条件、繰り返し、関数を、ブラウザ上で自動採点つきで学べます。先にそのコースを終えるか、それらの考え方を知っているか確かめておきましょう。

ただしモデルはたくさんの数を一度に扱うので、NumPyを使います。NumPy配列には数が格子状に入り、a @ b のような1行で全体をかけ算できます。これがまさにのしていることです。

やさしく理解しよう

こんなふうに考えてみよう
ふつうの Python は、電卓のように数をひとつずつ計算します。NumPy は、数がならんだマス目全体を一度に計算します。二つの表を一回でかけ算できる表計算ソフトのようなものです。モデルは巨大な数のマス目でできているので、モデルを十分に速く動かすのがこの道具です。
例

Python のループで百万個の数に 1 を足すと、小さな手順が百万回になります。NumPy の配列 a なら、a + 1 と書くだけで一行で全部できます。a @ b と書けば、二つの行列をまるごとかけ算します。

よくある間違い
Python の基本コースを飛ばして NumPy から始めること。リスト・ループ・関数を知らないと、NumPy のはとても読みにくくなります。
左側では、つかれたキャラクターが電卓を押していて、ひとつずつのブロックが長い列を作って待っています。右側では、機械が大きな色つきのマス目を二つ、一回でかけ算していて、キラキラと結果のマス目があらわれます。
ループは数をひとつずつ計算します。NumPy はマス目全体を一度に計算します。だからモデルは NumPy を使うのです。
もう少し詳しく

このコースの残りを支えるNumPyの考え方は3つです。

  • shape — 行と列がいくつあるか
  • ブロードキャスト — 演算が配列全体に自動で広げて適用されること
  • 化された計算 — Pythonのループを書かずに、配列全体をまとめて計算すること

この章の例はブラウザで動きます。自分のパソコンでは、Python 3をインストールし、python3 -m venv .venv で仮想環境を作り、source .venv/bin/activate(Windows では .venv\Scripts\activate)でそれをオンにしてから、pip install numpy でNumPyをインストールしましょう。

コード例 ブラウザ上でPythonとNumPyを使って動きます。コードを変えて、もう一度実行してみましょう。

自分の言葉で説明

ある配列のshapeは (4, 3)、もう1つは (3, 2) です。2つの積のshapeは何で、それはなぜでしょうか?

説明と比べる

(4, 2) です。行列のかけ算では内側のサイズ(3と3)が一致している必要があり、結果には外側のサイズである4と2が残ります。

自分で記録する欄です。ここで採点はしません。

この章を理解したものとして記録しますか?

まだ取り消せないので、本当に理解できたときだけ記録してください。

理解したものとして記録しました

自分で記録する欄です。ここで採点はしません。

授業の進め方

この章を授業で進める方法です。生徒が読んでもかまいません。

授業の流れ

Pythonの基本を確認する(10分) → 画面でNumPy配列、shape、@を見る(10分) → 生徒が例を実行して書き換える(20分) → softmaxを一緒に説明する(10分)。

画面で見せること

  1. 例を実行し、shape、ブロードキャストの結果、行列の積を指し示しましょう。
  2. softmaxの行のスコアを変えても、確率の合計はやはり1になることを見せましょう。
  3. 同じ足し算をPythonのループとNumPyの1行で書いて比べましょう。

生徒の活動

  1. SONUBのPythonコースを関数のところまで終えるか、小さな関数を書けることを講師に見せましょう。
  2. 例を書き換えましょう。3×3の配列を作って3×1の配列とかけ算し、実行する前に結果のshapeを予想します。

達成の目安

行列の積のshapeを正しく予想し、softmaxが何を返すかを説明できれば達成です。

生徒がつまずいたら

  • shapeについてのValueErrorが出るとき: 両方の配列の .shape を表示しましょう。a @ b では内側のサイズが一致している必要があります。
  • 自分のパソコンで「No module named numpy」と出るとき: 仮想環境を有効にして pip install numpy を実行しましょう。

クラスへの問いかけ

  • Pythonのループではなく、なぜNumPyを使うのでしょうか?
  • softmaxが返す数をすべて足すと、いつもいくつになるでしょうか?
出典と参考資料
第15章 · 中級 · 開発の基本

Python:実行・観察・変更

目標

で変数・条件分岐・関数を使います。

はNumPyやscikit-learnなど数値計算・の道具が豊富で、開発に広く使われます。SONUBはPyodideでブラウザー内のPythonを実行します。実行環境やパッケージの読み込みには時間がかかります。挨拶の表示は動作確認で、AIのではありません。

やさしく理解しよう

こんなふうに考えてみよう
を実行するのは、理科の実験に似ています。何が起きるか予想して、実行して、結果を見て、一度にひとつだけ変えます。表示されたメッセージは実験の結果です。あなたがまちがえたというしるしではありません。
例

実行ボタンを押す前に、print(2 + 3 * 4) が何を表示するか予想しましょう。それから実行してくらべます。20 だと思ったなら、(2 + 3) * 4 に変えてもう一度実行し、最初の答えがなぜ 14 なのかたしかめましょう。

よくある間違い
エラーが出たときに、たくさんの行を一度に変えること。変えるのはひとつだけにして、もう一度実行します。は最後の行から読みましょう。たいていそこに問題が書いてあります。
もう少し詳しく

下の例は人が書いた規則を適用します。点数や基準を変え、実行前に結果を予想しましょう。関数のreturnは値を返し、printは表示します。基準と等しい点数など境界値も試します。この規則にはデータからの学習はありません。

コード例 ブラウザ上でPythonとNumPyを使って動きます。コードを変えて、もう一度実行してみましょう。

自分の言葉で説明

開発者がif条件を書き換えると、データから学習したことになりますか。

説明と比べる

いいえ。規則の編集はプログラミングです。学習にはデータからモデルの動作を導く処理が必要です。

自分で記録する欄です。ここで採点はしません。

この章を理解したものとして記録しますか?

まだ取り消せないので、本当に理解できたときだけ記録してください。

理解したものとして記録しました

自分で記録する欄です。ここで採点はしません。

授業の進め方

この章を授業で進める方法です。生徒が読んでもかまいません。

授業の流れ

例を実行する(10分) → 条件を1つ変えて出力を予想する(10分) → 生徒が小さな関数を書く(20分) → セルフチェック(10分)。

画面で見せること

  1. 章の例のコードを実行し、else の部分が実行されるように質問を変えてみましょう。
  2. if の条件を変えるのはプログラミングであって、データから学ぶことではないと指摘しましょう。

生徒の活動

  1. if/elif/else で3つの違う質問に答える関数を書き、質問ごとに試しましょう。

達成の目安

コードを実行する前に、どの分岐が実行されるかを予想できれば達成です。

生徒がつまずいたら

  • IndentationError: if と else の中の行を半角スペース4つでそろえましょう。

クラスへの問いかけ

  • 人が書き換えるプログラムと、自分で学ぶモデルは何が違うのでしょうか?
出典と参考資料
第16章 · 中級 · 作って公開する

バイブコーディング: AIと話しながらホームページを作る

目標

に説明し、変更を1つずつ確認し、プロジェクトをに保存しながら、1ページのホームページを作れるようになります。

とは、ほしいものを主にふつうの言葉で説明し、コードはAIに書かせてソフトウェアを作るやり方です。あなたは方向を決め、試し、判断します。

小さく始めましょう。フォルダ1つ、Gitの1つ、そして短い説明書です。説明書には次のことを書きます:

  • サイトを誰が見るか
  • どんなセクションがあるか
  • スタイル
  • ルール — 素のと、スマホでも動く、外部なし

エージェントに最初のバージョンを頼み、ブラウザで index.html を開き、1回に1つずつ改善していきます。「ヘッダーを小さくして」「連絡先のセクションを追加して」「スマホでのレイアウトを直して」のようにです。

やさしく理解しよう

こんなふうに考えてみよう
バイブコーディングは、あなたが設計士になって大工さんといっしょに家を建てるようなものです。ほしい家をふだんの言葉で説明すると、大工さん(AI)が建ててくれます。あなたは中を歩いて、おかしいところを指さし、直してほしいとたのみます。何を建てるかを決め、安全かどうかをたしかめるのは、やはりあなたです。
例

「読書クラブ用の1ページのサイトを作って。タイトル、写真のスペース、次の集まりの日付、参加ボタン。ふつうの HTML と CSS で、スマホでも使えるようにして。」そのあと index.html を開き、せまいウィンドウで試してから、こうたのみます。「ボタンを大きくして、日付を写真の上に置いて。」

よくある間違い
ページを開かずに、変更を全部受け入れること。たのむたびにでたしかめ、ちゃんと動くバージョンができたらしましょう。
リラックスした人が、ふきだしの中で家・パレット・スマホを説明しています。ロボットがノートパソコンの上で、色つきのブロックでページを組み立てます。その人は虫めがねを持ってスマホとノートパソコンでたしかめ、付せんを返します。円い矢印が、それぞれの手順をつないでいます。
説明する → AI が作る → ブラウザーでたしかめる → 意見を伝える。小さなひと回りをくり返し、動くバージョンができるたびに保存します。
もう少し詳しく

開発者はやはりあなたです。変更を受け入れる前に1つずつ読み、うまく動いた段階ごとにGitにコミットして戻れるようにし、実際のスマホの幅で試しましょう。エージェントにパスワードやをページに入れさせてはいけません。ホームページは公開されていて、中身はすべて誰でも読めます。ページがちゃんと動いたら、公開の準備ができました。次の章でCloudflareを使ってインターネットに出します。

ターミナルで入力するコマンド
mkdir homepage && cd homepage
git init                       # save points from the first minute
claude                         # or: codex, agy

# then, inside the agent:
# "Make a one-page homepage in index.html for <who it is for>.
#  Sections: <...>. Style: <...>. Plain HTML and CSS, works on a phone,
#  no outside libraries. Show me the plan before you write."

git add index.html
git commit -m "first working homepage"
git restore index.html         # throw away a change you do not like

これらはこのページではなく、自分のパソコンやサーバーのターミナルで実行します。実行する前に1行ずつ読みましょう。

自分の言葉で説明

バイブコーディングで、変更のたびにくり返す4つの段階を書きましょう。

説明と比べる

変更を1つ説明する → エージェントに作らせる → ブラウザで確かめる(スマホの幅でも) → うまくいけばGitにコミットし、だめなら元に戻す。頼む、確かめる、保存する、が入っていれば正解です。

自分で記録する欄です。ここで採点はしません。

この章を理解したものとして記録しますか?

まだ取り消せないので、本当に理解できたときだけ記録してください。

理解したものとして記録しました

自分で記録する欄です。ここで採点はしません。

授業の進め方

この章を授業で進める方法です。生徒が読んでもかまいません。

授業の流れ

みんなで説明書を書く(10分) → エージェントが最初のバージョンを作る(10分) → 「見る、頼む、確かめる、コミットする」を3回(25分) → ページを見せ合う(5分)。

画面で見せること

  1. 空の homepage フォルダで git init を実行し、エージェントを起動して、1ページのサイトのための6つの部分のプロンプトを貼り付けましょう。
  2. index.html を開き、ブラウザをスマホの幅に縮めて、崩れたところを直すようエージェントに頼みましょう。
  3. コミットしてから、わざとまずい変更を頼み、git restore で最後のコミットに戻しましょう。

生徒の活動

  1. セクションが3つ以上ある、自分だけの1ページのホームページ(クラブ、趣味、ポートフォリオ)を作りましょう。
  2. うまく動いた変更1つにつきコミット1つで、わかりやすいメッセージをつけて3回以上コミットしましょう。

達成の目安

ページがブラウザで開き、スマホの幅でも読みやすく、秘密の情報が入っておらず、小さな段階ごとのGitの履歴があれば達成です。

生徒がつまずいたら

  • エージェントが毎回すべてを書き直すとき: 小さな変更を1つだけ頼み、ファイルとセクションの名前を伝えましょう。
  • スマホでページが崩れて見えるとき: モバイルファーストのレイアウトを頼み、390 px の幅で確認しましょう。

クラスへの問いかけ

  • AIがコードを書くのに、なぜうまく動いた段階ごとにコミットするのでしょうか?
  • 公開するホームページに、なぜ絶対にAPIキーを入れてはいけないのでしょうか?
出典と参考資料
第17章 · 中級 · 作って公開する

Webに公開する: ホームページをCloudflareにデプロイする

目標

Wranglerかを使って静的なホームページをCloudflare Pagesで公開し、更新し、公開したあと何が見えるようになるのかがわかるようになります。

Cloudflare Pagesは、、、、画像でできた静的なサイトを、Cloudflareの世界中のネットワークで公開してくれます。無料プランがあり、your-project.pages.dev のようなアドレスがもらえます。方法は2つあります。

  • Direct Upload — をインストールし、npx wrangler login を実行します(Wrangler は Cloudflare のツールで、npx はそれをインストールせずに実行します)。npx wrangler pages project create my-homepage でプロジェクトを作り、それから index.html があるフォルダで npx wrangler pages ./ --project-name=my-homepage を実行します。
  • 連携 — プロジェクトをGitHubにプッシュし、Cloudflareのダッシュボードでそのをつなぎます。そのあとは、プッシュするたびに新しいバージョンが自動で公開されます。

最初にどちらかを選びましょう。Direct Uploadのプロジェクトは、あとからGit連携に切り替えられません。

やさしく理解しよう

こんなふうに考えてみよう
デプロイは、リビングにあったお店を、人通りの多い通りに引っこすようなものです。ノートパソコンの上では、ページを見られるのはあなただけです。デプロイすると、ファイルが世界中のに置かれ、アドレスを知っている人ならだれでも開けるようになります。
例

ホームページのフォルダーには index.html、style.css、写真が一枚入っています。フォルダーをアップロードすると、your-project.pages.dev のようなアドレスがもらえるので、スマホで開いてみます。次にページを直してもう一度デプロイすると、みんなに新しいバージョンが見えます。

よくある間違い
中に やキーが入ったまま、プロジェクトフォルダーをまるごとアップロードすること。静的サイトにデプロイしたものは、だれでもダウンロードできます。先にフォルダーの中身をたしかめましょう。
ページのファイルが入ったフォルダーが、ノートパソコンから雲へ上がっていきます。光る地球のネットワークから、同じカラフルなページが、世界中の人が持つスマホ・タブレット・ノートパソコンに届きます。
デプロイすると、ファイルが世界中のサーバーにコピーされます。だから、ひとつのアドレスで、だれにでも同じページが開きます。
もう少し詳しく

公開したものはすべて誰でも見られるので、フォルダにキー、個人的なメモ、.env ファイルが入っていないか確かめましょう。

デプロイのたびにそれ専用のプレビュー用アドレスができ、本番のアドレスはいちばん新しいデプロイを表示します。だから、共有する前に試せます。myname.com のような自分のは、あとでダッシュボードから追加できます。

にデプロイのコマンドを実行させてもかまいませんが、先にコマンドを読み、Cloudflareのは決してチャットに貼り付けないでください。

ターミナルで入力するコマンド
# Direct Upload — run in the folder that has index.html
npx wrangler login
npx wrangler pages project create my-homepage
npx wrangler pages deploy ./ --project-name=my-homepage

# -> https://my-homepage.pages.dev
# Choose at the start: a Direct Upload project cannot switch to Git integration later.

これらはこのページではなく、自分のパソコンやサーバーのターミナルで実行します。実行する前に1行ずつ読みましょう。

自分の言葉で説明

自分のホームページがパソコンからインターネットに出るまでを、3つの段階で説明しましょう。

説明と比べる

1. WranglerでCloudflareにログインする(またはGitHubをつなぐ)。2. index.html が入ったフォルダをPagesのプロジェクトとしてアップロードする。3. Cloudflareが自分のネットワークから pages.dev のアドレスで配信し、新しくアップロードするたびに公開中のバージョンが置き換わる。ログイン、アップロード、公開アドレスが入っていれば正解です。

自分で記録する欄です。ここで採点はしません。

この章を理解したものとして記録しますか?

まだ取り消せないので、本当に理解できたときだけ記録してください。

理解したものとして記録しました

自分で記録する欄です。ここで採点はしません。

授業の進め方

この章を授業で進める方法です。生徒が読んでもかまいません。

授業の流れ

ホスティングとは何か、静的なサイトはなぜかんたんなのか(5分) → みんなでWranglerを使ってデプロイする(15分) → ページを変えてもう一度デプロイする(10分) → 2つ目の方法としてGitHubをつなぐ(10分)。

画面で見せること

  1. npx wrangler login と npx wrangler pages deploy ./ --project-name=demo-homepage を実行し、pages.dev のアドレスを開きましょう。
  2. 1行変えてもう一度デプロイし、ダッシュボードで新しいデプロイとそのプレビュー用アドレスを見せましょう。
  3. .env を除外する .gitignore を見せ、静的なサイトになぜ秘密を入れてはいけないのかを説明しましょう。

生徒の活動

  1. バイブコーディングで作ったホームページを公開し、pages.dev のアドレスを共有しましょう。
  2. 1か所改善してもう一度公開し、変更が反映されたことを確かめましょう。

達成の目安

ホームページが pages.dev のアドレスで開け、更新を1回公開していて、何が公開されるのかを説明できれば達成です。

生徒がつまずいたら

  • 「npx: command not found」と出るとき: 先にNode.js(LTS)をインストールし、新しいターミナルを開きましょう。
  • ページに404と表示されるとき: その上のフォルダではなく、index.html が入っているフォルダをデプロイしましょう。

クラスへの問いかけ

  • Direct UploadとGit連携は、どう違うでしょうか?
  • 静的なサイトは無料で公開しても安全なのに、秘密を置くのは安全でないのはなぜでしょうか?
出典と参考資料

製品情報は2026-10-15に確認しました。AIツールはすぐに変わるので、公式ページと見比べてください。

第18章 · 中級 · 作って公開する

Google Play: アプリをAndroidのスマホに届ける

目標

AndroidアプリをGoogle Playで公開する手順(デベロッパーアカウント、App Bundle、ストアの掲載情報、テスト、審査)がわかるようになります。新しい個人アカウントのテストのルールもわかるようになります。

Google Playで公開するには、3つのものが必要です。

  • Play Consoleのデベロッパーアカウント — 1回だけの登録料と本人確認
  • Android App Bundle(.aab)として作ったアプリ — アップロード鍵で署名したもの
  • ストアの掲載情報 — 名前、説明、スクリーンショット、アイコン、プライバシーポリシーのアドレス、コンテンツとデータセーフティについての回答

でアプリを作るなら(たとえばFlutterで)、リリース用を作るよう頼みましょう。署名鍵のファイルとそのパスワードは、にもどのチャットにも入れないでください。

やさしく理解しよう

こんなふうに考えてみよう
アプリをストアに出すのは、自分の商品を大きなお店の棚にならべてもらうようなものです。お店は3つのことをたしかめます。その商品が本当にあなたのものか(署名)、箱に中身がちゃんと書いてあるか(スクリーンショット・説明・アイコン)、データについて正直か(プライバシーポリシー)です。最後に審査の人が見ます。
例

エージェントに、アップロード鍵で署名したリリースビルドをたのみます。それから Play Console に行き、ストアの掲載情報を書き、データセーフティの質問に答えて、まず内部テストにビルドを送ります。新しい個人アカウントでは、12 人のテスターで 14 日間のクローズドテストをしたあとで、はじめて本番を申請できます。

よくある間違い
署名の鍵をなくしたり、Git にしたりすること。鍵ファイルとそのパスワードはプロジェクトの外に置き、安全な場所にバックアップしておきましょう。
アプリの箱が、四つのやさしい門を通っていきます。鍵と封ろうの門、写真のフレームとカメラの門、書類をもった盾の門、虫めがねと緑のチェックマークをもった審査の人の門です。そして明るいお店の棚とスマホに届きます。
署名・ストアの掲載情報・プライバシー・審査。どのアプリも、人のスマホに届く前にこの四つの門を通ります。
もう少し詳しく

リリースはトラックを通っていきます。内部テスト、クローズドテスト、オープンテスト、製品版です。新しい個人のデベロッパーアカウントは、製品版へのアクセスを申請する前に、まず12人以上のテスターが14日間続けて参加し続けるクローズドテストを行わなければなりません。だから、テスターは早めに計画しましょう。リリースはすべてGoogleが審査し、更新のたびにバージョンを上げる必要があります。ルールや画面は変わるので、この章と合わせて公式のPlay Consoleヘルプに従ってください。

ターミナルで入力するコマンド
# Flutter: build a signed Android App Bundle for Google Play
flutter build appbundle
# -> build/app/outputs/bundle/release/app-release.aab

# Keep the upload key and its passwords out of Git:
#   android/key.properties
#   *.jks

これらはこのページではなく、自分のパソコンやサーバーのターミナルで実行します。実行する前に1行ずつ読みましょう。

自分の言葉で説明

次を順番に並べましょう: 製品版、クローズドテスト、リリース用のバンドル、ストアの掲載情報。

説明と比べる

リリース用のバンドル → ストアの掲載情報 → クローズドテスト(新しい個人アカウントは12人のテスターで14日間) → 製品版。バンドルと掲載情報はどちらを先に用意してもかまいませんが、テストはいつも製品版より先です。

自分で記録する欄です。ここで採点はしません。

この章を理解したものとして記録しますか?

まだ取り消せないので、本当に理解できたときだけ記録してください。

理解したものとして記録しました

自分で記録する欄です。ここで採点はしません。

授業の進め方

この章を授業で進める方法です。生徒が読んでもかまいません。

授業の流れ

アプリからストアまでの全体像(10分) → みんなでリリース用のバンドルを作る(15分) → Play Consoleの掲載情報を見て回る(15分) → 12人のテスターによるクローズドテストを計画する(10分)。

画面で見せること

  1. リリース用ビルドのコマンド(Flutterなら flutter build appbundle)と、.aab ファイルができる場所を見せましょう。
  2. Play Consoleを見て回りましょう。アプリの作成、ストアの掲載情報、データセーフティのフォーム、テストのトラックです。
  3. アップロード鍵をどこに保管するか、そしてなぜ決してコミットしたり共有したりしてはいけないのかを見せましょう。

生徒の活動

  1. 自分のアプリのストアの掲載情報を書きましょう。名前、簡単な説明と詳しい説明、撮るスクリーンショットのリストです。
  2. テスターの計画を立てましょう。12人、どうやって招待するか、14日間どうやってテストに残ってもらうかを書きます。

達成の目安

リリース用のバンドルから製品版までの手順を挙げられ、トラックとクローズドテストのルールを説明でき、掲載情報の下書きとテスターの計画があれば達成です。

生徒がつまずいたら

  • デベロッパーアカウントがない、または年齢が足りないとき: 掲載情報とテスターの計画で練習しましょう。アカウントは保護者や学校が持つこともできます。
  • バージョンのせいでアップロードが拒否されるとき: バージョンコードを上げましょう(Flutterなら pubspec.yaml の + のあとの数字)。

クラスへの問いかけ

  • 新しい個人アカウントは、なぜ製品版の前にクローズドテストをしなければならないのでしょうか?
  • アップロード鍵をなくすとどうなり、どうやって守ればよいでしょうか?
出典と参考資料

製品情報は2026-10-15に確認しました。AIツールはすぐに変わるので、公式ページと見比べてください。

第19章 · 中級 · 作って公開する

App Store: アプリをiPhoneに届ける

目標

iPhoneアプリを公開する手順(Apple Developer 、署名、App Store Connect、TestFlight、App Review)がわかるようになります。いちばんよくあるリジェクトの理由もわかるようになります。

App Storeで公開するには、3つのものが必要です。

  • Xcodeが入ったMac
  • Apple Developer Programのメンバーシップ(年会費)
  • App Store Connectにあるアプリの登録情報 — バンドルID、名前、スクリーンショット、プライバシーポリシーのアドレス、アプリが集めるデータについてのプライバシー情報

Xcodeで(または flutter build ipa のようなツールで)アプリをアーカイブしてアップロードします。自動署名をオンにしておけば、署名のとプロファイルはXcodeが代わりに扱ってくれます。

やさしく理解しよう

こんなふうに考えてみよう
App Store も Google Play と同じ考え方ですが、Apple ならではの門があります。Xcode が入った Mac、年ごとの開発者メンバーシップ、アプリの名前になるバンドル ID、そして App Store Connect のアプリ記録です。自分のチェックリストを持った二つめのお店だと考えましょう。
例

Xcode で(またはビルドツールで)アプリをアーカイブしてアップロードし、TestFlight で何人かの友だちを招待します。もらった意見を直したら、プライバシーの詳細とスクリーンショットを入れて、そのバージョンを審査に出します。

よくある間違い
仮のスクリーンショット、動かないログイン、プライバシーポリシーなしで提出すること。審査の人は、説明と合わないアプリをリジェクトします。送るビルドそのものをテストしましょう。
アプリの箱が、四つのやさしい門を通っていきます。鍵と封ろうの門、写真のフレームとカメラの門、書類をもった盾の門、虫めがねと緑のチェックマークをもった審査の人の門です。そして明るいお店の棚とスマホに届きます。
Google Play と同じ四つの門を、Apple の道具で通ります。Xcode の署名、App Store Connect の掲載情報、プライバシーの詳細、そして App Review です。
もう少し詳しく

アップロードしたビルドはどれも、先にTestFlightに出せます。だから、一般の人より先にテスターがインストールできます。リリースのために提出すると、AppleのApp Reviewがガイドラインに照らしてアプリを確認します。よくあるリジェクトの理由はこうです。

  • アプリがクラッシュする、または仮の内容が入っている。
  • プライバシー情報が抜けている。
  • ログインがあるのに、審査担当者用のテストアカウントがない。
  • 他社のログインがあるのに、Sign in with Appleのような同じくらいプライバシーに配慮した選択肢がない。
  • ウェブサイトをアプリで包んだだけで、できることがほとんどない(最低限の機能のルール、ガイドライン4.2)。

リジェクトのメッセージを読み、まさにそこを直して、もう一度提出しましょう。

ターミナルで入力するコマンド
# Flutter on a Mac with Xcode: build the iOS archive for App Store Connect
flutter build ipa
# -> build/ios/archive/Runner.xcarchive  (open it in Xcode)
# -> Xcode: Distribute App -> App Store Connect -> TestFlight first
# A website only wrapped in an app can be rejected (App Review Guidelines 4.2 — minimum functionality)

これらはこのページではなく、自分のパソコンやサーバーのターミナルで実行します。実行する前に1行ずつ読みましょう。

自分の言葉で説明

「起動時にアプリがクラッシュした」という理由でアプリがリジェクトされました。どうしますか?

説明と比べる

順番はこうです。

  • 同じiOSのバージョンの実機のiPhoneかTestFlightで、同じことが起きるか試します。
  • クラッシュを直し、ビルド番号を上げます。
  • 新しいビルドをアップロードします。
  • App Store Connectで、何を直したかを返信します。

直す、アップロードし直す、返信する、が大事な手順です。

自分で記録する欄です。ここで採点はしません。

この章を理解したものとして記録しますか?

まだ取り消せないので、本当に理解できたときだけ記録してください。

理解したものとして記録しました

自分で記録する欄です。ここで採点はしません。

授業の進め方

この章を授業で進める方法です。生徒が読んでもかまいません。

授業の流れ

Appleの流れ: アカウント → ビルド → TestFlight → 審査(10分) → みんなでアーカイブしてアップロードする(15分) → App Store Connectの掲載情報(15分) → リジェクトの理由と返答のしかた(10分)。

画面で見せること

  1. Xcodeで Product → Archive を選び、続けて Distribute App → App Store Connect を選びましょう。
  2. App Store ConnectでTestFlightのタブを見せ、内部テスターを追加して、スマホにビルドをインストールしましょう。
  3. 本物らしいリジェクトのメッセージをみんなで読み、直す点と返事を書きましょう。

生徒の活動

  1. 掲載情報の下書きを埋めましょう。名前、サブタイトル、説明、キーワード、プライバシーポリシーのアドレス、審査担当者用のデモアカウントです。
  2. よくある5つのリジェクトの理由に照らして自分のアプリを確認し、直すことを書き留めましょう。

達成の目安

アーカイブ、アップロード、TestFlight、審査を順番に説明でき、チェックリストがよくあるリジェクトの理由をカバーしていれば達成です。

生徒がつまずいたら

  • Macやメンバーシップがないとき: 掲載情報とチェックリストで練習し、アプリはAndroidかWebで試しましょう。
  • 署名のエラーでアップロードに失敗するとき: Xcodeで自動署名をオンにし、自分のチームを選びましょう。

クラスへの問いかけ

  • 審査に提出する前に、なぜTestFlightで試すのでしょうか?
  • アプリにログインがあると、Appleはなぜデモアカウントを求めるのでしょうか?
出典と参考資料

製品情報は2026-10-15に確認しました。AIツールはすぐに変わるので、公式ページと見比べてください。

第20章 · 上級 · AIエージェント

エージェントとサブエージェント: AIが一歩ずつ働くしくみ

目標

のループ(考える、行動する、観察する、くり返す)を説明できるようになります。エージェントが持つツールと権限、そしてメインのエージェントがいつに仕事を渡すのかも説明できるようになります。

エージェントは、ループで働くです。作業が終わるか、あなたの助けが必要になるまで、次のことをくり返します:

  • 目標を読みます。
  • 次の一歩を決めます。
  • ツールを使います(ファイルを読む、コマンドを実行する、Webを検索する)。
  • 結果を見て、また決めます。

エージェントの力はツールから、限界は権限から来ます。権限とは、確認せずに何を読み、変え、実行してよいかです。Claude Code、Codex、Antigravity はどれもこの種類のエージェントです。、設定、コマンドは違っても、基本のループは同じです。

やさしく理解しよう

こんなふうに考えてみよう
エージェントは、仕事を進めていく親切なインターン生のようなものです。目標を読み、次の手順を決め、道具を使い、結果を見て、また決めます。権限は家のルールです。インターン生があなたに聞かずに開いたり、変えたり、実行したりしてよいことを決めます。
例

「テストが失敗する理由を見つけて直して。」エージェントはテストファイルを読み、テストを実行し、エラーを見て、を開き、変更して、もう一度テストを実行します。手順ひとつがループのひと回りです。サブエージェントは、一人めのインターン生が作業を続けているあいだに、二人めのインターン生に資料を探しに行ってもらうようなものです。

よくある間違い
初日からすべての権限をあたえること。まずはエージェントに読んで提案させ、コマンドはひとつずつ許可します。権限を広げるのは、自分がわかっている仕事だけにしましょう。
円い矢印のまん中にロボットがいます。矢印には四つの駅があります。目標の旗、計画が書かれた考えごとの雲、道具ベルト、結果を見る目です。ループのまわりには門のついたさくがあり、門のところで人が緑と赤の札を持っています。
目標 → 次の手順を計画 → 道具を使う → 結果を見る → もう一度。エージェントが何をしてよいかは、門のところであなたが決めます。
もう少し詳しく

サブエージェントは、メインのエージェントが仕事の一部を任せるために起動する助っ人です。自分専用の新しいを持っています。だから、たくさんのファイルを読んだり広く検索したりして、結論だけを報告できます。そのおかげで、メインの会話は短いままです。互いに関係のない部分なら、サブエージェントを並行して動かすこともできます。

  • どこにあるか — Claude Codeでは、名前、説明、使ってよいツール、指示を書いたMarkdownファイルです。.claude/agents/(プロジェクト用)か ~/.claude/agents/(自分用)に置きます。
  • どう使うか — 狭い仕事と、必要なツールだけを与えましょう。その報告も、あなたが確かめるべき下書きです。

自分の言葉で説明

あなたのプロジェクトには300のファイルがあり、ログインのコードがどこにあるかを知りたいとします。なぜサブエージェントを使うとよいのでしょうか?

説明と比べる

たくさんのファイルを読むと、コンテキストウィンドウがいっぱいになります。サブエージェントなら自分専用の新しいコンテキストで検索し、「ログインのコードはこの3つのファイルにあります」とだけ返せるので、メインの会話は短く、集中したままです。読み取り専用のサブエージェントは何も変えられないので、安全でもあります。

自分で記録する欄です。ここで採点はしません。

この章を理解したものとして記録しますか?

まだ取り消せないので、本当に理解できたときだけ記録してください。

理解したものとして記録しました

自分で記録する欄です。ここで採点はしません。

授業の進め方

この章を授業で進める方法です。生徒が読んでもかまいません。

授業の流れ

生徒の1人が「エージェント」になってエージェントのループを演じる(10分) → 本物のエージェントのツール呼び出しを見る(10分) → サブエージェントのファイルを書く(20分) → 使うべきでないときについて話し合う(10分)。

画面で見せること

  1. コーディングエージェントに小さな作業を与え、計画、ツール呼び出し、結果、次の判断という各段階を指し示しましょう。
  2. プロジェクト全体からあるものを探すようエージェントに頼み、その検索を読み取り専用のサブエージェントに渡すようすを見せましょう。
  3. .claude/agents/ にあるサブエージェントのファイルを開き、名前、説明、ツール、指示を読みましょう。

生徒の活動

  1. 自分の作業(たとえば「ホームページの壊れたリンクを直す」)について、使うツールをすべて入れてエージェントのループを図にしましょう。
  2. 読み取り専用のレビュー用サブエージェントを書きましょう。いつ使うかの説明、読むことだけに限ったツール、3行のチェックリストを入れます。

達成の目安

ループ、ツールと権限の役割、サブエージェントが自分専用のコンテキストを持つ理由を説明でき、動くサブエージェントのファイルがあれば達成です。

生徒がつまずいたら

  • サブエージェントが一度も使われないとき: いつ使うべきかを、依頼で使われる言葉で、説明にはっきり書きましょう。
  • エージェントが一度に多くのことをやりすぎるとき: 先に計画を出してもらい、一度に1段階ずつ承認しましょう。

クラスへの問いかけ

  • チャットボットの答えとエージェントのループは、どう違うでしょうか?
  • サブエージェントには、なぜメインのエージェントより少ないツールを与えるのでしょうか?
出典と参考資料

製品情報は2026-10-15に確認しました。AIツールはすぐに変わるので、公式ページと見比べてください。

第21章 · 上級 · AIエージェント

Codex: OpenAIのコーディングエージェント

目標

ファイル、期待する動作、確かめ方がはっきりしたの作業をCodexに頼み、変更を残す前にレビューできるようになります。

CodexはOpenAIのコーディングです。(Codex )、コードエディタ、ChatGPTアプリで動きます。プロジェクトを読み、ファイルを編集し、コマンドを実行して自分の作業をテストします。

プロジェクトのいちばん上のフォルダにあるAGENTS.mdファイルの指示に従うので、たとえばテストを実行するコマンドのようなルールを一度書いておけば済みます。Codexは危険な操作の前に承認を求めます。どこまで自分でやってよいかは、読み取りだけから作業フォルダの編集まで、あなたが選べます。

やさしく理解しよう

こんなふうに考えてみよう
Codex は、いろいろな場所で使えるコーディングエージェントです。ターミナル、エディター、ChatGPT アプリで使えます。AGENTS.md は、新しく来たお手伝いさん全員のための冷蔵庫のメモだと考えましょう。家のルールと実行するコマンドを一度書いておけば、毎回読んでもらえます。
例

AGENTS.md に「テストは test で実行する。vendor/ の中のファイルは決して編集しない。」と書きます。それから Codex にたのみます。「会員登録フォームに入力チェックを追加して、テストが通るようにして。」Codex はメモを読んで変更し、終わったと伝える前に npm test を実行します。

よくある間違い
質問をとばしたくて、フルアクセスに切りかえること。質問は、まちがったコマンドが実行される前に見つけるチャンスです。
もう少し詳しく

よいコーディングの依頼は具体的です。何を、どのファイルで変えるのか、変えたあとどう動くべきか、どう確かめるか(テスト、コマンド、の例)を伝えます。大きな作業なら、まず計画を出してもらいましょう。Codexが終わったら、を読み、テストを自分で実行し、理解できたものだけをします。codex exec は対話画面なしで作業を実行するので、スクリプトの中で使うのに便利です。

自分の言葉で説明

「コードをよくして」を、Codexが実行して確かめられる依頼に書き直しましょう。

説明と比べる

たとえば「word_count.py の count_words が句読点と大文字を無視するようにして。関数名はそのままにして。'Hello, hello!' がユニークな単語1つとして数えられるテストを追加して。 -m pytest を実行して結果を見せて。」ファイル、動作、確かめ方が書かれています。

自分で記録する欄です。ここで採点はしません。

この章を理解したものとして記録しますか?

まだ取り消せないので、本当に理解できたときだけ記録してください。

理解したものとして記録しました

自分で記録する欄です。ここで採点はしません。

授業の進め方

この章を授業で進める方法です。生徒が読んでもかまいません。

授業の流れ

コーディングエージェントがすること(5分) → はっきりした依頼でその場で作業する(15分) → 生徒がCodexに自分の小さな作業を頼む(20分) → diffを一緒にレビューする(10分)。

画面で見せること

  1. ai-course フォルダに、ルールを1つ書いたAGENTS.mdを作りましょう。たとえば「変更のたびに python -m pytest を実行すること。」です。
  2. Codexにテストつきの小さなスクリプトを頼み、手順を承認しながら、テストが実行されるところを見せましょう。
  3. git diff を開き、コミットする前に変更されたすべての行を一緒に見ていきましょう。

生徒の活動

  1. ファイル、動作、確かめ方を明示した作業をCodexに頼みましょう。たとえば、文章の単語数を数える関数とそのテストです。
  2. diffをレビューし、テストを自分で実行してから、変更内容を説明するメッセージでコミットしましょう。

達成の目安

生徒のコミットに動くコードとテストが入っていて、変更されたすべての行を説明できれば達成です。

生徒がつまずいたら

  • Codexが頼んだ以上に変更するとき: 止めて git restore で元に戻し、正確なファイル名を挙げてもう一度頼みましょう。
  • サインインやプランの問題があるとき: ChatGPTアカウントでサインインしましょう。自分のプランにCodexが含まれていなければ、デモを見ながらついていき、講師のdiffをレビューする練習をしましょう。

クラスへの問いかけ

  • よいコーディングの依頼には、いつも何が入っているべきでしょうか?
  • テストが通っていても、なぜdiffを読むのでしょうか?
出典と参考資料

製品情報は2026-10-15に確認しました。AIツールはすぐに変わるので、公式ページと見比べてください。

第22章 · 上級 · AIエージェント

Claude Code 1: プロジェクトを準備し、ずっと効く指示を与える

目標

プロジェクトでClaude Codeを起動し、CLAUDE.mdにずっと効く指示を書き、権限で何をしてよいかを管理できるようになります。

Claude CodeはAnthropicのです。で動き、コードエディタ、Claudeデスクトップアプリ、Webでも使えます。プロジェクトフォルダで claude と入力すると起動します。コードを読み、コードについての質問に答え、ファイルを編集し、コマンドを実行します。

プロジェクトのいちばん上のフォルダにあるCLAUDE.mdというファイルは、セッションを始めるたびに読み込まれます。ここに次のことを書きましょう:

  • プロジェクトの目的
  • とテストのコマンド
  • あなたのルール

/init コマンドを使うと、プロジェクトを読んでCLAUDE.mdの下書きを作ってくれます。

やさしく理解しよう

こんなふうに考えてみよう
Claude Code はセッションを始めるたびに CLAUDE.md を読みます。新しいチームメンバーが、最初の朝にプロジェクトのハンドブックを読むようなものです。プロジェクトが何か、どうやってビルドしてテストするか、あなたのルールは何か。短くてわかりやすいハンドブックがあれば、同じことを何度も言わなくてすみます。
例

プロジェクトで /init を実行します。Claude Code はまわりを見て、最初の CLAUDE.md を書きます。それを読んで、まちがっているところを消し、自分のルールを二行足しましょう。たとえば「メッセージは韓国語で」「仕事が終わったと言う前にテストを実行する」です。

よくある間違い
本のように長い CLAUDE.md を書くこと。長い指示は読みとばされます。毎日大事なルールだけを残し、ほかは(Agent Skills の章を参照)や別の文書に移しましょう。
もう少し詳しく

Claude Codeはファイルを編集したりコマンドを実行したりする前に確認を求め、その操作を1回だけ、このセッションの間、または常に許可するかをあなたが決めます。権限のルールは .claude/settings.json にあり、プランモードではClaude Codeは何も変えずに読んで計画を提案するだけです。最初は厳しく始めて、信頼できるものだけをゆるめ、理解できないコマンドは決して許可しないでください。

自分の言葉で説明

小さなの宿題プロジェクトのCLAUDE.mdに入れる3行を書きましょう。

説明と比べる

たとえば「目的: Pythonの授業の宿題の問題。テスト: 変更のたびに python -m pytest を実行する。ルール: 関数は短く書き、それぞれをコメントで説明する。」目的、テストのコマンド、ルールがそろっていれば正解です。

自分で記録する欄です。ここで採点はしません。

この章を理解したものとして記録しますか?

まだ取り消せないので、本当に理解できたときだけ記録してください。

理解したものとして記録しました

自分で記録する欄です。ここで採点はしません。

授業の進め方

この章を授業で進める方法です。生徒が読んでもかまいません。

授業の流れ

インストール確認と初めての起動(10分) → /init でCLAUDE.mdを作る(10分) → 権限とプランモード(10分) → 生徒が自分のプロジェクトを準備する(20分)。

画面で見せること

  1. ai-course フォルダで claude を起動し、「このプロジェクトには何がある?」と聞いてみましょう。
  2. /init を実行し、できたCLAUDE.mdを編集してテストについてのルールを1つ加えましょう。
  3. Shift+Tab を押してプランモードに切り替えて変更を頼み、計画を承認するまで何も編集されないことを見せましょう。

生徒の活動

  1. ai-course フォルダでClaude Codeを起動し、目的、テストのコマンド、ルール2つを書いたCLAUDE.mdを作りましょう。
  2. プランモードでClaude Codeに変更を頼み、承認せずに計画を読みましょう。

達成の目安

生徒のプロジェクトにテストのコマンドとルールが書かれたCLAUDE.mdがあり、プランモードが何をするかを説明できれば達成です。

生徒がつまずいたら

  • 「claude: command not found」と出るとき: シェルのユニット11のインストール確認をやり直し、ターミナルを開き直しましょう。
  • 許可を求められる回数が多すぎるとき: 「常に許可」はテストの実行のような安全なコマンドだけにし、ファイルの削除には決して使わないでください。

クラスへの問いかけ

  • CLAUDE.mdには何を書くべきで、なぜセッションのたびに読まれるのでしょうか?
  • プランモードはどんなときに使いますか?
出典と参考資料

製品情報は2026-10-15に確認しました。AIツールはすぐに変わるので、公式ページと見比べてください。

第23章 · 上級 · AIエージェント

Claude Code 2: 計画し、変更し、テストし、レビューする

目標

Claude Codeで作業の1サイクルをひととおり回せるようになります。目的を説明し、計画をレビューし、を変更してテストさせ、結果をレビューして残すか元に戻すかを決めます。

コーディングと上手に作業するには、1つのサイクルに沿って進めます。目的と確かめ方を説明します。ファイルが変わる前に計画を読んで直します。エージェントに編集とテストの実行をさせます。を自分で読みます。して変更を残すか、元に戻します。巨大な依頼を1つするより、小さなサイクルを何回も回すほうがうまくいきます。サイクルごとに確かめやすいからです。

やさしく理解しよう

こんなふうに考えてみよう
コーディングエージェントと作業するのは、味見をしながらレシピどおりに料理するようなものです。料理を決め、計画を読み、ひと手順だけ作らせ、味見(テスト)をしてから先へ進みます。小さなひと回りなら、たしかめるのも元にもどすのもかんたんです。
例

1回め「検索ボックスを追加する計画を立てて。まだファイルは編集しないで。」計画を直します。2回め「ステップ1をやって、テストを実行して。」diff を読んでコミットします。3回めは次のステップです。大きなお願い一回より、短いひと回り三回のほうがうまくいきます。

よくある間違い
diff を読まずに「よさそう」と言うこと。diff には何が変わったかが正確に出ます。さわられると思っていなかったファイルも出てきます。
左側では、心配そうなキャラクターが大きなリュックを背負い、谷を一回のジャンプでとびこえようとしています。右側では、同じキャラクターが小さな飛び石の上を落ち着いてわたっています。石にはそれぞれ、計画・編集・テスト・確認の小さなサイクルと、小さなセーブの旗があります。
計画 → 編集 → テスト → 確認 → コミットを、小さなひと回りで。どのひと回りも、たしかめるのも元にもどすのもかんたんです。
もう少し詳しく

エージェントが自分で確かめられる手段を与えましょう。テスト、成功しなければならないコマンド、正しい出力の例などです。セッションが間違った方向に進んだら、Escを押して止め、何が違うかを伝えるか、で元に戻して新しく頼み直しましょう。長いセッションには紛らわしいがたまるので、/clear できれいに始め直せます。くり返す作業は、手順をとして保存しましょう(Agent Skillsの章を見てください)。

自分の言葉で説明

次を正しい順番に並べましょう: diffを読む、目的と確かめ方を説明する、コミットする、計画を承認する、テストを実行する。

説明と比べる

目的と確かめ方を説明する → 計画を承認する → (エージェントがコードを変更して)テストを実行する → diffを読む → コミットする。

自分で記録する欄です。ここで採点はしません。

この章を理解したものとして記録しますか?

まだ取り消せないので、本当に理解できたときだけ記録してください。

理解したものとして記録しました

自分で記録する欄です。ここで採点はしません。

授業の進め方

この章を授業で進める方法です。生徒が読んでもかまいません。

授業の流れ

黒板で5段階のサイクルを見る(5分) → 小さな機能でその場でサイクルを回す(15分) → 生徒が自分のプロジェクトでサイクルを2回回す(20分) → エージェントが間違えたことを1つずつ共有する(10分)。

画面で見せること

  1. 「文章の中でいちばん多く出てくる単語を返す関数を、テストつきで追加して。まず計画を見せて。」と頼み、計画の細かい点を1つ直しましょう。
  2. 編集とテストの実行を任せましょう。テストが失敗したら、エージェントがエラーを読んでコードを直すようすを見せます。
  3. git diff をレビューしてコミットしましょう。次に、わざとまずい変更をして git restore で元に戻します。

生徒の活動

  1. 自分のプロジェクトでサイクルを1回ひととおり回しましょう。確かめ方のある目的、計画、変更、テスト、diff、コミットです。
  2. 1回目の結果を改善する2回目のサイクルを回し、計画で何を直したかを1文で書きましょう。

達成の目安

生徒のGitの履歴に、サイクルを回して作ったコミットが2つあり、どちらもテストに通っていれば達成です。

生徒がつまずいたら

  • エージェントはテストに通ったと言うのに実際は失敗しているとき: テストのコマンドを自分で実行し、要約ではなく出力を信じましょう。
  • 会話が混乱してきたとき: ここまでの作業をコミットするか元に戻し、/clear を使って、短く正確な依頼でやり直しましょう。

クラスへの問いかけ

  • 大きな依頼を1つするより、小さなサイクルを何回も回すほうがよいのはなぜでしょうか?
  • エージェントが間違った方向に進んだら、どうしますか?
出典と参考資料

製品情報は2026-10-15に確認しました。AIツールはすぐに変わるので、公式ページと見比べてください。

第24章 · 上級 · AIエージェント

Antigravity CLI(agy): ターミナルで動くGoogleのエージェント

目標

agy でGoogleのAntigravity を起動し、作業を任せられるようになります。Claude CodeやCodexと比べ、複数のにお互いを確かめさせられるようになります。

Antigravity CLIは、で使うGoogleのエージェントです。公式ページのインストールスクリプトを実行したあと、agy コマンドで起動します。Googleは、以前のGemini CLIを使っていた人向けの移行ガイドも出しています。

GoogleのGeminiを使い、ほかのエージェントと同じように動きます:

  • プロジェクトフォルダで起動します。
  • 作業を説明します。
  • 計画とコマンドを承認すると、ファイルを読んで編集します。

初めて起動すると、ブラウザが開いてGoogleアカウントでサインインできます。作業の一部を、複数の助っ人エージェントに同時に送ることもできます。

やさしく理解しよう

こんなふうに考えてみよう
Antigravity CLI も、ターミナルで動くコーディングエージェントのひとつで、Google のものです。ひとつのエージェントを知れば、ほかのものもなじみやすく感じます。ちがう車を運転するのと同じで、ペダルの場所は同じ、変わるのはいくつかのボタンと設定だけです。
例

プロジェクトフォルダーで agy を起動し、はじめての時は Google アカウントでサインインします。そして、Codex や Claude Code にたのんだのと同じような仕事をたのみます。同じ仕事に対して、エージェントたちがどんな計画を立てるかくらべてみましょう。

よくある間違い
古い Gemini CLI のガイドを一字一句そのまま追うこと。ツールやコマンドは変わります。今のインストールとサインインの手順は、公式ページでたしかめましょう。
もう少し詳しく

モデルごとに得意なことと見落としやすいことが違うので、3つのエージェントを知っておくと役に立ちます。よい習慣はクロスチェックです。1つのエージェントに変更を任せて別のエージェントにレビューさせたり、いくつかのエージェントに同じ問題を別々に分析させて比べたりしましょう。意見が分かれたところは、自分でファイルを開いて判断します。すべてのエージェントが同じ指示に従うように、多くのエージェントが読むAGENTS.mdに同じプロジェクトのルールを書いておきましょう。

自分の言葉で説明

2つのエージェントが、バグの原因について違うことを言っています。どちらが正しいか、どうやって決めますか?

説明と比べる

それぞれが出す証拠、つまりファイルと行、を見て、自分で確かめます。コードを実行し、その行を読み、小さなテストを書きます。1つのエージェントしか言っていなくても、実際の動きに合う答えが勝ちです。

自分で記録する欄です。ここで採点はしません。

この章を理解したものとして記録しますか?

まだ取り消せないので、本当に理解できたときだけ記録してください。

理解したものとして記録しました

自分で記録する欄です。ここで採点はしません。

授業の進め方

この章を授業で進める方法です。生徒が読んでもかまいません。

授業の流れ

3つのエージェントを並べて見る: Claude Code、Codex、agy(10分) → agyをインストールしてサインインする(10分) → 同じ小さな作業を2つのエージェントに任せる(20分) → 比べて判断する(10分)。

画面で見せること

  1. 練習用のプロジェクトで agy を起動し、プロジェクトの構成を説明するよう頼みましょう。
  2. 同じバグをagyと、Claude CodeかCodexに渡し、2つの計画を比べましょう。
  3. 1つのエージェントにもう1つのエージェントの変更をレビューさせ、どちらにするかをどう判断するかを見せましょう。

生徒の活動

  1. 自分のプロジェクトのルールを書いたAGENTS.mdを作り、2つのエージェントがそれに従うか確かめましょう。
  2. 2つのエージェントに同じ作業を1つ任せ、短い表を書きましょう。それぞれが何をしたか、どちらがよかったか、何が間違っていたかです。

達成の目安

プロジェクトでagyを動かし、同じ作業で2つのエージェントを比べ、クロスチェックでなぜ間違いが見つかるのかを説明できれば達成です。

生徒がつまずいたら

  • agyが起動しない、またはサインインできないとき: 公式のインストールページを確認し、ブラウザでGoogleアカウントにサインインしましょう。
  • エージェントの答えが食い違うとき: それこそがねらいです。エージェントが指し示すファイルを開き、多数決ではなく証拠で判断しましょう。

クラスへの問いかけ

  • 2つの違うAIエージェントは、なぜ1つよりも多くの間違いを見つけられるのでしょうか?
  • 複数のエージェントを使うとき、なぜルールをAGENTS.mdに書くのでしょうか?
出典と参考資料

製品情報は2026-10-15に確認しました。AIツールはすぐに変わるので、公式ページと見比べてください。

第25章 · 上級 · AIエージェント

Agent Skills: AIエージェントにくり返す作業を教える

目標

がくり返す作業を毎回同じやり方でこなせるようにSKILL.mdファイルを読み書きし、いつ使われるかをテストできるようになります。

エージェントのすべて — 何なのか、どう動くのか、SKILL.mdのルール、最初のスキルの作り方、コツ、SONUBのスキルのインストール — は「エージェントスキル」のページにまとめました。下のリンクから開いて一緒に読み、最後にこの章のセルフチェックで授業を締めくくりましょう。

エージェントスキルのページで学ぶ

この章の説明はそのページだけにあります。授業ではそのページを一緒に開き、進み具合は下のボタンでここに記録しましょう。

自分の言葉で説明

会議のメモをやることリストに変えるスキルの説明を書きましょう。

説明と比べる

たとえば「会議のメモを、担当者と期限つきの番号つきやることリストに変えます。ユーザーが会議のアクションアイテムやToDoリストを求めたときに使います。議事録全体を書くためには使いません。」何をするか、いつ使うか、何には使わないかが書かれています。

自分で記録する欄です。ここで採点はしません。

この章を理解したものとして記録しますか?

まだ取り消せないので、本当に理解できたときだけ記録してください。

理解したものとして記録しました

自分で記録する欄です。ここで採点はしません。

授業の進め方

この章を授業で進める方法です。生徒が読んでもかまいません。

授業の流れ

スキルとは何で、どこに置くのか(10分) → 実際のスキルを一緒に読む(10分) → 生徒が小さなスキルを書く(20分) → いつ使われるかをテストする(10分)。

画面で見せること

  1. 例のSKILL.mdを開き、名前、説明、手順を指し示しましょう。
  2. スキルを .claude/skills/weekly-report/ に置き、「週報を書いて」と頼みましょう。次に関係のないことを聞き、スキルが使われないことを見せます。
  3. 説明をあいまいにして、スキルが当てにならなくなるようすを見せましょう。

生徒の活動

  1. 自分がくり返す作業(要約、チェックリスト、レポート)のためのSKILL.mdを、はっきりした説明と3〜5つの手順で書きましょう。
  2. スキルを使うべき依頼2つと、使うべきでない依頼1つでテストし、結果を書き留めましょう。

達成の目安

スキルに名前、いつ使うかを書いた説明、番号つきの手順、確認方法があり、テストで正しく使われれば達成です。

生徒がつまずいたら

  • スキルがまったく使われないとき: 人が実際に使う言葉を説明に入れましょう。
  • 違う依頼で使われてしまうとき: 何には使わないかを説明に加えましょう。

クラスへの問いかけ

  • エージェントは、なぜ最初は名前と説明だけを読むのでしょうか?
  • インターネットからスキルをインストールする前に、なぜ中身を読むのでしょうか?
出典と参考資料

製品情報は2026-10-16に確認しました。AIツールはすぐに変わるので、公式ページと見比べてください。

第26章 · 上級 · AIエージェント

Claude Cowork: 何段階もの作業を任せる

目標

複数のファイルやアプリにまたがる作業にツールを使い、はっきりした制限を決め、進み具合を追い、できあがった成果を確かめられるようになります。

Claude CoworkはClaude Codeと同じエージェントの技術を使いますが、は必要ありません。Claudeデスクトップアプリで作業を説明し、必要なフォルダへのアクセスを与えます。たとえば「この40枚のレシートを月ごとにスプレッドシートに整理して」と言うと、手順を計画し、一つずつこなしながら進み具合を見せてくれます。事務や勉強の作業向けに作られています。

  • ファイルの整理
  • メモから文書の下書きを作る
  • 情報を集めて表にまとめる

CoworkはClaudeの有料プランで使えます。

やさしく理解しよう

こんなふうに考えてみよう
Cowork は、たよりになるアシスタントにフォルダーをわたすようなものです。「このレシートを月ごとに分けて、表にまとめて。」仕事を説明し、必要なフォルダーだけ使えるようにして、手順を進めていく進み具合のリストを見守ります。
例

会議メモのフォルダーを Cowork にわたして、こうたのみます。「決まったことを1ページにまとめて、だれが何をいつまでにするかの表を作って。」だれかに送る前に、二つのメモと表をくらべてたしかめましょう。

よくある間違い
小さな仕事のために、ドライブ全体へのアクセスをあたえること。共有するのは、その仕事に必要なフォルダーだけにしましょう。
もう少し詳しく

エージェントができることが多いほど、あなたの指示が大切になります:

  • 必要なフォルダだけを渡しましょう。
  • してはいけないこと(削除、送信、購入)を伝えましょう。
  • 迷ったら止まって質問するよう頼みましょう。
  • 結果を元のデータと照らし合わせて確かめましょう。

ソフトウェアのチームから学べる便利な習慣がクロスチェックです。同じ質問を2つ以上のツールにして、答えを比べ、多数決ではなく根拠で判断します。SONUBの開発者もこのやり方で仕事をしています。1つの質問を複数のAIに送り、すべての主張を元のファイルで確かめています。

自分の言葉で説明

エージェントツールに渡すよい作業指示書に必ず入れるべき4つのことを挙げましょう。

説明と比べる

目的、入力(どのファイルやフォルダか)、期待する成果物、そして制限(してはいけないことと、いつ止まって質問するか)です。

自分で記録する欄です。ここで採点はしません。

この章を理解したものとして記録しますか?

まだ取り消せないので、本当に理解できたときだけ記録してください。

理解したものとして記録しました

自分で記録する欄です。ここで採点はしません。

授業の進め方

この章を授業で進める方法です。生徒が読んでもかまいません。

授業の流れ

エージェントツールとは何か(5分) → 制限を決めてその場で作業する(15分) → 生徒が作業指示書を作る(20分) → 2つのAIの答えをクロスチェックする(10分)。

画面で見せること

  1. Coworkにメモの入ったサンプルフォルダを渡し、1ページの要約文書を頼みましょう。どこで許可を求めてくるかを指摘します。
  2. 制限を決めた作業指示書を見せましょう。どのフォルダか、どんな成果物か、してはいけないこと、いつ質問すべきかが入っています。
  3. 同じ事実についての質問を2つのAIツールにして答えを比べ、情報源を確かめましょう。

生徒の活動

  1. 実際の用事について作業指示書を書きましょう。目的、入力のフォルダ、期待する成果物、してはいけないこと3つを入れます。
  2. 使えるならCoworkで実行し、成果物のうち3項目を元のデータと比べましょう。使えないなら、2つのAIツールに同じ質問をして比べましょう。

達成の目安

指示書に目的、入力、成果物、制限が書かれていて、生徒が確かめた項目を少なくとも1つ報告できれば達成です。

生徒がつまずいたら

  • 有料プランがないとき: 作業指示書を書き、クロスチェックの活動は無料のツールでやりましょう。計画する力は同じです。
  • エージェントが違うファイルにさわってしまったとき: 元のフォルダではなくコピーを渡し、アクセスできる範囲をしぼりましょう。

クラスへの問いかけ

  • 最初はエージェントにファイルのコピーで作業させるべきなのは、なぜでしょうか?
  • AIツールの答えが食い違うとき、なぜ多数決ではなく根拠で判断するのでしょうか?
出典と参考資料

製品情報は2026-10-15に確認しました。AIツールはすぐに変わるので、公式ページと見比べてください。

第27章 · 上級 · 働き続けるエージェント

ゴールとRalph Loop: 本当に終わるまでエージェントに続けさせる

目標

はっきりしたゴールラインのある目標を決め、目標を達成するまでをループで動かし、確認、上限、予算で安全に止められるようになります。

ふつう、エージェントは1つの依頼が終わったと判断すると止まります。ゴール(goal)は、1つの依頼を長い作業に変えます。目的とゴールラインを伝えると、エージェントは一歩ごとに進み具合を確かめながら働き続けます。

Codexではこれが /goal コマンドです:

  • /goal のあとに結果を書くと、ゴールが決まります。
  • /goal だけで、ゴールを表示します。
  • /goal pause、resume、clear で操作します。

ゴールの状態は、実行中、一時停止、完了、予算の上限到達のどれかです。テストに通るといった証拠に裏づけられたときだけ完了にできます。

は同じ考えをかんたんなしかけで作ったものです。エージェントが終わろうとすると、Stopフック(止まった瞬間に自動で動く小さなスクリプト)がそれをつかまえて同じをもう一度入れます。エージェントはファイルとの履歴から自分の前の作業を見て、1周ごとにそれをよくしていきます。

やさしく理解しよう

こんなふうに考えてみよう
ふつうのエージェントは、1つの依頼が終わったと思うと止まります。最初の角で止まってしまうのようです。ゴールは、ゴールラインとチェックポイントがあるレースのようなものです。エージェントは走り続け、チェックポイントごとにリストをたしかめます。止まるのは、ゴールライン、つまりあなたが決めた完了の条件に本当に着いたときか、予算がなくなったときだけです。
例

「/goal テストがすべて通り、README にアプリの動かし方が書いてある。」エージェントは作業してテストを実行し、二つの失敗を見つけて直し、README をたしかめて、二つの条件がそろったときだけ止まります。Ralph Loop も似たことをします。エージェントが止まろうとするたびに、同じプロンプトをもう一度あたえるのです。

よくある間違い
「もっとよくして」のような、はっきりしたゴールラインのないゴール。たしかめられることを書きましょう。通るテスト、開くページ、全部うまったリストなどです。
長いトラックをロボットのランナーが走っています。チェックポイントの駅があり、通るたびに箱にひとつずつチェックが入ります。ひとつの駅には、やり直しの矢印があります。ゴールラインには、トロフィーと全部チェックのついたリストがあります。小さなダッシュボードには、一時停止・再生のボタンと予算のメーターが見えます。
エージェントは、完了の条件がそろうまで、チェックポイントをひとつずつ進み続けます。あなたが一時停止するか、予算がなくなれば止まります。
もう少し詳しく

ループのよさは、ゴールラインのよさで決まります。「もっとよくして」は終わりませんが、「tests/ のテストがすべて通り、ページがエラーなしで開く」は確かめられます。

必ず上限を決めましょう。そうしないと、ループが一晩中回って、むだにお金を使ってしまうことがあります:

  • 最大の周回数
  • 本当のときだけエージェントが言ってよい完了のフレーズ
  • の予算

ループは新しいGitので始め、プロジェクトのルールはCLAUDE.mdかAGENTS.mdに書き、結果は自分で確かめましょう。エージェントの「できました」は主張であって、証拠ではありません。

ターミナルで入力するコマンド
# Codex — one long task with a finish line you can check
/goal All tests in tests/ pass and the homepage loads without errors
/goal               # show the goal and its status
/goal pause         # also: /goal resume, /goal clear

# Claude Code — Ralph Loop plugin: the same prompt again and again, with limits
/ralph-loop "Fix the failing tests in tests/. Say DONE only when all pass." --completion-promise "DONE" --max-iterations 5

これらはこのページではなく、自分のパソコンやサーバーのターミナルで実行します。実行する前に1行ずつ読みましょう。

自分の言葉で説明

「ホームページをいい感じにして」を、ループのための目標に書き直しましょう。

説明と比べる

たとえば「ホームページがチェッカーに通り、コンソールにエラーがなく、390 px の幅で読みやすく、すべてのリンクが動く。最大8周で止まる。」確かめられる条件と上限があります。

自分で記録する欄です。ここで採点はしません。

この章を理解したものとして記録しますか?

まだ取り消せないので、本当に理解できたときだけ記録してください。

理解したものとして記録しました

自分で記録する欄です。ここで採点はしません。

授業の進め方

この章を授業で進める方法です。生徒が読んでもかまいません。

授業の流れ

大きな作業には、なぜ1回の答えでは足りないのか(5分) → ゴールラインのある目標を書く(10分) → 上限を決めて短いループを回す(20分) → ループがしたことをGitで確認する(15分)。

画面で見せること

  1. Codexで、測れる目的をつけて /goal を入力し、/goal で状態を見てから、一時停止しましょう。
  2. Claude Codeで、完了のフレーズと最大5周を決めてRalph Loopを始め、周回を数える状態ファイルを見せましょう。
  3. ループのあとで git log を見せ、ゴールラインに照らして作業を確かめましょう。

生徒の活動

  1. あいまいな3つの依頼(「サイトをよくして」「バグを直して」「テストを書いて」)を、確かめられるゴールラインのある目標に書き直しましょう。
  2. 練習用のブランチで最大5周のループを1回回し、1周ごとに何が変わったかを書きましょう。

達成の目安

目標に確かめられるゴールラインと上限があり、ループが自分で止まり、生徒が結果を確かめていれば達成です。

生徒がつまずいたら

  • ループが止まらないとき: ループを取り消し、最大の周回数と、テストできるゴールラインを加えましょう。
  • 毎周、前の周の作業を元に戻してしまうとき: 目標がはっきりしていません。ゴールラインをテストかチェックリストとして書きましょう。

クラスへの問いかけ

  • ループには、なぜゴールラインと上限の両方が必要なのでしょうか?
  • エージェントが終わったと言っても、なぜ作業を自分で確かめるべきなのでしょうか?
出典と参考資料

製品情報は2026-10-15に確認しました。AIツールはすぐに変わるので、公式ページと見比べてください。

第28章 · 上級 · 働き続けるエージェント

VPSとtmux: エージェントを1日24時間働かせる

目標

小さな()を借りてで接続し、接続を切っても働き続けるようにの中でを動かし、サーバーとキーを安全に守れるようになります。

VPSは、データセンターで借りる小さなコンピューターです。ノートパソコンがスリープしても動き続けます。パスワードの代わりにSSHキーを使って ssh user@address で接続し、ツール(、、、エージェント)をインストールして、プロジェクトをクローンします。でも、SSHのセッションで直接エージェントを起動すると、接続が切れたときにエージェントも止まってしまいます。tmuxがこれを解決します。

  • tmux new -s agent — セッションを開きます。その中でエージェントを起動します。
  • Ctrl+b を押してから d — セッションから抜けます(デタッチ)。エージェントは動き続けます。
  • tmux attach -t agent — あとで同じ画面に戻ります。
  • tmux ls — セッションの一覧を表示します。

やさしく理解しよう

こんなふうに考えてみよう
VPS は、ねむらないデータセンターにある、借りた小さなコンピューターです。tmux は、そのコンピューターの中にある、あなたが出ていっても明かりがついたままの部屋のようなものです。部屋の中でエージェントを動かし始め、ドアを閉め(デタッチ)、あとでもどってくると、まだ作業を続けています。
例

ssh でサーバーに入り、tmux new -s agent を実行して、エージェントを起動します。それから Ctrl+b を押して d を押すと、部屋から出られます。ノートパソコンを閉じましょう。次の日、もう一度 ssh で入り、tmux attach -t agent を実行すると、夜のあいだにしたことが見られます。

よくある間違い
パスワードでログインし、サーバーをインターネットに開いたままにすること。SSH キーを使い、システムを最新に保ち、人と共有するプロジェクトフォルダーには決してキーを置かないようにしましょう。
左側では、夜、閉じたノートパソコンのそばで人がねむっています。キーのアイコンがついた細い線が右へのびていますが、プラグがぬけています。右側では、雲の中のデータセンターの明かりがついた部屋で、ロボットが画面に向かって作業を続けています。
ノートパソコンはねむっても、接続が切れてもかまいません。VPS では、tmux のセッションが、あなたがもどるまでエージェントの作業を続けさせます。
もう少し詳しく

一晩中働くエージェントには安全対策が必要です:

  • ゴールラインと上限のあるはっきりした目標を与えましょう。
  • で動かし、させて、朝に作業を確認できるようにしましょう。
  • はではなく環境変数に置き、の提供会社で利用額の上限を決めましょう。
  • サーバーを守りましょう。SSHキーでだけ接続し、ファイアウォールを使い、定期的にアップデートします。

tmux attach で入るかGitの履歴を読んでセッションを確認し、Ctrl+C か tmux kill-session -t agent で止めます。

ターミナルで入力するコマンド
ssh user@address               # log in with an SSH key, not a password
tmux new -s agent              # open a session called "agent"
claude                         # start the agent with a goal and a limit
# press Ctrl+b, then d         -> detach; the agent keeps working
exit                           # log out — the session stays on the server

ssh user@address
tmux ls                        # list sessions
tmux attach -t agent           # back to the same screen
tmux kill-session -t agent     # stop it for good

これらはこのページではなく、自分のパソコンやサーバーのターミナルで実行します。実行する前に1行ずつ読みましょう。

自分の言葉で説明

agent という名前のtmuxセッションを始めて、動かしたまま離れ、あとで戻ってくるためのコマンドを書きましょう。

説明と比べる

tmux new -s agent を実行し、を起動し、Ctrl+b を押してから d を押してデタッチします。あとでもう一度ログインしてから tmux attach -t agent を実行します。名前を忘れたら、tmux ls でセッションの一覧が見られます。

自分で記録する欄です。ここで採点はしません。

この章を理解したものとして記録しますか?

まだ取り消せないので、本当に理解できたときだけ記録してください。

理解したものとして記録しました

自分で記録する欄です。ここで採点はしません。

授業の進め方

この章を授業で進める方法です。生徒が読んでもかまいません。

授業の流れ

なぜサーバーなのか: いつも電源が入っていて、いつもオンライン(5分) → キーでSSH接続する(10分) → tmux new、デタッチ、アタッチ(15分) → 上限を決めたエージェントのループを始めて、あとで確認する(20分)。

画面で見せること

  1. ssh で接続して tmux new -s agent を実行し、時間のかかるコマンドを始め、Ctrl+b d を押し、ログアウトしてもう一度ログインし、tmux attach -t agent を実行しましょう。
  2. tmuxの中で、練習用のブランチで、目標と周回の上限をつけたエージェントを起動しましょう。
  3. APIキーを置く場所(環境変数)と、AIの提供会社の利用額上限のページを見せましょう。

生徒の活動

  1. 自分のパソコンかVPSでtmuxを練習しましょう。セッションを作る、デタッチする、セッションの一覧を見る、アタッチする、セッションを終わらせる、です。
  2. 夜間実行の計画を書きましょう。目標とゴールライン、上限、ブランチ、どうやって確認するか、どうやって止めるかです。

達成の目安

tmuxを使って接続を切ってもプログラムを動かし続けられ、上限と確認の手順がある安全な夜間実行の計画があれば達成です。

生徒がつまずいたら

  • アタッチしようとすると「no sessions」と出るとき: セッションが終わったか、サーバーが再起動しています。tmux ls で確認し、新しいセッションを始めましょう。
  • SSHでパスワードを聞かれる、または接続を拒否されるとき: サーバーに自分の公開鍵を追加し、それに合うユーザーで接続しましょう。

クラスへの問いかけ

  • SSHが切れると、なぜプログラムが止まるのでしょうか? tmuxはどうやってそれを防ぐのでしょうか?
  • 一晩中働くエージェントに必ずつけるべき3つの上限は何でしょうか?
出典と参考資料
第29章 · マスター · 自分でLLMを作る

数値・予測・活性化関数

目標

平均・最大値のような小さな関数を作り、その出力が何を意味するかを説明します。

平均・最大値・しきい値のから始めます。maxは最大の値、argmaxはその位置を返します。単一ラベル分類では、その位置から最高スコアのクラスを選べます。スコアが常に適切に校正されたとは限りません。判定しきい値を変えると陽性に分類される例が変わることがあります。

やさしく理解しよう

こんなふうに考えてみよう
ニューロンは、採点表を持った小さな審査員のようなものです。入力ひとつひとつに、それをどれだけ大事に思うか()を掛けて全部足し、最初のおまけ点(バイアス)も加えます。そして、どれくらい強く反応するかを決めます。この最後の段階がです。合計を出力に変える調光スイッチのようなもので、たとえば sigmoid なら 0 と 1 の間の値になります。
例

3 匹の動物の点数は、猫 2.1、犬 3.4、うさぎ 0.5 です。max は 3.4 を返し、argmax は位置 1(0 から数えて)、つまり犬を返します。しきい値が 3.0 なら答えは「犬」です。しきい値を 4.0 に上げると、何も選ばれません。

よくある間違い
0 から 1 の間の点数を、そのまま信頼できる確率だと思い込むこと。点数はパーセントのように見えても、きちんと調整(キャリブレーション)されていないことがあります。その点数のとき、が実際にどれくらい当たっているかを確かめましょう。
3 つの入力が、太さの違う管を通って小さな審査員のキャラクターに流れ込みます。審査員は採点表で入力を足し合わせて調光スイッチを回し、出力としてランプが明るく、または暗く光ります。
入力 × 重みを足し合わせてバイアスを加え、活性化関数がニューロンをどれくらい強く光らせるかを決めます。
もう少し詳しく

ニューロンは入力をz = w·x + bでまとめ、活性化関数を適用できます。sigmoidは有限の実数を0と1の間に写す一つの関数で、全ニューロンの定義ではありません。ReLUやGELUを使うネットワークもあります。sigmoidの実装は部品作りで、済みネットワークの完成ではありません。次の課題ではデータに適合したモデルを扱いますが、例の合格だけでは汎化の証明になりません。

自分の言葉で説明

[0.2, 0.7, 0.1]を0始まりで数えるとmaxとargmaxは何を返しますか。

説明と比べる

max = 0.7、argmax = 1です。値とその位置は別の出力です。

自分で記録する欄です。ここで採点はしません。

この章を理解したものとして記録しますか?

まだ取り消せないので、本当に理解できたときだけ記録してください。

理解したものとして記録しました

自分で記録する欄です。ここで採点はしません。

授業の進め方

この章を授業で進める方法です。生徒が読んでもかまいません。

授業の流れ

平均、max、argmax(10分) → しきい値と活性化(10分) → 生徒がAIラボのミッションに取り組む(20分) → セルフチェック(10分)。

画面で見せること

  1. [0.2, 0.7, 0.1] で、max、argmax、そしてargmaxが選ぶクラスを見せましょう。
  2. 判定のしきい値を0.5から0.3に動かし、どの例のクラスが変わるかを見せましょう。

生徒の活動

  1. AIラボのコードモードで、平均、最大値、しきい値のミッションを終えましょう。

達成の目安

maxとargmaxの違いと、スコアがそのまま確率になるわけではない理由を説明できれば達成です。

生徒がつまずいたら

  • argmaxの答えが1つずれるとき: Pythonは位置を0から数えることを思い出させましょう。

クラスへの問いかけ

  • 医師が警告のための検査でしきい値を低めに設定するのは、なぜでしょうか?
出典と参考資料
第30章 · マスター · 自分でLLMを作る

小さなモデルの学習と評価

目標

用と評価用のデータを分け、スコアからはわからないことを説明します。

scikit-learnで・を学習します。Irisにはがく片の長さと幅、花弁の長さと幅の4特徴があります。適合前にデータを分け、訓練部分で学び、取り置いた例で評価します。訓練スコアが高くても新しいデータで悪いことがあり、と呼びます。前処理もだけに適合し、評価情報の漏れを防ぎます。

やさしく理解しよう

こんなふうに考えてみよう
を学習させてテストするのは、試験勉強に似ています。練習プリントの答えを丸暗記すると、そのプリントでは 100% 取れますが、新しい問題が出る本番の試験では落ちてしまいます。これが過学習です。だから、モデルが学習中に一度も見ない問題をいくつか取っておきます(テストセット)。
例

150 輪のアヤメの花を分けます。120 輪は学習用、30 輪は取っておきます。質問を次々にしながら分類する決定木は、深さを制限しないと 120 輪では 100% になりますが、取っておいた 30 輪ではもっと低くなることがあります(分け方によっては 87%)。学習の点数とテストの点数の差が大きいなら、プリントを丸暗記したということなので、深さを制限して比べてみましょう。

よくある間違い
調整しながら、テストセットを何度ものぞき見すること。のぞくたびにテストの中身を覚えてしまうので、最後の点数が実際のモデルより良く見えます。調整には(設定を選ぶために学習データから取り分けた部分)を分けて使い、テストセットは最後まで取っておきましょう。
左は、生徒が答えのプリントを丸暗記し、練習で満点を取って笑顔になっていますが、新しい試験用紙を見て首をかしげています。右は、別の生徒が本からパターンを学び、新しい試験用紙に自信を持って答えています。いくつかの問題カードは箱に入れて鍵がかけてあります。
練習プリントの丸暗記は過学習です。テストの問題は鍵をかけてしまっておき、最後にだけモデルを確かめましょう。
もう少し詳しく

近傍数kや木の深さは適合の外で選ぶーで、係数は学習するーになり得ます。設定は検証用データや交差検証で選び、テスト集合はに残します。テスト結果に合わせ続けると見積もりが楽観的になります。分割・基準モデル・スコア・誤りを記録しましょう。小さなIris実験は最初の作品で、あらゆる集団や課題への有効性の証明ではありません。

自分の言葉で説明

学習に使ったデータで100%のモデルは、次に何を確かめるべきですか。

説明と比べる

適切な未学習データで評価し、誤りや情報漏れを調べます。訓練の正解率だけでは不十分です。

自分で記録する欄です。ここで採点はしません。

この章を理解したものとして記録しますか?

まだ取り消せないので、本当に理解できたときだけ記録してください。

理解したものとして記録しました

自分で記録する欄です。ここで採点はしません。

授業の進め方

この章を授業で進める方法です。生徒が読んでもかまいません。

授業の流れ

黒板で学習用とテスト用にデータを分ける(10分) → モデルを学習させて評価する(15分) → 生徒が学習スコアとテストスコアを比べる(15分) → セルフチェック(10分)。

画面で見せること

  1. 小さな表を学習用の行とテスト用の行に分け、前半で学習させて後半で採点しましょう。
  2. 学習データでは100%正解なのにテストデータでは成績が下がるモデルを見せ、これを過学習と呼びましょう。

生徒の活動

  1. 回帰と分類のミッションを終え、学習スコアとテストスコアを書き留めましょう。

達成の目安

学習データでのスコアだけでは足りない理由を説明できれば達成です。

生徒がつまずいたら

  • データリーク: スケーリングなどの前処理は、学習用のデータだけで合わせるようにしましょう。

クラスへの問いかけ

  • あなたのモデルは学習データで100%正解しました。次に何を確かめますか?
出典と参考資料
第31章 · マスター · 自分でLLMを作る

LLMを作る 1: 文字、数え上げ、最初の生成器

目標

文字ので文章を数に変え、どの文字のあとにどの文字が来るかを数え、その回数から新しい文章を生成できるようになります。

どんなも、文章を数に変えるところから始まります。いちばん簡単なトークナイザーは、文字ごとにIDを1つ割り当てます。いちばん簡単なであるモデルは、ある文字のあとに別の文字が何回来るかを数え、その回数をに変えます。文章を生成するときは、その確率で次の文字を選び、つけ足し、これをくり返します。下のを実行してみましょう。ID、「h」のあとに来る可能性が高い文字、生成した文章、そして損失を表示します。

やさしく理解しよう

こんなふうに考えてみよう
バイグラムモデルは、どの文字のあとにどの文字が来やすいかを、正の字で数えておくようなものです。たくさんの文章を読むと表ができます。「q」のあとにはほぼいつも「u」が来て、「t」のあとにはよく「h」が来ます。文章を書くときは、その表に合わせて出やすさを変えたサイコロを振り、1 文字ずつ決めていきます。
例

「hello hello help」では、「h」のあとに「e」が 3 回来るので、「h」のあとにモデルが「e」を選ぶ確率は 3/3 = 1 です。「l」のあとには「l」「o」「l」「o」「p」が来るので、それぞれの候補に自分の割合があります。数文字を生成すると、「helo hello hel」のようなものになります。

よくある間違い
バイグラムモデルに、ちゃんとした文を期待すること。1 文字前しか覚えていないので、単語のような形をしたでたらめを書きます。だからこそ、次の章でもっと多くのを加えるのです。
文字のペアのマスが並んだ表に、高さの違う集計の印があり、それが出やすさを変えたサイコロにつながっています。サイコロを振るたびにタイルが 1 枚ずつ出てきて、タイルの列が伸びていきます。
どのかけらのあとにどのかけらが来るかを数え、その数を確率に変えて、1 つずつサイコロを振ります。
もう少し詳しく

損失は、実際の次の文字を見てモデルがどれだけ驚いたかを測るものです。その確率の対数にマイナスをつけた値の平均です。完璧なモデルなら損失は0になります。本物のは複数の文字でできたを使い、はるかに長い文脈を見ますが、サイクルは同じです。文章 → ID → 次のトークンの確率 → 1つ選ぶ → くり返す。

コード例 ブラウザ上でPythonとNumPyを使って動きます。コードを変えて、もう一度実行してみましょう。

自分の言葉で説明

表によると、「t」のあとには「h」が0.7、「e」が0.3の確率で来ます。モデルが「t」のあとを生成すると何が起きるでしょうか?

説明と比べる

その確率に従ってランダムに、10回のうち7回くらいは「h」を、3回くらいは「e」を選びます。そして選んだ文字から続けて生成します。

自分で記録する欄です。ここで採点はしません。

この章を理解したものとして記録しますか?

まだ取り消せないので、本当に理解できたときだけ記録してください。

理解したものとして記録しました

自分で記録する欄です。ここで採点はしません。

授業の進め方

この章を授業で進める方法です。生徒が読んでもかまいません。

授業の流れ

黒板で文章を数に変える(10分) → コードを実行して出力を読む(10分) → 生徒が文章と最初の文字を変える(20分) → 損失について話す(10分)。

画面で見せること

  1. コードを実行し、表示された行を1つずつ説明しましょう。語彙、encodeとdecode、「h」のあとの確率、生成した文章、損失です。
  2. 学習させる文章を別の文体の数文に変えてもう一度実行し、生成される文章がどう変わるかを見せましょう。
  3. probs の行を指し、どの行も合計が1になることを見せましょう。

生徒の活動

  1. 文章を自分で書いた3つの文に置き換え、好きな文字から始めて40文字を生成しましょう。
  2. 自分の文章で「e」のあとにいちばんよく来る文字を見つけ、手で数えて確かめましょう。

達成の目安

自分の文章でコードを実行し、確率の表の1行が何を意味するかを説明できれば達成です。

生徒がつまずいたら

  • 生成のときにKeyErrorが出るとき: 最初の文字が文章に入っていません。文章に出てくる文字を選びましょう。
  • 出力がでたらめに見えるとき: それで当然です。バイグラムモデルは直前の1文字しか見ていないからです。

クラスへの問いかけ

  • モデルは、なぜ文章を数に変えなければならないのでしょうか?
  • 損失が0というのは、どういう意味でしょうか?
出典と参考資料
第32章 · マスター · 自分でLLMを作る

LLMを作る 2: 学習するニューラルネットワーク

目標

数え上げを小さなに置き換えます。このネットワークはでとをし、3文字分のを見ます。

数え上げの表は、大きさが爆発的に増えてしまうので、それ以上前を見られません。でもニューラルネットワークならできます。文字ごとに学習される、つまり埋め込みがあります。

  • は直前3文字のベクトルをつなげて隠れ層(のあいだにあり、数を混ぜて特徴を作る中間の層)に通します。
  • 次に来うるすべての文字にスコアを出します。
  • がそのスコアをに変えます。

学習では、予測を実際の次の文字と比べて損失を計算し、すべての重みを損失が下がる方向に少しずつ動かします。この一歩が勾配降下法で、その方向を計算するのが逆伝播です。

やさしく理解しよう

こんなふうに考えてみよう
ニューラルネットワークの学習は、霧のかかった山を下って、いちばん低い谷を目指すようなものです。高さは損失、つまりモデルがどれだけ間違っているかです。谷は見えませんが、足元の地面がどちらに傾いているか(勾配)は感じられるので、下り坂へ小さく一歩進みます。小さな歩みを何度も重ねると、谷底の近くに着きます。
例

ステップ 0 では、損失はだいたい 3.4 です。15 文字の中からでたらめに当てると約 2.7 になるので、最初のモデルはそれよりもさらに悪いのです。300 ステップほどで 0.2 くらいまで下がり、生成される文章が本物の単語のように見え始めます。モデルが直前の 3 文字を見るからです。

よくある間違い
早く終わらせようと、大きな歩幅で進むこと。が大きすぎると谷を飛び越えてしまい、損失が上下に跳ねたり、爆発したりします。小さく着実な歩みのほうが、たいていうまくいきます。
小さなハイカーが、霧のかかった曲がった山の斜面を、下を指す矢印に導かれて小さな歩幅で下りていき、ふもとの日の当たる谷へ向かっています。
勾配降下法とは、損失の傾きを感じ取り、下り坂へ小さく一歩進むことを何度もくり返すことです。
もう少し詳しく

ステップが進むにつれて損失が下がっていくのを見てください。ネットワークが学習しているしるしです。今度はより長い文脈を見るので、生成した文章が本物の単語の形になってきます。は生成がどれだけ冒険的かを決めます。1より低いと無難な文字を選び、1より高いと思い切った選び方をします。大きなは何十億もの重みを持ち、で膨大な量の文章を学習しますが、学習の1ステップ1ステップはこれとまったく同じ考え方です。

コード例 ブラウザ上でPythonとNumPyを使って動きます。コードを変えて、もう一度実行してみましょう。

自分の言葉で説明

temperatureを0.8から0.2に下げると、生成される文章はどうなるでしょうか? それはなぜでしょうか?

説明と比べる

くり返しが多く無難な文章になります。スコアを小さなtemperatureで割ると、いちばんありそうな文字の確率がほかの文字よりずっと大きくなるからです。

自分で記録する欄です。ここで採点はしません。

この章を理解したものとして記録しますか?

まだ取り消せないので、本当に理解できたときだけ記録してください。

理解したものとして記録しました

自分で記録する欄です。ここで採点はしません。

授業の進め方

この章を授業で進める方法です。生徒が読んでもかまいません。

授業の流れ

黒板で埋め込みと隠れ層を見る(10分) → コードを実行して損失を見守る(10分) → 生徒がtemperatureと文章を変える(20分) → 学習の1ステップを説明する(10分)。

画面で見せること

  1. コードを実行し、50ステップごとに損失が下がっていくところを指し示しましょう。
  2. generate() のtemperatureを0.3に、次に1.5に変えて、文章を比べましょう。
  3. lr を5.0にしてもう一度実行し、一歩が大きすぎると学習が不安定になることを見せましょう。

生徒の活動

  1. 学習させる文章を自分の文に変えて学習し直し、最後の損失を書き留めましょう。
  2. 2つのtemperatureを試し、違いを1文で説明しましょう。

達成の目安

損失が下がっていくことを示し、埋め込みと学習の1ステップが何かを説明できれば達成です。

生徒がつまずいたら

  • 損失が nan になるとき: 学習率が高すぎます。lr を今の値より下げ、たとえば 0.1 にしましょう。
  • 自分の文章で生成がうまくいかないとき: 最初の文字列は、文章に出てくる3文字でなければなりません。

クラスへの問いかけ

  • 逆伝播は何を計算するのでしょうか?
  • 文脈が長いと、なぜ文章が本物の単語らしく見えてくるのでしょうか?
出典と参考資料
第33章 · マスター · 自分でLLMを作る

LLMを作る 3: トランスフォーマーの心臓、アテンション

目標

セルフを加えて、どの位置も前の文字を振り返り、どれが大事かを決められるようにし、させて中身を調べられるようになります。

今のを支えるしくみであるは、アテンションの上に成り立っています:

  • は位置ごとにクエリ(自分は何を探している?)を作ります。
  • 前にあるすべての位置がキー(自分は何を持っている?)とバリュー(自分は何を渡す?)を差し出します。
  • クエリとキーを比べると、合計が1になるアテンションのが得られます。
  • 出力は、その重みでバリューを混ぜ合わせたものになります。

因果マスクは、ある位置が自分よりあとの文字を見られないようにして、モデルがずるをできないようにします。位置は、それぞれの文字がどこにあるかをモデルに教えます。

やさしく理解しよう

こんなふうに考えてみよう
アテンションは、生徒が前の席の生徒たちのノートを振り返って見られる教室のようなものです。一人ひとりが質問カード(クエリ)を掲げ、前にいる生徒はみんな名札(キー)を付けて、自分のノート(バリュー)を持っています。名札が質問によく合うほど、その生徒のノートがたくさん写されます。そして、あとの席の生徒をのぞいてはいけない、という決まりがあります(因果マスク)。
例

「The cat sat because it was tired」(猫は疲れていたので座った)で、モデルが「it」まで来ると、そのクエリは「cat」のキーと強く合います。そのため「cat」のバリューの多くが「it」に流れ込みます。大きくてよく学習されたモデルなら、アテンションの重みを表示すると「cat」の横に大きな数が出るはずです。この章の小さな文字単位のモデルでは、アテンションが近くの文字に集まるのが見えます。

よくある間違い
アテンションの重みが、モデルの「考え」をすべて説明していると思うこと。重みが示すのは、1 つの層の 1 つのヘッドがどこを見たかだけです。役に立つ手がかりですが、すべての説明ではありません。
生徒が一列に並んでいます。最後の生徒が質問カードを掲げ、前の生徒たちに懐中電灯を向けています。前の生徒たちの名札は、明るく、または暗く光ります。太いリボンと細いリボンが、その生徒たちから最後の生徒へノートを運びます。右側の席は小さな柵でふさがれています。
それぞれの位置が質問(クエリ)をし、前にあるすべての名札(キー)と比べて、ノート(バリュー)を混ぜ合わせます。あとに来るものをのぞき見するのは禁止です。
もう少し詳しく

このは、が8文字のアテンションヘッドを1つ、NumPyだけで学習させ、最後の文字のアテンションの重みを表示します。だから、その文字が前のどの文字を頼りにしているかが見えます。本物のトランスフォーマーは、ヘッドをたくさん持つ層を何層も重ね、フィードフォワード層と正規化を加え、Adamのようなオプティマイザーではるかに多くの文章を学習します。それ以外のすべて、つまり、埋め込み、、損失、、は、もうあなたが自分で作ってきました。

コード例 ブラウザ上でPythonとNumPyを使って動きます。コードを変えて、もう一度実行してみましょう。

自分の言葉で説明

クエリ、キー、バリューがすることを、それぞれ1文で説明しましょう。

説明と比べる

クエリは、今の位置が何を探しているかを表します。キーは、前の各位置が何を持っているかを表し、クエリと照らし合わせられるようにします。バリューは、その一致の度合いに応じて渡される情報です。

自分で記録する欄です。ここで採点はしません。

この章を理解したものとして記録しますか?

まだ取り消せないので、本当に理解できたときだけ記録してください。

理解したものとして記録しました

自分で記録する欄です。ここで採点はしません。

授業の進め方

この章を授業で進める方法です。生徒が読んでもかまいません。

授業の流れ

身近な例で見るクエリ、キー、バリュー(10分) → コードを実行して損失とアテンションの重みを読む(10分) → 生徒が実験する(20分) → 本物のLLMとつなげる(10分)。

画面で見せること

  1. 文を使ってアテンションを説明しましょう。「the dog ran because it was scared(イヌはこわがって走った)」では、「it」は「dog」に注目します。
  2. コードを実行し、最後の文字のアテンションの重みを読みましょう。前のどの位置がいちばん大きな重みを受けていますか?
  3. マスクを外し(0をかけて)、モデルが答えを見られるせいで損失があやしいほど低くなることを見せましょう。

生徒の活動

  1. 自分の文章で学習させ、好きな最初の文字列から生成しましょう。
  2. X[10:11] のような別の例でアテンションの重みを表示し、最後の文字が何に注目しているかを説明しましょう。

達成の目安

モデルを学習させて損失が下がるのを示し、クエリ、キー、バリュー、因果マスクを自分の言葉で説明できれば達成です。

生徒がつまずいたら

  • T を変えたあとにshapeのエラーが出るとき: マスクとウィンドウはどちらも T で決まるので、T は1か所だけで変えましょう。
  • 古い端末で学習が遅いとき: ステップ数を200に減らしましょう。それでも損失は下がります。

クラスへの問いかけ

  • モデルには、なぜ因果マスクが必要なのでしょうか?
  • 1つの位置のアテンションの重みをすべて足すと、いくつになるでしょうか?
出典と参考資料
第34章 · マスター · 自分でLLMを作る

自分のパソコンでGPTを作る: ミニチュアのGPT-2

目標

とPyTorchを使い、GPT-2と同じ設計の小さなGPTを自分のパソコンでさせられます。損失が下がるのを見て、自分ので文章を作れます。

GPT-2はブロックを積み重ねたものです。

  • のと位置の埋め込み
  • セルフと小さなでできた層
  • 次に来うるすべてのトークンに点数をつける最後の層

いちばん小さいGPT-2でも約1億2400万個のーがあり、大きなで何日もかけて何十億ものトークンを学習しました。ノートパソコンには大きすぎます。でも同じ設計を小さくすれば、ノートパソコンでも本当に学習できます。4層、アテンションヘッド4個、128個の数でできた埋め込み(約80万個のパラメーター)なら、シェイクスピアのような小さな文章から、CPUで約3分で学びます。

Andrej Karpathyのの nanoGPT は PyTorch(ニューラルネットワークを作って学習させるための Python )で書かれていて、そのための定番の短いです。データを用意し、学習スクリプトを実行し、文章をします。今では作者が nanoGPT を古いものとし、より新しいフルスタックのプロジェクトである nanochat を案内しています。それでも、数百行でGPT-2風のモデルを見るには、nanoGPT が今でもいちばんわかりやすい方法です。

やさしく理解しよう

こんなふうに考えてみよう
GPT-2 はレイヤーケーキのようなものです。同じトランスフォーマーブロックを何度も積み重ね、層を重ねるごとに予想を少しずつよくしていきます。本物の大きさのケーキには、プロのケーキ屋さんが必要です(大きな GPU で何日も)。でも、同じレシピで層を少なく薄くしたカップケーキ版なら、家の台所で数分で焼けます。
例

4 層、アテンションヘッド 4 個、128 個の数でできた埋め込みで、パラメータは約 80 万個です。ノートパソコンでシェイクスピアの文章を約 3 分学習します。そこから文章をサンプリングすると、単語がいつも意味を成すわけではありませんが、シェイクスピアらしい改行や名前の入った文章が出てきます。

よくある間違い
学習の損失だけを見ること。学習の損失は下がり続けているのに、の損失が上がり始めたら、モデルは丸暗記を始めています。そこで止めるか、モデルを小さくしましょう。
大きなオーブンが並ぶ大きなケーキ屋さんで、台の上にのった背の高いプロのレイヤーケーキがあります。その横では、同じ層の模様を持つ小さなカップケーキが家のオーブンで焼けています。1 枚のレシピカードが、2 つをつないでいます。
同じレシピの 2 つのサイズ。本物の GPT-2 にはケーキ屋さんが必要ですが、小さな GPT-2 ならノートパソコンで焼けます。
もう少し詳しく

学習は1つの手順をくり返します:

  • 文章のまとまり(バッチ)を取ります。
  • それぞれの次のトークンを予測します。
  • 誤差(損失)を測ります。
  • 損失が小さくなるように、すべてのパラメーターを少しずつ動かします。

2つの数字を見守りましょう。学習損失と、モデルが見たことのない文章での検証損失です。学習損失だけが下がるなら、モデルは丸暗記しています。学習が終わると、すべてのパラメーターが入ったチェックポイントファイルができます。

Macでは mps デバイスを、NVIDIAのグラフィックカードでは cuda を使い、それ以外ではもっと小さなモデルで cpu を使いましょう。この章の前にあるブラウザの章では、同じ部品をNumPyで手作りしました。ここでは、それを実際のサイズで使います。

ターミナルで入力するコマンド
git clone https://github.com/karpathy/nanoGPT
cd nanoGPT
pip install torch numpy transformers datasets tiktoken wandb tqdm

python data/shakespeare_char/prepare.py      # text -> characters -> numbers

# a small GPT on the CPU (about 3 minutes); on a Mac use --device=mps
python train.py config/train_shakespeare_char.py --device=cpu --compile=False \
    --eval_iters=20 --log_interval=1 --block_size=64 --batch_size=12 \
    --n_layer=4 --n_head=4 --n_embd=128 --max_iters=2000 \
    --lr_decay_iters=2000 --dropout=0.0

python sample.py --out_dir=out-shakespeare-char --device=cpu

これらはこのページではなく、自分のパソコンやサーバーのターミナルで実行します。実行する前に1行ずつ読みましょう。

自分の言葉で説明

GPTの主な3つの部分と、それぞれの役割を挙げましょう。

説明と比べる

埋め込みはトークンと位置をに変えます。トランスフォーマーブロック(セルフアテンションと小さなニューラルネットワーク)はトークンの間で情報を混ぜ合わせます。出力層は最後のベクトルを、次に来うるすべてのトークンの点数に変えます。そのあと、サンプリングで次のトークンを選びます。

自分で記録する欄です。ここで採点はしません。

この章を理解したものとして記録しますか?

まだ取り消せないので、本当に理解できたときだけ記録してください。

理解したものとして記録しました

自分で記録する欄です。ここで採点はしません。

授業の進め方

この章を授業で進める方法です。生徒が読んでもかまいません。

授業の流れ

ブラウザの3つの章からGPT-2へ: 同じブロックを大きく(10分) → PythonとPyTorchを準備する(10分) → データを用意して学習を始める(15分) → 文章をサンプリングして損失の曲線を読む(15分)。

画面で見せること

  1. GPT-2のブロック図を見せ、それぞれの部分をLLMを作る章と対応させましょう。埋め込み、アテンション、次のトークンの点数です。
  2. nanoGPTのシェイクスピアの文字単位の学習を、小さなCPU向けの設定で(約3分)実行し、表示される学習損失と検証損失を見せましょう。
  3. 初期のチェックポイントと最後のチェックポイントから、それぞれ文章を作って比べましょう。

生徒の活動

  1. 小さなモデルを自分のパソコン(または無料のクラウドノートブック)で学習させ、最初と最後の損失の値を記録しましょう。
  2. 設定を1つ(層の数、埋め込みのサイズ、学習のステップ数)変え、損失と文章がどう変わったかを書きましょう。

達成の目安

モデルを学習させ、チェックポイントがあり、損失が下がるところを見せられ、学習損失と検証損失の違いを説明できれば達成です。

生徒がつまずいたら

  • メモリが足りないとき: バッチサイズ、ブロックサイズ、層の数を減らしましょう。
  • CPUでの学習がとても遅いとき: モデルを小さくするか、GPUつきの無料のクラウドノートブックを使いましょう。

クラスへの問いかけ

  • 同じGPT-2の設計が、ずっと小さなサイズでも動くのはなぜでしょうか?
  • 学習損失は下がり続けているのに検証損失が上がっているのは、どういうことでしょうか?
出典と参考資料

製品情報は2026-10-15に確認しました。AIツールはすぐに変わるので、公式ページと見比べてください。

第35章 · マスター · 自分のモデルをどこでも動かす

ランナー: モデルに命を吹き込むプログラム

目標

がすることを説明できます。を読み込む、に分ける、を一歩ずつ動かす、する、する、の5つです。そして、llama.cppかOllamaでモデルを動かせます。

したモデルは、数が入ったファイルにすぎません。ランナーは、それを使うです。ランナーは次の作業をくり返します。

  • 重みをに読み込みます。
  • モデルので、あなたの文章をトークンに変えます。
  • モデルを動かして、次のトークンの点数を出します。
  • のような設定で、トークンを1つサンプリングします。
  • それを文章に付け足し、画面に1つずつ表示します(ストリーミング)。

前の計算を()に残しておくので、新しいトークンを速く作れます。モデルが学習したときのチャットテンプレートも当てはめます。Ollama と llama.cpp はモデルを包むランナーで、ChatGPT のようなサービスは、こうしたランナーを自社ので動かしています。

やさしく理解しよう

こんなふうに考えてみよう
学習したモデルは音楽のレのようなもので、ランナーはレコードプレーヤーです。レコードには音楽(重み)がすべて入っていますが、それを読み取り、あなたの言葉をトークンに変え、次の音を鳴らし、続けていくにはプレーヤーが必要です。プレーヤーによって、読めるレコードの形式が違います。
例

Ollama と llama.cpp は、ふつうのコンピューターで ファイルを読みます。あなたが質問を打ち込むと、ランナーがそれをトークンに分け、モデルを動かし、トークンを 1 つサンプリングして画面に表示し、これをくり返します。だから答えが一語ずつ現れるのです。

よくある間違い
ローカルのモデルにはインターネットのキーが必要だと思うこと。自分のコンピューターで動くランナーは、キーなしで を提供できます。しかも、あなたのデータはそのコンピューターの外に出ません。
小さな数字でできた円盤のようなレコードが、親しみやすいレコードプレーヤーにのっています。音符が小さな言葉の吹き出しになって次々に出てきます。棚には、形の違うレコード用の、いくつかの違うプレーヤーが並んでいます。
モデルはレコード、ランナーはそれを読むプレーヤーです。次のトークンを 1 つずつ鳴らしていきます。
もう少し詳しく

ランナーによって、動く場所と読めるファイルの形式が違います:

  • PyTorch — 学習のチェックポイントをそのまま動かします。
  • llama.cpp — パソコンやスマホでGGUFファイルを動かします。Ollama — パソコンで動かします。
  • ブラウザやスマホ — ONNX(多くのツールが読めるモデル形式)や、Apple(Core ML)とGoogle(LiteRT)それぞれのも使えます。

多くのランナーはローカルAPIを用意しているので、自分のアプリから、のAPIと話すのとまったく同じように、パソコンの中のモデルと話せます。キーもいらず、データがパソコンの外に出ることもありません。あなたの nanoGPT のチェックポイントは、変換の手順を通すとこうしたエンジンで動かせるようになります。その変換は次の章で行います。

ターミナルで入力するコマンド
# a runner on your computer: download a small open model and chat
ollama run llama3.2:1b

# the same runner as a local API — no key, nothing leaves the machine
curl http://localhost:11434/api/generate -d '{
  "model": "llama3.2:1b",
  "prompt": "Explain a token in one sentence.",
  "stream": false
}'

これらはこのページではなく、自分のパソコンやサーバーのターミナルで実行します。実行する前に1行ずつ読みましょう。

自分の言葉で説明

ランナーが新しいトークンを1つ作るたびにくり返す手順を挙げましょう。

説明と比べる

次の順番をくり返します。

  • それまでの文章をトークンとして取ります。
  • モデルを動かして、次に来うるすべてのトークンの点数を出します。
  • 点数をに変えます。
  • temperatureなどの設定を使って、トークンを1つサンプリングします。
  • それを付け足して表示します。

終了トークンが出るか、長さの上限に届くと止まります。

自分で記録する欄です。ここで採点はしません。

この章を理解したものとして記録しますか?

まだ取り消せないので、本当に理解できたときだけ記録してください。

理解したものとして記録しました

自分で記録する欄です。ここで採点はしません。

授業の進め方

この章を授業で進める方法です。生徒が読んでもかまいません。

授業の流れ

重みはただの数: 何が足りない?(5分) → ランナーのループを一歩ずつ(15分) → Ollamaかllama.cppで小さなオープンモデルを動かす(20分) → ローカルAPIを呼び出す(10分)。

画面で見せること

  1. 黒板にランナーのループを書きましょう。トークンに分ける → モデル → 点数 → サンプリング → 付け足す → くり返す。そしてサンプリングの章とつなげます。
  2. 小さなオープンモデルを手元で動かし(たとえばパラメーター10億個のモデルで ollama run)、トークンが流れてくるところを見せましょう。
  3. curl でローカルAPIを呼び出し、リクエストに "stream": false を入れて、答え全体が1つのJSONオブジェクトで返ってくるところを見せましょう。これがないと、トークンごとにJSONの行が1つずつ届きます。

生徒の活動

  1. ランナーのループを、番号つきの手順として自分の言葉で書き、temperatureが使われるところに印をつけましょう。
  2. 小さなオープンモデルを自分のパソコンで動かし、1秒間に何トークン作るかを測りましょう。

達成の目安

ランナーのループの各段階を説明でき、ローカルでモデルを動かしたことがあり、ランナーがローカルAPIを提供できることを知っていれば達成です。

生徒がつまずいたら

  • モデルが遅すぎる、またはメモリに入らないとき: もっと小さなモデルか、もっと強く量子化したファイルを選びましょう。
  • 答えがおかしく見えるとき: チャットテンプレートかトークナイザーがモデルと合っていません。モデルと一緒についてきたファイルを使いましょう。

クラスへの問いかけ

  • 重みのファイルだけでは、なぜモデルとチャットできないのでしょうか?
  • クラウドのAPIではなく手元でモデルを動かすと、どんなよいことがあるでしょうか?
出典と参考資料

製品情報は2026-10-15に確認しました。AIツールはすぐに変わるので、公式ページと見比べてください。

第36章 · マスター · 自分のモデルをどこでも動かす

スマホの中の自分のLLM: 変換し、小さくし、組み込む

目標

をスマホ向けの形式に変換し、で小さくし、と一緒にアプリに組み込んで、自分のスマホでオフラインで使えるようになります。

スマホはが少ないので、モデルは小さく圧縮されている必要があります。量子化とは、それぞれのーを少ない数で保存することです。たとえば16ビットの代わりに4ビットにすると、品質は少し下がるだけで、ファイルは約4分の1の大きさになります。

ふつうの流れはこうです:

  • llama.cppの変換ツールでモデルをに変換します。
  • 量子化します(Q4_K_M がよく選ばれます)。
  • まず自分のパソコンで試します。

自分の nanoGPT も書き出せますが、34章の文字単位のモデル(shakespeare_char)はそのままでは書き出せません。GPT-2 の(data/shakespeare)でし直し、Hugging Face の GPT-2 形式で保存しましょう。それに、シェイクスピアで学習したとても小さなモデルは、シェイクスピアのような文章しか書きません。役に立つアシスタントがほしいなら、パラメーターが約10億〜30億個の小さなオープンモデルから始めましょう。

やさしく理解しよう

こんなふうに考えてみよう
量子化は、小さなスーツケースで旅行の荷造りをするようなものです。シャツを 1 枚ずつ元の大きさのままきれいにたたむ(1 つの数に 16 ビット)代わりに、きつく丸めます(4 ビット)。全部ちゃんと入って見た目もほとんど同じですが、スーツケースは約 4 分の 1 の大きさになります。スマホに入るくらい小さくなるのです。
例

30 億個のパラメータを持つモデルは、16 ビットだと約 6 GB です。約 4 ビットに量子化すると 2 GB 未満になります。GGUF ファイルをスマホのオフラインのチャットアプリにコピーし、機内モードをオンにして何か聞いてみましょう。それでも答えてくれます。

よくある間違い
シェイクスピアで学習したとても小さなモデルに、役に立つアシスタントになってほしいと期待すること。役に立つスマホのアシスタントがほしいなら、小さなオープンモデルから始めて、を短くしましょう。
左は、きれいにたたんだ服が入った大きなスーツケース。右は、同じ服をきつく丸めて詰めた小さなスーツケースで、スマホの形をしたポケットに入っています。近くには小さな飛行機のアイコンがあります。
量子化は、1 つの数あたりのビットを減らして同じモデルを詰め込みます。だからスマホに入り、オフラインでも動きます。
もう少し詳しく

スマホで使うには2つの方法があります。

  • 手軽な方法 — PocketPal のようにランナーがすでに入っているアプリにGGUFファイルをコピーして、オフラインでチャットします。
  • 作り手の方法 — 自分のアプリにランナーを組み込みます。たとえば Nativeのアプリなら llama.rn、Flutterのアプリなら llama.cpp のバインディングを使います。モデルのファイルはアプリと一緒に配るかダウンロードさせて、自分のから呼び出します。

すべてがスマホの中にあるので、インターネットなしで動き、データも守られます。でもより遅く、バッテリーも使うので、プロンプトは短く、モデルは小さくしましょう。別の方法は、ランナーを自分のパソコンに置き、同じWi-Fiにつないだスマホからそのローカルを呼び出すことです。こちらのほうがかんたんですが、そのパソコンの近くでしか使えません。

アプリにモデルを組み込む(埋め込む)ことと、の章に出てきたである埋め込みを混同しないでください。スマホの中の小さな埋め込みモデルで、自分のメモを検索することもできます。

ターミナルで入力するコマンド
# your own nanoGPT: train it with the GPT-2 tokenizer (data/shakespeare, not shakespeare_char)
# and save the weights as a Hugging Face GPT-2 folder (./my-model) — then it converts like any model

# llama.cpp: model folder -> GGUF (16-bit) -> 4-bit Q4_K_M
python convert_hf_to_gguf.py ./my-model --outfile my-model-f16.gguf
./llama-quantize my-model-f16.gguf my-model-Q4_K_M.gguf Q4_K_M
ls -lh my-model-*.gguf         # about four times smaller

# quick way: copy my-model-Q4_K_M.gguf into an offline chat app (e.g. PocketPal AI)
# builder's way: embed a runner in your app (llama.rn, a llama.cpp binding) and load the file

これらはこのページではなく、自分のパソコンやサーバーのターミナルで実行します。実行する前に1行ずつ読みましょう。

自分の言葉で説明

パソコンで学習したモデルが、スマホでのチャットになるまでの道のりを4つの段階で説明しましょう。

説明と比べる

1. モデルをGGUFのようなスマホ向けの形式に変換する。2. メモリに入るように量子化する(たとえば4ビットに)。3. ランナーが入ったアプリに入れる。すでにあるオフラインチャットアプリか、ランナーを組み込んだ自分のアプリです。4. スマホで読み込んで、オフラインでチャットする。段階の合間にパソコンで試すのもよい方法です。

自分で記録する欄です。ここで採点はしません。

この章を理解したものとして記録しますか?

まだ取り消せないので、本当に理解できたときだけ記録してください。

理解したものとして記録しました

自分で記録する欄です。ここで採点はしません。

授業の進め方

この章を授業で進める方法です。生徒が読んでもかまいません。

授業の流れ

スマホにはなぜ小さなモデルが必要なのか(5分) → パソコンで変換して量子化する(15分) → スマホのアプリで動かす(15分) → アプリがランナーを組み込むしくみ(15分)。

画面で見せること

  1. 同じモデルの16ビットと4ビットのファイルサイズを見せ、どちらもパソコンで試しましょう。
  2. 小さく量子化したGGUFモデルをスマホのオフラインチャットアプリに読み込み、機内モードをオンにしてチャットしましょう。
  3. モデルのファイルを読み込み、組み込んだランナーからトークンを流すアプリのコードを数行見せましょう。

生徒の活動

  1. 小さなオープンモデルを1つ選び、量子化したGGUFファイルを見つけ、自分のスマホのメモリに入るかどうか見積もりましょう。
  2. それをスマホでオフラインで動かし、速さ(1秒あたりのトークン数)と、得意なこと1つ、苦手なこと1つを書きましょう。

達成の目安

変換、量子化、アプリへのランナーの組み込みを説明でき、スマホでモデルをオフラインで動かしたことがあれば(スマホがなければパソコンで)達成です。

生徒がつまずいたら

  • 読み込むときにアプリがクラッシュするとき: モデルがスマホのメモリに対して大きすぎます。もっと小さなモデルを使うか、もっと強く量子化しましょう。
  • スマホがないとき: 同じGGUFファイルをパソコンの llama.cpp で動かしましょう。手順は同じです。

クラスへの問いかけ

  • 4ビットの量子化で、得るものと失うものは何でしょうか?
  • 端末の中で動くモデルは、なぜプライバシーにとってよいのでしょうか?
出典と参考資料

製品情報は2026-10-15に確認しました。AIツールはすぐに変わるので、公式ページと見比べてください。

第37章 · マスター · 最終プロジェクト

最終プロジェクト: AIで何かを作り、自分の作業を見せる

目標

このコースのツールで小さなプロジェクトを計画し、作り、発表します。ちゃんと動くことを示すの履歴と確認の結果も添えます。

小さくて役に立つプロジェクトを選びましょう。たとえば、クラス用のクイズ生成ツール、ファイルを整理するスクリプト、趣味を紹介するWebページ、好きな文章でさせた自分だけのミニなどです。そのあと、次のようにします。

  • 1ページの計画を書きます。目的、使う人、動くことをどう確かめるかを入れます。
  • と小さなサイクルを何度も回しながら作ります。
  • 1ステップ動くたびにします。
  • AGENTS.md、CLAUDE.md、またはで、エージェントにあなたのルールを守らせます。
  • 最後に、でプルリクエストを作り、何を作ったか、どう試せるかを説明します。

やさしく理解しよう

こんなふうに考えてみよう
最終プロジェクトは、自由研究の発表会のようなものです。小さな問いを選び、それに答えるものを作り、試してみて、ポスターの横に立って説明します。何がうまくいき、何がうまくいかず、それをどうやって見つけたのかを話します。話の正直さは、結果と同じくらい大切です。
例

プロジェクトの例は、クラス用のクイズ作成ツールです。計画は、1 つの章から 10 問を作り、友だちに確認してもらうこと。エージェントと一緒に小さなループで作り、うまく動いた段階ごとにコミットします。 がまちがった問題を作った場面と、それにどう気づいたかを 1 つ記録し、最後にスクリーンショット付きでプルリクエストを開きます。

よくある間違い
大きすぎて終わらないプロジェクトを選ぶこと。動いて、きちんと説明できる小さなプロジェクトのほうが、いつまでも動かない巨大なプロジェクトより優れています。
生徒が、自由研究のポスターの横に誇らしげに立っています。ポスターには、計画書、小さなロボットのいるノートパソコン、チェックリスト、虫めがねといった簡単なアイコンが描かれていて、クラスメートが見ています。
計画し、小さなループで作り、確かめて、正直に発表しましょう。自分が作ったもの、AI が作ったもの、そしてそれをどう確かめたかを伝えます。
もう少し詳しく

発表はコードと同じくらい大切です。計画、AIが何かを間違えた場面とあなたがそれに気づいた方法、実行したテストや確認、次にやりたいことを見せましょう。正直に書きましょう。どの部分を自分が書き、どの部分をAIが書き、それをどう確かめたかを伝えます。

自分の言葉で説明

最後のプルリクエストの説明には、どんな4つのことを入れるべきでしょうか?

説明と比べる

プロジェクトが何をするか、どう実行したり試したりできるか、どう確かめたか(テストや例)、そしてどの部分をAIの助けを借りて作ったかです。

自分で記録する欄です。ここで採点はしません。

この章を理解したものとして記録しますか?

まだ取り消せないので、本当に理解できたときだけ記録してください。

理解したものとして記録しました

自分で記録する欄です。ここで採点はしません。

授業の進め方

この章を授業で進める方法です。生徒が読んでもかまいません。

授業の流れ

プロジェクトのアイデアと範囲を決める(15分) → 1回以上の授業で生徒が計画して作る → Gitの履歴とデモを使った発表(1人約10分)。

画面で見せること

  1. 目的、使う人、確認方法、3つの中間目標が入った計画の例を見せましょう。
  2. 完成したリポジトリの例を見せましょう。コミット、CLAUDE.mdまたはAGENTS.md、説明のはっきりしたプルリクエストがあります。
  3. AIの間違いを1つと、それをどう見つけたかを含めた短い発表の例をやってみせましょう。

生徒の活動

  1. 1ページの計画を書き、作り始める前に講師の承認をもらいましょう。
  2. 3回以上コミットしながら作り、説明と試し方を書いたプルリクエストを作りましょう。

達成の目安

プルリクエストがあり、プロジェクトが説明どおりに動き、AIの間違いを1つと確認を1つ説明できれば達成です。

生徒がつまずいたら

  • プロジェクトが大きすぎるとき: 最初から最後まで動く機能1つにしぼり、そこから足していきましょう。
  • コードは動くのに生徒が説明できないとき: エージェントに1行ずつ説明してもらい、それから1か所を自分で書き直しましょう。

クラスへの問いかけ

  • プロジェクトが動くといちばん自信を持てたのは、どの確認でしたか?
  • どの部分を自分でやり、どの部分をAIがやりましたか?