- 博客(30)
- 收藏
- 关注

原创 大模型实战案例目录
本项目将以Qwen为例,展示如何在其架构中集成第三方插件,实现任务的模块化扩展。我们将详细讲解插件接入的关键步骤,探讨如何借助插件丰富模型的功能,并针对实际应用中的挑战和优化策略进行深入分析。面对复杂的模型架构和繁琐的技术实现,许多从业者或初学者往往无从下手。因此,创办“大模型实战案例”专栏,旨在为读者搭建一个通向大模型实践的桥梁。这个专栏中我们将深入讨论大模型的原理、架构与应用。通过实际项目以及案例来帮助订阅者们能够理解其背后的关键技术。实战项目1:大模型插件使用。
2024-11-04 20:48:11
212
原创 从0实现llama3
这个链接实现了一个非常简洁的BPE分词器 简易分词器实现 1) 训练 tokenizer 词汇表并合并给定文本,2) 将文本编码为 token,3) 将 token 解码为文本。项目结构如下:Basic.py文件通过BPE算法来合并最常见的字节对,从而构建词汇表并对文本进行编码和解码。加载BPE分词器Llama3定义了一些特殊token,如begin/end_of_text用来标记文本开始结束,reserved_special_token_n:预留标记用来完成特定任务。load_t
2025-01-01 20:27:47
928
原创 SFT训练数据该如何获得
• 通过让ChatGPT基于给定指令生成大量训练数据,并根据需求对数据进行调整,确保任务的多样性和挑战性。• 研究表明,基于指令的数据集能够有效提升大语言模型(LLM)在多种任务上的表现。• ChatGPT作为模型评估的“自我评判者”,提升了评估过程的灵活性与精准度。:在200万条数据的基础上,增加数据集能继续提升性能,但效果递减。生成指令数据集的方法,以及不同规模的数据集在不同任务上的效果。:200万数据的提升效果有限,数据集扩大不会带来显著的改进。(基于指令的微调)成为了NLP领域的热点。
2024-12-25 15:23:42
422
原创 强化学习代码实现PPO
梯度更新:通过截断(clipping)限制策略更新幅度,避免策略变化过大影响稳定性。首先是数据预处理,将相关数据(状态、采取的动作、状态奖励、下一个状态)放到gpu上。根据当前状态 state,利用策略网络生成每个动作的概率分布 probs。2. 修改了策略模型的输出,从每个动作的概率分布变成了动作的均值和方差。1. 修改了动作空间,离散空间变成了连续空间,使用正太分布来采样。3. 修改了动作的ratio的计算,从离散分布变成了正太分布计算。Update函数:通过经验缓冲数据来优化策略模型和价值模型。
2024-12-24 10:30:00
347
原创 Pytorch中的CrossEntropyLoss
无论是 1D 数据、序列数据还是高维数据,这个要求都是一致的。第二维度始终对应分类任务中的类别数 (num_classes),这是 CrossEntropyLoss 的固定设计。1. 对于每个样本或位置,CrossEntropyLoss 期望提供一个类别分布的 logits(未经过 softmax 的分值),的形状为 (N, ...),表示每个样本对应的分类标签。2. 损失函数会沿着第二维度(类别维度)计算每个样本的交叉熵损失。• ... 是额外的维度(例如序列长度、图像的高度和宽度等)。
2024-12-13 15:13:58
339
原创 RFT 强化微调
强化微调是通过高质量任务数据和参考答案优化大语言模型的推理能力的方法。•核心区别:与传统的监督微调(SFT)不同,RFT 并非简单地“教模型记住答案”,而是引导模型在复杂问题中学会推理,从而更准确地解决任务。•技术构成:RFT 融合了 SFT 的监督学习基础和强化学习(RL)的奖励机制,通过多轮自我优化训练,使模型能生成更高质量的答案。例如,在医疗领域,RFT 可通过患者症状推断潜在的遗传基因,而不仅仅是回忆训练数据中的信息。这种能力对于处理复杂推理任务尤为重要。
2024-12-07 20:37:00
1102
原创 Transfomer教程
当输入中包含自定义的标记符或者自定义的token时,tokenizer可能不会识别出,因此需要使用新token来加入到模型词表中。参数是新 token 列表,如果 token 不在词表中,就会被添加到词表的最后。参数是包含特殊 token 的字典,键值只能从bos_tokeneos_tokenunk_tokensep_tokenpad_tokencls_tokenmask_token中选择。同样地,如果 token 不在词表中,就会被添加到词表的最后。添加后,还可以通过特殊属性来访问这些 token,例如。
2024-12-07 12:01:09
1001
原创 一文搞懂SGD,Mometum,RMSProp,Adam,Adamw优化器
会累积之前梯度的更新方向,当前更新不只依赖当前的梯度,还受到过去更新方向的影响。2、某些梯度分量的值比另外一些分量的值要大的多,导致个别分量主导了梯度的更新方向,而期望的梯度更新方向却行进的非常缓慢.1、每一轮迭代使用的训练数据一般是小批量的,没有使用全部的训练数据,因此更新方向会发生锯齿状甚至随机震荡状;就会使得对最远的参数影响逐渐衰减 ,可以有效跟踪趋势,同时减弱数据中的随机波动影响。: 累积的动量值(类似于过去梯度的指数加权平均)。:累积的平方值大,学习率变小,从而减少更新幅度。
2024-11-20 20:05:22
949
原创 sawling law for precision
11月7号 发布了一篇论文 详细讨论了低精度训练和推理会影响模型的性能。并且将传统的Sawling Law与精度对模型的影响和推理联系了起来。
2024-11-16 11:05:47
1591
原创 KVcache进阶
上篇文章讲了如KVcache的原理,这篇文章讲解一下KVcache的缓存大小控制KVCache存在的主要问题:KVcache就是一种用内存来换取计算量的方法,但是如果有一个长的token序列,KVcache的缓存太大如何解决??
2024-11-13 17:48:20
1373
原创 实战4 基于Qwen2的信息提取系统
{'address': '北京市朝阳区亮马桥外交办公大楼', 'name': '小明', 'tel': '2450185404'}现在你可以使用这些信息来寄邮件给小明了。如果你还需要进一步的帮助,请告诉我。联系人“小明”已经被成功添加。- 地址: 北京市朝阳区亮马桥外交办公大楼。- 电话: 2450185404。实现一个邮件信息提取系统。
2024-11-11 17:48:04
289
原创 实战3 基于Qwen2的大模型地图问答助手
首先用户输入一个查询,例如某个地点附近是否有特定地点,然后项目通过与高德地图 API 结合,获取相关的地理位置和附近地点信息。通过定义的工具函数 get_local 和 search_nearby,模型可以实现功能性调用来返回地理位置相关信息。get_completion_demo3函数向模型请求一个完成结果,根据传入的 model 和 message。POI:高德地图中的兴趣点,在地理信息系统中,一个POI可以是一栋房子、一个商铺、一个邮筒、一个公交站等。根据中心点的经纬度,搜索附近的 POI。
2024-11-07 14:00:00
876
原创 Page Attention图解
上篇讲到了KVcache,KVcache就是将KV对存放到显存中用来加快推理过程的技术。但是KVcache有一个缺点:如何合理的分配显存?学过操作系统的人肯定都懂,如何合理的分配内存是个大问题,解决方法就是使用分页解决。无独有偶,PageAttention就是参考了OS中的内存分配方法来实现的。
2024-11-07 10:30:00
611
原创 通俗易懂的KVcache图解
在分享之前先提出三个问题:1. 为什么KVCache不保存Q2. KVCache如何减少计算量3. 为什么模型回答的长度不会影响回答速度?本文将带着这3个问题来详解KVcache。
2024-11-06 18:56:16
1402
原创 大模型解决长文本输入问题
看了Kimi的广告,我发现它主打的就是“长”,不管是输入文件还是什么都能给你支持。直到今天,kimi能够支持200万token的输入,并且支持处理500个文件。我只能说200万汉字大概有6000k的tokens,如果模型处理文本真的能有这么大,那当之无愧的国产最强大模型。但是 Kimi家的模型底层用的还是moonshot大模型,它所开放的接口也就128k。截止目前数据模型可处理Tokens推出时间128k2024-3longformer40962023-3ChatGPT-4128k。
2024-11-04 18:15:33
1089
原创 Transformer中为什么是layer norm不是batch norm
讨论一下为什么transformer中用layer norm前序知识:常见的归一化层的工作原理之前已经讲过各个常见的归一化层了,不了解的可以去看看这篇文章。首先咱们得了解在NLP中,如果输入的几个句子不是等长的,需要使用Padding技术或者Truncation技术来使句子等长。因此对于短文本来说,为了对齐长句子,剩下的位置会被填充零向量,即 [0, 0, 0, ..., 0]。它对应的vector可能是这样用“0值”padding后的结果因此对于文本来说,这些embedding是没有意义的。
2024-11-02 15:43:35
1184
原创 常见的归一化层 小白速进
通俗的讲一下各种常见归一化层以及Transformer中为什么是layer norm层。如果你不是专门研究算法的,而是想学习如何使用或者为什么使用norm 可以不需要去关注公式本身,而去注重理解原理以及应用场景。每个归一化层我都会用两个例子来说明它的原理,建议小白先看举例再看每个norm原理。
2024-11-02 13:48:15
1123
原创 CV中使用SelfAttention
今天分享一下CV中SelfAttenion的发展历程吧众所周知,Transformer架构在NLP领域大放异彩,CV领域也想沾沾这份喜气,于是很多人就在想如何使用Transformer。其中最关键的技术就是SelfAttention了,因此图片中如何使用SelfAttention成为了研究的重点内容。
2024-11-01 23:47:55
745
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人