第一次记录,多多包涵
1.环境配置,这里的pytorch环境最好是直接下包,不然后面会出现各种各样的错误
git clone --depth 1 https://github.com/hiyouga/LLaMA-Factory.git
cd LLaMA-Factory
pip install -e ".[torch,metrics]"
2.模型,这里我用的是Qwen/Qwen2-VL-2B-Instruct,可以做多模态的模型,可以直接在魔塔社区下载,也可以在hugging face下载。

3.显卡,这里我用的是我们学校的一个3090的服务器,可以使用这个指令上传文件到服务器
scp -r “your_data_path” aaa.000.000.00.00:~/wwz
4.数据集,这里我要跑的是一个其他项目的数据集,那个项目使用的是mplug-owl2模型,我把他的一部分数据集下载下来,并对其进行数据处理。

这个图片数据集本身是有12000多张图片,但是我只下载了他的train.json,所以要根据train.json里对每张图片的描述,对这个图片数据集进行处理,保留只在train.json里标注过的图片

这是其中一个指令,而且train和test的分离是对所有图片打乱了顺序, 所以可以先提取train.json中的id的数字部分进行排序,然后保存在一个text文档里
# 假设文件路径是 'file.json'
with open('file.json', 'r') as file:
data = json.load(file)
# 提取 id 数字部分
id_numbers = [int(entry["id"].split(".")[0]) for entry in data]
# 按数字排序
sorted_ids = sorted(id_numbers)
# 将排序后的 ID 写入到一个文本文件中
with open('sorted_ids.txt', 'w') as output_file:
for id_number in sorted_ids:
output_file.write(f"{id_number}n")
# 打印总数
print("总数:", len(sorted_ids))
然后把图片文件夹里不属于这一部分的删除,
import os
# 读取文本文件中的 ID
with open('your.text', 'r') as file:
valid_ids = {line.strip() for line in file}
# 文件夹路径
image_folder = 'image_path'
# 遍历文件夹中的图片文件
for filename in os.listdir(image_folder):
# 提取图片 ID(去掉前导零)
image_id = str(int(filename.split('.')[0]))
# 检查图片 ID 是否在有效 ID 集合中
if image_id not in valid_ids:
# 构建完整的文件路径
file_path = os.path.join(image_folder, filename)
# 删除文件
os.remove(file_path)
print(f"已删除: {file_path}")
print("完成图片清理。")
注意这里要先对图片数据集进行备份,因为他是在一个文件夹操作的,最后还是放回了image_folder。这里对数据集处理已经完成。
5.将模型还有数据集上传到llama_factory框架下,
llama_factory有一个data文件夹,需要把图片文件夹,train.json传进去 ,再进行最后一步,数据集注册,里面有个dataset_info文件,需要将数据写入,比如我跑的这个数据集的注册是这样的
而且他官方给了各种数据集的写入方法,因为我这个是多模态数据集,
这是他官方给的描述
6.运行
这是我当时随便设的一个配置,忘了给他分train和test的比例,学习率可以设1e-4,反正后面还是要根据他跑的效果还有对应的任务进行微调
7.结果
这是他的loss曲线,效果一般。
文章来源于互联网:使用llama-factory框架下的QWEN2-VL-2B-Instruct跑通图像指令数据集(学习记录)
相关推荐: AI视频风格转换:Stable Diffusion+EBSynth
我们首先使用 TemporalKit 提取了视频的关键帧图片,然后使用 Stable Diffusion 重绘了这些图片,然后又使用 TemporalKit 补全了重绘后的关键帧图片之间的序列帧,并拼合出了视频。 本文我们将使用一个新的工具 EBSynth 来…
5bei.cn大模型教程网










