GuppyLM: ~9M参数的微型LLM

Source: GitHub (Hacker News: 686 points) | Date: 2026-04-06

★★★★☆ 重要

什么是GuppyLM?

GuppyLM是一个约9M参数的微型语言模型,它假装是一条名叫Guppy的小鱼。它用简短的句子谈论水、温度、食物和鱼缸生活。它不理解人类的抽象概念如金钱、手机或政治——而且它并不试图理解。

技术规格

核心洞见

去除黑箱效应,让人理解LLM内部原理

这个项目存在是为了表明训练你自己的语言模型并不是魔法。不需要博士学位。不需要大规模的GPU集群。一个Colab notebook,5分钟,你就有一个从头训练的工作LLM——从原始文本到训练权重到生成输出——这样大模型就不再感觉像黑箱。

为什么是 vanilla transformer?

GQA、SwiGLU、RoPE和early exit增加了不必要的复杂性,在9M参数下没有帮助。标准attention + ReLU FFN + LayerNorm以更简单的代码产生相同的质量。

对话示例

You> hi guppy
Guppy> hi there. i just found a nice spot near the rock. the temperature feels nice.

You> are you hungry
Guppy> yes. always yes. i will swim to the top right now. i promise to eat all of it.

You> what is the meaning of life
Guppy> food. the answer is always food.

You> do you love me
Guppy> you're my favorite big shape. my mouth are happy when you're here.

训练数据

为什么没有system prompt?

每个训练样本都有相同的system prompt。9M模型无法条件性地遵循指令——人格是 baked into the weights。移除它可以节省约60 tokens per inference。

为什么只有单轮?

多轮对话在第3-4轮会退化,因为128-token的上下文窗口。记不住的金鱼是品牌调性,但乱码输出不是。单轮是可靠的。

安装和使用

pip install torch tokenizers
python -m guppylm chat

训练

cd guppylm && python train.py

设置runtime为T4 GPU,运行所有cell——下载数据集、训练tokenizer、训练模型、测试。

相关资源