春节后开工LLM学习记录

春节期间手机完全被DeepSeek-R1刷屏了, 无论是海内外媒体都疯狂讨论DeepSeek-R1. 趁着假期返工花了一整天大致了解了DeepSeek-R1的实现主体. 之后刚好同一天Andrej Karpathy发了Deep Dive into LLMs like ChatGPT. 查阅了一天资料, 有些心得. 写下此文, 也是记录自己如何了解新的技术.

记录

20250206:0910 早上到公司 
目标: 了解DeepSeek-R1以及为什么R1会这么火 
背景: 无任何关于DeepSeek-R1的资料阅读, 没读过论文

20250206:0932 动作: 刷hacker news关于deepseek的post, 看各个thread的观点
    * 动作: 跟着Simon Willison的blog(DeepSeek-R1 and exploring DeepSeek-R1-Distill-Llama-8B)实现本地ollama跑DeepSeek-R1-Distill-Llama-8B-GGUF
    * 收获: 了解了DeepSeek-R1-Zero, DeepSeek-R1以及DeepSeek蒸馏模型的关系.

20240206:1014 动作: 看yt视频# DeepSeek R1 Theory Overview | GRPO + RL + SFT
    * 收获: 
      * 整个DS-R1被训练出来的脉络, 博主画了个图, 表达很清楚, 见附录[1]
      * 什么是GRPO以及GRPO公式大概的含义
      * 相比于OpenAI闭源的COT推理能力[2], DS开源了如何实现推理模型
      * 知道了GRPO是R1的重点

20240206:1030 动作: 看yt视频: # Group Relative Policy Optimization (GRPO) - Formula and Code
    * 衍生动作: 
      * 看yt video视频 # Proximal Policy Optimization (PPO) - How to train Large Language Models
      * 看了看知乎上关于GRPO的讨论和解析
	* 收获: 
        * 了解了PPO的大致流程
        * 大致了解了GRPO, 但还是不懂, 需要找个场景实现一下. #TODO 
        * 刷到了王兴兴关于GRPO的讨论和解析[3], 深入研究下GRPO在机器人控制的应用中 #TODO

20240206:1414 动作: 看yt视频 # Building a fully local "deep researcher" with DeepSeek-R1
	* 收获: 
        * 了解了如何用langchain使用r1达到像openai deep research类似的效果, 以后可以考录用api部署一个试下 #TODO

20240206:1442: 动作: 看yt视频 # Paper: DeepSeek-R1: Incentivizing Reasoning Capability in LLMs via Reinforcement Learning
	* 收获: 
        *  自回归模型的输出可以被看成是一个RL的过程
        *  大致跟着视频过了一遍论文, 没仔细看
        *  这个视频长度大概一个小时, 百分之80的时间都在讲GRPO, 所以GRPO一定是R1的重点.

20240206:16:00 - 20240207:11:30:  动作: 看yt视频 # Deep Dive into LLMs like ChatGPT
	* 收获(这个视频是我看到关于LLM最干的视频, 强烈推荐观看原版3个小时): 
        *  LLM的训练流程为预训练(Pre-Training)产生基座模型(Base Model),
           但是Base Model不具有对话的能力, 因此要通过后训练(Post Training),
           通过SFT(Supervised Fine-Tuning)的方式, 输入多轮对话的数据, 来让
           模型有对话的能力. 最后通过Post Training RL, 来让模型有推理能力.
        * PreTraining阶段, 数据集和分词过程决定了Base Model的效果
        * PreTraining阶段, 通过不断改变context size, 模型能够实现in context learning能力
        * 由于Base Model本质上根据互联网数据的词语接龙, 因此幻觉一定会存在
        * 幻觉可以通过改变post training SFT的数据集, 或者使用tool use能够减少
        * 模型需要更多的token去做思考
        * 模型不擅长做in memory computing
        * 要让模型能在post training中实现tool use的能力,就是在SFT中加入pre training没见过的token
        * knowledge in the parameters => vague recollection 
        * knowledge in the token of context window => working memory 
        * 以人阅读一本教材进行学习为例, 训练模型学习书中的背景知识就是pre training, 学会书中的例题称为post training. 而完成课后习题就是post training with RL 
        * 在最后一个阶段post training with RL, 需要喂模型课后题(prompt), 并且人类给出打分. 由于这个过程需要进行很多次, RLHF通过拟合人类回答的偏好. 来实现自动训练.
        * RLHF不算RL, 而是微调模型来达到人类偏好
        * DeepSeek R1的aha moment和AlphaGo Zero的Aha moment很像, 训练效果都是非线性的, 一开始上升非常缓慢, 到了某一刻急速上升.
        * 通过[4]可以了解AI的最新动态
        * 通过[5]可以了解AI的排名

总结

之前我也在别的地方刷到R1实现了更低成本的训练, 例如使用PTX而不是raw cuda等, 这算infra层的创新. 但是我看的视频下来 开源的推理模型, 以及纯RL而不用SFT(DeepSeek-R1-Zero) 或许是R1更大的意义.

剩下的TODO

  • 找一个场景复现PPO以及GRPO
  • 刚好在2月7号, o3-mini开源了思维链的过程, 对比一下
  • 了解下RL-LLM的现状, 输出一篇文章
  • 阅读R1原文, 自己总结一下, 并对比这篇文章, 了解更多的技术细节.
  • pi0开源了, 研究下pi0
  • 借助xxx平台提供的api, 实现一个属于自己的deep research. 也算是往agentic ai迈了一步.
  • 总结下DS的发展路线, 输出一篇文章

附录

[1] (yt video # DeepSeek R1 Theory Overview | GRPO + RL + SFT)各个模型关系图

[2] Hiding the Chains of Thought - OpenAI

[3] DeepSeek GRPO在简单控制系统上和PPO的对比

[4] AI News

[5] LM Arena for model rankings


20240208更新

接着上片文章, 在2月7日的时候, 我一直在找如何请求deepseek-r1 api的方式. 因此现在ds大火, 服务器一直繁忙. 想找个渠道试一下r1都难. 也尝试了硅基流动以及一些其他的api提供商. 因为是尝试, 不太想直接往api服务商充钱. 于是, 截至到今日(20250208), 我试下来有两种免费方式可以请求deepseek-r1.

  1. 百度千帆
  2. 无问苍穹

目前这两个平台的api请求是免费的, 无问苍穹会快很多, 并且api的速度远比不上playground. 并且两个平台的api稳定性都不太好, 会有请求失败的问题. 之后, 我用cursor写了一个适配于百度千帆的命令行工具. 效果如下.

bd_llm_tui demo

顺便试了下百度的其他免费的模型, 响应速度还行. 仓库链接点击这里

2024年难忘的书

2025年新年快乐!!!

2025年新年快乐!!! 祝2025年蛇年活力四射. 祝新的一年是节节升高, 万事如意. 这一篇文章分享我在2024年读过几本难忘的书(排除上一篇文章提到的"控制论与科学方法论"). 以下顺序按照安利程度排名.

书单

  1. The Tao of Physics: An Exploration of the Parallels between Modern Physics and Eastern Mysticism: 这是我在2024年读过最特别的一本书没有之一, 因此我想在这里推荐给你, 如果只让我推荐一本书, 我会选这本. 因为这本书用最清晰的语言回答了科学(物理学)和玄学(宗教,东方哲学)的起源以及它们之间的联系. 看完这本书你能够理解为什么最开始的人们会选择相信宗教, 为什么宗教不是迷信. 会对玄学产生更多的敬畏以及探索. 以及玄学和科学最开始会分源而不是一起发展. 分享几句书中的摘要:

Fishing baskets are employed to catch fish; but when the fish are got, the men forget the baskets; snares are employed to catch hares; but when the hares are got, men forget the snares. Words are employed to convey ideas; but when the ideas are grasped, men forget the words.

语言是指表达想法的"工具". 当语言背后的点子传递到了, 语言也不重要了.

The basis of Krishna's spiritual instruction, as of all Hinduism, is the idea that the multitude of things and events around us are but different manifestations of the same ultimate reality. This reality, called Brahman, is the unifying concept which gives Hinduism its essentially monistic character in spite of the worship of numerous gods and goddesses.

印度教里面的"神"指的不是一个具有超能力的"神". 而是能够让世界按照不同稳态的状态运行的"规律". 而印度教里面认为这些"规律"实际是同一个"东西", 只是在各个状态下, 它们有着不同的表现.

Nagarjuna's statement that the essential nature of reality is emptiness is thus far from being the nihilist statement for which it is often taken. It merely means that all concepts about reality formed by the human mind are ultimately void. Reality, or Emptiness, itself is not a state of mere nothingness, but is the very source of all life and the essence of all forms.

佛教里面的"空"或者"无". 并不是"没有", 或者"消失"了. 而是一种没有具体的形(formless), 缺又是一切有形状事物的源头. 意味着"无"是无处不在.

The repeatability of the experience is, in fact, essential to every mystical training and is the very aim of the mystics' spiritual instruction.

东方神秘主义的核心是直接体验, 科学会说东方神秘主义不具有可证伪性(falsifiability). 但是如果能够以第一人称视角体验到了. 它就不是迷信.

  1. How to think like Leonardo Da Vinci seven steps to genius every day: 这本书是取了看似没什么营养的名字, 但是讲了非常多能够帮助你解决问题并且可以实际操作的事项. 举个例子, 书中的第一章是关于达芬奇是如何好奇身边的事物的. 那如何变的好奇呢? 书中有提到写100个能够帮助你的问题. 我尝试了一下写20个问题就写不出来了. 提出的问题越多说明发现了不同的细节. 书中拆解了达芬奇七种不同的品质, 并且安排了合理可操作的练习来培养这些品质. 强烈推荐.

  2. The Second Law: Resolving the Mystery of the Second Law of Thermodynamics: 这本书是关于热力学第二定律的起源以及从计算复杂性的视角去解读. 我在24年的读完这本书时候写过一篇文章. 作者Stephen Wolfram非常博学, 看完本书能够让你从不一样的视角了解热力学第二定律.

  3. Language in Thought and Action: 这本书是关于语言是如何形成和如何影响我们的想法的. 更重要的这是一本关于"抽象"的书籍. "抽象"是如何形成的? 语言和抽象之间有什么关系? 为什么有些事情无法达成共识? 这本书很好的回答了这些问题. 非常值得推荐.

  4. Psycho-Cybernetics: 这本书是关于如何使用控制论的方法去改变自己心理的自我描述. 比如如何练习放松, 如何利用想象状态来改变自己的行为等. 和第二本书一样, 需要实际完成对应的练习才能体验到作者想表达的精髓.

控制论与科学方法论读后感

大概在上周的时候, 我看完了控制论与科学方法论. 很少有书籍在看完之后能让人有方法论提升的感觉. 如果你还没看过这本书, 这本书值得放到你的书单里面. 里面有非常多精彩的观点和例子. 这本书值得被翻译成英文版. 其中关于"曹冲称象"的例子令人印象深刻. 先让我们来快速回顾一下:

孙权给曹操送了一头大象,曹操想知道大象有多重. 但是没有这么大的秤, 大臣们都没办法, 这时候曹冲想出来了一个办法. 先将大象牵到岸边的一艘船上. 记录下这时候的水位线. 再把大象替换成石头块,使得两次水位线高度一样. 最后记录石头块的总重量就是大象的重量.

曹冲的这种思想方法在控制论叫做共轭控制(Inferential Control):

  1. 大象的重量等于等价石头的重量, 把这一步变换过程用L表示
  2. 称出石头的重量,这一步用A表示
  3. 等价石头的重量等于大象的重量. 把这一步变换过程用L-1(L的逆)表示

共轭变换的思想可以说是解决问题的一种经典范式(scheme). 举个例子, 在自动驾驶问题当中, 有一种解决思路就是将感知域的信息映射到文本域, 在文本域处理完结果, 再映射到车辆的执行状态. 比如DriveGPT系列. 再比如最近的科研界Meta今年年初发的Beyond A*: Better Planning with Transformers via Search Dynamics Bootstrapping也是一样的思路, 将基于离散图的规划问题映射到文本域从而变成symbolic planning. 在现有的牛顿范式的方法中进行采样变成开普勒范式方法的输入, 从而使得开普勒范式方法能够与牛顿范式的方法达到一样甚至超越的效果.

此外这本书关于系统的类型以及演化,黑盒认识论, 量变与质变的论述都非常精彩. 将书中的方法论套用到自己生活所面临的场景中有不一样的思路. 另外有一本非常值得推荐的书是Psycho-Cybernetics里面讲如何运用控制论的方法改变自己的self-image. 不同于传统的鸡汤文学. 我个人在尝试了书中的练习后觉得效果很好.