自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 带yield的函数进行debug的注意事项

对一个yield函数进行debug,打了断点但是发现debug就是不进函数里,以为是vscode出了问题。直接print是没调用上post_process这个函数的,改成类似如下格式即可成功进入函数。

2024-12-18 15:07:52 189

原创 sft和prm训练和推理的代码区别对比与说明

roles都不算做loss,并且human的语句,在训练时都不计入loss计算【但是训练时会有tokenizer('<|im_start|>').input_ids[0],tokenizer('<|im_end|>').input_ids[0]这是算loss的】需要注意,在prm推理的时候,n_jobs不能设置太多,不然会oom,因为输出结果包含了每个token对应的模型关于其后面应该接的logprobs前三的字符及其prob值,文件很大。chat_prompt要和训练的时候格式对齐。

2024-11-27 18:45:09 359

原创 top p 和 top k

从累积概率超过某个阈值 p 的k个词中进行随机采样。

2024-11-14 18:31:04 120

原创 威尔逊区间

最近在做分类任务,有300+个类别,想要算出来每个类别的准确度,但由于数据中每个类别出现的次数不同,因此不能直接比较acc,由此引入了威尔逊区间。

2024-11-10 20:47:25 486

原创 vllm+openai 加速模型推理

【代码】vllm+openai 加速模型推理。

2024-10-29 18:27:57 622

原创 动态import

想引入另一个python文件中所有的内容(类或方法),但是又想自定义其中的某些方法。

2024-10-17 15:30:48 159

原创 大量数据分批次处理+concurrent.futures.ThreadPoolExecutor多线程处理文件

背景:数据量很大的时候,需要多线程调用接口获取数据但是又不想一次性加载全部的原始数据进列表,可以结合批量加载数据和多线程。

2024-09-25 11:01:19 341

原创 concurrent.futures.ThreadPoolExecutor多线程处理文件

比如大批量从某个服务获取信息。网络服务器处理请求。

2024-09-24 11:11:11 200

原创 使用llamaindex的TextNode构建知识库

有一些<知识点:知识点解释>格式的数据,需要根据一句话找到对应的知识点。我希望将知识点和知识点解释都构建在知识库内,所以先将字典处理成字符串。使用的还是bge-large-zh-v1.5。topk需要多少写多少即可。

2024-09-24 11:03:05 294

原创 安装unsloth顺序

4.下载flash-attn(先下载einops fsspec ,然后从github上面clone下来,再运行 python setup.py install)2.下载ninja,运行ninja --version和echo $?返回的是0代表下载成功。1.先去flash-attn和xformers官网看合适的pytorch和cuda版本。3.下载对应的xformers(需要python3.10 pytorch2.3.0)注意:unsloth不支持多卡训练!每个都需要从github找对应下载代码进行下载。

2024-06-03 14:35:34 1084

原创 transformers的tokenizer总结

根据字母搭配出现的频率组成词根。初始vocabulary:["b", "g", "h", "n", "p", "s", "u"]然后计数字母搭配出现的频率,比如"hu"=10+5=15次,"ug"=10+5+5=20次,"un"=12+4=16次每次选取频率最高的搭配进行更新vocabulary,那么此时vocabulary:["b", "g", "h", "n", "p", "s", "u","ug"]

2024-03-28 10:53:02 1225

原创 llamaindex构建知识库对本地模型进行rag的优化

仅代表个人观点,因为都是凭借主观感觉的,并没有一个标准打分机制:rerank对query engine的提升还是有的,只不过要耗费多一点时间;但是对于chat engine来说还是不rerank比较好。refine知识库和SI知识库感觉差不多,但是对于chat engine来说可能SI更灵活更智能一点?其实各有千秋,挺难选择。

2024-03-20 14:41:20 1971

原创 llamaindex结合本地模型构建RAG

总结一下对llamaindex的使用心得,第一部分是构建知识库并持久化,第二部分是使用本地llm模型和本地embed模型,第三部分是对qurey engine和chat engine的使用(自定义prompt)。知识库格式:一个全是txt文档的文件夹。

2024-03-19 14:32:01 6209 1

原创 云服务器不能部署docker

安装了一天半,总是报错Cannot connect to the Docker daemon at unix:///var/run/docker.sock. Is the docker daemon running?云服务器相当于别人家的虚拟机,虚拟机本身就是docker,docker里不能再用docker。所以 docker不能部署在云服务器上。

2024-03-12 11:47:21 661

原创 安装docker compose

路径下,这是系统路径,允许任何用户执行该命令。Docker Compose Switch是一个工具,用于在不同的Docker Compose版本之间切换。命令从GitHub的Docker Compose发布页面下载指定版本的Docker Compose二进制文件,并将其保存到。命令下载Docker Compose Switch的二进制文件,并将其保存到。命令调用Docker Compose,显示其版本信息。文件的权限,添加执行权限。文件的权限,添加执行权限。是一个变量,如果未设置。命令,显示其版本信息。

2024-03-12 09:43:51 376

原创 分布式训练&deepspeed的各stage

⑧反向传播结果归到GPU0,由GPU0进行总计算,减小梯度,更新参数,再把更新后的模型重新复制三份到三个GPU。模型大小受限于单卡容量(第一张卡显存的85%左右大小的模型是比较合适的)假设一共有384张卡,每48张卡复制一个模型,那么数据可以分为8份【数据并行 n=8】ZeRO-3:对优化器状态、梯度、模型参数都进行分片(显存降低更多,但通信成本增加1.5倍)③每个模型对自己那部分数据前向传播。如果有三张卡,就会有三个模型(一个模型复制三份)ZeRO-2:对优化器状态、梯度都进行分片(显存降低8倍)

2024-03-06 15:06:26 744

原创 使用魔搭社区的模型对对话文本进行语义分割

①当文本长度小于512时,填充其长度。②将 “小明:” 替换成 “小明,” 【因为太多的“:”会导致语义分割出错】此时text是列表,每一个元素都是一个语义相近的一段,分割结束。

2024-03-06 10:40:23 575

原创 用pycharm从huggingface下载

【代码】用pycharm从huggingface下载。

2024-02-01 17:11:37 792

原创 transformers实现各种NLP任务的流程框架

整理了b站up主的教程,加强对于transformers的使用理解,以及针对各种Nlp任务的训练和评估、推理的流程框架。有一些注释和个人理解部分。

2024-01-28 15:37:07 272

原创 Lookahead加速LLM推理过程

虽然这会增加一定的内存需求,但通过动态更新Trie树(包括分支插入、消除和节点修剪),可以有效地控制Trie树的大小,从而优化内存消耗。此外,对于CPU内存,Trie树的消耗也非常有限,例如在AntRAG数据集上,Trie树仅占用了260 MiB的内存。引入了多分支策略,通过基于Trie树的检索(Trie-based Retrieval, TR)过程,同时生成多个分支(每个分支是一系列令牌),然后通过验证和接受(Verification and Accept, VA)过程确定最长正确子序列作为最终输出。

2024-01-26 22:41:03 694

原创 显存不够又想用某个模型时的模型量化操作

【代码】显存不够又想用某个模型时的模型量化操作。

2024-01-26 21:37:55 485 3

原创 爬虫注意事项

然后就使用正则匹配(在原网页摁F12)找到匹配内容。每次爬完一页内容以后记得要。以及在存入内容的时候。

2024-01-22 12:36:41 877

原创 使用fastapi和apifox实现后端接口

使用python文件import fastapi和uvicorn编写接口脚本。运行这个.py文件,然后打开foxapi。

2024-01-22 12:26:50 888

原创 什么时候需要DataCollator以及一些常见的DataCollator

DataCollator:如果不指定也会有个默认的DataCollator,默认的DataCollator作用是将输入转换为tensor,常见的需要手动指定的时候就是数据没有做padding的时候,要动态padding。也就是说如果在data_process中做了padding,并且没有特殊处理需求,那么也许就不需要collator了。DataCollatorForSeq2Seq: Data collator that will dynamically pad the inputs received, as

2024-01-21 11:55:40 1037

原创 datasets的一些使用技巧

#加载某类文件作为数据集dataset = load_dataset("json", data_files="./train_pair_1w.json", split="train") #加载数据集中的子数据集datasets = load_dataset("clue",name="afqmc")train_dataset=datasets[“train”]#构造数据集try_dataset=train_dataset[:10]dataset = Dataset.from_dict(try_dataset

2024-01-20 21:18:25 1003

原创 pycharm连接服务器,在本地运行远程文件

从远程文件download,然后从本地文件夹打开文件,再运行。确认配置好SSH和编译器以及映射没错。那就是打开方式有问题。

2024-01-20 11:32:13 430

原创 大语言模型占显存的计算和优化

gradient_accumulation_steps(per_device_train_batch_size*gradient_accumulation_steps=计算梯度的数据数)gradient_checkpointing(前项激活值里面有很多是不需要存的,可以在反向传播再次计算的)per_device_train_batch_size(相当于batch size,越小显存占的越小)optim(可以改为adafactor)冻结参数(只训练下游任务的参数)将max_length减小。

2024-01-04 23:22:18 1259 1

原创 Python学习之异常处理

【代码】Python学习之异常处理。

2023-12-30 11:22:40 420

原创 服务器使用tensorboard

在tensorboard返回TensorBoard 2.15.1 at http://127.0.0.1:6006/ (Press CTRL+C to quit)之后,在本地浏览器输入127.0.0.1:8888即可。同时,把在xshell添加ssh。

2023-12-29 10:11:28 484

原创 基于transformers,用GPU训练的显存优化方法

1. 减小"per_device_train_batch_size",设置 "gradient_accumulation_steps"。这样在计算梯度的时候是每per_device_train_batch_size*gradient_accumulation_steps个样本计算一下。4.对原大模型的params进行with torch.no_grad操作,不更新原来大模型的参数,只针对后处理层进行训练。5.减小语料的max length:“max_seq_length”3.优化器改成Adafactor。

2023-12-26 15:50:59 1155

原创 tmux的使用

tmux a -t xxx 切换到这个后台,xxx是后台名。作用:把程序拉到后台,就算关机也不会使正在跑的程序断掉。tmux new -s xxx 创建xxx这个后台。tmux ls 查看tmux所有的目录。ctrl+b再摁d 就退出那个后台了。

2023-12-26 14:36:27 372

原创 transformers使用中不能先把dataset进行tokenize再送入dataloader,应该写作一个colle_fn再送入dataloader 或者不用dataloder

不能先把dataset进行tokenize再送入dataloader,应该写作一个colle_fn再送入dataloader。

2023-12-23 23:33:14 538 1

原创 吴恩达RLHF课程笔记

2.根据这个数据集(偏好数据集),创建reward model,这个model也是一个LLM,并且它是回归模型,返回的是对每个answer的score,loss是最大化winning candidate和losing candidate的score。训练结束后我们输入一个prompt(使用prompt数据集,这个数据集和偏好数据集分布要一致)和对应的answer,会得到一个score,显示的是这个answer有多好(有多符合标记数据的人的偏好)

2023-12-22 22:57:50 477

原创 yield的使用例子——斐波那契数列

【代码】yield的使用例子——斐波那契数列。

2023-12-20 09:59:26 395

原创 设计类的时候面向对象遵循的原则 SOLID

D(dependency inversion):依赖倒置 高层模块不应该直接依赖底层模块,而应该依赖抽象类或者接口(比如电脑类不能依赖某一个具体鼠标类,而应该是鼠标抽象类)I(interface segregation):接口分离 如果一个类包含了过多的接口方法,而这些方法在调用中并不是“不可分割”的 就应该把他们进行分离。O(open closed):对扩展开放,对修改关闭(可以扩展,尽量不要修改)S(single responsibility):单一职责。

2023-12-13 23:24:11 443

原创 抽象类和抽象方法

【代码】抽象类和抽象方法。

2023-12-13 21:59:02 363

原创 C3算法计算继承顺序

多个爷爷辈的多个父辈(每个父辈又有各自的父辈):从左边的父辈开始,没有的话再去找这个父辈的父辈(每一条路都dfs)同一个爷爷辈的多个父辈:从左到右遍历一遍父辈,都没有,再找爷爷辈。总的来说就是由下到上,先自己,再父辈,再爷爷辈,

2023-12-12 22:09:11 425

原创 python实现一个计算器

加上return self应该可以链式使用的,但是却报错了class是None type...先记录一下,后面再看看到底咋回事。

2023-12-05 10:38:12 768

原创 object 与 type

所有类都是type的实例化,包括int float object,比如创建了一个class Dog()object是所有类的父类(包括type),也就是说所有类都继承自object。那么Dog 就是type的实例, a 就是Dog的实例。

2023-12-04 18:07:03 400

原创 批量化修改某个文件夹里所有文件的名称

比如当前文件夹里有一个文件叫做 abc_888.bin 那么修改之后就变成了bba_888.bin。以abc_开头并且以.bin结尾的文件名。

2023-11-29 17:17:27 394

空空如也

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

TA关注的人

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