ymcui/Chinese-LLaMA-Alpaca-2

训练之后合并的模型大小没变化

Mr1994 opened this issue · 11 comments

提交前必须检查以下项目

  • 请确保使用的是仓库最新代码(git pull),一些问题已被解决和修复。
  • 我已阅读项目文档FAQ章节并且已在Issue中对问题进行了搜索,没有找到相似问题和解决方案。
  • 第三方插件问题:例如llama.cppLangChaintext-generation-webui等,同时建议到对应的项目中查找解决方案。

问题类型

模型转换和合并

基础模型

Chinese-Alpaca-2 (7B/13B)

操作系统

Linux

详细描述问题

这个是我run_pt.sh的内容
pretrained_model=/llma2/text-generation-webui/models/chinese-alpaca-7b // **这个是我网上下载的基座模型**
chinese_tokenizer_path=/llma2/Chinese-LLaMA-Alpaca-2/scripts/tokenizer // **这个是咋们项目的tokenizer**
dataset_dir=/llma2/dataset // 这个是我需要训练的txt
data_cache=/llma2/Chinese-LLaMA-Alpaca-2/temp_data_cache_dir // **这个目录是一个临时目录**
per_device_train_batch_size=1
gradient_accumulation_steps=8
block_size=512
output_dir=/llma2/output_dir // **这个是我训练的模型输出的位置**


然后我执行bash run_pt.sh得到一个训练后的模型


![image](https://github.com/ymcui/Chinese-LLaMA-Alpaca-2/assets/15978040/d357e04c-60de-48cf-9b44-d994b6195645)

然后我执行 合并操作 

python scripts/merge_llama2_with_chinese_lora_low_mem.py --base_model /llma2/text-generation-webui/models/chinese-alpaca-7b --lora_model /llma2/output_dir/pt_lora_model/ --output_dir /llma2/text-generation-webui/models/yongxin-model-text --output_type huggingface --verbose


我发现合并之后的模型大小是没有任何变化的 这就很奇怪 

![image](https://github.com/ymcui/Chinese-LLaMA-Alpaca-2/assets/15978040/db92fd6c-df52-407a-8fb5-ecae18828dc3)




依赖情况(代码类问题务必提供)

# 请在此处粘贴依赖情况(请粘贴在本代码块里)

运行日志或截图

# 请在此处粘贴运行日志(请粘贴在本代码块里)

你先把markdown处理一下,图片都看不到。图片不要粘在```语法(代码块)里。

这个是我run_pt.sh的内容
pretrained_model=/llma2/text-generation-webui/models/chinese-alpaca-7b // 这个是我网上下载的基座模型
chinese_tokenizer_path=/llma2/Chinese-LLaMA-Alpaca-2/scripts/tokenizer // 这个是咋们项目的tokenizer
dataset_dir=/llma2/dataset // 这个是我需要训练的txt
data_cache=/llma2/Chinese-LLaMA-Alpaca-2/temp_data_cache_dir // 这个目录是一个临时目录
per_device_train_batch_size=1
gradient_accumulation_steps=8
block_size=512
output_dir=/llma2/output_dir // 这个是我训练的模型输出的位置

然后我执行bash run_pt.sh得到一个训练后的模型
image

然后我执行 合并操作 (过程没报错)

python scripts/merge_llama2_with_chinese_lora_low_mem.py --base_model /llma2/text-generation-webui/models/chinese-alpaca-7b --lora_model /llma2/output_dir/pt_lora_model/ --output_dir /llma2/text-generation-webui/models/yongxin-model-text --output_type huggingface --verbose

我发现合并之后的模型大小是没有任何变化的 这就很奇怪 ;还有

image

然后训练的loss也比较高

补充一下。就是我合并完毕之后 跟模型之前的回答差不多 没有任何改变 很奇怪

***** train metrics *****
epoch = 0.89
train_loss = 0.1136
train_runtime = 0:00:04.33
train_samples = 9
train_samples_per_second = 2.075
train_steps_per_second = 0.231

哪怕我训练loss 很低 合并之后的输出 还是不是我想要的结果

image
下面是我的训练数据集合
image

可以读读LoRA论文,LoRA只是修改了模型权重,不是增加了模型权重,在存储大小上是没有变化的。至于为什么你的数据没起作用,可能是超参设置、任务不匹配等各种原因。另外,你运行的是pt代码,输入的是alpaca模型,相当于对alpaca做了二次预训练,然后你又基于训练的模型做对话任务,这一流程就很奇怪。

不能对alpaca 做二次训练吗 我现在想的是 因为alpaca很多回复都不好,比如我问“ 谁是世界上最好的人” 她不回复我, 说不知道。 所以我现在是对alpaca做了训练。然后希望他可以告诉我谁是世界上最好的人。 我昨天也尝试了精调,合并之后也是回复不出来 而且loss数值很低,epo也设置了训练3次。;

我现在做过2种操作

  1. 训练模型 -> 合并lora到alpaca -> 加载alpaca模型 进行对话看下是否有训练的内容:比如 谁是世界上好的人或者孙文科是世界最好的人吗? 她都答非所问
  2. 精调模型 -> 合并lora到alpaca -> 加载alpaca模型 进行对话看下是否有训练的内容:比如 谁是世界上好的人或者孙文科是世界最好的人吗? 她都答非所问 ; 合并和训练都试过 但是没什么用

你试试续写行不行(给定上文让模型继续写下文),不使用指令模板和对话模式。
影响模型训练效果的因素很多,我们无法一一给出建议。

那可以按照精调和训练llma2的方法 在 Chinese-Alpaca-2 上二次预训练和精调吗。 因为现在Chinese-Alpaca-2 上的数据太少了。我们现在是想实现一个 医疗方向的大模型

This issue has been automatically marked as stale because it has not had recent activity. It will be closed if no further activity occurs. Thank you for your consideration.

Closing the issue, since no updates observed. Feel free to re-open if you need any further assistance.