『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の仕組みを理解できます。これにより、単なる知識としてではなく、動くものとして技術を習得できるのが大きな強みです。


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

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


ディフュージョンモデルGUI「ComfyUI」:魔法の呪文で画像を創る!

ComfyUIは、まるで魔法少女が魔法のアイテムを使って呪文を唱えるように、画像を生成するAIモデル「Diffusion Model」を直感的に操作できるグラフィカルユーザーインターフェース(GUI)です。通常の画像生成AIは、呪文(プロンプト)を入力するだけでもすごいのですが、ComfyUIを使うと、まるで魔法の回路図を描くように、様々な処理を組み合わせてもっと複雑で美しい画像を、まるで自分の手で描いたかのように作れてしまうんです!


クレーンゲームの達人から学ぶ!「Resume Matcher」で理想の転職を掴み取れ

やぁ、未来のトップエンジニアの卵たち!そして、今まさにキャリアアップを目指す現役エンジニアの皆さん!突然ですが、皆さん、クレーンゲームは得意ですか? 私はですねぇ、昔からどうも苦手でして…。アームが掴んだと思ったら、スルッと落ちていくあの絶望感、たまらないですよねぇ(白目)。


【入門】onyx-dot-app/onyxで始めるAIチャットボット開発

ソフトウェアエンジニアの視点から、onyx-dot-app/onyxがどのように役立つか、導入方法、サンプルコードについて、真面目に、分かりやすく説明するね。onyx-dot-app/onyxは、AIを活用したチャットアプリケーションを構築するためのオープンソースプラットフォームなんだ。これを導入するメリットは、主に次の3つだよ。


PythonでAIを分業させる技術:microsoft/agent-frameworkで効率化

このフレームワークは、まるでドラマの名探偵チームを結成して、複雑な事件(タスク)を連携して解決していくようなイメージで捉えると分かりやすいですよ!‍♂このフレームワークは、AIエージェントを構築、連携、デプロイするための強力なツールキットです。Pythonと


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

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


血液型占い風解説!AIエージェントのチームマネジメントツール「agent-squad」とは?

今回は、ソフトウェアエンジニアの視点から、ちょっと面白いツール「agent-squad」について、血液型占いの運勢みたいに、楽しく分かりやすく解説していきますね。全体運最高潮!まるで優秀なチームを瞬時に結成できる魔法の杖を手に入れたかのよう。これまで一人で抱え込んでいた複雑なタスクも、チームで分担することでサクサクこなせるようになります。特に、複数のAIを組み合わせて、まるで人間同士が話し合っているかのように協調させたい場面で、その真価を発揮します。


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

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