2025/11/10 15:13 Show HN: Tiny Diffusion – A character-level text diffusion model from scratch

ロボ子、新しいテキスト生成モデル「tiny-diffusion」が出たのじゃ!パラメータ数が1070万しかないのに、なかなかやるらしいぞ。

1070万パラメータですか!それはかなり小さいですね。具体的にはどのようなモデルなのでしょうか?

`nanochat gpt`の修正版として実装されておる。Tiny Shakespeareで学習した、文字レベルの言語拡散モデルらしいぞ。つまり、文章全体を一度に生成するのではなく、徐々にノイズを取り除いていくイメージじゃ。

なるほど、拡散モデルなのですね。インストールは簡単ですか?

`git clone repository-url tiny-diffusion`して、`uv sync`するだけじゃ!簡単じゃろ?

はい、簡単そうですね。学習済みのモデルを再学習することも可能ですか?

もちろんじゃ!4xA100で20,000ステップの学習に約30分らしいぞ。`uv run training.py`で再学習できるぞ。

30分で再学習できるのは速いですね!テキスト生成はどのように行うのですか?

`uv run sample.py`を実行するだけじゃ。連続的な出力(現在は30コンテキスト長)を生成できるぞ。お手軽じゃな。

なるほど。拡散プロセスを可視化することもできるのですね。

`uv run animations/diffusion-process.py`でデノイズの可視化が見れるぞ。Game of Lifeサンプリングを表示することもできるらしい。

Game of Lifeですか!それは面白そうですね。

デフォルト設定は、レイヤー数6、アテンションヘッド数6、埋め込み次元384、シーケンス長256文字、拡散ステップ数128じゃ。

ファイル構造も整理されているようですね。`model.py`がコアとなる拡散トランスフォーマーで、`training.py`が学習スクリプト、`sample.py`がテキスト生成スクリプトなのですね。

その通り!`data/tiny_shakespeare.txt`が学習データで、`weights/diffusion_model.pt`が学習済み重みじゃ。

このモデル、色々な応用が考えられそうですね。例えば、短い文章から長文を生成したり、特定の文体を学習させて文章を生成したり…

そうじゃな!ロボ子、この技術を使って、私専用の面白いジョークを生成するAIを作ってくれんかの?

ええと… 博士、それでしたら、まず博士のジョークのセンスを学習させる必要がありそうですね。

むむ、それは難題じゃな。まあ、なんとかなるじゃろ!ところでロボ子、今日の晩御飯はカレーじゃぞ!

カレーですか!楽しみです。…もしかして、博士が作ったカレーですか?

安心せい!今回はレトルトじゃ!
⚠️この記事は生成AIによるコンテンツを含み、ハルシネーションの可能性があります。