ToyNLP: 从零实现自然语言处理经典模型
终于到了介绍 ToyNLP 项目的时候,这应该是个人今年投入时间最多的项目了。上篇文章写的 BERT 论文复现 其实就是这个项目开发过程中的一个记录。今天我们来简单谈谈这个项目的来龙去脉。
终于到了介绍 ToyNLP 项目的时候,这应该是个人今年投入时间最多的项目了。上篇文章写的 BERT 论文复现 其实就是这个项目开发过程中的一个记录。今天我们来简单谈谈这个项目的来龙去脉。

我在网上搜到了很多 BERT 复现的项目,有博客,也有 GitHub 代码仓库等。 这些文章和代码会告诉你他们在复现 BERT,介绍 BERT 是什么,原理是什么,代码要怎么写…… 但是几乎没有人提及是否复现了论文的指标,甚至也不会放当前实现的指标出来——这就让人不得不怀疑其正确性。所以在开始之前,我们先来谈一谈正确性的问题。
Rust 和 Python 结合的生态这几年发展的越来越好,很多高性能的 Python 库都是用 Rust 作为底层实现。 本文推荐一些优秀的 Rust 实现的 Python 库,希望能够帮到大家。
在看很多大语言模型的推理代码时,发现有一个非常重要的概念,就是 KV Cache。 这里我们简要介绍一下 KV Cache 的核心原理并给出基于 GPT-2 的代码实现以便于本地复现。 相关的实验和测试代码同样开源在toyllm.
在看 LLM + RL 的一些论文时,发现对于一些 RL 概念 (比如 GAE) 的理解还是有所欠缺, 所以就系统地学习了一遍深度强化学习(Deep Reinforcement Learning)相关的知识。选的书是 Foundations of Deep Reinforcement Learning1.
在阅读过程中,将书中介绍的一些算法(REINFORCE、SARSA、DQN(Double DQN)、A2C、PPO)用 PyTorch 从头实现了一遍,统一整理到了开源库, 也就是今天要介绍的 ToyRL。 为了更好地配合书一起学习,当前实现尽量贴近书中的伪代码。 另外每个算法实现都在一个 Python 文件内完成,虽然有些重复代码,但是避免了代码碎片化,更便于学习。
今天我们分析一下 redis-py 一个奇怪的报错并据此简单聊一下 Redis 的锁机制。
今天我们将介绍并复现 Deepmind 的一篇关于 LLM Speculative Sampling 的论文:Accelerating large language model decoding with speculative sampling1. 我们将用不到 100 行代码来复现这篇论文,并得到 2 倍以上的速度提升。
在 Deepseek R1 发布之后,看到了论文中 RL 的算法用的是 GRPO,而 GRPO 是在之前 Deepseek Math 的论文中被提出来的。GRPO 的目标函数如下:
之前在朋友圈/推特上推荐的几本 NLP/LLM 的书大家都比较喜欢,这里为了方便大家查阅,统一整理了一下 (另外加上了一些深度学习基础知识学习的书籍), 同时也发在公众号上方便大家收藏查阅。
100 道 Numpy 练习题的 Numpy 和 PyTorch 解答:Oh-Numpy, Oh-PyTorch.