这里整理课程笔记、实验总结、复习提纲和技术阅读。 保持简洁、可检索、可回看,让知识像通信系统里的信号一样清晰传递。
Deepseek-TUI Markdown格式修复
我的第一个开源贡献:修复 DeepSeek-TUI 的 Markdown 渲染问题 背景 DeepSeek-TUI 是一个用 Rust 编写的终端 AI 助手,基于 DeepSeek V4 模型,支持 1M token 上下文。我在日常使用中发现 AI 的回复里 Markdown 格式完全没有被渲染,严重影响阅读体验。这是我第一次接触 Rust,也是我第一次向开源项目提交 PR。 问题现象 使用时发现三类渲染问题: 1. 表格原样输出 | 名称 | 版本 | 状态 | |----------|------|------| | React | 18.x | 稳定 | 分隔行 |---| 也直接显示出来,没有任何格式化。 2. 粗体/斜体标记符没有被剥掉 **粗体文本** 和 *斜体文本* 星号原样显示,没有加粗或斜体效果。 3. 水平线没有渲染 --- 直接显示成三个横杠,没有渲染成分隔线。 代码分析 项目的渲染逻辑在 crates/tui/src/tui/markdown_render.rs。读完代码后理解了它的设计: 两阶段渲染架构 源文本 → parse() → ParsedMarkdown (AST) → render_parsed(width) → Vec<Line> parse 阶段:与终端宽度无关,把源文本分类成 Block 枚举的各种变体 render 阶段:依赖宽度,做折行和样式渲染 这个设计的好处是终端 resize 时只需重新 render,不需要重新 parse,性能更好。 ...
LONGCAT-SKILL0及其延伸思考---SkillLoRA
详细内容敬请期待–这里先放个Longcat的论文 SKILL0.pdf
ROCK-as-Backend-Harbor搭建
敬请期待
学习各种东西后一定要记笔记
今日最大感悟 可以都记在这里 就比如这个网站的使用方法 博客维护手册 最后更新:2026-05-04 一、架构概览 你的电脑 服务器 (134.209.97.93) ┌──────────────────────┐ ┌──────────────────┐ │ blog-papers/ (Obsidian)│ 部署脚本 │ /var/www/blog/ │ │ ├ llm学习记录/ │──Hugo构建──▶│ Nginx │ │ ├ 通信原理/ │ SCP上传 │ ↓ │ │ ├ 胡思乱想/ │ │ wyxbupt.me │ │ └ templates/ │ │ │ ├──────────────────────┤ └──────────────────┘ │ blog-scripts/ │ │ └ deploy-blog.ps1 │ │ └ rebuild-section-indexes.py │ └──────────────────────┘ 二、日常使用 写文章 打开 Obsidian,vault 在 E:\_MyCollegeLife\blog-papers 在对应文件夹里新建笔记: llm学习记录/ → LLM相关 通信原理/ → 通信课程 ...
5.22 看大厂青年困境后的感想
通信原理第一章 - 绪论
通信系统基本模型、信息与信号基础概念
Test Workflow
这是测试文章:Obsidian 写笔记 → Hugo 构建 → 自动部署。 如果你在网站上看到这段文字,说明发布流程正常工作!
agent-harness
harbor opencode
ppo
ppo、grpo、gspo
从强化学习到PPO的理论部分(学习笔记)
从强化学习到PPO的理论部分(学习笔记) 从强化学习到PPO的理论部分(学习笔记)1.强化学习的基本概念2.理论推导部分3.针对R(τ)n的优化3.1对R(τ)n引入时间步的考量3.2状态价值函数,动作价值函数,优势函数3.3时序差分和GAE4.Proximal Policy Optimization(PPO)邻近策略优化4.1On-policy和Off-Policy4.2重要性采样4.3最终的形式 最近从头开始学习强化学习以及PPO,花了两天的时间才搞懂了一些基本的概念和流程。主要参考了B站UP主RethinkFun的《零基础学习强化学习算法:ppo》,在这里记录一下自己的学习笔记。 1.强化学习的基本概念 State(状态), Action(动作), Environment(系统设定等环境), Agent(智能体或模型) Reward:奖励,指Agent在某个State下执行了某个Action与Environment交互之后得到的奖励,记为r Policy:策略,主要指Agent在某个State下执行各个Action的概率分布,记为$\pi_{\theta}(a|s)$ Trajectory:轨迹,指在策略$\theta$下的某次具体的路径,也即Policy的一次采样值,记为$\tau$,由一连串的${{s_{1},a_1,s_2,a_2,\ldots}}$构成 Return:回报,指某次Trajectory结束后得到的累积Reward 所以强化学习的目标是:训练一个Policy神经网络$\pi$,在所有状态State下,做出相应的Action,得到相应的Reward,使得Return的期望最大 或者表述为:训练一个Policy神经网络$\pi$,在所有的Trajectory下,Return的期望最大 2.理论推导部分 前面提到,强化学习的目标是最大化Return的期望,Return的期望可以表示为 $$ E(R(\tau))_{\tau\in P_\theta(\tau)} = \sum_\tau R(\tau)*P_\theta (\tau) $$而对于公式中的 $P_{\theta}(\tau)$ ,表示的是该策略下选到该轨迹的概率,根据Trajectory的定义,其可以表示为: $$ P_\theta (\tau) = \prod_{t=1}^T \pi_\theta(a_t|s_t)*p(s_{t+1}|s_t,a_t) $$这里要怎么理解呢?根据Trajectory的定义,轨迹是由一连串的$s_1,a_1,s_2,a_2,\ldots,s_t,a_t$构成,因此可由某状态下执行某动作的概率*某个动作导致下一状态的概率连乘表示,其中$\pi_\theta(a_t|s_t)$由Policy决定(由下标也可以看出来),而$p(s_{t+1}|s_t,a_t)$由Environment决定。 接着,我们知道在深度学习中,不管是求损失函数的最小值还是目标函数的最大值,都需要用到梯度下降法或者梯度上升法,所以这里我们来求$E(R(\tau))_{\tau\in P_\theta(\tau)}$的梯度 $$ \begin{align*} \nabla_\theta E(R(\tau))_{\tau\in P_\theta(\tau)}&= \nabla_\theta \sum_\tau R(\tau)*P_\theta (\tau) \\ &=\sum_\tau R(\tau)*\nabla_\theta P_\theta(\tau)\\ \end{align*} $$这里涉及到一个技巧:$\nabla ln(f(x)) = \frac{\nabla f(x)}{f(x)}$,因此我们可以用$P_\theta(\tau) \nabla_\theta ln(P_\theta (\tau))$替换掉公式中的$\nabla_\theta P_\theta (\tau)$,得到 $$ \begin{align*} &=\sum_\tau R(\tau)*P_\theta(\tau)\nabla_\theta ln(P_\theta(\tau))\\ &=\sum_\tau R(\tau)*P_\theta(\tau)\sum_{t=1}^T\nabla_\theta ln\pi_\theta(a_t|s_t)\\ &=E_{\tau\in P_\theta(\tau)}(R(\tau)\sum_{t=1}^T\nabla_\theta ln\pi_\theta(a_t|s_t)) \end{align*} $$这里不难理解,用到了期望的基本定义;之后我们再次用到期望的一个性质: ...