自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 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 891

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

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

2024-03-20 14:41:20 1151

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

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

2024-03-19 14:32:01 774

原创 云服务器不能部署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 423

原创 安装docker compose

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

2024-03-12 09:43:51 339

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

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

2024-03-06 15:06:26 189

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

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

2024-03-06 10:40:23 246

原创 用pycharm从huggingface下载

【代码】用pycharm从huggingface下载。

2024-02-01 17:11:37 378

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

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

2024-01-28 15:37:07 192

原创 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 385

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

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

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

原创 爬虫注意事项

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

2024-01-22 12:36:41 833

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

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

2024-01-22 12:26:50 622

原创 什么时候需要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 533

原创 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 673

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

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

2024-01-20 11:32:13 319

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

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 672 1

原创 Python学习之异常处理

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

2023-12-30 11:22:40 393

原创 服务器使用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 384

原创 基于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 507

原创 tmux的使用

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

2023-12-26 14:36:27 350

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

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

2023-12-23 23:33:14 428 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 394

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

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

2023-12-20 09:59:26 313

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

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

2023-12-13 23:24:11 422

原创 抽象类和抽象方法

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

2023-12-13 21:59:02 331

原创 C3算法计算继承顺序

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

2023-12-12 22:09:11 382

原创 python实现一个计算器

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

2023-12-05 10:38:12 736

原创 object 与 type

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

2023-12-04 18:07:03 381

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

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

2023-11-29 17:17:27 351

原创 垃圾回收机制

【代码】垃圾回收机制。

2023-11-29 17:06:31 358

原创 用类实现装饰器

【代码】用类实现装饰器。

2023-11-29 12:01:06 348 1

原创 描述符与描述器

描述器的属性到底赋值给了Age还是Person?优先级:资料描述器>实例属性>非资料描述器。包含__set__,

2023-11-29 11:31:41 332

原创 类中的iter与next,遍历与迭代

`‘’’关于迭代与遍历‘’’class Person:def init(self):self.result = 1p=Person()for i in p: #遍历的操作调用的是__iter__print(i)print(next§) #next调用的是__next__print(next§)print(next§)print(next§)import collectionsprint(isinstance(p,collections.abc.Iterator))for i i

2023-11-29 10:41:36 919

原创 类的内置方法setattr和setitem

【代码】类的内置方法setattr和setitem。

2023-11-28 22:34:40 491

原创 数据可视化之his图和Q-Q图

PS:`stats.norm.ppf`是SciPy库中的一个函数,用于计算正态分布的百分位点(也称为分位数)`stats.norm.ppf(q, loc=0, scale=1)`用于计算给定累积概率`q`下的正态分布的百分位点。函数返回的结果是给定累积概率下的对应百分位点的数值。PDF:概率密度函数(probability density function), 在数学中,连续型随机变量的概率密度函数(在不至于混淆时可以简称为密度函数)是一个描述这个随机变量的输出值,在某个确定的取值点附近的可能性的函数。

2023-08-20 18:13:20 476

原创 CS231N assignment3-transformer,GAN,self-supervised,LSTM

4.自监督学习,完成的是一个simCLR(simple contrastive learning representation)对一个图片以两种策略生成两种图片变种,用f作为一个encoder(这里用的是resnet50),得到这两个图片的表示向量hi,hj,再将向量对送入g(一个小的神经网络,比如MLP)目标是最大化g(hi),g(hj)的一致性。没搞懂的点:训练的时候用的是pairs(成对的数据)那test的时候是如何进行的?这部分作业完成的是decoder的部分,目标是为图片生成字幕。

2023-07-24 22:51:42 377

原创 AI夏令营脑PET图像分析和疾病预测挑战赛

对于给出的基线CNN的笔记:

2023-07-22 12:49:18 109

原创 RNN,LSTM,GRU,Seq2Seq,Seq2Seqwithattention,transformer

只不过encoder传给decoder的不只是第T时刻(最后一个时刻)的hidden state,还有前面所有的hidden state,用所有的hidden state * softmax(hidden state) + 第T时刻的hidden state 作为decoder的输入。然后最牛的transformer就诞生了:完全没有用RNN/LSTM/GRU,直接进行并行处理,先提取每个单词在句子中的权重softmax(Q*K/根号下dk),再对V进行加权求和,考虑到了每个句子中单词与单词之间的联系。

2023-07-20 21:05:47 501

原创 CNN复习

对每个输入的图片(就是每一个(C,H,W)的矩阵,一共有batch_size个),卷积核从第0到第in_channel个通道上,进行从[0,0]到[H+2*pad-HH,W+2*pad-WW]的卷积(没有padding的情况下,HH,WW是卷积核的高和宽)(卷积的实际意思:用卷积核W * 像素矩阵中与W相同size的区域),把C个通道卷积的结果相加,最后再加上偏置,就得到了一层output,假如有F个卷积核,那么就会得到F层结果,F也就是Out_channel。个人的对于CNN总结的一些知识点。

2023-07-20 19:59:32 165

空空如也

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

TA关注的人

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