-
Notifications
You must be signed in to change notification settings - Fork 419
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
使用垂直领域数据集进行断点训练后的几个问题 #68
Comments
感谢对我们项目的关注! |
谢谢!我们按照你的建议试了一下,结果如下: 1,改为原生llama-7b后问题没有明显好转,估计可以排除这个因素。 2,用了固定形式的instruction,效果有所提升,当输入对应的instruction时,可以按照训练数据给出输出。我们也固定了输出的形式,用"1.第一类\n2.第二类\n3.第三类"的结构。模型的输出中,前几个回答就是正确答案!但是问题是模型会持续输出不对的答案。 3,模型失去了泛用能力,当我让他推荐电影或者写一段代码,他也会给出我分类任务的结果。而且英文任务也受到了同样的影响,不管问啥,输出都睡以"1.XXX\n2.XXX\n3.XXX"的形式输出。 个人感想: |
如果只在垂直语料上训练其他指令性能受损是不可避免的问题,要保留其他能力可以把垂直语料和instruction数据集一起finetune或者在continue_finetune的时候混合一点instruction的数据集。 |
感谢!我之前猜想,用了中文的checkpoint或中文模型入BELLE-7b做底,就可以保留说中文人话的能力,实际上并不是。增加新知识数据训练并不是线性地增加模型效果,而是像您说的点,新的数据源加入后,需要重新训练模型,比如混入一些数据,比如从某些早期的断点开始训练,否则会失去之前的能力。所以大模型训练起来真的贵,要新增能力就得全盘考虑。 大模型相比小模型有了创造性和泛用性,也使得它不准确。在专业的垂直领域,特定且专业的任务,小模型还有一定的优势。大模型涌现能力的原因至今也没有定论,openAI自己也说重做的话还不一定能复现效果。这个领域还待持续探索~ |
感谢你们分享这么棒的工作!我用了一下断点重训来做文本分类的任务,请教两个问题:
1,训练时间是否合理?(30万条数据,4张3090Ti花了12.5小时)
2,程序会输出正确分类以外的内容,比如手指应该被分到上肢,程序会分出来上肢和下肢。并且会重复输出(调高repetition penalty无效),我个人预估是因为训练数据中的多分类我用了分号分隔每个分类,程序不知道断开,我可能应该用句号。
详情:
1、使用fintune.sh,调整了模型的地址,底座模型使用BELLE-7B,lora层使用Chinese-Vicuna-7B的checkpoint-11600
2、参数:test-size 200, eval-step 200, save-step 200.
3、核心代码没修改,跳了路径及显卡数量等。
4、数据集是文本分类任务,按照instruction, input, output做成一个json,instruction 10个字,input 20字,output 50个字以内,一共30万条。
系统:
1、Ubantu系统
2、3090Ti 4张
3、python环境是3.8,torch是2.0.0,CUDA是117,transformers是4.28.0.dev0,tokenizers是0.13.3,sentencepiece是0.1.97
The text was updated successfully, but these errors were encountered: