welcome.md
Parameter Efficient Fine-Tuning
LLM Training StagesCurrently the training of Large Language Models (LLMs) can be divided into three stages: graph LR A[Pre-training] --> B[Fine-tuning] --> C[Inference] Pre-trainingPre-training...
Model Quantization
Model Quantization量化是一种用来减少模型大小和加速推理的技术。主要是通过把模型权重从较高精度的数据类型如FP32转换为较低精度的数据类型如FP16/INT8来实现的。当然也有更加激进的量化方式,比如把权重量化到INT4,甚至是二值化,BitNet恐怖如斯。 这里可能要注意一下,量化到INT8和FP8是不一样的,INT8是整数,FP8是浮点数,两者的表示范围和精度是不一样的。一般来...
MLSys 学习笔记 1
1. GPU ECC(Error‑Correcting Code) 原理:在显存(VRAM)中为每 N 位数据生成冗余校验位,常见为 SECDED(单错纠正、双错检测)。 实现: 专业级卡(Tesla/Quadro/A100、AMD Instinct)默认支持 ECC,消费级卡多关闭或不支持。 ECC 逻辑集成在内存控制器,对程序透明。 优缺点: 优点:避免显存位翻转导致的 S...
括号问题
括号是一类有趣的问题,主要与有效括号相关,例如: 检查字符串是否是有效括号 在子串中找到最长的有效括号(子串) 在子串中找到最长的有效括号(子序列) 为给定长度生成所有有效括号 … 在深入探讨每个主题之前,让我们定义什么是有效括号。()、()()()()和((((((()))))))(())()。 123456789101112131415161718192021def isValidPare...
限流算法
限流器是分布式系统中的一个关键组件。通常,我们可以用它来防止DDoS或恶意请求。在这篇文章中,我们将介绍几种可用于限流的算法。 令牌桶令牌桶是一个具有预定义容量的容器。令牌以预设的速率定期放入桶中。一旦桶满了,就不会再添加令牌。如图所示,令牌桶容量为4。填充器每秒向桶中放入2个令牌。一旦桶满了,多余的令牌就会溢出。 令牌桶可以处理突发请求,并且可以确保限制不会超过预设的容量。 漏桶漏桶类似于令...
Backtracking Template
回溯算法回溯算法通常用于搜索解空间。这样的解空间往往是组合爆炸式增长的,比如排列问题就是一个典型示例。 给定一个数字 ,打印出区间  中所有数字的排列。 对于 ,期望输出: 1234561,2,31,3,22,1,32,3,13,2,13,1,2 在这种情况下,我们需要使用回溯来解决问题。回溯会在每次做出决策、选择一个候选项扩展时保存一个“检查点”。 下面给出回溯算法的模板: 123456789...
Docker 杂记
DockerfileDockerfile是一个包含容器镜像定义的文本文件,可用于启动容器。这个定义包含命令、基础镜像、配置等。在这篇文章中,我们将介绍每个组件,并讨论在什么场景下使用它们。让我们开始吧。 Docker镜像在深入了解各个组件之前,我们可能想知道Docker镜像到底是什么。参考:镜像的结构 镜像是一个只读模板,包含创建Docker容器的指令。通常,一个镜像是基于另一个镜像,并进行一些...
Linux系统概述
Linux可能是世界上使用最广泛的操作系统。了解Linux系统的基础知识对开发者在很多方面都有益处。 文件系统你可以在这里找到更详细的文件系统层次结构。 内核环境变量PATHPATH是最重要的环境变量之一。默认情况下,它的值为 1/usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin: 当你输入一个命令时,它会搜索上述所有文件夹,并查找是否存在同名的可执行文件。用...
随机算法
带权重的 random()random() 是一个重要的函数,它会以相同的概率返回一个随机数。带权重的 random() 要求我们生成具有不同权重的随机数。 12345例如:A = [10, 50, 20, 20],如果我们用 P(x) 表示返回 x 的概率,则有:P(0) = 10 / 100 = 0.1P(1) = 50 / 100 = 0.5P(2) = 20 / 100 = 0.2P(3)...
并查集
12345678910111213141516171819202122232425262728293031class UnionFind: def __init__(self, n): self.parent = list(range(n)) self.rank = [1] * n self._count = n def find(self, ...