上午开会 rag继续 异构大模型
狂野飙车9之前的账号终于找回来了
下午
关于minicpm的代码
minicpm-v
大模型预训练论文&方法总结 - 知乎 (zhihu.com)
这里有讲解的代码
发现还是先推荐把llava的掌握好了之后再看minicpm
多模态大模型LLaVA模型讲解——transformers源码解读_哔哩哔哩_bilibili
图像的读取
图像embedding 还需要在提取特征处理之后再使用
图像是怎么embeding 以及 图像和文本怎么拼接
比如 输入 这个image 怎么样 image 这里是指向图片的链接
图像 [3, 高, 宽] 第一维是3通道
画图工具 drawio
自定义多模态llava
图像用的clip
文本用的是qwen1.5-4B
加载模型的时候用的函数
from transformers import AutoModel, AutoModelForCausalLM, AutoTokenizer, AutoProcessorclip_model = AutoModel.from_pretrained(clip_model_name_or_path, device_map="cuda:0")
llm_model = AutoModelForCausalLM.from_pretrained(qwen_model_name_or_path, device_map="cuda:0"
)
这个AutoModel和AutoModelForCausalLM有什么区别
初始化llava的使用教程 huggingface里面有
拼接模型 怎么知道要给什么层赋值呢
后面发现有个层没法初始化 是随机的
就像文本需要用分词器 视觉也需要用autoprocessor
训练llava
数据集
标准的添加路径
用Path().joinpath()
而不是用 '' + ''
加载数据与转换
构造数据集之后
需要使用transformer的 trainer
需要批处理的化 需要用collator
from transformers import AutoProcessor
先看一下单个的处理 调用官方提供的
在调用千问的时候要注意使用千问的对话模板
有的时候数据比较复杂
用dataclass 弄一下
合并批次
Collator
主要是多维的时候 指定某一维拼接
torch.concat
__cal__ 重载
注意返回的维度
每个数据长度各不一样 需要进行对齐
首先是需要统计最长的有多长
如何讲 pynotebook转换成成段的代码
注意导相对
构建数据的时候可以用model.loss 来测试
训练流程
data.py 文件
run_show.py代码是从什么地方复制的呢
首先是设定参数
dataclass
ModelArguments
对于不同的lora fulltuning
弹出消息logging.warning()
util.py中是peft的代码