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

原创 预训练模型与微调
前言:预训练模型已经火了这么久了,但作为菜本菜的我却还在用lstm。在生成任务上与同门学长用的预训练模型相比,效果差的比较明显。所以,我决定走上预训练的不归路。以下分享我的学习过程:了解模型:小说故事生成模型万事开头难,上视频:视频我喜欢看简短的从零实现GPT-2,瞎写笑傲江湖外传,金庸直呼内行_哔哩哔哩_bilibili这是一个非常简单的模型。他没有用huggingface的模型库,而是用pytorch自己搭建了一个模型。也没有用预训练的参数,而是从头开始训练。过程:1.
2022-05-10 17:08:10
6369
3

原创 dataloader中 sampler、collate_fn 和 dataset 的 getitem使用理解。
DataloaderDataLoader(dataset, sampler=None, collate_fn=None,batch_size=1, shuffle=False, num_workers=0,pin_memory=False, drop_last=False, timeout=0, worker_init_fn=None)这里先从dataset的运行机制讲起.在dataloader按照batch进行取数据的时候, 是取出大小等同于batch size的index列表; 然后将列表列表
2021-08-06 16:08:32
3011

原创 resnet152
152是指152次卷积其中block共有3+8+36+3 = 50个每个block是由3层卷积构成的bottle_net block.共150个卷积开头一个卷积将3通道的图片提取特征。后面一个nn.AdaptiveAvgPool2d((1,1)), 就是自适应平均池化,输出维度为1.因为本来上面的各层卷积后输出的还是一个二维矩阵。图中的64,128等都是通道数,也就是二维矩阵的个数。最后要通过自适应池化将卷积最后的矩阵转换称一个1维的数。然后才能用线性层进行维度映射。进行分类。..
2021-05-13 11:07:50
3085

原创 Transformer 中的mask
transformer中的mask有两种作用:其一:去除掉各种padding在训练过程中的影响。 其二,将输入进行遮盖,避免decoder看到后面要预测的东西。1.Encoder中的mask 的作用属于第一种在encoder中,输入的是一batch的句子,为了进行batch训练,句子结尾进行了padding(P)。在输入encoder中训练的过程中,先进性多头自注意计算。在这个过程中 1)进行(q*K^T)/d_model^1/2. 2)然后要对得到的权重矩阵进行mask 3...
2021-02-18 09:43:54
15427
12

原创 python项目学习过程中的小知识点总结
小知识tensor.permute()torch.matmul(mat1,mat2)copy()和deepcopy()tensor.view( , -1):tensor.permute(dims) :维度改变函数。改变tensor维度。比如 a是:tensor.size([3,4,6]) ,则a.permute(0,2,1)的size就是tensor.size([3,6,4]) 即交换了第1,2维度。https://zhuanlan.zhihu.com/p/765831...
2020-12-04 16:26:29
770
原创 ZeRO与3D并行之间的关系
在这个例子中,因为 PP=8, TP=8,总 GPU 数是 64,所以数据并行度 DP = 64 / (PP * TP) = 64 / (8 * 8) = 1。在每个 Stage 内部,这 8 个 GPU 进行 8 路张量并行 (TP=8)。我们来梳理一下 ZeRO (Stages 1, 2, 3) 和 3D 并行(数据并行 DP、张量并行 TP、流水线并行 PP)之间的关系。将模型分为 8 个 Stage (PP=8)。在训练一个非常大的模型时(比如你提到的 72B 模型),通常会。
2025-05-12 19:20:26
624
原创 增量预训练数据获取
寻找约12B Tokens的高质量、开源、可用的中英文混合预训练数据源是一个实际的挑战,通常需要组合多个来源并进行处理。上一篇,关于数据量预估中分析到,做增量预训练一个3B模型所需的数据大约为12~15B的tokens。这里我们着手获取这些数据。这个过程需要投入相当的精力进行数据收集、处理和验证。这部分相对容易获取,可以选择高质量、多样化的来源。
2025-04-30 16:47:42
934
原创 增量预训练数据获取
寻找约12B Tokens的高质量、开源、可用的中英文混合预训练数据源是一个实际的挑战,通常需要组合多个来源并进行处理。上一篇,关于数据量预估中分析到,做增量预训练一个3B模型所需的数据大约为12~15B的tokens。这里我们着手获取这些数据。这个过程需要投入相当的精力进行数据收集、处理和验证。这部分相对容易获取,可以选择高质量、多样化的来源。
2025-04-30 16:38:59
488
原创 Gradient Checkpointing 是什么有什么作用
当重计算需要分配一块连续内存,而此时 GPU 显存虽然总量足够,但可能因为碎片化而无法分配成功,或者因为这个短暂的峰值需求(重计算的激活值 + 梯度 + 优化器状态)超过了可用物理显存时,Paged Optimizers 就能介入,将优化器状态暂时移到 CPU 内存,从而释放 GPU 显存以满足重计算的需求,避免训练崩溃。然后在反向传播过程中,当需要用到那些没有被存储的激活值时,再从最近的一个检查点开始,重新进行一小部分前向计算,以临时生成所需的激活值。• 显著降低显存占用: 这是最主要的作用。
2025-04-24 20:39:08
742
原创 对一个3B大模型做增量预训练所需数据预估
关于模型规模(3B参数)、训练方式(LoRA + 全量Emb/LM-Head)与预训练数据量之间的关系,目前的研究确实存在一些。Scaling Laws 采用LoRA + 全量emb:lm-head的训练方式,达到充分训练需要多少预训练数据?OpenAI的原始Scaling Laws(Kaplan et al., 2020)指出,和实证经验可供参考。,而LoRA+部分微调会改变数据需求。对于3B模型,理论最优数据量约为。
2025-04-23 14:20:59
459
原创 2025年最新图像生成模型调研报告
本次调研揭示了2025年图像生成领域的多样性和创新性。从Midjourney V7的艺术精致到HART的高效计算,每种模型都为用户提供了独特的价值。选择模型时,建议根据具体需求(如速度、风格或集成性)进行评估,同时关注版权和伦理问题的发展。这些技术的快速演进为创意和产业应用开辟了广阔前景。
2025-04-15 23:09:53
1763
原创 为什么在做增量预训练的时候,训练方式通常采用LoRA + 全量emb/lm-head?
格式没调好,可见公众号文章:https://mp.weixin.qq.com/s/Qy8b2rKdR1xji6Cvw82wEAImage。
2025-04-15 23:05:05
358
原创 驱动云创建保存自己的环境
驱动云的环境是这样的,每次离开之后,他的环境就会变成你最初用的镜像,过程中你做的更改不会保留。但是下次用的时候或者想要提交离线任务的时候,就需要用你修改好的镜像。介绍了如何在驱动云上部署llama2以及驱动云在训练大模型的方便之处。也说到了可以直接使用驱动云现有的环境,免得自己配置环境。输出当前环境的requirements.txt,文件会默认保存在/gemini/code下。这里可以很容易的制作镜像,将自己需要的环境永久的保存下来。随后,同样点击保存当前环境,然后选择构建标准镜像。最后点击构建就可以了。
2024-04-18 23:41:35
1239
原创 解决:ValidationError: 2 validation errors for DocArrayDoc returned when try to execute the RAG Search
ValidationError: 2 validation errors for DocArrayDoc returned when try to execute the RAG Search Example - 菜本菜 - Medium
2023-12-21 15:02:38
789
原创 已解决 debug: segmentation fault when importing datasets
debug: segmentation fault when importing datasets - 菜本菜 - Medium
2023-12-08 14:20:17
511
原创 解决 The ‘more_itertools‘ package is required
2.后面同样要把filter_words.py文件拿到spider下,并修改wiki中的from filter_words import filter_url 为from .filter_words import filter_url。项目地址:https://github.com/wjn1996/scrapy_for_zh_wiki。博客:https://blog.51cto.com/u_15919249/5962100。3.在wiki.py繁简转换中加判断,避免输入为空。4. 在wiki.py中修改。
2023-07-27 14:16:04
1180
原创 解决 The ‘more_itertools‘ package is required
后面同样要把filter_words.py文件拿到spider下,并修改wiki中的from filter_words import filter_url 为from .filter_words import filter_url。项目地址:https://github.com/wjn1996/scrapy_for_zh_wiki。博客:https://blog.51cto.com/u_15919249/5962100。:return: 将句子中繁体字转换为简体字之后的句子。在wiki.py中修改。
2023-07-27 14:12:07
825
原创 pytorch 训练过程中缓存不断增大 and loss.backword()占用缓存过大
total_loss += loss.cpu().detach().numpy()
2023-02-08 20:32:59
1257
原创 tf.contrib.training.HParams
报错:AttributeError: 'module' object has no attribute 'HParams'。
2022-07-08 10:28:19
2201
原创 不能从上一级文件调用模块 (no module named lib)
调用自定义模块出现ModuleNotFoundError: No module named ‘XXX‘的解决方案_swrdzwj的博客-CSDN博客不行的话可以考虑是不是pytest的问题pycharm中不以pytest方式运行,以普通方式运行的方法 - 宁小静 - 博客园
2022-06-09 10:49:12
256
转载 pip install d2l
from d2l import torch as d2l这个语句中torch报错的解决方法_别摆了,张同学的博客-CSDN博客_torch中的d2l
2022-05-25 10:55:57
2095
原创 已解决:json.decoder.JSONDecodeError: Expecting value: line 1 column 1 (char 0)
网上说是 json.load 和 json.loads 的问题。后来果然是,其实我根据Error提示的位置就应该看出来的!!!白浪费了大半天
2022-05-10 22:08:29
2736
1
原创 h5py文件操作
写# phrases_id_dir = "/home/ubuntu/D/lizhigang/MGISEG-lzg/data/preprocess_data/end_phrases_id.h5"# f_lb = h5py.File(phrases_id_dir, 'w')# f_lb.create_dataset('labels', dtype='uint32', data=Label)# f_lb.create_dataset('golds', dtype='uint32', data=Gold)
2022-02-28 19:34:19
557
原创 h5py合并文件
with h5py.File('table_copy.h5',mode='w') as h5fw: for h5name in glob.glob('file*.h5'): h5fr = h5py.File(h5name,'r') for obj in h5fr.keys(): h5fr.copy(obj, h5fw)
2021-11-25 16:45:21
1451
2
原创 论文笔记notion模板
https://ash-icon-968.notion.site/a7baf2af8362493f9379a9c471d15bf6
2021-11-22 13:10:05
3968
原创 argparser action
import argparseparser = argparse.ArgumentParser()parser.add_argument('-a', action='store_true', help='Store a simple value')parser.add_argument('-b', action='store_false', help='Store a constant value')args = parser.parse_args()print(args)>>>
2021-11-01 16:38:58
300
原创 Backend TkAgg is interactive backend. Turning interactive mode on.
百度有人说是import osos.environ["TOKENIZERS_PARALLELISM"] = "false"但至少对于我来说,是不管用的查了原因,出在数据上要么是torch.cat()没有指定拼接维度要么是torch.tensor是float格式,需要int格式。等去查查数据就有没有错。...
2021-09-15 09:04:12
1300
原创 pytorch将小数tensor转换成整数tensor
a = [[1.,2.],[3.,4.]]b = torch.tensor(a)# c = torch.tensor(b,dtype=torch.int)c = b.clone().type(torch.int)print(b)print(c)
2021-09-14 22:27:31
6084
转载 Ubuntu 创建 Pycharm 桌面快捷方式
https://www.cnblogs.com/feiquan/p/11791796.html
2021-09-02 18:57:01
317
转载 Error creating directory: No space left on device2021-09-02
https://blog.csdn.net/c_base_jin/article/details/86316755
2021-09-02 15:49:36
714
原创 pytorch NotImplementedError
就是在pytorch搭建模型的时候定义forward时格式错了要么就是缩进问题,要么就是拼写问题,要么就是有没有多余字符如: _forward 前面的:小短线要去掉。torch.nn的官文继承: import torch.nn as nn import torch.nn.functional as F class Model(nn.Module): def __init__(self):
2021-08-07 16:01:54
551
原创 PyTorch使用多GPU训练
device_ids = [3, 4, 6, 7]model = Module()if torch.cuda.is_available(): module = torch.nn.DataParallel(model, device_ids=device_ids) # 声明所有可用设备 model = model.cuda(device=device_ids[0]) # 模型放在主设备images = images.cuda(device=device_ids[0]) # 训练数据
2021-07-31 16:41:10
164
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人