-
Notifications
You must be signed in to change notification settings - Fork 9
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
不同的模型(LLAMA-7B和chatGLM)是如何实现lora融合的 #4
Comments
same |
Lora权值交叉融合的原因是缘于Lora并非基础模型的特征向量组件,而是一个相对独立的微调增强组件,加之均基于peft库,因而才可以互换,所以认为“LLAMA训练得到的Lora只属于LLAMA是片面的理解,Lora是属于Lora的”。我们会马上正式补充到ReadME中,关键是两个步骤: 1.运行finetune.py,即基于LLAMA-7B模型在英文或中文 alpaca数据集上,利用peft库进行微调训练,将得到的lora配置文件.json和权值文件.bin存入lora-alpaca文件夹; 2.运行generate.py,要注意的是,配置文件json不能使用LLAMA的配置,而是ChatGLM的配置文件,仓库里的lora-alpaca文件夹是可以直接使用的,这样就融入了ChatGLM-6B. 实际上,如果对finetune.py的一些配置参数,如lora_alpaca、lora_rank等调整为ChatGLM的配置文件数值,也是能够无需修改即使用由LLAMA微调后的配置参数和权值文件。不过配置文件中,对于target_modules这个模块依然要采用ChatGLM的(底座模型),这是因为,LLAMA为 "q_proj"、 "v_proj";ChatGLM为"query_key_value"。总之,对于底座模型、配置参数和权值文件是需要一定匹配的,简单的话,就置替后交给peft,不报错就可以换。建议动手操作一遍,多关注微调参数和配置参数的对应。 我们试验了很多权值都是可以的,如文件大小约在16MB的Lora、25MB的Lora等等,建议新尝试的朋友,使用16.49MB的标准Lora的bin文件,所有配置参数不作修改。 |
谢谢!操作的步骤大概明白了,但还是对其中的原理不太理解。 |
是呢,感谢您,您可以认为是peft它的兼容性特别强,只要参数对了,权值文件体积又是一样的,向量值它会识别到 |
希望能得到朋友的小星星,感谢!!! |
我可以理解能够跑通(只要参数的shape是一致的),但能够跑通不意外。你们这么做的intuition是什么呢?这么做真的有效果吗? |
经测验,我们得到了效果,意图就是跨模型互通,比如英文LM模型和中文LM模型,这是一种较为理想的模型间打通的手段 |
不太理解不同的模型(LLAMA-7B和chatGLM)是如何实现lora融合的,能详细介绍一下吗?
我的理解:将LLAMA-7B模型在Chinese-Alpaca数据集上利用Lora进行微调,得到Lora权值文件,只是适用于LLAMA-7B模型的,不太理解这个lora权重,是如何融合到chatGLM里面的。
谢谢!
The text was updated successfully, but these errors were encountered: