项目介绍
什么是 LLM Finetuning Toolkit?
LLM Finetuning Toolkit 是一个基于配置的命令行工具,用于在您的数据上启动一系列大语言模型(LLM)微调实验,并收集其结果。通过一个简单的 yaml
配置文件,用户可以控制实验流程中的所有元素,包括提示、开源LLM、优化策略以及LLM测试。
快速开始
LLM Finetuning Toolkit 引导用户通过三个阶段最大化工具的使用:
- 基础:运行第一个 LLM 微调实验。
- 进阶:通过改变 YAML 配置文件的组件来运行自定义实验。
- 高级:通过一个 YAML 配置文件在不同的提示模板、LLM和优化技术上运行多个微调实验。
基础实验
通过以下命令生成并执行微调实验:
llmtune generate config
llmtune run ./config.yml
第一个命令帮助生成一个初始的 config.yml
文件,并将其保存在当前目录中。第二个命令则使用该配置文件的设置启动微调过程。
进阶实验
用户可以通过修改 YAML 文件中的几大关键部分来控制实验过程。这些部分包括数据引入、模型定义、训练、推断和质量保证等。
数据引入
在配置文件中定义数据加载方式。例如:
data:
file_type: "huggingface"
path: "yahma/alpaca-cleaned"
prompt:
### Instruction: {instruction}
### Input: {input}
### Output:
prompt_stub: { output }
用户可以使用公开的数据集或导入自有数据,YAML 配置文件支持从 JSON 或 CSV 文件中加载数据。
模型定义
用户可以选择不同的开源 LLM 并配置参数。例如使用 Llama2 7B 模型:
model:
hf_model_ckpt: "NousResearch/Llama-2-7b-hf"
quantize: true
质量保证
配置文件中可以添加测试,以确保经过微调的 LLM 按预期运行,例如检验生成的文本长度和单词重叠测试。
高级实验
通过修改配置文件,工具支持多种不同的提示模板、LLM 组合和 LoRA 配置,以支持一系列消融实验。这允许用户评估和比较不同实验设置的效果。
扩展性
LLM Finetuning Toolkit 提供了模块化的架构,允许开发者根据具体需求自定义和扩展其功能。每个组件如数据引入、微调、推断和质量检测都设计为易于扩展。
贡献
欢迎并鼓励大家为这个开源工具包做出贡献,详情请查看项目中的贡献指南。