自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(44)
  • 收藏
  • 关注

原创 为什么transformer对KVcache?

在自回归生成中(如 GPT 生成文本时),模型会:先输入第一个 token,生成第二个;再将前两个 token 作为输入,生成第三个;以此类推。每一步生成时,都需要计算当前输入序列的注意力分布。注意力的核心计算公式是:其中,Q、K、V 分别是 “查询”“键”“值” 矩阵,由输入序列通过线性层映射得到。在解码阶段,为了保证因果性(即当前 token 只能关注之前的 token),会使用,使得第 t 个 token 的 Q 只能与前 t 个 token 的 K 计算相似度。

2025-09-03 09:40:32 357

原创 Lora家族

近似原始权重矩阵的更新。假设原始权重矩阵为 W0,微调时引入两个低秩矩阵 A(维度 d * r)和 B(维度 r *k),使得更新后的权重为W = W0 + BA,其中 r<<min(d, k)。这种分解将可训练参数从O(dk)减少到O(r(d + k)),例如当r=16时,参数压缩率可达。LoRA(Low-Rank Adaptation)通过。QLoRA(Quantized LoRA)结合。与 LoRA,实现显存的极致压缩。结构重参数化与专家混合。量化与低秩的双重优化。服务端优化与并发执行。

2025-09-01 17:47:18 711

原创 26届算法秋招_baidu笔试_算法编程题。

2)对于两个区间A = [startA, endA]和B= [startB, endB],它们的交集区间为[max(startA, startB), min(endA, endB)],前提是max (startA, startB) < min(endA, endB)。1)替换:将str1[i-1]替换为str2[j-1],操作数=1+dp[i-1][j-1]3)插入:在str1的i位置插入str2[j-1],操作数=1+dp[i][j-1]2)删除:删除str1[i-1],操作数=1+dp[i-1][j]

2025-08-03 15:47:26 411

原创 加了lora适配器之后模型推理变慢?

理论上,可以将 LoRA 适配器完全融合到原始模型的权重中,生成一个新的微调模型。这样推理时就没有额外的计算开销。然而,LoRA 的一个主要优势就是适配器小巧,可以动态插拔和切换,且可以针对不同的任务训练多个适配器而不改变大模型基座。如果静态融合了,就失去了这些灵活性。所以,在实际应用中,很少为了推理速度而牺牲 LoRA 的核心优势进行静态融合。这意味着在推理的每一步,LoRA 适配器的输出都会与原始模型的相应层输出相加。这种实时融合会引入额外的计算步骤。多数情况下,LoRA 适配器是。

2025-07-03 11:08:09 729

原创 手撕XGBoost

每棵树拟合损失函数的负梯度。

2025-07-02 11:50:57 528

原创 NLP基础2_文本分类

文本分类(Text Classification)目标是将给定的文本文档自动归类到一个或多个预定义的类别中。:判断评论是正面还是负面:区分正常邮件和垃圾邮件:将新闻归类到体育、财经、科技等板块:理解用户查询的真实意图:根据症状描述分类疾病类。

2025-07-02 10:52:05 1260

原创 LlamaFactory打开梯度检查点

打开LLaMA-Factory/src/llamafactory/hparams/model_args.py。一般做法是在LLaMA Factory中,可以通过在配置文件中设置。将这里的default设置为False即打开梯度检查点。

2025-06-27 10:29:34 955

原创 LLaMA Factory 微调后,迁移模型

步骤:1.在源服务器登录 Hugging Face:2.在训练脚本中添加上传代码:3.在目标服务器安装 transformers:4.下载模型:方法 2:直接文件传输(适用于大型模型)步骤:1.在源服务器打包模型:2.使用 SCP 传输:3.在目标服务器解压:方法 3:使用 rsync(适合大型文件增量传输)方法 4:模型导出为单文件(简化传输)完整迁移脚本示例迁移后验证步骤1.模型完整性检查:2.推理测试:

2025-06-27 10:09:37 572

原创 NLP基础1_word-embedding

在自然语言处理(Natural Language Processing,NLP)领域,文本表示是处理流程的第一步,主要是将文本转换为计算机可以运算的数字。使用两个例句来构造词袋: [Jane, wants, to, go, Shenzhen, Bob, Shanghai]:词典编码「自然语言处理」→ {"自":1, "然":2, "语":3, "言":4, "处":5, "理":6}句1:[1,1,2,1,1,0,0] 句2:[0,1,2,1,0,1,1]机器翻译 Machine Translation。

2025-06-24 15:36:18 1301

原创 多模态大模型_跨模态联合表示学习

多模态大模型目标:通过神经网络将不同模态(文本、图像、音频等)映射到统一语义空间,实现模态间相互理解。文本:词嵌入(Word Embedding) + 位置编码(Positional Encoding)图像:分块线性投影(Vision Transformer 方式)数学本质:将原始数据转换为高维向量,保留语义信息。

2025-06-24 10:08:29 1241

原创 Python算法笔记1_双指针问题

基于《你也能看得懂的python算法书》。“指针”是变成语言中的一个对象,用于存储一个内存空间的地址。双指针问题主要涉及:数组合并,二分查找,链表。

2025-06-22 19:58:39 392

原创 LLM基础9_vLLM

步骤1:创建自定义模型类# 自定义实现...# 步骤2:注册模型# 步骤3:使用自定义模型。

2025-06-20 13:53:23 878

原创 向量数据库chromadb

Chroma是一款开源的向量数据库,它使用向量相似度搜索技术,可以快速有效地存储和检索大规模高维向量数据。它能帮你把文本、图片、音频等非结构化数据转化为机器可理解的,然后快速找到它们之间的相似性。目前Chroma库支持python和JavaScript两种语言。

2025-06-20 11:05:45 3087

原创 手搓LightGBM

【代码】手搓LightGBM。

2025-06-18 11:57:39 522

原创 PyTorch框架的核心组成部分及用法

PyTorch是一个由Facebook AI Research (FAIR) 开发的开源机器学习库,广泛应用于深度学习领域,特别是在研究和快速原型开发中。它以其而闻名,这使得模型构建更加灵活和直观。

2025-06-16 17:06:37 1068

原创 LLM基础8_使用人类反馈进行微调(RLHF)

基于。

2025-06-13 18:49:28 670

原创 LLM基础7_用于文本分类的微调

基于。

2025-06-12 15:02:36 1189

原创 LLM基础6_在未标记数据上进行预训练

基于:让模型大量阅读各种文本:教模型完成特定任务(如问答)

2025-06-10 16:28:42 980

原创 LLM基础5_从零开始实现 GPT 模型

基于。

2025-06-09 22:11:56 954

原创 手搓transformer

最终输出形状:(batch_size, seq_len, d_model) = (1, 3, 4)#nn.Eembedding是pytorch中的一个类,用于将输入的索引转换为对应的词向量。

2025-06-08 16:40:34 435

原创 LLM基础4_多头注意力机制

基于。

2025-06-06 17:37:36 481

原创 LLM基础3_编写注意力机制

基于。

2025-06-06 14:48:33 1223

原创 LLM基础2_语言模型如何文本编码

比如:“白日依山_",语言模型会根据上文推测出下文可能是“尽”,“水”……等,最终经过对比,选取最可能的词填上,得到“白日依山尽”。流程总结:原始文本->BPE分词->ID序列->滑动窗口->训练样本->嵌入层->词向量。就像给教室座位编号:每个词语有"含义身份证"(词嵌入)->再加个"座位号"(位置编码)比如"猫追老鼠"和"老鼠追猫",虽然词语相同但意思完全相反!:先准备256个基础字符(a-z, A-Z, 标点等):遇到新词就卡住(如"Hello"):把高频组合变成新"积木块"组合词嵌入与位置嵌入。

2025-06-05 14:48:32 1397

原创 LLM基础1_语言模型如何处理文本

tiktoken:OpenAI开发的专业"分词器"torch:Facebook开发的强力计算引擎,相当于超级计算器。

2025-06-05 11:59:28 742

原创 微调embedding模型_jhgan-ko-sroberta-multitask

语言适配:针对韩语优化的sRoBERTa架构高效池化:注意力加权平均提升表征质量相似度优化:余弦距离直接作为回归目标轻量微调:仅需少量样本(示例中batch_size=2)训练可视化:实时监控模型收敛情况即插即用:保存格式兼容HuggingFace生态建议应用场景:韩语问答系统/推荐系统/语义搜索等需要细粒度语义理解的任务这种微调方式使模型适应特定领域的语义空间分布,相比原始预训练模型,在目标任务的嵌入质量可提升15-30%(取决于训练数据质量)。

2025-06-03 14:07:49 772

原创 python力扣刷题记录_162寻找峰值

7.最后返回right,因为right是第一个大于等于nums[mid]的元素的下标,所以right就是峰值的下标。#5.如果nums[mid] > nums[mid+1],那么说明mid是一个峰值,所以right = mid。#6.如果nums[mid] < nums[mid+1],那么说明mid不是一个峰值,所以left = mid。#2.用left = -1和right = len(nums) - 1来初始化左右指针。#4.用mid = (left + right) // 2来计算中间元素的下标。

2025-06-01 10:25:20 325

原创 python力扣刷题记录_34查找元素第一个和最后一个位置

4.用right = search(target+1) - 1来查找第一个大于等于target+1的元素的下标。#3.用left = search(target)来查找第一个大于等于target的元素的下标。#5.如果left<=right,那么返回[left,right],否则返回[-1,-1]#2.用一个函数search(x)来查找第一个大于等于x的元素的下标。#时间复杂度:O(logn),空间复杂度:O(1)#6.用return ans来返回答案。#1.用二分查找来解决这个问题。

2025-05-27 22:48:51 182

原创 Mac 利用git管理代码_本地/服务器

5)如果本地下载啦VScode软件,打开github Desktop应该能看到仓库下会有以下的选项,即可以用VScode打开,点击这个按钮VScode就会打开你的代码文件,在其中对代码文件做任何修改,点击保存然后再点publish repository就可以将代码修改上传到github上了。最上面的三个按钮,“Current repository”查看仓库、切换仓库,“Current branch”当前分支,“Publish repository”推送到github。点击右侧“从本地目录添加到现存仓库”

2025-05-24 18:55:21 423

原创 Python力扣刷题记录_3无重复字符的最长子串

2.用一个hashmap来记录字符出现的次数,key:char,value:int。#3.用一个for循环来枚举右端点r,从0到n-1。#4.枚举过程中出现重复字符就缩小范围,移动左端点。#1.用一个变量ans来记录答案,初始值为0。#时间复杂度:O(n),空间复杂度:O(1)

2025-05-24 18:11:58 190

原创 python力扣刷题记录_713乘积小于k的子数组

3.用双指针来解决这个问题,左端点l,右端点r,子数组:[l,r],[l+1,r],……,[r,r],个数为r-l+1。#2.如果k>1,那么答案一定是大于0的,因为nums中的元素都是整数。#1.如果k<=1,那么答案一定是0,因为nums中的元素都是整数。#7.用一个while循环来移动左端点l,直到prod<k。#4.用一个变量prod来记录子数组的乘积,初始值为1。#6.用一个for循环来枚举右端点r,从0到n-1。#8.用ans+=r-l+1来更新答案。#10.用l+=1来更新l。

2025-05-24 17:52:34 134

原创 python力扣刷题记录_209长度最小的子数组

3. 如果窗口和s大于等于target,更新答案ans。#2. 枚举右端点right,更新窗口和s。#时间复杂度:O(n),空间复杂度:O(1)#1. 初始化窗口和s和左端点left。#双指针的应用场景:单调性。#4. 返回答案ans。

2025-05-21 15:26:06 441

原创 python力扣刷题记录_42接雨水

1. 初始化前缀最大值数组pre_max和后缀最大值数组suf_max,分别存储每个位置的前缀最大值和后缀最大值。#如果前缀最大值比后缀最大值小,那么前缀最大值就是当前位置的雨水量。#如果后缀最大值比前缀最大值小,那么后缀最大值就是当前位置的雨水量。#2. 遍历数组height,更新pre_max和suf_max。#3. 再次遍历数组height,计算每个位置的雨水量。#时间复杂度:O(n),空间复杂度:O(n)#时间复杂度:O(n),空间复杂度:O(1)#4. 返回所有位置的雨水量之和。

2025-05-21 14:28:31 321

原创 python力扣刷题记录_11盛最多水的容器

3.移动指针,使得高度较小的指针向内移动。# 4.重复步骤2和3,直到左右指针相遇。#时间复杂度O(n),空间复杂度O(1)# 1.使用双指针,分别指向数组的两端。# 2.计算当前的面积,更新最大面积。

2025-05-20 11:42:44 387

原创 python力扣刷题记录_15三数之和

优化1:因为数组是有序的,if x + nums[i+1] + nums[i+2] > 0: 就可以直接break了,因为后面的数都比nums[i+2]大,不可能再找到答案了。#优化2: 如果x + nums[-1] + nums[-2] < 0: 就可以直接continue了,因为后面的数都比nums[-1]小,不可能再找到答案了。#有序数组找不重复三个数的和为0,返回这三个数。

2025-05-19 22:56:51 235

原创 python力扣刷题记录_167两数之和II

时间复杂度:O(n),空间复杂度:O(1)

2025-05-19 22:32:34 315

原创 python力扣刷题记录_3最长子串

每次扩展时检查当前字符是否在临时列表 lst 中,若无重复则添加,否则终止内层循环。#给定一个字符串 s ,请你找出其中不含有重复字符的 最长子串 的长度。#用集合记录当前窗口的字符,双指针left和right维护窗口边界。# 内层循环从 i 开始向右扩展子串,直到遇到重复字符。# 外层循环遍历每个字符作为子串的起点 i。# 最终记录所有子串的最大长度。#优化一:滑动窗口+哈希集合。#优化二:滑动窗口+哈希表。#时间复杂度O(n^2)#时间复杂度O(n)

2025-05-17 18:15:20 180

原创 <python>常用算法5_Merge_Sort

归并排序,原理是将数组分为两部分,分别进行归并排序,然后将两部分合并。

2025-05-17 17:39:10 114

原创 <python>常用算法4_Quick_Sort

快速排序,原理是选择一个基准元素,将数组分为两部分,一部分小于基准,一部分大于基准,然后对这两部分递归进行快速排序。#递归的终止条件是数组长度小于等于1,此时数组已经有序,直接返回。#比如:quick_sort([3, 6, 2, 1, 5])#时间复杂度O(nlogn)

2025-05-17 16:51:42 217

原创 <python>常用算法3_Insert_sort

当 key == arr[j] 时,由于条件 key < arr[j] 为假,不会交换,相等元素的相对顺序保持不变。"j -= 1"+"j >= 0"的判断是为了将i左边的区域数据都和key比较一次,然后排序。#插入排序,原理:将未排序部分的元素,插入到已排序部分的合适位置。#在数组头部预置一个极小值作为哨兵,省去j>=0的判断。#时间复杂度O(n^2)

2025-05-17 16:36:31 257

原创 python力扣刷题记录_2两数相加

给你两个 非空 的链表,表示两个非负的整数。它们每位数字都是按照 逆序 的方式存储的,并且每个节点只能存储 一位 数字。# 请你将两个数相加,并以相同形式返回一个表示和的链表。#逐位相加:从链表头部(个位)开始遍历,同时处理进位。# 适用于需要预分配内存的场景。# 提前计算可能的最大进位值。#数学优化:进位预测。

2025-05-15 10:22:53 140

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除