2
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

【例えて解説シリーズ】AIの基本を『学生生活における勉強』に例えて解説してみる

Posted at

このシリーズの目的と免責事項

本シリーズでは、主にIT業界で登場する様々なテクノロジーや技術を、なるべく平易な事柄に例えて解説することで、多くの方が「なるほど!」と思えるよう試みます。

どうしてそのようなことをする必要があるかと言われれば、著者の業務である技術インストラクターという仕事上、難しい事柄をいかに簡単なものに置き換えるかということは学びにおいて大変重要だと考えています。

一言だけ前置いておきたいのは、極力一般的に伝わりやすい事柄を取り上げているつもりではあるのですが、やはりどう頑張っても全ての人の共感を得ることが難しい場合があるため、当記事をご覧いただいてから『いやいや、この例えはおかしいでしょ』とか『かえってわかりづらい』なんていう方もいるかもしれませんが、多めに見ていただけると幸いです。

この記事でカバー”すること"と"しないこと"

2025年5月現在、世の中では『AI』という単語に満ち溢れ、AIの活用は日に日に一般的になってきています。
IT業界にいるようなスペシャリストの方だけがAIを使っているわけではありません。
そのため、この記事への期待値を事前に定義しておくと次のようになります。

  • AIが動く仕組みについて知りたい方
  • AIに関する基本を学ぶ際に登場する用語について知りたい方

AIを取り巻く技術環境は日に日にアップデートされていく一方です。そのため、常に最新かつ必要十分な情報を掲載し続けることが難しいです。

そうしたことも想定し、どの時代にも必要になりそうな概念や用語を基本としてこの記事では紹介しています。

また、基本的に主観に基づいて『AIの基本』と線引きをしているため、読み手によっては掲載情報が限定的だと感じる場合もあるでしょう。

その時はぜひ、コメント欄などで『これも追加してみては?』とコメントを頂ければ項目の追加を検討したいと思います。

今回の例え『学生生活における勉強』

学生生活の中での勉強といえば、日本では小学校、中学校、高校、大学などで一般的に行われる学びです。
時に、在学中のテストだったり、場合によっては入学試験に挑戦するなどにおいて、親だったり、塾だったり、様々な支援を通じて知識を得て挑戦するということもあるでしょう。

今回は、上記のような一般的な学生生活における学習ストーリーをベースに、AIインフラとそれに関連する用語に当てはめていきます。

学生=AIモデル(またはモデル)

学生は学習を通じて成長します。
AIモデルも同じく、学習を通じて“成長”し、より適切な判断ができるようになります。

AIモデルは、「データを与えられることで学習し、その知識をもとに応答や予測を行うもの」 と考えると理解しやすいでしょう。
また、一般的には、それぞれのモデルが 特定の分野に強い“専門家”のような存在 であるとも言えます。

実際のAI環境では、次のような特化型のモデルが活用されています。

  • 医療分野のモデル:病気の早期発見や健康促進のアドバイスを行い、診断支援や予防医療に貢献します
  • 金融分野のモデル:不正取引の検知やローン審査などを通じて、リスク管理や信用評価を支援します
  • 製造業のモデル:製品の品質確認や故障の予測により、生産性向上やメンテナンス最適化を実現します
  • 気象・環境モデル:台風の進路や雨雲の動きを予測し、災害対策や日常生活の安全に役立ちます

上記はシンプルな例ですが、私が所属するRed Hatでは次のようなURLで各業界でのAI採用例も掲示しています。(一部の記事は英語のみです)

幅広い分野の学習を終えた優等生=LLM

上記の説明では、モデル=特定領域の専門家と解説しました。
しかし、LLM(大規模言語モデル)と呼ばれるモデルは、1つの領域にとどまらず、広範囲な知識と文脈理解能力を備えています。
平たく言えば、なんでも知っている優等生 のような存在です。(一般的なモデルとの比較)

LLMは、インターネット上の膨大なテキストデータ(百科事典、ニュース記事、小説、コードなど)をもとに、事前学習(pretraining) というプロセスを経てトレーニングされます。
この段階では、単語や文のつながり、文脈、構文、さらには曖昧な質問への対応方法までを含めて、大量の情報を統計的に学び取ります。

また、Transformerというニューラルネットワークの構造を使うことで、文中の単語が互いにどのように関連しているか(自己注意のメカニズム)を長距離で把握し、自然な文章生成や複雑な推論も可能にしています。

その分、通常のモデルと比べて取り扱うデータ量や計算リソースは桁違いです。高性能なGPUクラスタや分散処理の仕組みが必要で、個人や中小規模では扱うのが難しいほどの演算能力が求められます。

言い換えれば、LLMは「どんな問題にもある程度の答えが返せる万能選手」でありながら、「鍛えるにも、使うにもコストが高い大型選手」とも言えます。

LLMは万能性が魅力である一方、汎用モデルであるがゆえに専門性に欠けることもあります。そのため、実際のビジネスや研究では、ファインチューニングやRAGといった手法を組み合わせ、特定の領域に適応させる工夫が必要です。
また、LLMは誤った情報を自信満々に出力することがあり、結果の検証と責任ある利用も欠かせません。

学生が使用する教科書や参考書=データ

AIモデルに対して何か問いかけをしてみて、出てきた回答の品質が良かったり、悪かったりするのは基本的にはAIがどのようなデータを使って学んできたかに依存します。

人間にも同じことが言えます。基本的に学んだことは答えられます。(忘れていなければ)
つまり、AIモデルの品質=どのようなデータを使ってトレーニングされたかによります。

また、学習に使用するデータの品質も重要です。データ自体の信頼性が高いことはもちろん、最新の状態であることは適切な結果のために重要なことだといえます。

このデータは、物理ストレージに保存されるわけですが、AIインフラでは大量のデータを使用するため容量拡張性に強く、多くのプラットフォームに対応できるオブジェクトストレージを使用します。特に、Amazon S3でよく知られるS3プロトコル対応のストレージを採用するケースが多いです。

※実際にはS3以外が選ばれるケースもあるのですが、AIインフラのメジャーな選択肢としてS3がよく出てくるため、今回はS3主体で記事を構成しています。

S3と聞くだけで、『AWSのサービスを必須で使うんだろうな』と思う人もいるかもしれませんが、現在ではオンプレミス環境でも手軽にS3ストレージを使える方法が多数用意されています。

  1. 専門的なストレージベンダーが提供するS3ストレージ機能を使用する
  2. ソフトウェア定義で構成するS3ストレージを使用する
  3. 小規模環境でも使えるNASに実装されたS3ストレージを使用する

いずれのストレージを使用するにせよ、AIインフラであってもストレージに関する知識の出番は十分にある ということです。(製品選定、設計、構築、管理、運用、トラブルシュートなど)

専門的なストレージベンダーが提供するS3ストレージ機能を使用する

例えば、次のようなベンダー提供の製品ではS3が使用できます。
※サムネイルが綺麗に表示されるページを優先的に掲載しています。
※以下のいずれものストレージ製品がS3プロトコル対応製品です。
※著者自身が把握しているものだけを載せているので、今後知見が広がり次第増やす予定です。

ソフトウェア定義で構成するS3ストレージを使用する

小規模環境でも使えるNASに実装されたS3ストレージを使用する

データが最新/正確である必要性の解説

1つ例を挙げてみると、『鎌倉幕府の成立は何年か?』という問題があった場合を考えると、ある人は1192年と答えるでしょうし、また別の人は1185年と答えるかもしれません。
※ちなみに私は1192年として学生当時は学習をしました。

しかし、2025年現在では1185年として教えられています。

つまり、私自身が仮に学生とした場合、正確で最新のデータを用いないと適切な回答ができないのと同じように、AIモデルに対しても、常に最新で正確なデータを提供する必要があるということです。

では、AIモデルに対しどのデータを使ってモデルを育成するかを選定する存在が必要となりますが、それは後述します。(データサイエンティストの項)

さらに、ここで基本的かつ重要なことを1つ強調しておきます。
『教科書や参考書は持っているだけではいけません』

書店でこれらを買い揃えたから賢くなるかというと、これらを活用して学習をする必要があります。

教科書や参考書を使って勉強する行為(つまり学習)=トレーニング

学生もAIモデルも、初期段階では学習を行っていないため、期待されるテストの結果や応答内容を出すことは難しいです。そこで、どちらに置いてもトレーニングが必要です。

トレーニングとは、学生でいえばテストや入学試験において一定の点数を取るという目標に向けた対策学習です。
AIモデルにおいては、理想とする出力結果に向けて、保有するデータをベースにAIモデルの成長を促す行為だといえます。

学生のケースでは、自学自習だったり、塾に通ったり、家庭教師の先生を雇ったり、保護者が教えたりなど、学習のスタイルはいくつもあります。
AIモデルの場合でもいくつもの学習手法があります。それを表にまとめてみたのが次のものです。

人間の学習スタイル AIにおける学習手法 説明
自学自習 教師なし学習(Unsupervised Learning) 解答(正解ラベル)が与えられず、データの構造やパターンを自力で見つける。例:クラスタリングや次元圧縮など。
塾に通う(同じ教材・同じ解法で訓練) 教師あり学習(Supervised Learning) 入力と正解をセットで学ぶ。画像分類・文章の感情判定など、最も一般的な学習法。
家庭教師がついて個別に指導 転移学習(Transfer Learning)やファインチューニング すでに学習済みのAIモデル(大規模言語モデルなど)に、特定分野だけを追加で教える。まさに「プロ家庭教師」の指導のようなもの。
保護者が指導(たまに間違った教え方もある) 弱教師あり学習(Weak Supervision)やノイズのあるラベル 不完全・不正確なラベルでも学習させる。現実ではラベルミスや主観的判断があるケースに対応。
模試を繰り返し受ける 強化学習(Reinforcement Learning) 何度も試して報酬(点数)をもらいながら最適行動を学ぶ。試行錯誤型の学習。例:ゲームAIや自動運転。

同じデータを使ったとしても、どの学習の方法を採用するかによってもモデルの性質や品質は変わるということが伝われば幸いです。これら様々な学習の方法をまとめて、機械学習(Machine Learning/ML) と呼びます。

特定の分野や志望校に向けた特化的な対策のための教育=ファインチューニング

勉強のやり方の1つとして、特定の志望校への入学や企業への入社などを見据えた対策学習というものもあります。

受験であれば過去問を使用した対策や学習塾が提供する特定校の受験に特化した特別コース、企業への入社であれば面接などの入社試験対策がそれに該当します。

AIモデルトレーニングにおいても、特定の専門分野での専門用語や企業内で使用される専門用語などをAIモデルに学習させることによって、よりそのAIモデル使用者の組織にマッチしたAIモデルとすることができます。
この際、ファインチューニングでは特定の分野のデータを追加学習させることで、モデルの中の 知識(重み) を、その分野に合わせて微調整していきます。

学生にとっても、何度も同じ単元を繰り返し学ぶことで、「ああ、ここは特に重要なんだな」と強く記憶に残る——こうした経験は、まさにファインチューニングの仕組みそのものです。

また、学校の授業でも 「ここは試験に出ますよ!大事だから2回言いましたよ!」 と先生が強調する場面などもありますが、これも追加の学習を通じて重要箇所に「重みづけ」をしているという意味で、ファインチューニングに非常に近い考え方です。

(余談) 必要な時に教材を参照して調べて答えを導く=RAG(検索拡張生成)

ファインチューニングが「繰り返し学習して特定分野に強くなる」ことだとすれば、RAG(Retrieval-Augmented Generation) は 「必要な時に教科書やノートを開いて答えを導く学習スタイル」 にあたります。

たとえば、模試で「この問題、授業でやったような……」と思った時、ノートを見返したり、教科書の該当ページを調べたりして、答えを導き出す——これがRAG的なアプローチです。
ちなみに、Red Hat認定資格試験でも試験受験者は製品ドキュメントやガイドを確認しながら受験することが出来ますので、これもまたRAGのアプローチだと言えます。

EX200_JP_what-you-need-to-know.png

RAGでは、AIモデル自体がすべての知識を覚えているわけではなく、外部のデータベース(文書やFAQ、ナレッジベースなど)から必要な情報を検索し、それを元に回答を生成します。つまり、モデルは「常に勉強道具(知識ベース)を手元に持ち、都度参照しながら答える」のです。

ファインチューニングとRAGの対比図

学習スタイル ファインチューニング RAG(検索拡張生成)
例え 過去問演習や特化コースでの繰り返し学習 教科書やノートを参照しながら答える試験対策
学習のしかた 特定分野を重点的に追加学習して知識に定着させる 問題が出たときに、必要な情報を検索して答える
モデルの挙動 モデル自身の「頭の中」に知識が追加される モデルの「外にある知識ベース」を都度参照して答える
メリット 知識が深く定着し、即答性能が高い モデル本体を再学習せずに新情報を扱える/知識を素早く更新可能
デメリット 分野が増えるたびに再学習が必要 検索結果の品質に依存し、誤情報を引く可能性もある

テスト対策を頑張ったのに山が外れてしまった状況=データドリフト

定期テストや模試、本番の試験などに十分に備えてきたはずが、実際に受験を迎えてみたら 『自分が準備してきたところではない問題ばかりが出てしまった』 なんてことはありませんか?一般的にこうした状況を 『山が外れた』 と表現することがあります。

AIモデルにおいても、数々のトレーニングを経た結果、モデルも一定の水準に達したと思いきや、環境や時代の変化などが起きることにより、トレーニング済みの内容だけではもはや正確な予測や期待される回答が出せなくなる場合があります。これはまさに、勉強で“山が外れた”ときとよく似た状況です。

このように、準備してきた内容と実際の出題範囲にズレが生じるような状況は、AIの世界ではデータドリフトと呼ばれています。

データドリフトの発生は、AIモデルの運用にとって望ましいものではありません。
そのためデータサイエンティストは再学習を行うことで、AIモデルが再び正確な予測や判断を行えるように再調整する必要があります。環境に合わせて学び直す必要があるのは、私たちもAIモデルも同じなのです。

そのためにある考え方が、本記事後半にあるMLOpsという考え方です。

学生個人の特性を見極めようとしてくれる先生や保護者=データサイエンティスト

学生生活における勉強というストーリーにおいては、理想とする結果に向けて学習計画を立てたり、その生徒の成績や理解度などのデータから、より効果的な学習方法や注力すべき単元を特定したり、個々の生徒に合わせた学習教材を最適化したりする人が、AI分野におけるデータサイエンティストの役割に近いと言えるでしょう。

但し、少し補足をしておくと 『一方的に決まったカリキュラムに沿ってだけ指導する形式の先生』は、データサイエンスの視点においては限定的 と言えます。一人一人の学生の学習進度や目標との距離などを見極めながら指導方法を柔軟に調整することこそがデータサイエンス的なアプローチであり、それがなければデータサイエンティストの役割とは異なります。

逆に、子どもの学習に熱心な保護者で、常に子どもの成績や理解度を把握し、そのデータに基づいてその子に合った学習内容や教材を検討してあげられる保護者の視点は、データサイエンス的な考え方と共通する部分がある と言えるでしょう。

AIインフラにおけるデータサイエンティストは、モデルのトレーニングに用いるデータの選定、前処理・加工、学習の実施、精度の検証、モデルの保存などを担当します。場合によっては、トレーニング済みモデルを他のアプリケーションが利用できるようにAPI化したり、本番環境へデプロイすることもあります(この部分はMLOpsエンジニアと連携することもあります)。
こうした一連の作業は、主にPythonなどの言語を用いて行われ、Jupyter Notebookのようなノートブック形式の環境で進められることが多いのが実情です。

こちらからは、データサイエンティストが使用する主要ツールの1つであるJupyter Notebookを体験できます。

見方のポイントとしては、ノートブック形式のような体裁でありながらもその途中にコードが挿入されており、
上記のノートブック上から実際にコードによる処理を行え、その結果をノートブック上に保存、表示ができるという点です。

sample.py
from matplotlib import pyplot as plt
import numpy as np

# Generate 100 random data points along 3 dimensions
x, y, scale = np.random.randn(3, 100)
fig, ax = plt.subplots()

# Map each onto a scatterplot we'll create with Matplotlib
ax.scatter(x=x, y=y, c=scale, s=np.abs(scale)*500)
ax.set(title="Some random data, created with JupyterLab!")
plt.show()

そのため、一連の処理の全体像を資料化しつつも処理も行い、ビジネスの中での提出物のようにも扱える点が魅力だと言えます。

さて、少し話を進めますとデータサイエンティストが、学習対象のデータ(=学生生活における学習で言えば教材や注力する単元)を選定しますが、仮にそのデータに欠損があったり、正しく使えない状態だったらどうなるでしょうか?
——ここで必要なのが、データエンジニアの存在です。

品質の約束された教材の提供者=データエンジニア

学校の先生や塾の指導者などは教えるプロフェッショナルではありますが、教科書や参考書を彼ら自身が作るのでしょうか?

殆どの場合は、出版社によって作成、印刷、商品化された教材を使用していると言えます。
このような場面において、データエンジニアは教科書や参考書の原稿執筆者の原稿に対して編集や修正を行う人がそれに相当すると言えます。

学習データとなるこれらの書籍に、誤字脱字がないか、乱丁はないか、適切な言語で書かれているかなど、利用可能な形にデータが整えられているかを担当します。

AIインフラストラクチャにおいてデータエンジニアは、AIモデルがデータを使用可能な状態にあることを保証します。データの品質そのものが正確なものであることを確認したり、不要なデータがあればそれを削除したり、データのフォーマットがおかしければ修正し、欠損しているデータがあればそれも直すようなことを行います。

これらの一連の活動を含むデータエンジニアの行うアクティビティは、ETL(Extract, Transform, Load)と呼ばれます。

素晴らしい教材と先生の指導が相まって生徒の成績が伸びるように、
データエンジニアによって洗練されたデータ提供とデータサイエンティストによるデータ選定と適切なトレーニングを経て、AIモデルはより研ぎ澄まされた結果を出力できるようになると考えれば非常にわかりやすいと思います。

学生生活全体=MLOps(機械学習の継続的な改善・検証・運用)

本記事では、学生の学業にフォーカスし、それをAIに関連する各要素に結びつけて例えてきました。

長きにわたる学生生活は、学年や時代が変化するたびに学び(継続的なトレーニング)、その知識がどの程度身についたかを確かめ(定期テストや模試などで)、到達点に応じて目標を調整したり、時に必要に応じて追加学習を行ってみたりという点で、終わらないループのようなものです。

継続的な学びを通じて自分自身の価値を高めていくという点は、AIインフラにおけるMLOpsが目指している、モデルの価値を持続的に最大化する点と大変似ていると言えます。

具体的にMLOpsでは 「モデル開発 → 本番投入 → 監視 → 再学習」 の継続的改善のループを常に回すことで、モデルの価値の継続的な向上を目指します。

ここで、学生時代の教育とAIのモデルの向上の2つにおける継続的な改善のための各段階の活動を対比してみました。

教育の例 MLOpsにおける対応
教育課程が進む・時代が変わる データ分布が変化する(データドリフト)
学習到達度を確認するテスト モデル精度の検証・評価
目標に応じた学習計画の再設定 モデル再トレーニング/ハイパーパラメーターの調整
定期的な模試や内申点による効果測定 モデルパフォーマンス監視・ログ分析
生徒ごとの理解度に応じた指導の最適化 パーソナライズドモデル/A/Bテスト運用

MLOps以外にも、DevOpsやGitOpsなど似た用語のものもありますが、いずれも特定のソフトウェアやツールを指すものではなく、継続的な改善をするためのツール間連携や関連組織との協業方式などを包括的に指したものです。

もちろん、学習をするのは学生だけに限らず社会人になって以降も続くとも言えますので、この記事を書いている私やお読みいただいているあなたも、仕事の中におけるキャリアを高めるためのループにいるとも考えられます。

あとがき

私もまだまだAIインフラ方面の学習については始めたばかりということもあり、この記事で触れている内容は全体像のごく一部でしかありません。また表現の精度などについても見直す必要があるところがあると思いますので、追って記事を訂正/加筆を行っていく予定です。

付録 - お役立ちリンク

2
2
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?