YouTube動画「100+ AI Concepts for Developers Explained in 20 Minutes (Part 01)」(Codist チャンネル)で取り上げられている主要なAI概念について、開発者視点での実践的な意味合いや、業界の裏話・雑学を交えて分かりやすく解説します。
1. ニューラルネットワーク(Neural Networks)
人間や動物の脳の神経回路網(ニューロン)を数学的に模したアルゴリズムです。
-
どんな概念? 入力(データ)を受けて重み付け計算を行い、活性化関数(Activation Function)を通して出力を行う層(Layer)の集まりです。
-
💡 業界話・雑学
-
冬の時代の克服:1980年代〜90年代にもニューラルネットワークのブームがありましたが、「計算に時間がかかりすぎる」「データが足りない」という理由で下火になり「AIの冬」が訪れました。それを打破したのが2012年の「AlexNet」の登場と、GPU(グラフィックボード)の転用です。ゲーム画面の描写に使われていたGPUが、たまたまニューラルネットの巨大な行列計算に最適だったことが現代のAI革命の引き金になりました。
-
2. 学習と推論(Training & Inference)
AIモデルの開発と運用の2大プロセスです。
-
どんな概念?
-
学習(Training):大量のデータと正解を与えて、モデル内のパラメータ(重み)を最適化する工程(AIに勉強させる作業)。
-
推論(Inference):完成したモデルに新しいデータを与えて、回答や予測を出力する工程(テストを受ける作業)。
-
-
💡 業界話・雑学
-
コストのギャップ:巨大なLLMの「学習」には数十億円〜数百億円の計算コスト(電力とGPU利用代)がかかることで有名ですが、実はプロダクト運用における総コストの8割以上は「推論」にかかると言われています。世界中のユーザーが日々ChatGPT等にプロンプトを打ち込むたびにリアルタイムで膨大な計算が発生しているため、各社「いかに推論コストを下げるか(量子化や専用チップの開発)」に命をかけています。
-
3. トークナイゼーション(Tokenization)
テキストをAIが理解できる数字の最小単位「トークン」に分解する処理です。
-
どんな概念? AIは文章をそのまま読むことができず、内部ではすべて数値(ID)として処理します。「Unbelievable」を「Un」「believ」「able」という部分文字列(サブワード)に切り分けてID化します。
-
💡 業界話・雑学
-
日本語の「損」:英語だと「apple」は1トークンで済むことが多いですが、日本語やその他の言語はバイト単位で細かく分割されやすいため、同じ長さの文章でも日本語の方がトークン数が多くなりがちです。ChatGPTなどのAPI料金は「トークン数」で課金されるため、実は日本語でやり取りするとコストが高くつく(かつコンテキストウィンドウを無駄に圧迫する)という地味な悲しい現実があります。
-
不思議なトークン:トークナイザーの癖で、学習データ内にたまたま多く存在した「ネット掲示板のハンドルネーム(例: SolidGoldMagikarp)」などが単一の特殊トークンに登録され、それを入力するとAIがおかしくなる(Glitch Token)という現象が初期のChatGPTで話題になりました。
-
4. 埋め込み(Embeddings)
文字や画像などのデータを、意味の近さを計算できる多次元の「ベクトル(数値の配列)」に変換する技術です。
-
どんな概念? 例えば「王様」「女王」「りんご」という言葉を多次元空間に配置すると、「王様」と「女王」の距離は近く、「りんご」は遠い位置にマッピングされます。
-
💡 業界話・雑学
-
有名な「ベクトル演算の魔法」:Embeddingの説明で必ず引き合いに出されるのが、以下の有名なベクトル算式です。
ベクトル("王様") - ベクトル("男性") + ベクトル("女性") ≒ ベクトル("女王")言葉の意味が空間上の「方向」と「距離」として完全に数値化されているため、このような「引き算と足し算」で意味の検索や類推が可能になります。今流行りのRAG(社内文書検索AI)の根幹を支える技術です。
-
5. アテンション機構(Attention Mechanism)
文章中の「どの単語とどの単語が強い関連性を持っているか」を動的に見極める仕組みです。
-
どんな概念? 例えば「犬が公園を走っていた。それはとても大きかった」という文があったとき、「それ」が「公園」ではなく「犬」を指していることに注目(Attention)して文脈を読み解きます。
-
💡 業界話・雑学
-
翻訳のイノベーション:元々はRNN(再帰的ニューラルネットワーク)というAIの弱点(長文になると最初の文脈を忘れてしまう)を克服するために、2014〜2015年頃に研究者(BahdanauらやLuongら)が発案したものでした。これが後のTransformerの核となります。
-
6. トランスフォーマー(Transformers)
現代の生成AI(ChatGPT, Claude, Geminiなど)のすべてのベースとなっている超革命的なニューラルネットワーク建築(アーキテクチャ)です。
-
どんな概念? 「アテンション機構」だけを全面的に使い、データを並列処理(一度にまとめて処理)できるようにしたモデルです。
-
💡 業界話・雑学
-
伝説の論文 "Attention Is All You Need":2017年にGoogleの研究チームが発表したこの論文1本が、それまでのAI業界をすべて塗り替えました。論文のタイトルを直訳すると「アテンションさえあれば(他の複雑な仕組みは)何もいらない」という非常にロックなものです。
-
Googleの誤算:この革命的技術を発明したのはGoogleの研究者たち(8人の著者)ですが、当時のGoogleが慎重姿勢をとっている間に、OpenAIがこの技術を全面的に採用して「GPT」を作り、世界を驚かせました。ちなみに論文の著者8人は全員Googleを退職し、それぞれ大成功したAIスタートアップ(Cohere, Character.ai, Essential AIなど)を起業しています。
-
7. コンテキストウィンドウ(Context Window)
AIが一度に理解・記憶できる「入力+出力の最大トークン量」のことです。
-
どんな概念? いわゆる「AIの短期記憶の限界容量(作業デスクの広さ)」です。
-
💡 業界話・雑学
-
4Kから100万、そして数百万へ:初期のGPT-3.5のコンテキストウィンドウはわずか4,000トークン(原稿用紙数枚分)程度でした。そのため、長い会話をするとすぐ最初の方を忘れ「ニワトリ並みの記憶力」と揶揄されました。しかし、2024年以降はGeminiが「200万トークン(本数十冊分、動画数時間分を丸ごと読み込める)」を実現するなど、コンテキストウィンドウの巨大化競争が激化しました。
-
「針を探す(Needle In A Haystack)」テスト:長大なテキストのどこかにポツンと「秘密の単語」を隠しておき、AIがちゃんとそれを引き出せるかをテストする業界標準のベンチマークが存在します。
-
8. スケーリング法則(Scaling Laws)
「モデルのパラメータ数」「学習データの量」「計算量(GPUパワー)」の3つを増やせば増やすほど、AIの性能は対数関数的に比例して上がり続けるという経験則です。
-
どんな概念? AI開発における「巨大化こそ力(Big is Better)」の理論的裏付けです。
-
💡 業界話・雑学
-
OpenAIの基本哲学:2020年にOpenAIのアフレッド・カプランらがこの法則を定式化しました。「知能の質を上げる特別な魔法の工夫をするより、とにかくデータとGPUを100倍投資すれば賢くなる」という力技が証明されたため、GAFAMをはじめとする巨額のデータセンター投資合戦(GPU爆買い狂騒曲)が始まりました。
-
9. 事前学習と事後学習(Pre-training vs. Post-training)
現代のLLMを作る2つの主要フェーズです。
-
どんな概念?
-
事前学習(Pre-training):ネット上のあらゆるテキスト(Wikipedia、Webサイト、書籍など)を丸暗記させ、「次に続く単語を予測する(文補完成能力)」を獲得させる基礎工事。
-
事後学習(Post-training / RLHF・SFT):事前学習だけだと「質問に答える」のではなく「質問の続きの文章を作ってしまう」ため、人間に役立つ「対話エージェント(アシスタント)」として振る舞うよう教育・調整(RLHF: 人間のフィードバックによる強化学習など)する仕上げ作業。
-
-
💡 業界話・雑学
-
事前学習済みモデルは「狂った天才」:事前学習が終わった直後のモデルは、インターネットの知性をすべて持っていますが、倫理観も会話能力もなく、ただ「文章の続き」を予測するだけの状態です。これを「RLHF(Post-training)」で調教することで、丁寧で安全な「ChatGPT」の性格が完成します。業界では「野性のモンスターを人里で暮らせるように躾ける作業」例えられます。
-
10. 大規模言語モデル(Large Language Models - LLM)
数百億〜数千億以上のパラメータを持ち、人間のような自然な文章生成や推論能力を獲得した巨大なトランスフォーマーモデルのことです。
-
どんな概念? GPT-4、Claude 3.5、Llama 3、Geminiなどの総称です。単なる「単語予測機」の領域を超えて、コードの記述、論理パズル、創作など多岐にわたる知能を示します。
-
💡 業界話・雑学
-
創発的能力(Emergent Abilities):モデルの規模がある閾値(しきい値)を超えると、「設計者が教えてもいない能力(計算、ジョークの解説、プログラミングなど)が突如として開花する」現象が確認されています。なぜスケールを大きくするだけでこんな知能が生まれるのか、完全な数学的メカニズムは未だに解明しきれておらず、現代科学の最もエキサイティングな謎の一つです。
-
💡 動画タイトルの補足:「API / MCP / A2A」とは?
概要欄で紹介されている「API vs MCP vs A2A」についても簡単に雑学を添えておきます。
-
API:プログラム同士が通信する従来からの規格(Webの基本)。
-
MCP(Model Context Protocol):Anthropicが2024年に提案した、「AIモデルが外部データベースやツールに接続するための新しい標準規格」。AI版のUSBポートのようなものです。
-
A2A(Agent to Agent):単一のAIではなく、「プログラミング専門AI」「デザイン専門AI」「テスト専門AI」といった複数AIが協調して自律的に会話・タスク処理を行う未来のアーキテクチャのことです。
動画のPart 1では基礎的な機械学習・言語モデルの用語がカバーされていますが、Part 2以降ではこれら「AIエージェント時代」の実務開発概念へと踏み込んでいく構成になっています。
「RAGとMCPのどちらを採用すべきか?」という問いは、近年のAI開発で非常に多く見られますが、結論から言えば「比較する次元が異なる技術」です。
-
RAG (Retrieval-Augmented Generation) は、外部データを検索して回答精度を高めるための「設計パターン(手法)」
-
MCP (Model Context Protocol) は、AIアプリと外部システム(DB・ツール)を接続するための「通信規格(プロトコル)」
日常生活に例えると、RAGは「図書館で目当ての本を探して要約する技術」であり、MCPは「USB-Cのように何でも接続できる共通プラグ規格」のような関係にあたります。
アーキテクチャと動作仕組みの比較
RAGの仕組み:パイプライン型アーキテクチャ
-
情報をあらかじめ切り分けてベクトル化し、ベクトルDBにインデックス登録(事前準備)。
-
ユーザーの質問に対し、コサイン類似度などを用いて関連する文章(チャンク)を検索・抽出。
-
抽出した文章をプロンプトに埋め込んでLLMに渡し、回答を生成させる。
MCPの仕組み:Host - Client - Server 型プロトコルアーキテクチャ
-
MCP Server が外部APIやDB、システム(Slack, GitHub, 社内DB等)の「操作機能(Tool)」や「データ源(Resource)」を定義して公開。
-
MCP Host(Claude DesktopやIDEなど)上の MCP Client がそのサーバーと通信し、利用可能なツール一覧を動的に取得。
-
LLMが「このツールを実行して最新情報を取ってくる(または書き込む)」と判断すると、MCP経由でリアルタイムに実行・取得する。
機能と使用感の違い
実務での役割分担と組み合わせ(ハイブリッド構成)
実務のエージェント開発では「どちらか一方を選ぶ」のではなく、「MCPのツールの一つとしてRAGを組み込む」のが標準的な構成(最終形態)となります。
[ ユーザーの要求 ]
│
▼
[ AIエージェント (MCP Host) ]
│
├──▶【 MCP Server A 】: RAGサーバー(社内規程・PDFをベクトル検索して読み込む)
├──▶【 MCP Server B 】: 基幹DBサーバー(現在の在庫数や注文状況をリアルタイム取得)
└──▶【 MCP Server C 】: Slack Server(確認した結果をチームチャンネルに通知・書き込み)
【例:カスタマーサポートAIエージェントの処理フロー】
-
RAGで調べる(Read): 「返金規定はどうなっているか?」→ RAG経由でPDFマニュアルから条件を検索。
-
MCPで参照する(Live Read): 「このユーザーの直近の購入履歴は?」→ MCP経由で注文管理システムのAPIを叩いて取得。
-
MCPで実行する(Write): 「返金条件を満たしているので処理を実行する」→ MCP経由で決済システムの返金APIを発行。
のように役割を分担させることで、静的な知見の検索と動的なシステム運用を安全に両立できます。
RAGの検索機能をMCP Serverとして実装する場合の具象的なアーキテクチャ例やPythonでのコードイメージを教えてください。
全体アーキテクチャ例
以下は、最も標準的な「RAG via MCP Server」のシステム構成です。
┌─────────────────────────────────────────────────────────────┐
│ FastMCP (Python) │
│ │
│ @mcp.tool() │
│ def search_knowledge_base(query: str, top_k: int) -> str │
│ │ │
│ ├─ 1. OpenAI (Text Embedding 3) でクエリをベクトル化 │
│ │ │
│ └─ 2. ChromaDB / Qdrant から上位 K 件のテキストを取得 │
└──────────────────────────────┬──────────────────────────────┘
│ MCP Protocol (STDIO / SSE)
▼
┌─────────────────────────────────────────────────────────────┐
│ MCP Client (Claude Desktop / Cursor / LangChain Agent) │
└─────────────────────────────────────────────────────────────┘
Pythonコードイメージ(FastMCP + ChromaDB + OpenAI)
Pythonの公式ライブラリ mcp (または便利なラッパー fastmcp)を使うと、わずか数十行でRAGサーバーを作成できます。
1. 依存ライブラリのインストール
pip install mcp chromadb openai
2. rag_server.py の実装
import os
from chromadb import PersistentClient
from fastmcp import FastMCP
from openai import OpenAI
# 1. 初期化
mcp = FastMCP("RAG-Knowledge-Base")
openai_client = OpenAI(api_key=os.environ.get("OPENAI_API_KEY"))
chroma_client = PersistentClient(path="./chroma_db")
collection = chroma_client.get_or_create_collection("company_docs")
# 2. 検索用のヘルパー関数
def get_embedding(text: str) -> list[float]:
response = openai_client.embeddings.create(
input=text, model="text-embedding-3-small"
)
return response.data[0].embedding
# 3. MCP Tool としてRAG検索機能を登録
@mcp.tool()
def search_knowledge_base(query: str, top_k: int = 3) -> str:
"""社内のドキュメント・規程データベースをベクトル検索します。
Args:
query: 検索したい質問やキーワード
top_k: 取得する関連文書の数(デフォルト3)
Returns:
検索された関連ドキュメントのテキスト結合
"""
# ユーザーのクエリをベクトル化
query_vector = get_embedding(query)
# ベクトルDBから類似文章を検索
results = collection.query(query_embeddings=[query_vector], n_results=top_k)
documents = results.get("documents", [[]])[0]
if not documents:
return "関連するドキュメントが見つかりませんでした。"
# LLMが読みやすい形にフォーマットして返却
formatted_results = []
for i, doc in enumerate(documents, 1):
formatted_results.append(f"--- 関連文書 {i} ---\n{doc}")
return "\n\n".join(formatted_results)
if __name__ == "__main__":
# Standard Input/Output 形式でMCPサーバーを起動
mcp.run(transport="stdio")
ポイント解説
-
@mcp.tool()デコレータとDocstring Docstring(社内のドキュメント・規程データベースを...)は、そのままLLM(MCP Client)への命令・説明文として送信されます。LLMは「ユーザーが社内規程について質問してきたら、このツールを呼び出そう」と自動判断します。 -
stdio トランスポート
mcp.run(transport="stdio")を指定することで、標準入出力経由でClaude DesktopやCursorなどのローカルクライアントから呼び出せるようになります(リモートサーバー化したい場合はsseトランスポートを使用します)。 -
Claude Desktop 側の登録設定例 (
claude_desktop_config.json)JSON{ "mcpServers": { "company-rag": { "command": "python", "args": ["/path/to/rag_server.py"], "env": { "OPENAI_API_KEY": "sk-proj-..." } } } }
このように実装しておくことで、将来的にフロントエンドやLLMのモデルが変わったとしても、MCP Server側のコードは一切変更せずにそのまま使い回すことが可能になります。