LMFlow 项目介绍
项目概述
LMFlow 是一个强大、易扩展且高效的工具箱,专注于对大型机器学习模型进行微调。它的设计目标是让用户操作简单、快速并且可靠,同时为整个社区提供便利。
支持的模型
LMFlow 支持多种模型,包括 DeepSeek、Gemma、InternLM2、LLaMA 系列(如 LLaMA-2 和 LLaMA-3)、Phi-3、Qwen 以及 Zephyr 等。这些模型各自具有独特的对话模板,可以在实际操作中提供不同的交互体验。
快速启动指南
环境设置
要开始使用LMFlow,可以在一个Linux系统中进行安装:
git clone -b v0.0.9 https://github.com/OptimalScale/LMFlow.git
cd LMFlow
conda create -n lmflow python=3.9 -y
conda activate lmflow
conda install mpi4py
pip install -e .
建议使用WandB来跟踪和可视化训练过程。
准备数据集
用户可以参考LMFlow提供的文档来准备和处理数据集,以便在模型微调过程中使用。
微调模型
LMFlow 提供了全微调、LISA 和 LoRA 等微调策略。
- 全微调更新模型的所有参数,如微调 GPT-2 基础模型。
- LISA 是一种内存高效的微调算法,可以让用户在内存和随机解冻层数量之间进行权衡。
- LoRA 是另一种参数高效的微调算法,比全微调更加高效。
bash ./scripts/run_finetune.sh --model_name_or_path gpt2 --dataset_path data/alpaca/train_conversation --output_model_path output_models/finetuned_gpt2
推理
在微调模型后,可以通过运行命令与模型进行对话。
bash ./scripts/run_chatbot.sh output_models/finetuned_gpt2
部署和评估
LMFlow 提供了一种基于 Gradio 的用户界面,用于构建聊天机器人,支持在本地部署自定义模型。对于评估,LMFlow 专门设计了一个自动评估框架,能够评估模型在闲聊、常识推理和指令遵循等方面的能力。
支持的功能
LMFlow 拥有多样化的功能,支持微调加速、内存优化、推理加速、长上下文支持、模型定制化以及多模态输入处理等。
支持与许可
如果需要帮助,可在 Github 提交问题。项目代码以 Apache 2.0 许可证发布。
引用
如果您发现此项目有用,请在学术引用中注明:
@article{diao2023lmflow,
title={Lmflow: An extensible toolkit for finetuning and inference of large foundation models},
author={Diao, Shizhe and others},
journal={arXiv preprint arXiv:2306.12420},
year={2023}
}
LMFlow 的设计旨在帮助用户在处理大型模型时实现更为高效和便捷的工作流程。无论是对学术研究还是实际应用都具有重要的支持作用。用户可以根据需要灵活调整模型参数和微调流程,让机器学习模型的训练更具适应性和高效性。