Skip to content

Commit 8bfdb1a

Browse files
author
kylening
committed
Simplify navigation and fix responsive text layout
1 parent 3e1269d commit 8bfdb1a

9 files changed

Lines changed: 516 additions & 68 deletions

File tree

docs/categories/index.md

Lines changed: 26 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,26 @@
1+
---
2+
hide:
3+
- toc
4+
---
5+
6+
<div class="landing-page-marker" aria-hidden="true"></div>
7+
8+
# 分类
9+
10+
先选择要学习的方向,再进入对应分类的文章目录。
11+
12+
<div class="category-directory">
13+
<a class="category-directory__card" href="math-post-training/">
14+
<span class="category-directory__count">2 篇</span>
15+
<strong>从数学讲清后训练</strong>
16+
<span>从目标函数、概率分布与优化过程出发,理解后训练算法为什么成立。</span>
17+
<em>进入分类目录 →</em>
18+
</a>
19+
20+
<a class="category-directory__card" href="post-training-basics/">
21+
<span class="category-directory__count">1 篇</span>
22+
<strong>后训练基础</strong>
23+
<span>补齐模型结构、训练链路与实现基础,为具体后训练算法建立统一底座。</span>
24+
<em>进入分类目录 →</em>
25+
</a>
26+
</div>
Lines changed: 28 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -1,13 +1,34 @@
1-
# 从数学讲清后训练
1+
---
2+
hide:
3+
- toc
4+
---
25

3-
这个分类从目标函数、概率分布与优化过程出发,重点回答后训练算法中的公式为什么成立,以及这些公式最终如何改变模型的生成分布。
6+
<div class="landing-page-marker" aria-hidden="true"></div>
47

5-
## 收录内容
8+
# 从数学讲清后训练
69

7-
### [在分布视角下理解语言模型后训练](../post-training/distributional-view.md)
10+
这个分类从目标函数、概率分布与优化过程出发,重点回答后训练算法中的公式为什么成立,以及这些公式最终如何改变模型的生成分布。
811

9-
从“语言模型是一个序列分布”出发,将生成过程展开成自回归概率树,并在同一视角下理解 SFT、RL 与 OPD。
12+
[← 返回全部分类](index.md)
1013

11-
### [DPO 为什么只做偏好分类,却“自带” KL 约束?](../post-training/dpo-implicit-kl.md)
14+
<div class="directory-list">
15+
<article class="directory-item">
16+
<div class="directory-item__meta">
17+
<time datetime="2026-07-14">2026.07.14</time>
18+
<span>分布视角</span>
19+
</div>
20+
<h2><a href="../../post-training/distributional-view/">在分布视角下理解语言模型后训练</a></h2>
21+
<p>从“语言模型是一个序列分布”出发,将生成过程展开成自回归概率树,并在同一视角下理解 SFT、RL 与 OPD。</p>
22+
<a href="../../post-training/distributional-view/">阅读文章 →</a>
23+
</article>
1224

13-
从 KL-Regularized Reward Maximization 出发,推导最优策略、Reward 表达与 DPO Loss 之间的关系。
25+
<article class="directory-item">
26+
<div class="directory-item__meta">
27+
<time datetime="2026-07-14">2026.07.14</time>
28+
<span>DPO</span>
29+
</div>
30+
<h2><a href="../../post-training/dpo-implicit-kl/">DPO 为什么只做偏好分类,却“自带” KL 约束?</a></h2>
31+
<p>从 KL-Regularized Reward Maximization 出发,推导最优策略、Reward 表达与 DPO Loss 之间的关系。</p>
32+
<a href="../../post-training/dpo-implicit-kl/">阅读文章 →</a>
33+
</article>
34+
</div>
Lines changed: 19 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,24 @@
1+
---
2+
hide:
3+
- toc
4+
---
5+
6+
<div class="landing-page-marker" aria-hidden="true"></div>
7+
18
# 后训练基础
29

310
这个分类整理进入 SFT、DPO、PPO、GRPO 等后训练方法之前,需要先掌握的模型结构、训练链路与实现基础。
411

5-
## 收录内容
6-
7-
### [PyTorch 训练底层与 CausalLM 手撕](../post-training-basics/pytorch-training-causallm.md)
12+
[← 返回全部分类](index.md)
813

9-
从 Tensor、计算图、梯度与 AdamW 出发,串起 CausalLM 的 Logprob、Loss 和参数更新,并进一步手写最小 Llama 风格 Transformer。
14+
<div class="directory-list">
15+
<article class="directory-item">
16+
<div class="directory-item__meta">
17+
<time datetime="2026-07-15">2026.07.15</time>
18+
<span>PyTorch / CausalLM</span>
19+
</div>
20+
<h2><a href="../../post-training-basics/pytorch-training-causallm/">PyTorch 训练底层与 CausalLM 手撕</a></h2>
21+
<p>从 Tensor、计算图、梯度与 AdamW 出发,串起 CausalLM 的 Logprob、Loss 和参数更新,并进一步手写最小 Llama 风格 Transformer。</p>
22+
<a href="../../post-training-basics/pytorch-training-causallm/">阅读文章 →</a>
23+
</article>
24+
</div>

docs/download.md

Lines changed: 8 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,11 @@
1-
# 获取笔记
1+
---
2+
hide:
3+
- toc
4+
---
5+
6+
<div class="landing-page-marker" aria-hidden="true"></div>
7+
8+
# 下载入口
29

310
## 下载完整内容
411

docs/index.md

Lines changed: 63 additions & 27 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,10 @@
1+
---
2+
hide:
3+
- toc
4+
---
5+
6+
<div class="landing-page-marker" aria-hidden="true"></div>
7+
18
<section class="rem-hero" aria-labelledby="rem-hero-title">
29
<div class="rem-hero__copy">
310
<span class="rem-hero__eyebrow">REM'S LLM NOTES</span>
@@ -11,40 +18,69 @@
1118
</a>
1219
</section>
1320

14-
## 内容分类
15-
16-
<div class="grid cards" markdown>
21+
## 快速入口
1722

18-
- **从数学讲清后训练**
19-
20-
从目标函数、概率分布与优化过程出发,理解后训练算法为什么成立。
21-
22-
[进入分类](categories/math-post-training.md)
23+
<nav class="portal-grid" aria-label="站点主要入口">
24+
<a class="portal-card portal-card--current" href="#rem-hero-title">
25+
<span class="portal-card__index">01</span>
26+
<strong>简介</strong>
27+
<span>了解这个站点记录什么,以及笔记的整理方式。</span>
28+
</a>
29+
<a class="portal-card" href="categories/">
30+
<span class="portal-card__index">02</span>
31+
<strong>分类</strong>
32+
<span>先选择学习方向,再进入该分类的文章目录。</span>
33+
</a>
34+
<a class="portal-card" href="updates/">
35+
<span class="portal-card__index">03</span>
36+
<strong>最新更新</strong>
37+
<span>按发布日期查看更新,并直接进入具体文章。</span>
38+
</a>
39+
<a class="portal-card" href="download/">
40+
<span class="portal-card__index">04</span>
41+
<strong>下载入口</strong>
42+
<span>下载完整仓库、单篇 Markdown 原稿与相关图片。</span>
43+
</a>
44+
</nav>
2345

24-
- **后训练基础**
46+
## 最新更新
2547

26-
补齐模型结构、训练链路与实现基础,为后续学习 SFT、DPO、PPO、GRPO 建立统一底座。
48+
<div class="updates-list">
49+
<article class="latest-note-card">
50+
<div class="latest-note-card__meta">
51+
<time datetime="2026-07-15">2026.07.15</time>
52+
<span>后训练基础</span>
53+
</div>
54+
<h3><a href="post-training-basics/pytorch-training-causallm/">PyTorch 训练底层与 CausalLM 手撕</a></h3>
55+
<p>从 Tensor、计算图和 AdamW 开始,串起 CausalLM 的前向传播、Loss、反向传播与参数更新。</p>
56+
<a class="latest-note-card__link" href="post-training-basics/pytorch-training-causallm/">直接阅读 →</a>
57+
</article>
2758

28-
[进入分类](categories/post-training-basics.md)
59+
<article class="latest-note-card">
60+
<div class="latest-note-card__meta">
61+
<time datetime="2026-07-14">2026.07.14</time>
62+
<span>从数学讲清后训练</span>
63+
</div>
64+
<h3><a href="post-training/dpo-implicit-kl/">DPO 为什么只做偏好分类,却“自带” KL 约束?</a></h3>
65+
<p>从 KL-Regularized RL 出发,推导最优策略、Reward 表达与 DPO Loss 之间的关系。</p>
66+
<a class="latest-note-card__link" href="post-training/dpo-implicit-kl/">直接阅读 →</a>
67+
</article>
2968

69+
<article class="latest-note-card">
70+
<div class="latest-note-card__meta">
71+
<time datetime="2026-07-14">2026.07.14</time>
72+
<span>从数学讲清后训练</span>
73+
</div>
74+
<h3><a href="post-training/distributional-view/">在分布视角下理解语言模型后训练</a></h3>
75+
<p>从序列分布与自回归概率树出发,在同一视角下理解 SFT、RL 与 OPD。</p>
76+
<a class="latest-note-card__link" href="post-training/distributional-view/">直接阅读 →</a>
77+
</article>
3078
</div>
3179

32-
## 最新收录
33-
34-
<article class="latest-note-card">
35-
<div class="latest-note-card__meta">
36-
<time datetime="2026-07-15">2026.07.15</time>
37-
<span>后训练基础</span>
38-
</div>
39-
<h3><a href="post-training-basics/pytorch-training-causallm/">PyTorch 训练底层与 CausalLM 手撕</a></h3>
40-
<p>从 Tensor、Parameter、计算图和 AdamW 开始,串起 CausalLM 的前向传播、Loss、反向传播与参数更新,并进一步手写最小 Llama 风格 Transformer。</p>
41-
<a class="latest-note-card__link" href="post-training-basics/pytorch-training-causallm/">阅读文章 →</a>
42-
</article>
80+
<p class="section-more"><a href="updates/">查看全部更新记录 →</a></p>
4381

44-
## 获取原文
82+
## 下载入口
4583

46-
- [下载全部笔记(ZIP)](https://github.com/kaining-never-stop/llm-learning-notes/archive/refs/heads/main.zip)
47-
- [查看 GitHub 仓库](https://github.com/kaining-never-stop/llm-learning-notes)
48-
- [查看全部 Markdown 原文](https://github.com/kaining-never-stop/llm-learning-notes/tree/main/docs)
84+
Markdown 原稿、数学公式和文章图片均保留在 GitHub 仓库中。
4985

50-
更多下载方式见[获取笔记](download.md)
86+
[前往下载页面](download.md){ .md-button .md-button--primary }
Lines changed: 18 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -271,6 +271,13 @@
271271
}
272272
};
273273

274+
const updatePageLayout = () => {
275+
root.classList.toggle(
276+
"is-landing-page",
277+
Boolean(document.querySelector(".landing-page-marker")),
278+
);
279+
};
280+
274281
const initialize = () => {
275282
if (document.querySelector(".rem-theme-switch")) {
276283
return;
@@ -293,7 +300,12 @@
293300
themeSwitch.innerHTML =
294301
'<span class="rem-theme-switch__icon" aria-hidden="true">◐</span>' +
295302
'<span class="rem-theme-switch__label">普通主题</span>';
296-
document.body.appendChild(themeSwitch);
303+
const headerOption = document.querySelector(".md-header__option");
304+
if (headerOption && headerOption.parentNode) {
305+
headerOption.parentNode.insertBefore(themeSwitch, headerOption);
306+
} else {
307+
document.body.appendChild(themeSwitch);
308+
}
297309

298310
themeSwitch.addEventListener("click", () => {
299311
setTheme(!remThemeEnabled);
@@ -306,10 +318,15 @@
306318
document.documentElement.addEventListener("mouseleave", resetPointerEffects);
307319

308320
resizeParticleCanvas();
321+
updatePageLayout();
309322
const storedTheme = readStoredTheme();
310323
setTheme(storedTheme !== "plain", false);
311324
};
312325

326+
if (typeof document$ !== "undefined") {
327+
document$.subscribe(updatePageLayout);
328+
}
329+
313330
if (document.readyState === "loading") {
314331
document.addEventListener("DOMContentLoaded", initialize, { once: true });
315332
} else {

0 commit comments

Comments
 (0)