diff --git a/README.md b/README.md index e0f481f..acdb765 100644 --- a/README.md +++ b/README.md @@ -4,27 +4,52 @@ Tips: 图片完全由AI生成 ## 🌟 项目简介 -欢迎来到 LLM-Dojo,这里是专为中国初学者设计的修炼道场。!"Dojo"一词借用了其在武术训练中的寓意,象征着一个专注于学习和实践的场所。 +欢迎来到 LLM-Dojo,这里是一个开源大模型学习场所(最好的学习永远在项目中),包括一个开源大模型训练框架,以及llm_tricks模块,其中包括各种大模型的tricks实现与原理讲解! -在这里,我们将"Dojo"视为一个虚拟的修炼道场,通过LLM Dojo,我们希望建立一个充满活力的社区,让每个人都能在LLM技术的修炼之路上不断进步,最终达到技术的巅峰。 -## 📖 项目目标 -- 提供全面的开源大模型教程,包括但不限于环境配置、本地部署、高效微调等。 -- 简化工作流程:我们的目标是让开源大模型的部署、使用和应用过程变得更加轻松愉悦,使其更易于被更广泛的用户群体接纳。 -- 促进开源精神,鼓励社区参与,共同维护和完善项目。 -## 📊 项目规划及进展 +"Dojo"一词借用了其在武术训练中的寓意,象征着一个专注于学习和实践的场所。 + +在这里,我们将"Dojo"视为一个虚拟的修炼道场,通过LLM Dojo,希望建立一个充满活力的学习场所,让每个人都能在LLM上进行各种训练及Tricks实现。 +## 📖 Latest News +- [2024-04-28] 🚀 更新dora微调原理示例、支持qwen模型微调 +
More news... 待更新 +
+ +## 📊 项目规划及进展 + +### 已支持模型 +- [Qwen](https://github.com/QwenLM/Qwen.git) + - [x] [QWEN Lora微调] + +### 已支持tricks及原理讲解 + 所有相关的trciks及讲解都在llm_tricks文件夹下 +- Dora + +## 🤓Quick Start +不同的微调方法有不同的配置,但大体都是类似的。常规的参数在utils下的args.py。 + +相关训练参数在train_args文件夹下对应的模型中。 +均是采用dataclass格式配置参数,直接在default中修改即可,即不需要直接命令行传输参数了(如果有小伙伴需要这种方式也可以补上)。 + +设置好相关配置后即可运行main_train.py进行训练 +```sh +python main_train.py +``` + +## 😮训练数据 +待更新、、、、 + ## 🤝 社区参与 -LLM Dojo 是一个不断进化的修炼道场,我们期待你的加入,一起让AI技术更加强大和易用!🪂 +LLM Dojo 期待你的加入!🪂 -我们非常欢迎你的加入!无论是提出问题(Issue)还是贡献代码(Pull Request),都是对项目的巨大支持。让我们一起构建一个更加完善的开源大模型学习社区! +无论是提出问题(Issue)还是贡献代码(Pull Request),都是对项目的巨大支持。让我们一起构建一个更加完善的开源大模型学习社区! ## 💌 联系方式 - GitHub: LLM-Dojo - Gitter: mst272 -- Email: +- Email: sdwzh272@163.com *** -让我们共同努力,使开源、自由的大模型成为每个学习者学习旅程中不可或缺的一部分! 🌈 **愉快学习!** 📘 *** diff --git a/requirements.txt b/requirements.txt new file mode 100644 index 0000000..1d007d7 --- /dev/null +++ b/requirements.txt @@ -0,0 +1,19 @@ +accelerate==0.21.0 +transformers==4.34 +peft==0.4.0 +bitsandbytes==0.39.0 +loguru==0.7.0 +numpy==1.21.4 +pandas==1.2.5 +tqdm==4.62.3 +deepspeed==0.9.5 +tensorboard +sentencepiece +transformers_stream_generator +tiktoken +einops +httpx +scipy +torch==1.13.1 +flash_attn +datasets \ No newline at end of file diff --git a/train_args/sft/lora/qwen_lora.py b/train_args/sft/lora/qwen_lora.py index f01a11d..515365b 100644 --- a/train_args/sft/lora/qwen_lora.py +++ b/train_args/sft/lora/qwen_lora.py @@ -34,3 +34,4 @@ class TrainArgument(TrainingArguments): max_grad_norm: float = field(default=1.0, metadata={"help": "Max gradient norm."}) remove_unused_columns: Optional[bool] = field(default=False, metadata={ "help": "Remove columns not required by the model when using an nlp.Dataset."}) + bf16: bool = True