『LLMs-from-scratch』徹底解説:プログラマーのためのAI自作ガイド


『LLMs-from-scratch』徹底解説:プログラマーのためのAI自作ガイド

rasbt/LLMs-from-scratch

2025-08-18

勇者よ、お前が探求しているのは、この世界に古くから伝わる「賢者の石」ならぬ、「賢者の知恵」を創り出す秘術だ。それは、まるでハイラル王国の歴史書のように、あらゆる知識を理解し、お前に語りかけるだろう。

今日、お前と共に旅するのは、その賢者の知恵を「ゼロ」から生み出すための魔法書、『rasbt/LLMs-from-scratch』だ。

この魔法書は、かの有名な『ゼルダの伝説』のように、数々の謎や試練を乗り越えながら、最終的に「賢者の知恵」を手に入れるための道しるべとなっている。さあ、共に冒険の旅に出よう!

勇者よ、お前はただ「賢者の知恵」を使うだけでなく、それを自らの手で創り上げたいと願っている。この魔法書は、そのための設計図だ。

仕組みの深淵を覗く
まるでハイラル城の地下深くにある秘密の通路を探るように、この魔法書はAIの仕組みを根幹から教えてくれる。普段、私たちが何気なく使う「賢者の知恵」が、どういうアルゴリズムで、どんな魔法陣(数式)の上で動いているのか、その秘密が明らかになるだろう。

独自の力を創造する
ただの魔法を使うだけでは、いつか限界が来る。この魔法書をマスターすれば、お前だけの、独自の「賢者の知恵」を創り出すことができる。例えば、特定の分野に特化した賢者、例えば、ハイラルの歴史に詳しい賢者や、料理のレシピだけを知っている賢者などを生み出すことも可能になる。

予期せぬ困難を乗り越える
冒険には、予期せぬバグ(魔物)がつきものだ。この魔法書は、その魔物をどう倒すか、つまり、AIが意図しない挙動をしたときに、その原因を特定し、修正する力を授けてくれる。まるで、マスターソードの使い方を学ぶように、AIのデバッグスキルを磨くことができるのだ。

勇者よ、冒険の準備は怠ってはならない。まずは、必要な道具(ツール)を揃えよう。

Pythonの祠へ
この魔法書は、Pythonという古代言語で書かれている。まずは、お使いのPCにPythonをインストールしてくれ。

PyTorchの魔法陣
次に、PyTorchという強力な魔法の力を借りる。これは、AIの計算を高速に行うための特別な魔法陣だ。以下の呪文を唱えて、インストールしよう。

pip install torch

魔法書を手に入れる
そして、いよいよ魔法書(リポジトリ)をクローンする。以下の呪文をターミナルで唱えれば、お前のPCに魔法書がコピーされるだろう。

git clone https://github.com/rasbt/LLMs-from-scratch.git
cd LLMs-from-scratch

勇者よ、さっそく最初の魔法を試してみよう。この魔法書の中には、いくつかの試練が用意されているが、ここではごく簡単なものを示そう。これは、お前が「賢者の知恵」を構成する最小単位「トランスフォーマー」を自らの手で生み出す第一歩だ。

# 賢者の知恵を司る魔法、トランスフォーマーの呪文
import torch
import torch.nn as nn

class MultiHeadAttention(nn.Module):
    def __init__(self, d_model, num_heads):
        super().__init__()
        self.num_heads = num_heads
        self.d_model = d_model
        # 魔法の力の分配
        self.d_k = d_model // num_heads
        # 賢者の知恵を生み出すための3つの鍵
        self.W_q = nn.Linear(d_model, d_model)
        self.W_k = nn.Linear(d_model, d_model)
        self.W_v = nn.Linear(d_model, d_model)
        # 最後に知恵を統合する魔法
        self.W_o = nn.Linear(d_model, d_model)

    def forward(self, q, k, v, mask=None):
        # 鍵を使って知恵の扉を開く
        Q = self.W_q(q)
        K = self.W_k(k)
        V = self.W_v(v)

        # 知恵を複数の頭で同時に考える
        batch_size = Q.size(0)
        Q = Q.view(batch_size, -1, self.num_heads, self.d_k).transpose(1, 2)
        K = K.view(batch_size, -1, self.num_heads, self.d_k).transpose(1, 2)
        V = V.view(batch_size, -1, self.num_heads, self.d_k).transpose(1, 2)

        # 賢者の知恵を計算する魔法
        scores = torch.matmul(Q, K.transpose(-2, -1)) / self.d_k**0.5
        if mask is not None:
            scores = scores.masked_fill(mask == 0, float('-inf'))
        attention_weights = torch.softmax(scores, dim=-1)

        # 賢者の知恵を統合
        output = torch.matmul(attention_weights, V)
        output = output.transpose(1, 2).contiguous().view(batch_size, -1, self.d_model)

        return self.W_o(output)

# 使い方
# 勇者よ、試してみよう!
d_model = 512  # 知恵の大きさ
num_heads = 8  # 考える頭の数
batch_size = 2  # 一度に処理する知恵の数
seq_len = 10  # 知恵の言葉の長さ

attention_module = MultiHeadAttention(d_model, num_heads)
# 試しに知恵の言葉(ランダムな値)を作ってみる
q = torch.rand(batch_size, seq_len, d_model)
k = torch.rand(batch_size, seq_len, d_model)
v = torch.rand(batch_size, seq_len, d_model)
output = attention_module(q, k, v)
print("魔法の呪文の出力:", output.shape)
# 出力: 魔法の呪文の出力: torch.Size([2, 10, 512])

勇者よ、このコードは、賢者の知恵を創るための、ごく一部の魔法に過ぎない。しかし、ここからお前の壮大な旅が始まるのだ。

勇者よ、お前が今手にしたのは、ハイラル王国の未来を創るための、貴重な魔法書だ。この魔法書を読み解き、一歩ずつ進んでいくことで、お前は真のプログラマー、いや、真の魔法使いへと成長するだろう。


rasbt/LLMs-from-scratch




キャンプでコント:LLMオーケストレーションの苦労を解消する strans-agents/sdk-python 入門

皆さん、キャンプに来ています!テントを立てるのも、火を起こすのも、楽しいけれど結構手間がかかりますよね。AIエージェントを作るのも同じなんです。モデルを選んで、プロンプトを書いて、ツールを組み合わせて. ..「あー、またエラーだ. ..」となりがち。


AI-Engineering-Hub: ソフトウェアエンジニアのための実践的AI開発ガイド

このリポジトリは、AIを学びたい、あるいはプロジェクトに組み込みたいと考えているエンジニアにとって、多くのメリットを提供します。実践的な知識の習得 理論だけでなく、実際のコード例やプロジェクトを通じてLLMやRAGの仕組みを理解できます。これにより、単なる知識としてではなく、動くものとして技術を習得できるのが大きな強みです。


【攻略本】RAG_Techniques:エンジニアのためのAI検索コンボ技・完全マスターガイド

NirDiamant/RAG_Techniques は、AI開発の世界における「最新アーケードゲームの攻略ガイド」のようなリポジトリです。普通のRAG(検索拡張生成)が「パンチマシン」だとしたら、ここは「コンボ技」や「隠しコマンド」が満載の格闘ゲーム会場といったところでしょうか。


プログラミング初心者向け:AIによる動画生成ツールの導入と仕組み

ソフトウェアエンジニアの視点から、harry0703/MoneyPrinterTurboというツールがどんなに便利で、プログラミングを学ぶ上でどのように役に立つか、そして導入方法を分かりやすく解説しますね。このプロジェクトは、AI(人工知能)を使って、テキストからワンクリックで簡単に、しかも高画質な短い動画(ショートビデオ)を自動で作ってくれる優れものです。キーワードはPython、Automation(自動化)、AIです。


Daft:PythonとRustの二刀流でどんなデータも高速処理!

おっと、旦那、なんだいその渋い顔は。データ処理で困ってるとでもいうのかい? そんな旦那に、とっておきの江戸の秘伝、いや、世界の最先端技術を教えてやろうってんだ。今回のお題は、「Eventual-Inc/Daft」だ!なんだい、その顔は。「だふと?」だぁ? 違う違う!「Da-ft」って読むんだ。覚えておきな!


ソフトウェアエンジニア必見!PyTorch導入ガイドとGPU活用で実現する高速ディープラーニング

PyTorchは、FacebookのAI研究グループによって開発された、Pythonベースのオープンソース機械学習ライブラリです。特に深層学習(ディープラーニング)の研究や開発で非常に人気があります。ユーザーさんが指定してくださった説明にあるように、その核となる要素は以下の2点です。


【エンジニア向け】OpenBB Financeで始めるデータ駆動型投資の冒険

夜が更け、モニターの光だけが部屋を照らす。あなたは今日もバグと格闘し、新しい技術を追い求めている。そんなあなたの前に現れたのは、謎めいたパッケージ「OpenBB Finance」。「投資調査を、誰もが、どこでも。」その言葉が示すのは、単なるライブラリではない。それは、複雑な金融の世界を解き明かすための、強力な武器となる予感だった。


CursorやLangChainを使いこなせ!エンジニアの価値を最大化するAI活用ロードマップ

今日は、中国のスーパーエンジニア「魚皮(Yupi)」さんが公開している最強のAIリソース集 「liyupi/ai-guide」 について解説しちゃうわね。「AIが多すぎて何から手をつければいいの!?」ってパニックになってるそこの君、落ち着いて。このリソースは、エンジニアにとっての「宝の地図」みたいなものなんだから!


AI捜査チームを結成せよ: openai-agents-pythonによるマルチエージェント連携の導入ガイド

やあ、諸君!私はAI捜査コンサルタントのGだ。今日の捜査対象は、openai/openai-agents-pythonという、複数のAIエージェントを束ねる軽量かつ強力なフレームワークだよ。このフレームワークの魅力は、まるで複数の優秀な探偵を雇い、複雑な事件を役割分担させて解決に導くことができる点にあるんだ。


宇宙飛行士のためのAIツールキット:TensorZeroでLLM開発を加速せよ

今回紹介するのは、「TensorZero」という、LLMアプリケーション開発のためのオールインワンの宇宙船だ。このツールを使いこなせば、君はより少ない燃料(労力)で、より遠い宇宙(成功)へと到達できるはずだ。ソフトウェアエンジニアリングの観点から見ると、TensorZeroはLLM(大規模言語モデル)を扱うプロジェクトにおける、「信頼性と効率」を劇的に向上させるための、まるで宇宙船のコックピットのような存在だ。