コース
8年生のAI:賢いアプリ開発者
Python、ウェブページ、モデル、AIのAPIを組み合わせて、テストして発表するアプリを作ろう。
レッスンを順番にやろう。終わるころには、AIアプリの部分であるインターフェース、バックエンド、モデル、データを言えて、本物のAIアプリのアーキテクチャを描ける。コードをモジュールに分け、JSONファイルを読み書きし、HTMLとCSSで小さなサイトを作れる。分類器の予測をウェブページに示し、テンプレートからプロンプトを作り、モデルの答えが正しい形式かを確認できる。Pythonから、先生が管理するAIのAPIを呼び、APIキーを秘密に保ち、20個のテストの評価セットを作り、安全チェックリストを書き、テスト済みのAI学習アシスタントをデモできる。
このレッスンのつかいかた
- 「これをやる」のレッスンからはじめよう。タイトルの下の文が、ひとりでできたら、次に進もう。
- はじめにゲームをしよう。それからクイズをしよう。10問中8問正解で合格。ワークシートは紙。答えは下にある。
- どのレッスンも、前のレッスンの上に積み重なる。プロジェクトのフォルダを一つ持って、レッスンごとに足していこう。
- 先生が認めたAIサービスだけを使おう。APIキーはコードに書かず、だれにも渡さない。個人情報はモデルに送らない。アプリが見せるAIの答えは、すべてテストしよう。
どのレッスンにもゲーム、クイズ、ワークシートがあります。
0/36
AIアプリのアーキテクチャ
- 1AIアプリの部分AIアプリの部分であるインターフェース、バックエンド、モデル、データを言おう。
- 四つの部分をそれぞれ定義しよう。
- 翻訳アプリの中から見つけよう。
- ユーザーが見る部分を言おう。
- 2リクエストを追うクリックから答えまで、一つのリクエストを追おう。
- クリックから画面までの各ステップを挙げよう。
- モデルがどこで動くか言おう。
- 遅れがどこで起きうるか言おう。
- 3データの置き場所アプリがデータを置く場所と、その理由を言おう。
- ブラウザー、サーバー、データベースを比べよう。
- 保存してはいけないものを言おう。
- それぞれの場所を誰が見られるか言おう。
- 4アプリのアーキテクチャ本物のAIアプリのアーキテクチャを描こう。
- アプリを一つ選ぼう。
- 各部分の箱を描こう。
- データの流れの矢印を描こう。
中級のPython
- 5モジュールコードをモジュールに分けて、インポートしよう。
- 関数を専用のファイルに移そう。
- 別のファイルでインポートしよう。
- モジュールにわかりやすい名前をつけよう。
- 6ファイルテキストファイルとJSONファイルを読み書きしよう。
- テキストファイルを読み書きしよう。
- JSONを保存して読み込もう。
- ないファイルに対処しよう。
- 7ライブラリPythonのライブラリをインストールして使おう。
- pipでライブラリをインストールしよう。
- ドキュメントを読もう。
- その中の関数を一つ使おう。
- 8再利用できるコード繰り返すコードを、再利用できる関数にしよう。
- 繰り返すコードを見つけよう。
- わかりやすい引数の関数にしよう。
- 短いdocstringを書こう。
ウェブアプリの基本
- 9HTML見出し、文、フォームがあるHTMLのページを作ろう。
- 見出し、段落、リストを使おう。
- 画像とリンクを足そう。
- テキストボックスとボタンがあるフォームを足そう。
- 10CSS色、余白、レイアウトのCSSでページの見た目を整えよう。
- 色とフォントを決めよう。
- marginとpaddingを足そう。
- flexboxでページを配置しよう。
- 11フォームと入力フォームにユーザーが入力した内容を読もう。
- JavaScriptでフォームの値を読もう。
- ページに戻して表示しよう。
- 空の入力を調べよう。
- 12小さなサイト2ページの小さなサイトを作ろう。
- ホームのページとツールのページを作ろう。
- 二つをリンクでつなごう。
- スマホの画面でも動くようにしよう。
モデルの組み込み
- 13推論学習と推論の違いを説明しよう。
- 学習は一度、推論はリクエストのたびに起きると言おう。
- 学習済みのモデルを保存して読み込もう。
- 予測一つにかかる時間を測ろう。
- 14モデルの入力モデルが期待する形に、モデルの入力を整えよう。
- 画像のサイズを変えよう。
- 特徴を正しい順に並べよう。
- モデルが使えない入力は拒もう。
- 15モデルの出力モデルの出力からラベルとスコアを読もう。
- 一番上のラベルを読もう。
- 確信度のスコアを読もう。
- しきい値より下なら「わからない」と示そう。
- 16分類器をつなぐ分類器の予測をウェブページに示そう。
- ブラウザーか小さなサーバーでモデルを読み込もう。
- ページからの入力を送ろう。
- ラベルとスコアを示そう。
プロンプトで動くアプリ
- 17プロンプトのテンプレートテンプレートとユーザー入力からプロンプトを作ろう。
- 空欄のあるテンプレートを書こう。
- ユーザー入力で空欄を埋めよう。
- ユーザー入力で指示が変わらないようにしよう。
- 18コンテキストモデルに必要なコンテキストを渡そう。
- 学年とテーマを足そう。
- 答えの例を足そう。
- コンテキストありとなしの答えを比べよう。
- 19答えの形式を確認モデルの答えが正しい形式かを確認しよう。
- JSONを求めよう。
- 解析してフィールドを確認しよう。
- 違うときは、やり直すかエラーを示そう。
- 20プロンプトの流れ二つのプロンプトの流れで、作業を終えよう。
- 一つのプロンプトで問題を作ろう。
- 二つ目のプロンプトで答えを確認しよう。
- ステップのあいだでデータを渡そう。
AIのAPI
- 21リクエストとレスポンスリクエストを送り、JSONのレスポンスを読もう。
- GETとPOSTのリクエストを送ろう。
- ステータスコードを読もう。
- JSONのレスポンスを解析しよう。
- 22APIキーAPIキーを秘密に保とう。
- キーを環境変数に保存しよう。
- 共有するコードにキーを入れないようにしよう。
- キーをブラウザーに置いてはいけない理由を言おう。
- 23制限と費用レート制限と利用の費用を説明しよう。
- レート制限のエラーを読もう。
- 100回のリクエストの費用を見積もろう。
- 制限されたら待って、やり直そう。
- 24APIを呼ぶPythonから、先生が管理するAIのAPIを呼ぼう。
- プロンプトを送ろう。
- 返事を読もう。
- エラーとタイムアウトに対処しよう。
AIのテスト
- 25テストケーステストケースとして、入力と期待する出力を書こう。
- テスト用の入力を10個書こう。
- 良い出力がどんなものか書こう。
- 手で実行しよう。
- 26信頼性信頼性を見るため、同じテストを何度も実行して結果を比べよう。
- 一つのプロンプトを10回実行しよう。
- 何回正しいか数えよう。
- ランダムさを下げて比べよう。
- 27端のケース端のケースとして、空の入力、長い入力、ひっかける入力をテストしよう。
- 空の入力と、とても長い入力を試そう。
- 別の言語の入力を試そう。
- アプリをだまそうとする入力を試そう。
- 28評価セット20個のテストの評価セットを作り、アプリに点数をつけよう。
- やさしいテスト、難しいテスト、ひっかけるテストを混ぜよう。
- 各答えを合格か不合格で採点しよう。
- 変更のたびに点数を記録しよう。
責任あるアプリ設計
- 29設計からのプライバシー設計からのプライバシーとして、アプリに必要なデータだけを集めよう。
- アプリが集めるデータをリストにしよう。
- 必要ないものを除こう。
- データをどれだけ保つか言おう。
- 30安全対策安全対策で、危険な入力と出力を止めよう。
- 危険な話題を除こう。
- 見せる前に答えを確認しよう。
- 止めたときは安全な返事を返そう。
- 31ユーザー体験ユーザー体験として、AIが答えているときと、AIが間違えることを示そう。
- AIの答えにラベルをつけよう。
- 間違った答えを報告する方法を足そう。
- 読み込み中を示そう。
- 32安全チェックリストアプリの安全チェックリストを書こう。
- プライバシー、安全、正確さを含めよう。
- そのリストでアプリを確認しよう。
- 不合格の項目を一つ直そう。
アプリ開発スタジオ
- 33アシスタントを計画学習アシスタントの機能とテストを書こう。
- 教科を選ぼう。
- 機能をリストにしよう。
- 先に評価セットを書こう。
- 34インターフェースを作るインターフェースとして、教科の選択と問題の画面を作ろう。
- 教科の選択を作ろう。
- 問題と答えの画面を作ろう。
- フィードバックの場所を作ろう。
- 35AIをつなぐAIをつないで、モデルからの問題とフィードバックを足そう。
- モデルで練習問題を作ろう。
- 答えを確認してフィードバックを返そう。
- 評価セットを実行しよう。
- 36自分のAI学習アシスタントテスト済みのAI学習アシスタントをデモしよう。
- アプリ全体をデモしよう。
- 評価の点数を示そう。
- フロントエンド、バックエンド、モデルを説明しよう。