ReAct + Reflexion - Reasoning Acting and Verbal Reinforcement Learning
[!联读黑称 / 术语速查]
ReAct 协议:
thought: 模型自言自语写出的 reasoning trace, 不出现在环境里
action: 模型对外发出的工具调用 / 环境指令, 会被执行
observation: 工具或环境返回给模型的下一段输入
trajectory: thought →\rightarrow→ action →\rightarrow→ observation →\rightarrow→ thought →\rightarrow→ … 的整条交替序列
act-only: 没有 thought, 只对外发 action 的 baseline (WebGPT, SayCan 那一派)
CoT-only: 全程在脑子里推, 不调外部工具的 baseline (Wei et al. 2022)
Reflexion 协议:
Actor: 真正生成 action 的 policy LM, 在 Reflexion 实验里基本就是套了一层 ReAct 协议的 GPT
Evaluator: 产生 reward signal 的判官, 可以是 ground-tru ...
Vpn from WireGuard Impl
VPN 史前简介
VPN 这个名字里的 virtual 来自 1990 年代企业的实际诉求, 当时跨地办公要靠租用专线, 业界想用便宜的公网 Internet 模拟出专线效果, virtual 是说虚拟出一根原本要靠物理拉线才有的专网;
接下来 30 年里, VPN 的主流协议大致经过三代:
IPsec (1998, IETF), 工作在 IP 层, 由 ESP (加密 + 认证), AH (只认证), IKE (密钥协商) 三个子协议拼成; 内核态实现, 算法可协商, 规范文档加起来几千页, 配置极其复杂, 但靠厂商生态吃下了企业 site-to-site 市场; Linux 内核里对应的模块叫 XFRM;
OpenVPN (2001, James Yonan), 用户态实现, 复用 OpenSSL 和 TLS 做加密认证, 用 tun / tap 接管网络, 跑 UDP 1194 或 TCP 443; 部署只要一个二进制, 跨平台友好, 是 2000s 到 2010s 商业 VPN (NordVPN 等) 的默认协议; 但用户态架构和 TLS overhead 让它性能输给下一代 ...
Onion - Identifying Incident-indicating Logs for Cloud Systems
📝 术语别名
II-log: Incident-Indicating Log, 真正能告诉你故障在哪的那批 log;
Log clique: 一组高度相似 / 频繁共现的 log template, 是 Onion 聚类的产物;
Anomalous server: incident 时段触发了 alert 或 metric 异常的实例;
Normal server: 同服务下未受影响的同伴实例;
Bilateral: 双边对比, 这里指 anomalous 集 vs normal 集的对比;
前置: 为什么 raw log 不能直接喂给 RCA 系统
云服务一次 incident 的 log 量级通常是百万到亿条, 真正与故障有因果关系的可能只有几十条; 中间夹着大量噪声:
routine heartbeat;
健康探针 (GET /health 200);
周期性 batch / cron 任务的常规 log;
跨实例都有的全局事件 (版本 reload, 集群配置 push);
上下游服务的非关键 warning;
如果直接把全量 log 倒给 ...
RCACopilot - Automatic Root Cause Analysis via Large Language Models for Cloud Incidents
📝 术语别名
RCA: Root Cause Analysis, 根因分析, 找到事故的真正起因;
OCE: On-Call Engineer, 轮值工程师, 收到告警的那个人;
Handler: 一段事先写好的诊断流程, 由 OCE 编写, 系统按 alert 类型匹配执行;
Diagnostic Information: handler 收集到的所有运行时证据 (logs / metrics / traces / configs 等);
CoT: Chain-of-Thought, 让 LLM 先一步步推理再下结论的 prompt 技巧;
In-context Learning / Few-shot: 在 prompt 里给 LLM 几条相似历史例子作为参考;
前置: cloud incident RCA 是个什么问题
云服务一旦出事 (latency 飙高、error rate 飙升、磁盘炸了、配置错了), 监控系统会在毫秒到秒级吐出一条 incident 警报, 然后人接手:
OCE 起夜接到 page;
翻 dashboard, 看 met ...
MemGPT - Towards LLMs as Operating Systems
[!MemGPT 的 OS 类比词典]
main context: LLM 的 context window, 类比物理 RAM
external context: 向量库 / 关系库 / 日志, 类比 disk
function call: 模型主动触发的 I/O, 类比 system call
queue manager: FIFO 驱逐器, 类比 page replacement policy
heartbeat: 定时唤醒, 类比 timer interrupt
Context Window 的硬上限
现有商用 LLM 每次 forward 能看到的 token 数是有限的, 比如 GPT-4 turbo 是 128K, Llama-2-chat 是 4K; 一旦 input + output 超出这个窗口, 后续内容要么被截断, 要么只能靠外部检索 (classic RAG) 在推理前硬塞进去;
这带来两个根本问题:
长对话: session 时间够长后, 早期轮次会被挤出窗口, 模型彻底"忘"掉用户之前说过的事实
长文档分析: 单份文档已经接近 ...
ZeRO - memory optimizations toward training trillion parameter models
📝 并行理论的黑称
Vertical Split: 竖切, PP
Horizontal Split: 横切, TP
消耗显存的模块分类
Part
Category
Included Items
Description
1
Model states
optimizer states, gradients, parameters
For large models, the majority of the memory is occupied by model states.
2
Residual states
activation, temporary buffers, unusable fragmented memory
The remaining memory is consumed by residual states.
Model State 不足分析 + ZeRO-DP 性能
Parallelism Method
Why Compute Efficiency Is High / Low
Why Memory Effi ...
Taming Throughput-Latency Tradeoff in LLM Inference with Sarathi-Serve
Prefill vs. Decode
Prefill 阶段做了什么
prefill = 对整个 prompt 做一次完整的 transformer forward。
包括了:
对所有输入 token 一起做 embedding
过每一层的 attention
过每一层的 FFN
同时把每层对应的 K/V 写入 KV cache
最后根据最后位置的 hidden state 过 lm head,得到 next-token logits
采样 / greedy / top-k / top-p,选出第一个输出 token
这个过程由于是有了所有的输入参数的计算,所以其可以在输入启动阶段就做所有启动处理,结果是 compute-bound.
Decode 阶段做了什么
对每一个新的 token (这里来看类似于一个单词的 向量表示), 来计算他们预测的下一个单词输出,这里应该会经过多个阶段,分别是
linear 阶段,也就是从 token X 处理得到 Q, K, V
attention 阶段,也就是通过 QKV, softmax 等计算得到 attention 得分
FFN 阶段,也就 ...
ReAct + Reflexion - Reasoning Acting and Verbal Reinforcement Learning
[!联读黑称 / 术语速查]
ReAct 协议:
thought: 模型自言自语写出的 reasoning trace, 不出现在环境里
action: 模型对外发出的工具调用 / 环境指令, 会被执行
observation: 工具或环境返回给模型的下一段输入
trajectory: thought →\rightarrow→ action →\rightarrow→ observation →\rightarrow→ thought →\rightarrow→ … 的整条交替序列
act-only: 没有 thought, 只对外发 action 的 baseline (WebGPT, SayCan 那一派)
CoT-only: 全程在脑子里推, 不调外部工具的 baseline (Wei et al. 2022)
Reflexion 协议:
Actor: 真正生成 action 的 policy LM, 在 Reflexion 实验里基本就是套了一层 ReAct 协议的 GPT
Evaluator: 产生 reward signal 的判官, 可以是 ground-tru ...
Megatron-LM - Training Multi-Billion Parameter Language Models Using Model Parallelism
Attention 计算的线性代数问题
attention 和 FFN 的关系
如果记某层输入为 x, 那么可以粗略理解成:
attention 输出: 给 x 补充上下文信息, 像"开会听别人说话"
FFN 输出: 给 x 补充局部计算后的新特征, - 像"你自己在脑子里消化, 归纳, 形成判断"
如果我们尝试把一个 FFN 层变成一个 attention 层, 结果就是可能会更加适合长距离语义传输但是缺少本地语义特征变换器
多层 attention-FFN 结构
可以理解为不断重复"交换信息 →\rightarrow→ 消化信息 →\rightarrow→ 再交换 →\rightarrow→ 再消化"
也就是说各自对本 token 处于上下文的含义理解之后再次进行交换分享,让整体的文意理解更加深刻
Transformer 架构的训练计算
假设训练句子是:The capital of France is Paris.
训练时,decoder-only 模型会把它转成一种“前缀预测后一个 token”的形式, 比如模型看到 ...
Megatron-LM - Training Multi-Billion Parameter Language Models Using Model Parallelism
Attention 计算的线性代数问题
attention 和 FFN 的关系
如果记某层输入为 x, 那么可以粗略理解成:
attention 输出: 给 x 补充上下文信息, 像"开会听别人说话"
FFN 输出: 给 x 补充局部计算后的新特征, - 像"你自己在脑子里消化, 归纳, 形成判断"
如果我们尝试把一个 FFN 层变成一个 attention 层, 结果就是可能会更加适合长距离语义传输但是缺少本地语义特征变换器
多层 attention-FFN 结构
可以理解为不断重复"交换信息 →\rightarrow→ 消化信息 →\rightarrow→ 再交换 →\rightarrow→ 再消化"
也就是说各自对本 token 处于上下文的含义理解之后再次进行交换分享,让整体的文意理解更加深刻
Transformer 架构的训练计算
假设训练句子是:The capital of France is Paris.
训练时,decoder-only 模型会把它转成一种“前缀预测后一个 token”的形式, 比如模型看到 ...
