1、训练
a.方式一
FORCE_TORCHRUN=1 CUDA_VISIBLE_DEVICES=0 llamafactory-cil train examples/train_lora/qwen2_5vl_lora_sft.yam
b.方式二
FORCE_TORCHRUN=1 CUDA_VISIBLE_DEVICES=0 torchrun --nproc_per_node=1 --master_port=29501 src/train.py examples/train_lora/qwen2_5vl_lora_sft.yam
2、推理
CUDA_VISIBLE_DEVICES=0 llamafactory-cil chat examples/inference/qwen2_5vl_lora_sft.yaml
3、合并
llamafactory-cli export examples/merge_lora/qwen2_5vl_lora_sft.yaml
4、记录
- 准备数据
- 按照模板格式准备;
- pretrain阶段的数据说明,可以是json格式,每行内容是
"text":"文本描述";也可以是txt文件,每行的内容是文本描述; - 更新
dataset_info.json
- 训练配置
- yaml配置文件中,
dataset项中可以增加一个dataset_dir用于配置数据读取路径,注意此路径中需要有dataset_info.json - yaml配置文件中,
dataset项中的max_samples配置加载数据的数量,更新需求修改。
- 怎么进行模型预训练
- 方式1,下载开源模型,在yaml配置文件中的
model项修改model_name_or_path字段,接下来按照预训练步骤进行。 - 方式2,只需要开源模型的
config.json、tokenizer_config.json、tokenizer.json这三个文件,可以修改config.json中的参数进而修改模型大小、结构。然后在yaml配置文件中的model项修改model_name_or_path字段,再增加train_from_scratch: true,这是通过配置文件实例化模型。接下来按照预训练步骤进行。 - 方式3,将自己的模型已规定格式放在
transformers库中,再以上述两种方式进行训练。
- cutoff_len
每条样本tokenizer后进行拼接,次参数用于拼接后的长度。(多条样本会合并成一个样本进行训练)
5、扩展tokenizer
准备中