### examples/train_lora/llama3_lora_eval.yaml
### model
model_name_or_path: meta-llama/Meta-Llama-3-8B-Instruct
adapter_name_or_path: saves/llama3-8b/lora/sft # 可选项

### method
finetuning_type: lora

### dataset
task: mmlu_test # mmlu_test, ceval_validation, cmmlu_test
template: fewshot
lang: en
n_shot: 5

### output
save_dir: saves/llama3-8b/lora/eval

### eval
batch_size: 4

这份配置文件是用于 LLaMA-Factory(或类似工具)中对 LLaMA3-8B 模型使用 LoRA 方法进行评估(evaluation) 的 YAML 配置文件。


model 模块

model_name_or_path: meta-llama/Meta-Llama-3-8B-Instruct
adapter_name_or_path: saves/llama3-8b/lora/sft # 可选项
  • model_name_or_path:预训练模型的路径或 HuggingFace 上的模型名称,这里指定的是 Meta 的 LLaMA-3 8B Instruct 版本。

  • adapter_name_or_path:LoRA 微调之后的 adapter 权重路径(可选)。用于加载之前训练好的 LoRA 权重进行评估。如果不设置,就只会用 base 模型评估。


method 模块

finetuning_type: lora
  • finetuning_type:指定所使用的微调方法是 LoRA(Low-Rank Adaptation)。这说明评估时会加载并使用 LoRA 插入模块。


dataset 模块

task: mmlu_test # mmlu_test, ceval_validation, cmmlu_test
template: fewshot
lang: en
n_shot: 5
  • task:评估使用的任务,这里是 mmlu_test,即衡量大模型常识、逻辑、学术等方面的能力的 MMLU 测试集。

  • template:提示模板格式为 fewshot,即 few-shot prompting(少样本提示)。

  • lang:数据集语言是英文(en)。

  • n_shot:few-shot 的样本数量,每个问题前面给出 5 个示例作为提示。


output 模块

save_dir: saves/llama3-8b/lora/eval
  • save_dir:评估结果将保存在这个目录下。


eval 模块

batch_size: 4
  • batch_size:评估时使用的批大小为 4,取决于显存大小和模型规模。


🔍 总结

该配置文件的作用是:

使用已经 LoRA 微调好的 LLaMA3-8B-Instruct 模型(包括 adapter),加载 MMLU 测试集 进行 5-shot 评估,结果保存到 saves/llama3-8b/lora/eval,每次评估处理 4 条样本。


如果后续要评估其他任务(比如 ceval_validationcmmlu_test),只需要更改 task 字段即

一些疑问

---------------------------------------------------------------------------------------------------------------------------------

🔍 一、配置文件中没有显式写“数据集路径”是为什么?

这是因为:

task: mmlu_test

这个字段并不是随意填写的,而是框架(比如 LLaMA-Factory)内部预定义好的任务名称。比如:

task 字段值 对应评估数据集 是否内置 常见用途
mmlu_test MMLU测试集 ✅ 是 多学科常识推理能力评估
ceval_validation CEval 验证集 ✅ 是 中文考试题目评估(如公务员考试)
cmmlu_test 中文版MMLU ✅ 是 中文多领域评估

🔸框架会自动下载/加载这些内置任务的数据集并格式化,无需用户自己指定路径


📘 二、评估是怎么进行的?

评估流程如下:

  1. 加载 base 模型:比如 meta-llama/Meta-Llama-3-8B-Instruct

  2. 加载 adapter(如果指定):这就是 LoRA 的权重(后面详细解释)。

  3. 加载数据集(根据 task 自动加载)

  4. 构造 few-shot prompt:根据 n_shot=5template: fewshot,自动拼接5个示例+测试题。

  5. 模型推理:根据 Prompt 输出结果。

  6. 打分:框架会自动根据答案计算准确率(Accuracy)。

👉 整个过程由框架自动完成,用户只需要配置 task 和模板即可,非常方便。


🧩 三、什么是 LoRA?Adapter 又是什么?

💡1. 什么是 LoRA?

LoRA(Low-Rank Adaptation)是一种参数高效微调方法:

  • 不改动原始大模型的参数

  • 而是插入少量可训练的“低秩矩阵”模块(adapter),只训练这些模块。

  • 微调完成后,保存的只是这部分小权重,称为 LoRA adapter

🔧 原始模型 + adapter → 微调后模型


💡2. 什么是 adapter?

在这里:

  • adapter 是微调生成的 LoRA 插件权重。

  • 它是训练好的 差分权重(即 delta),并不能单独使用,需要配合原模型一起加载。

  • 通常是一个小文件夹,里面是 adapter_config.jsonadapter_model.bin 等。

adapter_name_or_path: saves/llama3-8b/lora/sft

就是告诉框架:“请把这个 LoRA adapter 加载到原始模型上,一起用来评估”。


✅ 小结一下

名称 含义
task 内置任务名,自动加载对应数据集
adapter_name_or_path 指向微调得到的 LoRA 插件路径
LoRA 低秩微调方法,训练时只动少量权重,效率高,成本低
评估流程 构造 prompt → 模型预测 → 自动比对答案打分

Logo

魔乐社区(Modelers.cn) 是一个中立、公益的人工智能社区,提供人工智能工具、模型、数据的托管、展示与应用协同服务,为人工智能开发及爱好者搭建开放的学习交流平台。社区通过理事会方式运作,由全产业链共同建设、共同运营、共同享有,推动国产AI生态繁荣发展。

更多推荐