- 博客(106)
- 资源 (6)
- 收藏
- 关注
原创 口语笔记——现在完成时
对时间段提问时(how long),必须用可延续动词,不可延续动词 要换成 可延续的动词或系表结构,来表示可延续的状态。穿衣服的动词原本是put on,但这个动作不可延续,所以换成了能表达相同含义的be动词。当无法变成延续性动词或状态时,用since从句,从句的时态是一般过去式。也可以将put on 换成 wear,表示长时间穿着,也是可延续性动词。现在完成时中的时间有两种表示形式:时间点和时间段。
2024-09-11 13:33:33 1033
原创 欺诈文本分类检测(十四):GPTQ量化模型
本文通过gptq方法分别对微调后的模型进行了8位量化和4位量化,并对比了量化前后模型的性能指标差异,8位量化模型的性能指标变化小,而4位量化模型的性能指标变异较大。
2024-09-11 00:01:36 1224
原创 口语笔记——状语
状语主要用来修饰动词,也可以修饰副词、形容词和整句。状语是用来说明时间、地点、原因、方式、程度、频率、目的、结果、伴随等。状语特点:加上或去掉对整个句子是否成立没有影响,就像上面的和yesterday去掉后的句子剩余部分仍然成立。
2024-09-07 12:51:41 856
原创 欺诈文本分类检测(十三):交叉训练验证
修改评估和保存模型的策略,由每100step改为每个epoch,原因是前者保存的checkpoint有太多冗余。将num_train_epochs调整为2,表示每个折子的数据集训练2遍,k=5时数据总共会训练10遍。注:当时训练过程中会意外发生OOM,所以临时将批次大小per_device_train_batch_size改为8.lora_config.lora_dropout = 0.2 # 增加泛化能力。
2024-09-07 11:48:50 1698
原创 欺诈文本分类检测(十二):模型导出与部署
使用LoRA 适配器训练完后,每次推理时候都需要分别加载基座模型和 LoRA 适配器,一方面比较繁琐,另一方面也不利于模型部署,因此有必要将基座模型和 LoRA 适配器进行合并,导出成一个模型。
2024-09-06 06:48:32 989
原创 欺诈文本分类检测(十一):LLamaFactory多卡微调
本文尝试用LLamaFactory工具对前面的欺诈文本分类任务进行了SFT微调训练,并启用了多张GPU,多GPU的直接影响是批量大小batch_size的4倍增加,使得模型每次训练时能看到更多的数据,进行更稳定梯度估计和更准确的参数更新,最终在评测指标上有一个显著的提升。
2024-09-05 06:31:12 1551
原创 欺诈文本分类检测(十):QLora量化微调
QLoRA只是通过量化技术减少了模型参数加载时的显存占用,但训练时仍然会反量化为16位进行矩阵计算,尤其是前向和反向传播阶段,显存的主要消耗来自于激活值、梯度和优化器状态,模型参数仅仅是一小部分,这就导致真正训练过程中占用的显存相比非量化时并没有减少。原因可能是由于我们的模型太小,训练时的批量相对较大,所以模型参数加载时所优化的那部分内存,与整个训练过程中所占用的内存相比比例较低,内存优化的整体效果就不明显。训练时的显存占用相比非量化时并没有明显变化,基本上占满了24G显卡的显存。
2024-09-04 12:11:16 838
原创 口语笔记——虚拟语气
It‘s necessary / strange / hard / important + that + 从句中的动词要用虚拟,即(should) + 动词原形。虚拟语气分为主句和条件从句,从句用来表达说话者做出的条件假设,主句用来表达假设成立时会采取的行动或导致的结果。语法规则:If + 主语 + had done 主 + would/could/should/might have done。从句语法:If + 主语 + did/were to/should do, 所以上面的从句也可以换成。
2024-08-29 18:09:22 758
原创 微调方法概览
大语言模型(LLM)的训练过程通常分为两大阶段:此阶段模型是在大规模的上接受训练,目标是使模型掌握词汇的含义、句子的构造规则以及文本的基本信息和上下文。需特别指出,预训练实质上是一种无监督学习过程。完成预训练的模型,亦即基座模型(Base Model),拥有了普遍适用的预测能力。像modelscope上带字样的就是预训练模型。预训练完成的模型接下来会在针对性的任务数据集上接受更进一步的训练。这一阶段主要涉及对模型权重的细微调整,使其更好地适配具体任务。最终形成的模型将具备不同的能力,如gpt chat系列
2024-08-29 12:16:27 1241
原创 口语笔记——情态动词
shall 用于第二三人称陈述句中表命令,警告,承诺,决心等。而用于第1从称疑问句中时表示征求意见(见上面)。ought to 比 should语气重,场合更正式,在书面和合同里会用ought to。must表主观意愿,一定, have to表被迫完成由外物决定,不得不。表否定时,can not 表示不可能,may not 表示可能不。dare也有情态动词与实义动词两种用法。need有情态动词与实义动词两种用法。could(can的过去式)
2024-08-28 22:30:04 732
原创 欺诈文本分类微调(八):批量评测
这句话的意思是说:当使用批量模式时,必须将一个批量内的数据长度对齐,对齐方式有两种选择:1)以长的序列为主,将短的序列填充,对应padding参数;2)以短的序列为主,将长的截断,对应truncation参数;但是根据模型训练时的batch_size设置,模型是支持批量预测的,所以我们有必要根据此特性对评测脚本做一次改造,以支持批量预测,提高每次评测的效率。:本文通过对模型批量生成文本的探索,让评测函数支持了批量预测,提高了评测效率的同时,也对padding的使用场景以及左、右填充的区别有了更深的理解。
2024-08-28 08:33:34 1024
原创 Lora微调训练参数解读
通过前面两次微调训练欺诈文本分类微调(六):Lora单卡和欺诈文本分类微调(七)—— lora单卡二次调优,我们已经初步理解了微调的整个过程,里面涉及到不少的参数配置,这篇文章就对前面用到过的参数作一个基本的梳理和总结。
2024-08-27 12:49:37 1545
原创 口语笔记——高频介词
ahead of: 相比于before,可以表示地点、时间、能力等在xxx之前。in并不强调xxx以内,就是指一个月,within才强调xxx之内。out of /with/through/by:出于。besides: 除了什么还有什么(包括)of / about / on: 关于。based on 基于xxx理论/数据,from表示死于外因,of表示死于内因,thanks to xxx : 多亏。except:除什么之外(不包括)throught: 内部穿过。past/by: 旁边经过。
2024-08-24 22:55:17 599
原创 欺诈文本分类微调(七)—— lora单卡二次调优
模型训练是一个不断调优的过程,这注定了我们的需要多次跑同一个训练过程。在前文欺诈文本分类微调(六):Lora单卡跑的整个训练过程中,只有输入和输出:数据路径,模型路径,输出路径需要变化,而其它过程基本不变,我们将整个训练过程中基本不变的部分提取到trainer.py中。
2024-08-24 17:23:12 1011
原创 口语笔记——介词短语之方位指路
出地铁,你能看到七天酒店,往东走到十字路口,右拐,再往前走500米,你能看到小区入口,穿过马路,进去,走到头,就到了。above/below: (不接触的)上方、下方,包括正上方和斜上方。By / beside / next to 在物体内部的旁边。In/at back of/behind 物体外的后面。over/under : (不接触的)正上方、正下方。In front of/before 物体外的前面。In/at the back of 物体内的后面。In the front of 物体内的前面。
2024-08-23 13:38:16 625
原创 欺诈文本分类微调(六):Lora单卡训练
这也是为什么在前面的准备数据环节时,做了很多像长度对齐、均衡分布相关的工作,目的就是去掉误导性的特征,让模型去学习真正的我们期望它去学习的特征。nizer。
2024-08-23 01:16:48 1065
原创 口语笔记——不定代词
不定代词是不指明具体某一个人或物的代词,包括: some/any/every/each/other/the other/another/both/neither/either/all/many/much/little/a little/few/a few。other表示泛指,the other表示特指,other可以当代词,也可以当形容词。anyone / anybody / anything 也表示一些人或事情,用于否定。little/a little用作副词,来修饰动词。
2024-08-22 13:27:55 1014
原创 欺诈文本分类微调(五):模型评测
上面定义的评估数据集采用jsonl格式保存,所以需要一个方法来加载jsonl格式的数据集,本质上就是用json.loads分别加载每条数据,最后再组成一个list。在前文构造的测试数据集基础上,演练了文本二分类这类业务的评测过程,后续可以通过微调等手段提高模型在精确率和召回率两个指标上的表现来持续改进模型。
2024-08-22 06:59:26 1009
原创 欺诈文本分类微调(四):构造训练/测试集
之所以要对一个完整的案例进行分割,是为了尽量贴合实际场景,一方面是一场会议比较长,我们不大可能把整个会议的ASR文本一次给到大模型做欺诈检测,另一方面是为了做到实时检测,这决定了我们拿到的必定是一段对话文本,而不是整个会议ASR。
2024-08-21 00:52:05 1041
原创 口语笔记 ——主宾表从句
转陈述语气:主要是把时表词和主语互换位置(针对疑问句作从句)表否定前移:适用于谓语动词是believe/think时。连词是that/whether时一般都会用形式主语。主语从句有一个问题:头重脚轻,就是主语太长。主语相同,从句可以省略主语,变成不定式。
2024-08-20 13:07:24 1019
原创 欺诈文本分类微调(三):生成反向数据集
介绍了生成正向数据集的方法和过程,本文会使用一些真实会议的ASR文本,来构建欺诈文本分类微调的反向数据集(非欺诈)。得到段落的发言内容后,有些发言内容比较长,我们有必要将发言内容切割,尽可能让正、反向的发言长度保持一致。上面是针对单个段落的切割,而实际场景中我们需要处理的是一个文件中的所有段落,而下面的。
2024-08-20 06:49:33 1133
原创 欺诈文本分类微调(二):生成正向数据集
下面这个提示词是将案例报道的诈骗内容以对话的形式还原,输出包含指定字段的json格式。role: 你是一个分析诈骗案例并且擅长写作的专家,你的任务是将诈骗的案发过程以口语对话的形式还原。instruct:task:- 1. 分析{input}中描述的案发过程,识别出诈骗者和受害者角色,并为每个角色生成一个中文姓名。
2024-08-19 00:12:02 1111
原创 口语笔记——比较让步结果目的状语从句
正常情况,though、although、while没有什么区别。这些让步副词通常会和yet、still、nevertheless连用,但不会和but连用。though和although的区别在于,though可以用倒装句,而although则不可以。第一个as是副词来修饰形容词tall,第二个as是连词来连接主句和从句。such和so和区别:such后加名词,so后面加形容词。比较状语从句主要修饰形容词和副词。主句和从句相同时,有两种简化方式。
2024-08-13 21:43:40 864
原创 欺诈文本分类微调(一):基座模型选型
通义千问Qwen2具有0.5B、1.5B、7B、72B等一系列参数大小不等的模型,我们需要做的是从大到小依次测试每个模型的能力,找到满足自己需要的最小参数模型。依1.5B和1.5B-Instruct的主要区别:按照官方文档,前者是预训练模型,后者是经过指令微调的模型。
2024-08-13 17:59:23 1047
原创 记一次达梦主备切换的问题调试过程
客户侧要求支持中间件sqlproxy支持达梦数据库的主备切换,但这个主备切换功能在开发版本上并不支持,它是商业版才有的功能,为此只能详细研究文档说明,以珍惜成本高昂的试错机会。至此,此问题最终用修改驱动的方式得到解决,基本思想是将连接类的错误都交给dataase/sql包里的连接池来处理,它内部会进行自动重试,这样上层应用不需要关心连接相关的异常。调试这类问题的难点可能就在于:驱动层的逻辑不是掌控在我们手里,包括驱动层的实现逻辑是否存在问题,我们也不得而知,我们能做的只是按照达梦的文档来不停的试参数。
2024-08-08 12:43:14 1055
原创 口语笔记——地点原因方式状语从句
everywhere表示每个地方,只能用于目的地变化的动词,不能用于静止的动词(例如住、在)。Because可以放前,也可以放中间,而for 引导状语从句,只能放中间。It’s right on your left. 它就在你的左边。
2024-08-08 05:46:24 751
原创 口语笔记——定语从句
she is the girl that sings well. (that == the girl) , 作主语不能省略, 也可以用who,但不能用whom。she is the gril that I like. (that==the girl),也可以用who/whom 引导宾语可省略。注:引导主宾表从句的词叫连词,而在定语从句却叫关系代词,定语从句的引导词与主宾表的引导词有何不同?限定性定语从句: 定语从语,从句不能去掉,否则句子意思就会改变。非限定性定语从句中,如果who作宾语,只能用whom.
2024-08-05 23:59:28 738
原创 jupyter支持跨机器远程访问
本地往往缺少GPU设备,为了让我们的代码能在有GPU设备的机器上运行,就需要在远程机器上启动jupyter notebook, 这意味着我们要在本地机器的浏览器上访问远程机器上的jupyter notebook。
2024-08-03 23:32:21 1214
原创 vLLM&cuda安装笔记
其次是cuda,vLLM是拿12.1版本编译的,但本地机器装的cuda为12.0,尝试过向下兼容的方式后无果,最终选择按照官方建议的cuda-12.1来重新安装,这意味着不仅仅是vLLM,机器上已经安装的pytorch、cuda都需要重新安装。
2024-08-03 16:22:22 1678
原创 conda&pytorch环境搭建笔记
上面nvcc命令查到的cuda版本是12.0,但pytorch官网没有提供cuda 12.0的可选择版本,保险起见,选择了低于12.0的11.8作为兼容版本安装。每个库都有不同的版本,每个版本都有不同的依赖关系,如果多个项目的python环境混用,很快就会陷入各种库的依赖冲突的泥潭中。
2024-08-01 14:26:45 1224
原创 基于可视化重学二分类模型
尽管模型有两个层,但state_dict输出结果中仅包含来自线性层的参数,这是因为sigmoid层不包含任何可学习的参数。y_0。
2024-08-01 02:07:21 881
原创 基于面向对象重构模型训练器
深度学习领域我们常用jupyter来演练代码,但实际生产环境中不可能像jupyter一样,所有代码逻辑都在面向过程编程,这会导致代码可复用性差,维护难度高。本文我们将要对整个训练循环的逻辑进行重构,采用封装的方式来提升代码的可复用性,降低维护难度。
2024-07-24 03:02:03 835
原创 git-lfs的安装和使用
git是分布式版本系统,clone时会将文件的所有版本都传输到客户端,如果遇到大文件,初始clone就会需要很长时间,也就是说大文件会导致Git出现性能瓶颈。知道了这个原理,有一个思路是:可以只clone LFS大文件的指针,而不下载原始文件。
2024-07-23 05:47:39 1548
原创 Mac下安装Graphviz实用教程
Graphviz 是一个开源绘图工具,torchviz中的动态计算图绘制就依赖它。但实际执行时,却会遇到关于SSL、mac版本的各种环境问题,尝试多次均无法成功。鉴于通过brew始终无法安装成功,于是就寻找其它安装方式,访问官网发现还有源码安装方式。
2024-07-22 09:14:45 678
flutter-in-action+闲鱼最佳实践
2024-06-04
Android2.2 史上最全google源码
2013-03-28
如何识别架构问题并作出调整?
2023-11-02
重构后的系统如何平滑上线?
2023-10-22
重构完系统后,用什么手段验证它的正确性?
2023-10-19
软件包的差异化升级是如何完成的?
2023-09-29
如何实现平滑加权的流量调度?
2023-09-21
如何实现一种公平的抽奖算法?
2023-09-16
如何实现一种公平的抽奖算法?
2023-09-16
如何用go写一个短链ukey生成算法
2023-09-15
TA创建的收藏夹 TA关注的收藏夹
TA关注的人