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 ...
1. JVM GC 工作思路
📝 术语别名
GC: Garbage Collection, 自动垃圾回收;
STW: Stop-The-World, GC 期间所有应用线程被 JVM 冻住;
Heap: JVM 管理的对象内存区, 所有 new 出来的东西都在这里;
GC Roots: 一组"一定还活着"的引用起点, 可达性分析的种子;
前置: 为什么 Java 需要 GC
C/C++ 程序员是手动管内存的, 你 malloc 一块就要负责 free 一块, 漏了就内存泄漏, 重复 free 就 double-free crash; Java 把这个负担拿走了, 程序员只负责 new Foo(), 永远不主动释放;
那对象怎么消失? 答案是 JVM 启动了一个叫 GC 的后台机制, 周期性扫整个 heap, 把"再也不会被用到的对象"自动清掉, 这一行为的代价是: 扫的时候得短暂冻住应用线程 (STW), 这就是 GC 给你带来的延迟代价;
所以理解 GC 本质上要回答两个问题:
怎么判断一个对象"已经死了";
判断完之 ...
6. Unix ping 与 ICMP 协议
📝 术语别名
ICMP: Internet Control Message Protocol, IP 层的"控制/反馈"协议;
RTT: Round-Trip Time, 一来一回的总时延;
Echo Request / Echo Reply: ICMP type 8 / type 0, 就是 ping 用到的两种报文;
前置: ICMP 在协议栈中的位置
ICMP 经常被人当成"网络层之上的小协议", 但它实际上是 IP 协议的一个直接附庸, 跑在 IP 之上, 但属于 network layer 的控制平面;
IP 包的 header 里 Protocol 字段为 1 时, 上层就是 ICMP (对比 TCP=6, UDP=17);
ICMP 报文不走传输层, 没有端口号; 它的"复用"由 ICMP type + code 这两个字节自己完成;
ICMP 的存在意义是给 IP 这个 best-effort 协议一个反馈信道, 比如告诉 src “你这个包 TTL 跑光了”, “目标不可达 ...
Crawl-Me-Maybe Search Engine Tech Report
Crawl Me Maybe: Towards High Efficiency and Accuracy Information Retrieval
5. Docker 网络栈协议
📝 术语别名
NIC: Network Interface Card, 物理网卡, 真正的硬件;
net_device: Linux 内核里描述"一张网卡"的统一抽象, 虚拟和物理共用同一个数据结构;
虚拟网卡: 没有对应物理硬件、纯软件模拟的 net_device, 例如 lo / veth / tap / tun / bridge;
tap / tun: 给用户态进程收发包用的虚拟网卡, VM 和 VPN 的标配;
netns: Linux network namespace, 内核提供的网络栈隔离机制;
veth pair: virtual ethernet pair, 一对虚拟网卡, 一端发, 另一端收, 是连接两个 netns 的通道;
bridge: 内核虚拟二层交换机, 把若干网卡拉到同一广播域;
DNAT / SNAT: destination / source NAT, iptables 用来改包的 dst/src IP, 是端口映射和"出口走主机 IP"的核心;
前置 A: 物理网卡 (NIC ...
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 时间够长后, 早期轮次会被挤出窗口, 模型彻底"忘"掉用户之前说过的事实
长文档分析: 单份文档已经接近 ...
kubernetes
Load Balance
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 ...
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”的形式, 比如模型看到 ...
