# LLMTuner: 大语言模型指令调优工具
<!---
## 最近更新
- 将指令微调的多轮对话输入数据从如下形式
```context
{human}</s>{assistant}</s>{human}</s>{assistant}</s>
```
更改为
```context
<s>{human}</s><s>{assistant}</s><s>{human}</s><s>{assistant}</s>
```
- 将特定任务微调的输入数据从如下形式
```context
{source}</s>{target}</s>
```
更改为
```context
<s>{source}</s><s>{target}</s>
```
--->
## 项目介绍
LLMTuner 是一个支持 LoRA、QLoRA 和全量参数微调的大语言模型指令调优工具。在训练中可以使用 **flash attention**、**xformers attention** 技术提升训练效率,并结合 **LoRA**、 **DeepSpeed ZeRO**、**gradient checkpointing** 和 **4-bit 量化**等技术,有效降低显存占用,实现在单张消费级显卡 (A100/A40/A30/RTX3090/V100) 上微调 7B/13B/34B 大模型。
目前支持进行微调的基座模型:
- Aquila & Aquila2 (`BAAI/Aquila-7B`, `BAAI/Aquila2-7B`, `BAAI/Aquila2-34B`, etc.)
- Baichuan & Baichuan 2 (`baichuan-inc/Baichuan-7B`, `baichuan-inc/Baichuan-13B-Base`, `baichuan-inc/Baichuan2-7B-Base`, `baichuan-inc/Baichuan2-13B-Base`, etc.)
- ChatGLM3 (`THUDM/chatglm3-6b-base`)
- BLOOM & BLOOMZ (`bigscience/bloom`, `bigscience/bloomz`, etc.)
- InternLM (`internlm/internlm-7b`, `internlm/internlm-20b`, etc.)
- LLaMA & LLaMA 2 (`meta-llama/Llama-2-7b-hf`, `meta-llama/Llama-2-13b-hf`, etc.)
- Qwen (`Qwen/Qwen-7B`, `Qwen/Qwen-14B`, etc.)
## 训练环境
- torch == 2.0.1
- tiktoken == 0.5.1
- transformers == 4.32.0
- sentencepiece == 0.1.99
- bitsandbytes == 0.41.1
- peft == 0.5.0
- deepspeed == 0.11.1
- xformers == 0.0.22
- tensorboardX
推荐安装 [flash attention](https://github.com/Dao-AILab/flash-attention) 提高训练效率:
```shell
# Make sure that ninja is installed
pip install ninja
# Compile from source
git clone --recursive https://github.com/Dao-AILab/flash-attention
cd flash-attention
python setup.py install
# Install dropout_layer_norm and rotary-emb
pip install csrc/layer_norm
pip install csrc/rotary
```
## 训练数据
### 指令数据
指令微调的训练数据为 jsonl 格式,每一行的数据形式如下,其中 conversation 字段是必需的,可参考 data/dummy.jsonl 文件。
```json
{
"conversation_id": 4,
"category": "Brainstorming",
"num_turns": 4,
"conversation": [
{
"human": "如何制定一个有效的网页设计?",
"assistant": "\n\n要制定一个有效的网页设计,需要考虑以下几个方面:\n\n1. 目标受众:确定您的目标受众是谁,这将有助于您决定网站的设计和内容。\n\n2. 清晰的布局:网站的布局应该简单,易于使用和导航。所有元素应该有明确的标识和位置,以便用户快速找到他们需要的信息。\n\n3. 吸引人的视觉效果:网站的设计应该吸引人,使用清晰的图像、颜色和字体。但同时也要确保视觉效果不会影响网站的性能和导航。\n\n4. 有效的内容:网站的内容应该有价值,易于理解和使用。使用简单的语言和段落,避免使用过于复杂的术语和语言。\n\n5. 可访问性:网站应该易于访问,即使是对于有视觉或听力障碍的用户。确保网站符合标准的可访问性要求。\n\n6. 响应式设计:网站应该是响应式的,即适合各种不同尺寸的设备。这将确保用户在不同设备上都能够访问和使用您的网站。\n\n通过考虑这些方面,您可以制定一个有效的网页设计,吸引并留住您的受众,并提高您的网站的成功率。"
},
{
"human": "哪些因素会影响网站的性能?",
"assistant": "网站的性能受许多因素的影响,以下是一些主要的因素:\n\n1. 服务器性能:网站的速度和性能取决于服务器的性能,包括硬件、软件、配置和网络连接速度。\n\n2. 图片和媒体文件的大小:大尺寸的图片和媒体文件会增加网站的加载时间,因此需要使用适当的图片和媒体文件大小,以确保网站可以快速加载。\n\n3. 代码优化:网站的代码应尽可能简洁和优化,以确保它在加载和运行时的速度最快。\n\n4. 缓存和压缩:使用缓存和压缩技术可以大大提高网站的性能,因为它们可以减少文件大小和加载时间。\n\n5. 第三方插件和脚本:第三方插件和脚本可能会减慢网站的速度,因此需要谨慎选择并仅使用必要的插件和脚本。\n\n6. 浏览器兼容性:网站应该在各种不同的浏览器上兼容,因为不同的浏览器可能会以不同的方式解释代码并表现出不同的性能。\n\n7. 网络连接速度:用户的网络连接速度也会影响网站的性能,如果用户的网络连接速度较慢,网站的加载时间可能会更长。\n\n总之,要提高网站的性能,需要优化服务器、代码和媒体文件,使用缓存和压缩技术,谨慎使用第三方插件和脚本,并考虑用户的网络连接速度和浏览器兼容性。"
},
{
"human": "如何确定网站的目标受众?",
"assistant": "确定网站的目标受众是成功的关键之一,以下是确定目标受众的一些步骤:\n\n1. 考虑您的业务:首先,您需要考虑您的业务或服务类型,以及您想要吸引的客户或用户类型。比如,如果您是一家专门从事儿童玩具销售的公司,您的目标受众可能是父母或祖父母。\n\n2. 调查市场:进行市场调查,了解您的目标受众的需求、喜好、行为和偏好。您可以使用各种市场调查技术,如在线调查、焦点小组讨论等等。\n\n3. 竞争分析:研究竞争对手的网站,了解他们的目标受众、品牌声誉和营销策略。\n\n4. 客户反馈:收集客户反馈,了解他们对您网站的看法,以及您的网站是否满足他们的需求和期望。\n\n5. 利用分析工具:使用分析工具(如Google Analytics)了解您的网站的访问者特征,比如年龄、性别、地理位置等,从而了解您的目标受众。\n\n综上所述,确定网站的目标受众需要考虑您的业务类型、市场调查、竞争分析、客户反馈和分析工具。这些步骤可以帮助您更好地了解您的目标受众,从而制定更好的网站设计和营销策略。"
},
{
"human": "如何在网站上提供更好的用户体验?",
"assistant": "提供更好的用户体验是一个成功的网站设计的关键。以下是一些提高网站用户体验的方法:\n\n1. 清晰的页面布局:网站应该有清晰的页面布局,易于使用和导航。所有元素应该有明确的标识和位置,以便用户快速找到他们需要的信息。\n\n2. 易于理解和使用的导航:网站的导航应该简单、明确和易于理解。用户应该能够快速找到他们需要的信息,而不必浪费时间在网站上寻找。\n\n3. 快速的网站加载速度:网站的加载速度是提供良好用户体验的关键因素之一。网站应该尽可能快地加载,以避免用户等待过长的时间。\n\n4. 响应式设计:网站应该是响应式的,即适合各种不同尺寸的设备。这将确保用户在不同设备上都能够访问和使用您的网站。\n\n5. 良好的内容:网站的内容应该有价值,易于理解和使用。使用简单的语言和段落,避免使用过于复杂的术语和语言。\n\n6. 与用户互动:网站应该与用户互动,以吸引和留住用户。例如,您可以添加评论部分、交互式表单和调查等功能。\n\n7. 提供搜索功能:对于较大的网站,提供搜索功能可以帮助用户快速找到他们需
普通网友
- 粉丝: 1127
- 资源: 5294
最新资源
- 基于强化学习的多目标跟踪器Matlab代码.rar
- 基于线的扩展卡尔曼滤波器用于机器人在V-Rep上的定位Matlab代码.rar
- 基于有限差分法计算固结过程中单层和双层排水的孔隙水压力随时间的变化Matlab实现.rar
- 基于通信的无人机集群任务Matlab代码.rar
- 基于最大最小特征值(CMME)组合的认知无线电频谱感知 matlab代码.rar
- 计算高斯光束束腰半径调节Matlab代码.rar
- 计算无人机航程和续航力的matlab项目 matlab代码.rar
- 建立了连续时间EKF、混合EKF和离散时间EKF的性能比较Matlab程序.rar
- 卡尔曼滤波器设计与Matlab仿真。考虑了静态和时变卡尔曼滤波器.rar
- 卡尔曼滤波器 EKF 和 SLAM附Matlab代码.rar
- 考虑表面形貌对研究的影响时,模拟出生高斯或非高斯表面 matlab代码.rar
- 扩展卡尔曼滤波器Matlab代码.rar
- 开发计算扭矩控制器、计算扭矩控制器以及具有恒定、抛物线和正弦参考的 EKF 和 Li-Slotine 控制器.rar
- 离散E的电容式设施选址问题的深度强化学习Matlab代码.rar
- 扩展卡尔曼滤波器同步本地化方法的情感评价模块(ECF-SAEM)Matlab代码.rar
- 田螺去尾巴机3D图纸和工程图机械结构设计图纸和其它技术资料和技术方案非常好100%好用.zip
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈