知识管理的方法论
本文略记博主个人的知识管理体系。
首先,明确一点需求:除了隐性知识之外,我所有的知识,在接入互联网的情况下,都应该是可访问的。因此知识必须是电子化的。曾经的纸质笔记可以扫描为 pdf 电子化。
接下来,我们定义何为隐性知识,之后我们不会再讨论它。隐性知识是指那些不宜公开的知识,或者不值得记录的知识。例如,在公司获得的业务经验,或根据保密条款之义务,不能公开但被确实掌握的知识,这些属于不宜公开的知识。再如,一些非常基础的知识,例如义务教育阶段知识、基础的微积分等已经“固化”到脑子里的知识,再花时间记录有些不值当,这些属于不值得记录的知识。
剩下的知识虽然可以公开,但为管理之方便,分为两类:public, private. Public 的知识所有人可以访问,Private 的知识只有我本人可以访问。截至文章写作时,我把它们分为五大类:Blog, Github, Zotero, Baidu Pan, Chrome Bookmarks.
最直观的,Blog,也就是这个博客。可以看到,里面有非常多的笔记,内容较为详实,以下举例:TRPO 笔记、深度学习小记、数据分析业务、工程数学。这种组织形 ...
论文阅读 A Deep Reinforcement Learning Framework for Optimizing Congestion Control in Data Centers
paper: A Deep Reinforcement Learning Framework for Optimizing Congestion Control in Data Centers
这篇论文提出了一个将拥塞控制与强化学习结合在一起的框架。
摘要研究痛点:传统的拥塞控制协议针对特定网络环境设计,其静态参数无法适应现代数据中心极度动态的流量变化 。虽然纯在线强化学习(Online Learning)被寄予厚望,但数据中心的拥塞控制周期在微秒级别,机器无法在如此严苛的时间尺度内收敛并做出准确的控制动作 。
核心创新:提出了一种混合架构。在微秒级的底层控制上,依然依赖专家设计的传统协议;而在秒/小时级别的高层控制上,利用多智能体强化学习(MARL)来动态调整传统协议的关键参数 。
实验结果:以 BBR 算法作为案例(调整其 RTT 和带宽的采样窗口),该系统能显著减少静态参数带来的性能惩罚,将收敛时间缩短了 2.7 倍,并将往返时间(RTT)降低了 40% 。
背景与相关工作传统方案的局限:随着网络带宽延迟乘积(BDP)的增加,从早期的 NewReno 到后来的 BIC 和 CU ...
TRPO 笔记
请注意,《工程数学》中的某些内容是本文的前置知识。
代码实践https://github.com/boyu-ai/Hands-on-RL/blob/main/%E7%AC%AC11%E7%AB%A0-TRPO%E7%AE%97%E6%B3%95.ipynb
我们以车杆(CartPole)环境为例。
view(-1) 和 cat在数学推导中,我们通常把神经网络的所有参数 $\theta$ 当作一个超大的、一维的列向量。例如公式里的梯度 $g$ 和海森向量积 $H \cdot v$,这里的 $v$ 和 $g$ 都是一维向量。
但是,在 PyTorch 的底层实现中,神经网络的参数是以多个不同形状的张量(Tensor)构成的列表。比如:
第一层权重矩阵可能是 [64, 3] 的矩阵
第一层偏置可能是 [64] 的向量
第二层权重矩阵可能是 [2, 64] 的矩阵
1234kl_grad = torch.autograd.grad(kl, self.actor.parameters(), ...
乙巳年记
好久没记录生活了,主要是太忙了,另外也没什么心思。。。
先占坑,以后慢慢写。。。
谢谢大家关注喵。。。谢谢大家打赏喵。。。
做了两个漂亮的收款二维码。。。
RDMA 杂记
本文旨在厘清一些概念上的细节,尽管更高抽象层次上的工作内容无此要求,但当我们深入到仿真代码中试图 debug 或者研究 rdma 的其他内容时,这是必要的。
什么是“流”在 RDMA 中,什么是“流”?这个概念为何提出?有没有对应的物理实体,还是仅仅是方便理解的抽象概念?在普通的 TCP/IP 网络中,有没有类似的“流”的概念?
在 RDMA 中,什么是“流” (Flow)在 RDMA(特别是目前数据中心主流的 RoCEv2)语境下,“流”通常指的是一对 Queue Pair (QP) 之间的通信连接。
更具体地说,一个 RDMA 流由以下特征定义:
五元组 (5-tuple):由于 RoCEv2 封装在 UDP/IP 之上,网络设备(交换机)看到的“流”是由 Source IP, Dest IP, Protocol (UDP), Src Port, Dst Port 决定的。
注意:在 RoCEv2 中,Dst Port 通常固定为 4791 (RoCEv2),而 Src Port 通常由硬件根据流的特征(如 QP Number)计算哈希值生成,专门用于让交换机做 ECMP(等价多 ...
论文阅读 ACC:automatic ECN tuning for high-speed datacenter networks
paper: ACC: automatic ECN tuning for high-speed datacenter networks
Introduction & Background核心问题在高速数据中心网络(25Gbps ~ 100Gbps+)中,RDMA 被广泛使用以降低延迟。目前的拥塞控制机制(如 DCQCN)依赖于交换机上的 ECN(显式拥塞通知)标记。
现状: 现有的方案通常使用静态的 ECN 阈值($K_{min}, K_{max}, P_{max}$)。
挑战:
流量动态性: 流量模式随时间剧烈变化(例如:白天是延迟敏感的 OLTP,晚上是吞吐量敏感的 OLAP),静态设置无法同时满足低延迟和高吞吐的需求 。
手动调优困难: 这种微调通常需要数周时间,且网络中存在异构设备(不同厂商的网卡和交换机),使得统一配置变得不可能 。
目标: 实现“零配置(Zero-configuration)”,即通过机器学习自动在交换机运行时动态调整 ECN 阈值。
现有方法的局限性 (Observations)论文通过实验指出了静态设置的三大缺陷:
不同流量模式需要不同 ...
并行任务、集群并行
存在 AIGC,但是它们都经过验证。
并行任务处理关于此内容的 C++ 方式,可翻阅本博客的其他文章。
如何监控和管理子进程在 Python 中,subprocess 模块是执行外部命令和管理子进程的标准库。
启动进程:
subprocess.run(): 这是一个高级函数,它会启动一个命令,等待它完成,然后返回一个包含其退出码、标准输出和标准错误的 CompletedProcess 对象。这是一个阻塞操作,在子进程结束前,你的 Python 脚本会一直等待。
subprocess.Popen(): 这是一个更底层的接口,它会立即启动一个命令而不会等待它完成。它返回一个 Popen 对象,你可以用这个对象来与进程交互,比如等待它 (.wait())、检查它的状态 (.poll())、或者读取它的输出流。这是实现并行处理的基础。
监控进程是否结束:
process.wait(): 这是一个阻塞方法。调用它会暂停你的脚本,直到这个特定的子进程结束。
process.poll(): 这是一个非阻塞方法。调用它会立即返回进程的状态:如果进程仍在运行,返回 None;如果进程已经结束, ...
强化学习笔记
这不是一个完整的笔记,而是作为一个 attached link 附在 Zotero 上以做补充。
使用的教材:https://github.com/MathFoundationRL/Book-Mathematical-Foundation-of-Reinforcement-Learning/tree/main
Bellman equation关于式 2.7 的一些解释。
数学这两个式子相等,是因为它们本质上是对同一组项进行求和,只是交换了求和的顺序。
在数学中,对于有限项的(或者绝对收敛的)双重求和,求和的顺序是可以任意交换的,这基于加法的交换律和结合律。
1. 第一个式子:
\sum_{s' \in S} v_\pi(s') \sum_{a \in A} p(s'|s, a)\pi(a|s)
我们看内部的和 $\sum_{a \in A} \dots$ 。$v_\pi(s’)$ 位于这个和的外部。
由于 $v_\pi(s’)$ 不依赖于求和变量 $a$,我们可以将其移到内部求和的里面(把它当作一个系数):\sum_{s' \in S} \left( \sum_{a \in A} v_ ...
深度学习小记
前置知识请见 人工智能导论 。
初识 TensorFlow官网: https://www.tensorflow.org
TensorFlow 大框架:
Estimator 属于 High level 的 API,而 Mid-level API 分别是:
Layers:用来构建网络结构
Datasets:用来构建数据读取 pipeline
Metrics:用来评估网络性能
Tensorflow1.0 主要特性:
XLA —— Accelerate Linear Algebra
提升训练速度 58 倍
可以在移动设备运行
引入更高级别的 API —— tf.layers / tf.metrics / tf.losses / tf.keras
Tensorflow 调试器
支持 docker 镜像,引入 tensorflow serving 服务
Tensorflow2.0 主要特性:
使用 tf.keras 和 eager mode 进行更加简单的模型构建
鲁棒的跨平台模型部署
强大的研究实验
清除不推荐使用的 API 和减少重复来简化 API
使用 Tensorflow ...
win + debian 双系统
使用 win11 + debian 双系统有挺久了,稍微记一下使用经验。
挂载 win 下的盘
debian13 testing 不必额外安装驱动,输入密码即可挂载 win 下的盘。以下教程是针对 debian12 的。
debian 可以自动识别 win 下的盘,但是是只读模式。这会造成一些麻烦,例如我们想将数据都放到 win 的 D 盘下面,这样就可以只给 debian 分配较小的空间,因此必须能对 win 下的磁盘进行读写,以支持在 debian 下的工作。
若 Windows 没有完全正常关机,而是进入了休眠或者启用了快速启动功能,会导致 Windows 的 NTFS 文件系统处于“不干净”的状态。为此,在 Windows 系统中进行操作:
控制面板 -> 电源选项 -> 更改高级电源设置
在“电源按钮和盖子”下面,将“按下电源按钮时”设置为“关机”
取消勾选“启用快速启动(推荐)”
Apply
关机,启动 debian.
查看 Windows D 盘在 debian 系统中的设备名称:
1sudo fdisk -l
安装 NTFS-3G 驱动:
12sudo ...










