How to read this blog如何阅读这个博客

Project-driven learning: a short path in, a working mental model, and the ability to explore independently.以项目驱动学习:尽快入门,建立可运行的心智模型,具备独立探索的能力。

Knowledge keeps growing. What is truly scarce is a learning path that is short and clear without sacrificing depth.

The LLM field moves fast, making it easy to learn in fragments without knowing what you understand or where to go next. Be wary of handing your core thinking over to a coding agent.

Zhang Yiming has spoken about understanding as a core competitive advantage—something others must ultimately find valuable. Depth of understanding does not come from collecting more technologies. It comes from knowing which problems matter most in a field and developing your own thinking about them. That is why I started this blog.

01. Get started as quickly as possible

Getting started should be fast, but the foundations must hold. I believe the first pass should take no more than a week: a short, concentrated effort with one test of understanding—can you reconstruct the core principles from a blank whiteboard?

For LLM infrastructure, for example, you do not need to spend two months learning all of PyTorch first. Learn the necessary concepts—tensors, autograd and GPU execution—then build a minimal inference program. Return to the principles when a concrete problem exposes a gap. Foundations should help you solve problems rather than become a barrier to starting.

This is the method behind the whole blog: project-driven learning.

02. One short entry path for each field

I plan to build a concise route into each major field, paired with a small project:

  • Systems: start with a minimal inference engine to understand runtime, scheduling, GPU kernels and distributed execution.
  • Algorithms: use mathematical intuition and minimal implementations to understand why model architectures work.
  • Hardware: begin with GPU execution and memory models to build intuition for hardware–software co-design.
  • Agents: start with a minimal tool-calling loop to understand planning, memory and state.
  • Data: build a runnable data pipeline to understand the central problems in data systems.

You do not need to begin with tens of thousands of lines of framework source. Build the essential mechanism first.

03. What counts as being ready to explore?

I do not measure understanding by the number of articles read or hours spent studying. For each field, I will provide three things: a minimal implementation, a few key experiments, and a set of practical checks—modify the implementation, explain what happens and analyze the bottlenecks.

After working through a minimal inference engine, for example, you should be able to do more than run it. You should understand how requests are scheduled, how the KV cache is managed, where bottlenecks might arise, and how to test your judgment experimentally. That is what I mean by being ready to explore. It does not mean mastery; it means having a working mental model and the ability to keep going independently.

The goal of an introduction is not to learn everything. It is to become capable of continuing on your own.

04. Connect the parts to the whole

Understanding one kernel, attention mechanism or runtime in isolation is not enough. Why does a model architecture change the design of an inference system? Why does a GPU’s memory hierarchy affect algorithm choices? Why do some methods that theoretically reduce computation turn out to be slower in practice? No single field offers a complete answer.

I plan to develop this blog from the fundamentals to deeper ideas, weaving in my own thinking.

05. Open code and experiments

I will gradually open-source the small projects, core experiments and practical checks on GitHub so that others can run, modify, question and reproduce them. For each experiment, I will try to record the version, environment, measurement method, comparison conditions and known limitations. Failed experiments, mistaken hypotheses and debugging records deserve a place too.

06. Perhaps we can research together

If the opportunity arises, I would like to organize small study groups around these projects: reading papers, reproducing experiments and discussing designs. An impressive background is not required. What matters is a willingness to build, think carefully and let experimental results test your views. This is still an idea; I hope it can gradually take shape.

Where to begin

  • New to a field: start with Quickstarts, then work through a first Nano Project and its core experiments as the routes develop.
  • Interested in my work: explore my projects and open-source contributions. I would love to exchange ideas and experiences.
  • Curious about my thinking: read Notes for my views on the future of technology, essays on everyday life, and lessons from different areas of experience.

Spend less time on things that are not worth your attention, and more time developing your taste: recognizing which problems are worth solving and which work deserves a deeper look.

— Chenxi Ma

知识越来越多,真正稀缺的是一条足够短、足够清晰,又不牺牲深度的学习路径。

LLM 领域变化太快,容易学得零散,不清楚掌握了什么、下一步该做什么。更要警惕把核心思考交给 Coding Agent。

张一鸣说过,你的核心竞争力是你的认知,总要有人为你的认知买单。而认知的深度不等于技术学得多,它来自你是否知道这一行最重要的问题是什么,以及你自己独有的思考是什么。这就是我建这个博客的初衷。

01. 尽可能快地入门

入门越快越好,但基础不能薄。我认为第一轮入门最迟不超过一周,要短时间、高强度地学,检验标准只有一个:你能不能从白板开始,重新推导核心原理。

比如学 LLM Infra,不必先花两个月学完 PyTorch。先掌握 Tensor、Autograd、GPU Execution 这些必要概念,尽快动手写一个最小推理程序,遇到问题再回头补原理。基础应该为解决问题服务,而不是变成开始之前的一道门槛。

这也是整个博客的方法论:项目驱动学习(Project-driven Learning)。

02. 每个方向,一条最短入门路线

我计划为每个主要方向建立一条精简路线,每条都配一个小项目:

  • Systems:从最小推理引擎出发,理解 Runtime、Scheduling、GPU Kernels、分布式执行。
  • Algorithms:从数学直觉与最小实现出发,理解模型架构为什么有效。
  • Hardware:从 GPU 执行与存储模型入手,建立软硬件协同的直觉。
  • Agents:从最小工具调用循环开始,理解规划、记忆、状态。
  • Data:从可运行的数据流水线开始,理解数据系统的核心问题。

不需要一上来读几万行框架源码,先把最重要的东西做出来。

03. 怎样才算「出师」

我不用“看了多少篇、学了多少小时”衡量掌握程度。每个方向我会提供三样东西:一个最小实现、几个关键实验、一组验收任务(修改实现、解释现象、分析瓶颈)。

比如学完最小推理引擎,你应该不止会运行它,还要知道请求怎么调度、KV Cache 怎么管理、瓶颈可能在哪,以及怎么用实验验证自己的判断。做到这些,我姑且称之为「出师」。这不代表精通,而是你有了可运行的心智模型,和独立继续探索的能力。

入门的终点,不是学完所有知识,而是具备自己继续学习的能力。

04. 从局部到全局

单独学会一个 Kernel、一个 Attention 或一个 Runtime 还不够。为什么模型架构会改变推理系统的设计?为什么 GPU 的内存层次会影响算法选择?为什么有些理论上省了计算量的方法,实际反而更慢?这些问题在单一领域里找不到完整答案。

我打算把这个博客写得由浅入深,融入自己的思考。

05. 代码与实验,尽可能开放

小项目、核心实验和验收任务,我会陆续在 GitHub 开源,希望它们能被运行、修改、质疑和复现。每个实验我会尽量交代版本、环境、测量方法、对照条件和已知局限。失败的实验、错误的假设和排障过程,同样值得记录。

06. 未来,也许可以一起研究

如果有机会,我想围绕这些项目办小规模讨论班,一起读论文、复现实验、讨论设计。不需要光鲜的背景,只要愿意动手、认真思考,并且愿意让实验结果检验自己的观点。这还只是一个设想,希望它能慢慢发生。

如何开始

  • 刚接触某个领域:从最简入门路线开始,完成第一个 Nano Project 和核心实验。
  • 对我的项目感兴趣:可以看看我的项目与开源贡献,非常欢迎交流想法与经验。
  • 想了解我的思考:读「想法」,这里记录我对未来技术的判断、生活中的随笔,以及在不同领域积累的经验。

少把时间花在不值得的地方,多用来打磨自己的 taste:辨别什么问题值得做,什么工作值得深入。

— 马晨熙