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をホーム画面に追加し、そこから開いて通知を許可してください。

ログイン ログアウト 表示テーマ 標準テーマ ダークテーマ ピンクテーマ チャット 1:1 チャット グループチャット 掲示板 お知らせ ニュース掲示板 ご意見掲示板 自己紹介 メインメニュー

1級

を作る全過程を説明し、で XSLM を自分で完成させます。 例を 1 つ選び、自分の設計とその理由を声に出して説明してみましょう。

受験資格

満10歳以上から受験できます。

画面共有による面接

SONUBのビデオ機能で画面全体を共有してから作業を進めます。

1級の面接課題 — XSLM を作る

  1. 審査官が の作り方 — 開発環境、とプロジェクト構成、、、、テキスト生成、、XChat、公開 — について質問します。受験者はその場で、自分の言葉で答えます。
  2. 答えたあと、受験者はで XSLM を自分で完成させます。ソースを入力して実行し、学習したを保存し、Runner を起動して、自分が学習させたモデルに XChat で答えさせたら、試験は終わりです。

外部の やほかの人に任せず、すべて自分で入力して実行します。作業中に審査官が、出力やの1行の意味を尋ねることがあります。

全級共通の案内

インタビュー質問の例:次の単語を当てるAI

審査官 学生が勉強ノートを書くときに次の単語を当ててくれるを作るとしたら、どう作り、うまく動くかをどう確かめますか?順を追って説明してください。

次の4つのステップで答えます。ステップごとに、何を話すかと短い例を示しています。

  1. 1. 目的

    そのAIが誰のために何をするのか — 何が入って何が出るのかを話します。例:「学生が『機械』と打つと『学習』を提案する。」

  2. 2. データ

    何から、どれだけ学ぶのか、テスト用に何を取っておくのかを話します。例:「自分のノートの文2,000個 — 80%で学び、20%はテスト用に取っておく。」

  3. 3. 作り方

    中でどう動くのか、何で作るのかを話します。例:「のが、どの単語の後にどの単語が来るかを数え、いちばん多く来た次の単語を提案する。」

  4. 4. 確認

    うまく動くとどうやって分かるのか — 測る数字を1つと限界を1つ話します。例:「テスト用の文で、本当の次の単語が提案3つの中に入る割合を数える。直前の単語1つしか見ないので、長い文では外れる。」

試験官はテーマを変えることがあります — たとえば迷惑メッセージの振り分けや昼食メニューのおすすめ。それでも同じ4つのステップで答えます。級が上がるほど各ステップをより詳しく説明し、インタビューにはこの質問のほかにも級ごとの質問と課題があります。

何を学ぶか

  1. の準備から・・・テキスト生成・・XChat・公開まで、 を作る各段階を自分の言葉で説明します。
  2. で XSLM のソースを自分で入力して実行し、学習させたを使って XChat で対話するところまで完成させます。
  3. 出力(損失・生成したテキスト・ の応答)を確認し、行き詰まったらを読んで直します。

どう評価されるか

  • XSLM を作る過程を、順番どおりに、よどみなく自分の言葉で説明したか。
  • 画面共有で XSLM を自分で完成させ、XChat で自分が学習させたモデルに答えさせたか。
  • 実行の出力を確認し、エラーをどう直したかを説明したか。

面接の予想質問

以下の20問は、面接で審査官が尋ねるかもしれない質問の例です。正解の単語一つを当てようとせず、声に出して説明してみてください。開くと説明の例と追加の質問が見られます。公式の試験問題ではありません。

全体の流れ・開発環境・データ

  1. 1

    審査官 とは何か、の準備から XChat での対話まで、作る順番の全体を説明してください。

    説明の例を見る

    説明の例 XSLM(Extra Small Language Model)は、 の開発を学ぶために SONUB で一から作る、とても小さな です。順番は、開発環境の確認 → フォルダー・settings.json・データ(prepare.py)→ (tokenizer.py)→ (engine.py・model.py)→ (train.py)→ テキスト生成(generate.py)→ の (runner.py)→ 対話画面 XChat(xchat.py)→ での公開(export.py)です。自分がさせたを保存し、もう一度読み込んで XChat で使えたら完成です。

    追加の質問 答えがおかしくても XSLM が完成したと言えるのはなぜですか?

  2. 2

    審査官 を作るのに pip のインストール・・・が要らない理由を説明してください。

    説明の例を見る

    説明の例 /ai/build のは、の中で によって動く 32bit の で、 3 がすでに入っています。ソースは Python のだけを使い、 を読み込まないので、pip でインストールするものはありません。は一から自分でさせ、外部の を呼ばないので、API キーも要りません。計算は、ブラウザーがまねている の で行います。

    追加の質問 同じソースを自分のコンピューターで動かすには、何があればよいですか?

  3. 3

    審査官 プロジェクトのフォルダー構成と、settings.json に入れる値を説明してください。

    説明の例を見る

    説明の例 作業はすべて ~/xslm で行います。 には元のテキスト(raw.txt)・・・が、checkpoints にはした(model.json)が入り、 のソースはプロジェクトフォルダーの直下に置きます。settings.json には width(のの大きさ)・(が一度に見るトークンの数)・merges( の結合回数)・steps(学習の繰り返し回数)・(一度に変える量)・seed・ などの値を書きます。

    追加の質問 学習を続けている途中で settings.json を変えると、どうなりますか?

  4. 4

    審査官 (raw.txt)の形式と、prepare.py がそれをどう扱うかを説明してください。

    説明の例を見る

    説明の例 raw.txt には、1行に1組の質問と答えを "Q: … | A: …" の形で書きます。prepare.py はそれを で読み、空行と重複した行を取り除いて、異なる行が5つ以上あり、すべて正しい形になっているかを確かめます。そのあと5行に1行を検証用に取り分け、/train.txt と data/val.txt に保存します(初期データでは学習用が 12、検証用が 3 になります)。

    追加の質問 自分の質問と答えを1組加えたら、どのファイルから作り直しますか?

  5. 5

    審査官 を学習用と検証用に分ける理由と、に変える前に質問と答えの組ごとに分ける理由を説明してください。

    説明の例を見る

    説明の例 はがに使わないテキストなので、モデルが丸暗記しているだけでなく、新しいテキストも扱えるかがわかります。テキストをトークンに変えたあとで適当な場所で切ると、同じ例が両方に入ることがあるので、先に質問と答えの組ごとに分けます。そうすることで検証の損失が正直な値になります。

    追加の質問 検証データを学習にも使うと、検証の損失は何を教えてくれなくなりますか?

トークナイザーとモデル

  1. 6

    審査官 がなぜ必要か、 の文字ベースの がどうやって語彙を学ぶかを説明してください。

    説明の例を見る

    説明の例 は文字ではなく数だけを計算するので、トークナイザーがテキストの断片ごとに番号をつけます。文字ベースの BPE は1文字ずつから始め、隣り合う2つの断片のうち最もよく出る組を新しい断片にまとめることを、settings.json の merges の回数だけ繰り返します。まとめた順番が規則になり、/tokenizer.json に保存されます。

    追加の質問 merges を増やすと、同じテキストの数と語彙の大きさはどう変わりますか?

  2. 7

    審査官 encode と decode とは何か、roundtrip: OK が何を確かめるのか、一度も見たことのない文字はどうなるのかを説明してください。

    説明の例を見る

    説明の例 encode はテキストを1文字ずつ数に変え、学んだ結合の規則を同じ順番で当てはめて数のリストにします。decode は数を断片に戻してつなげます。roundtrip: OK は、学習テキスト全体を数に変えて戻すと、元とまったく同じになったという意味です。新しい文字は学習されず、0 番の断片 � になります。

    追加の質問 をし直したら、すでに学習したのを使い続けられないのはなぜですか?

  3. 8

    審査官 (embedding)と位置とは何か、なぜ足し合わせるのかを説明してください。

    説明の例を見る

    説明の例 埋め込みは、の番号から数のベクトル(長さ width)を引く表です。同じトークンでも自分がどの位置にあるかを知る必要があるので、位置ごとに別々にする位置ベクトルを足します。どちらの表も最初はランダムな値で、学習のあいだに変わっていきます。

    追加の質問 位置ベクトルの表の行数が と同じなのはなぜですか?

  4. 9

    審査官 の Query・Key・Value と、(causal mask)を説明してください。

    説明の例を見る

    説明の例 Query は今の位置が探しているもの、Key はそれより前の各位置の特徴、Value は受け取る情報です。Query と Key から関連の点数を出し、 で点数をに変え、その割合で Value を混ぜます。因果マスクは各位置が自分とそれより前の位置だけを見られるようにするので、次のを予測するときに答えをのぞき見できません。

    追加の質問 あとからトークンが加わっても、前の位置の点数が変わってはいけないのはなぜですか?

  5. 10

    審査官 engine.py の Value と backward が何をするのか、そしてのあとの層(・・)を説明してください。

    説明の例を見る

    説明の例 Value は1つの数と、それが損失に与える影響(grad)と、演算ごとのの記録を持ちます。backward はを逆向きにたどってを足し合わせるので、何度も使われたの影響も合計されます。MLP はを width の2倍に広げてからまた狭め、残差接続は層の入力をその出力に足して情報がなくならないようにし、出力層(head)は語彙のすべての単語について次のの点数を出します。

    追加の質問 の数は何で決まり、どう数えますか?

学習とテキスト生成

  1. 11

    審査官 が何をするようにするのかと、損失を説明してください。

    説明の例を見る

    説明の例 目標は次のを予測することです。トークンが [a, b, c] なら、入力 [a, b] に対する答えは [b, c] です。交差エントロピー損失は正しいトークンに与えたのにマイナスをつけたもので、正しいトークンの確率が高いほど小さくなります。損失が小さくても、が本当のことを言うとは限りません。

    追加の質問 すべてのトークンに同じ確率を与えるモデルでは、損失と語彙の大きさはどんな関係になりますか?

  2. 12

    審査官 train.py の学習1ステップで何が起きるかを、順番に説明してください。

    説明の例を見る

    説明の例 から +1 個のの区間をランダムに選び、すべてのの grad を 0 にして、損失を計算し、backward でを求めます。勾配全体の大きさが 1 を超えたら 1 に縮め(クリッピング)、各重みから × 勾配 を引きます()。そのあとチェックポイントを保存し、step と を表示します。

    追加の質問 grad を 0 にしないと、どうなりますか?

  3. 13

    審査官 チェックポイントに何が保存され、学習を再開するときに何が確かめられるかを説明してください。

    説明の例を見る

    説明の例 checkpoints/model.json には、設定・・の()・・ステップ・乱数の状態が保存されます。まずに書いてから で入れ替えるので、保存が途中で止まっても前のチェックポイントは残ります。次に実行するとき、設定・トークナイザー・データが変わっていないかを確かめ、変わっていればわざと拒否し、同じなら保存したステップから続けます。

    追加の質問 データを変えて古いチェックポイントから学習を続けるのが危ないのはなぜですか?

  4. 14

    審査官 学習がうまく進んでいるかをどう確かめるか、学習の損失と検証の損失の読み方を説明してください。

    説明の例を見る

    説明の例 train.py はの前後に検証の損失を、ステップごとに step と を表示します。ステップごとに違う区間を選ぶので、loss は上がったり下がったりします。1つの数で判断せず、流れと、学習前後の検証の損失を比べます。学習の損失だけが下がって検証の損失が上がるなら、を疑います。

    追加の質問 が大きすぎると、損失はどう動きますか?

  5. 15

    審査官 generate.py がどうやってテキストを書くのか、・・seed が何をするのかを説明してください。

    説明の例を見る

    説明の例 チェックポイントを読んでを組み立て直し、最後の 個のを入れて次のトークンの点数を求め、1つ選んで後ろにつける、ということを繰り返します。temperature 0 は最も高い点数を選び、temperature が大きいほどが均等に広がります。top_k は上位 k 個の候補だけを残し、0 ならすべて残します。同じチェックポイント・質問・seed・設定なら、同じテキストになります。

    追加の質問 ランダムさを増やせば、が足りないモデルの答えはよくなりますか?

Runner・XChat・公開

  1. 16

    審査官 (runner.py)とは何か、どんな を開くのか、どう確かめるのかを説明してください。

    説明の例を見る

    説明の例 Runner は、チェックポイントを一度読み込み、 のリクエストを受けて generate を呼ぶ授業用のです。(ループバック)の settings.json の で、 は {"status": "ok"} を返し、 /generate は の から作ったテキストを返します。バックグラウンドで起動し、 で /health と /generate を呼び、空の JSON のような間違ったリクエストにはサーバーが落ちずに 400 を返すことを確かめます。

    追加の質問 学習し直したあと、Runner を再起動しなければならないのはなぜですか?

  2. 17

    審査官 XChat(xchat.py)が何をするのかと、XChat から 、そしてへの流れを説明してください。

    説明の例を見る

    説明の例 XChat は対話画面にすぎず、自分でを読み込むことはありません。質問を読み取り、の形式(Q: … A:)で包んで、Runner の /generate に の で送り、返ってきたテキストを表示します。そのテキストは Runner が保存された重みで書いたものです。Runner が止まっていれば、XChat は偽の答えではなく接続エラーを表示します。

    追加の質問 XChat が質問を送る前に "Q:" と "A:" をつけるのはなぜですか?

  3. 18

    審査官 完成した を でどう公開するか、どのファイルをアップロードするかを説明してください。

    説明の例を見る

    説明の例 export.py は(model.safetensors)・設定(config.json)・(tokenizer.json)・実行用のソースを hub フォルダーに集め、読み戻して何も変わっていないことを確かめます。()を書き、Hugging Face に Public のを作り、Write で install → push を実行します。別のフォルダーで git clone し、python3 export.py --restore . と python3 generate.py を実行して同じ答えが出れば公開の完了です。

    追加の質問 ファイルのせいで git push が拒否されたら、何を飛ばしたのですか?

  4. 19

    審査官 形式とは何か、に何を書くかを説明してください。

    説明の例を見る

    説明の例 safetensors は、先頭に のヘッダー(名前・形・位置)があり、そのあとに数を 4-byte の の値として順に並べて書いたのファイルです。実行できるを含まないので、安全に読めます。モデルカードには、が何か、ファイルの一覧、実行方法、、、限界(用なので答えはほとんどランダム)を書きます。

    追加の質問 すべてアップロードしたら、Access Token はどうしますか?

  5. 20

    審査官 面接で を自分で完成させるとき、本当に自分がさせたが答えていることをどう示すかを説明してください。

    説明の例を見る

    説明の例 prepare.py → tokenizer.py(roundtrip: OK)→ engine.py のチェックと model.py の形のチェック → train.py(・step・・検証・checkpoints/model.json)→ generate.py → runner.py(・/generate)→ xchat.py の順に実行し、それぞれの出力を見せます。最後に XChat で質問して答えが返ってくるのを見せ、 を止めると接続エラーになり、起動するとまた対話できることを見せます。こうすれば、答えが決まった文ではなく自分のチェックポイントから来ていることがはっきりします。

    追加の質問 答えがおかしく出たら、まず何を確かめますか?

練習試験を受ける オンラインのAI知識試験が、今の自分の位置を確かめる一番早い方法です。

ガイドライン

人工知能

エージェントツール

バイブコーディング

AI活用

AI資格

AI授業

IT基礎

チャット

掲示板

制作

コミュニティ

その他

用語辞典

知らない言葉を選んでみましょう。やさしい説明と関連用語が見られます。

その用語はまだありません。

用語を選ぶと説明が表示されます。