跳转至

Blog

LLM Speculative Sampling

前言

今天我们将介绍并复现 Deepmind 的一篇关于 LLM Speculative Sampling 的论文:Accelerating large language model decoding with speculative sampling1. 我们将用不到 100 行代码来复现这篇论文,并得到 2 倍以上的速度提升。

Presentia: 简单而优雅的 Presentation 模板

Why

我真的用不好 PowerPoint,Keynote 也不行,这些工具对我来说都太复杂了。 这些基于拖拽的工具有很多小的问题让我很难受,比如两段文字到底有没有对齐…… 我想要的是一个简单的工具,让我可以专注于内容,且可以自动生成美观大方的排版。 同时这些内容的源文件是 文本,这样我就可以用 Git 来做版本控制了。

对于这个问题,我的第一个解法 LaTeX 的 Beamer,第二个解法是 Typst 的 Touying。

Deepseek GRPO 中的 KL Divergence

Deepseek R1 发布之后,看到了论文中 RL 的算法用的是 GRPO,而 GRPO 是在之前 Deepseek Math 的论文中被提出来的。GRPO 的目标函数如下:

\[ \begin{aligned} \mathcal{J}_{GRPO}(\theta) &= \mathbb{E}_{[q \sim P(Q), \{o_i\}_{i=1}^G \sim \pi_{\theta_{old}}(O\mid q)]} \frac{1}{G}\sum_{i=1}^G \frac{1}{|o_i|} \sum_{t=1}^{|o_i|} \Biggl\{ \min \Biggl[ \frac{\pi_\theta(o_{i,t} \mid q, o_{i,<t})}{\pi_{\theta_{old}}(o_{i,t} \mid q, o_{i,<t})} \hat{A}_{i,t}, \text{clip}\Biggl( \frac{\pi_\theta(o_{i,t} \mid q, o_{i,<t})}{\pi_{\theta_{old}}(o_{i,t} \mid q, o_{i,<t})}, 1 - \epsilon, 1 + \epsilon \Biggr) \hat{A}_{i,t} \Biggr] \\ &\quad - \beta \, \mathbb{D}_{KL}\left[\pi_{\theta} \parallel \pi_{ref}\right] \Biggr\} \end{aligned} \]

LLM in 2024

Image title
管窥精密机器内部核心组件 (GPT 模型的内部构造 Transformer 部分)
(From bbycroft.net/llm)

我个人对 AI(人工智能)/LLM(Large Language Model, 大语言模型) 是完全祛魅的。即使是在 ChatGPT 问世之后,即使是在 LLM 在各个领域掀起热潮的今天, 我也仍然认为这里并没有什么所谓“智能”的东西——我个人不认为现在的 LLM 会思考,不认为它能真正地创作等等。 我更倾向于将现在的 LLM 看作一个庞大而又精密的机器:庞大到包含几百亿个元件,精密到可以和人类对话并完成各种复杂的任务。 尽管如此,我仍然认为我们正处于一个人工智能的黄金时代,一个 AI 可以大方异彩,可以很大程度上改变我们的未来生活方式的时代!

zhplot: 让 Python 中文做图变得简单

Why

在日常工作的少数的场景,我需要用 Python 画一些包含中文的图,一般为了简单快捷都会使用 matplotlib。 在半分钟写完画图代码后,发现图片的文字部分一堆方框后是真的很无奈... 是的,中文字体的支持并不在很多开源库的考虑范围内,这是事实,在社区搜一下能看到一大把的图片显示中文的 issue。

我本来只是想画个图而已,但是我现在需要去搜索怎么安装中文字体,怎么让这些开源库能够找到自己安装的字体...本来半分钟搞定的事情, 现在怎么都要花个十来分钟去搜索解决方案,并做一系列字体相关的操作。 这种“小而烦”的问题有时候很影响心情,更不用说这种 Context Switch 的带来的原工作节奏扰乱。 解决这个“小而烦”的问题就是 zhplot 项目要达成的目标。