TrainingArguments 参数

截至我所知的信息(2021年9月),"TrainingArguments"是Hugging Face的Transformers库中的一个类,用于配置和管理模型训练的参数。以下是一些常见的"TrainingArguments"类的参数:

  1. output_dir:模型训练输出的目录,包括保存模型和其他训练输出。

  2. overwrite_output_dir:如果设置为True,将覆盖输出目录中的内容。

  3. num_train_epochs:训练的轮数(epochs)。

  4. per_device_train_batch_size:每个训练设备上的批量大小。

  5. per_device_eval_batch_size:每个评估设备上的批量大小。

  6. save_steps:定义多少个更新步骤保存一次模型。

  7. save_total_limit:保存的最大模型数量,用于控制磁盘空间占用。

  8. evaluation_strategy:评估策略,可选值有"steps"(每隔一定步骤评估)和"epoch"(每个epoch评估一次)。

  9. logging_steps:定义多少个更新步骤打印一次训练日志。

  10. logging_dir:日志输出的目录。

  11. do_train:是否进行训练。

  12. do_eval:是否进行评估。

  13. learning_rate:初始学习率。

  14. weight_decay:权重衰减(L2正则化)。

  15. gradient_accumulation_steps:梯度累积步骤,用于更大的批次训练。

  16. seed:随机数种子,用于可复现性。

  17. report_to:定义输出的报告格式,例如"tensorboard"、“wandb”(Weights & Biases)等。

  18. disable_tqdm:是否禁用tqdm进度条。

  19. load_best_model_at_end:训练结束时是否加载最佳模型。

  20. metric_for_best_model:用于选择最佳模型的指标。

请注意,参数可能在不同版本的Transformers库中有所变化,建议查阅官方文档以获得最新和详细的参数列表。你可以在Hugging Face的Transformers库文档中找到更多关于"TrainingArguments"类的信息。

### Unsloth 参数文档及使用说明 #### 安装与环境配置 在开始之前,确保已经成功安装了 Unsloth 及其相关依赖项。这一步骤通常涉及 Python 环境的搭建以及必要的库文件获取。 #### 加载 Model 和 Tokenizer 对于模型和分词器的加载,Unsloth 提供了一套简便的方法来初始化这些组件。通过指定路径或名称可以直接读取预训练好的模型及其对应的 tokenizer[^1]。 ```python from unsloth import load_model, load_tokenizer model = load_model('path_to_your_model') tokenizer = load_tokenizer('path_to_your_vocab_file') ``` #### 设置 LoRA 训练参数 LoRA (Low-Rank Adaptation) 是一种高效的微调方法,在资源受限条件下特别有用。可以通过调整 `rank`, `alpha` 等参数来自定义适应层的设计[^2]。 ```python lora_config = { 'r': 8, 'lora_alpha': 32, 'target_modules': ["q", "v"], } ``` #### 数据集准备 数据处理阶段包括但不限于转换原始文本到 token ID 列表、创建输入特征向量等。此部分可能涉及到特定于任务的数据增强技术或是格式化步骤[^4]。 ```python def preprocess_function(examples): return tokenizer(examples['text'], truncation=True) dataset = dataset.map(preprocess_function, batched=True) ``` #### 训练超参数配置 针对具体的训练流程,可以设定诸如学习率 (`learning_rate`)、批次大小 (`batch_size`) 或者最大迭代次数 (`max_steps`) 这样的关键变量以控制整个训练过程的行为模式。 ```python training_args = TrainingArguments( output_dir='./results', per_device_train_batch_size=4, num_train_epochs=3, learning_rate=5e-5, logging_dir='./logs' ) ``` #### 执行训练 一旦所有准备工作完成之后就可以启动实际的训练环节了。这里会利用前面提到的各种设置来进行端到端的学习,并定期保存中间成果以便后续评估或继续训练。 ```python trainer = SFTTrainer(model=model, args=training_args, train_dataset=dataset) trainer.train() ``` #### 模型推理 当训练结束后便进入了测试阶段——即基于已学得的知识对新样本做出预测。此时只需简单地传入待测实例即可获得相应的输出结果。 ```python inputs = tokenizer("你好世界", return_tensors="pt") outputs = model.generate(**inputs) print(tokenizer.decode(outputs[0], skip_special_tokens=True)) ``` #### 保存 LoRA 模型 经过一轮或多轮次的有效更新后,应当及时将改进后的权重存储下来用于未来部署或其他用途。注意区分仅保存增量部分还是整套网络结构。 ```python trainer.save_model('./fine_tuned_lora_model') ``` #### 导出 GGUF 格式 最后如果打算进一步压缩模型体积,则可以选择将其导出成更紧凑的形式比如 GGUF 文件[^3]。 ```bash !python ./models/llama.cpp/convert.py ./models/Llama3 --outtype f16 --vocab-type bpe --outfile ./models/Llama3-FP16.gguf ```
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值