Comments (10)
@valkryhx 我觉得不是推理慢,是陷入输出循环了,如果用stream_chat的方法应该能看出来。
你是用的merge后的int4模型吗?官方的int4方法貌似不是最优的,会导致一些性能,准确性的下降。
from chatglm-6b-qlora.
@valkryhx 我觉得不是推理慢,是陷入输出循环了,如果用stream_chat的方法应该能看出来。 你是用的merge后的int4模型吗?官方的int4方法貌似不是最优的,会导致一些性能,准确性的下降。
好的 我等会用stream方法看看。
另外为什么用您项目主页的推理方式 会报错:RuntimeError: self and mat2 must have the same dtype
我是用qlora SFT 然后加载base model时用到bitsandbytes的qconfig
config = PeftConfig.from_pretrained(peft_model_path)
q_config = BitsAndBytesConfig(load_in_4bit=True,
bnb_4bit_quant_type='nf4',
bnb_4bit_use_double_quant=True,
bnb_4bit_compute_dtype=torch.float32)
base_model = AutoModel.from_pretrained(config.base_model_name_or_path,
quantization_config=q_config,
trust_remote_code=True,
device_map='auto')
add adapter
model = PeftModel.from_pretrained(base_model, peft_model_path) # 这里就报错了
from chatglm-6b-qlora.
@valkryhx 各个库的版本和我的一致吗?我这里这部分一直没有报过错的。
from chatglm-6b-qlora.
我看您设置的bnb_4bit_compute_dtype=torch.float32
而我在做qlora的config里面是bnb_4bit_compute_dtype=torch.float16
有可能是这个原因?
from chatglm-6b-qlora.
另外 我也看到您和bash99 讨论的帖子 THUDM/ChatGLM2-6B#141 (comment)
您项目主页提供的推理方案 是否对应这个帖子中提到的方案4呢?
from chatglm-6b-qlora.
@valkryhx 各个库的版本和我的一致吗?我这里这部分一直没有报过错的。
这个问题排查出来了 我使用adapter推理那一步提前把peft版本回退到0.3.0了 所以报错 ,使用正确的peft==0.4.0dev就好了
from chatglm-6b-qlora.
@valkryhx 主页的对应的不是4,主页的模型没有merge,方案4的模型首先要:
python3 merge_lora_and_quantize.py \
--lora_path saved_files/chatGLM2_6B_QLoRA_t32 \
--output_path /tmp/qlora-model2 \
--remote_scripts_dir remote_scripts/chatglm2-6b \
--qbits 0
获得一个合并后的fp16模型,然后这个模型可以直接加载,那就是fp16的推理,也可以按照训练脚本里那样,用bitsandbytes的config,以nf4
的方式加载进来,这个就是方案4
from chatglm-6b-qlora.
@valkryhx 主页的对应的不是4,主页的模型没有merge,方案4的模型首先要:
python3 merge_lora_and_quantize.py \ --lora_path saved_files/chatGLM2_6B_QLoRA_t32 \ --output_path /tmp/qlora-model2 \ --remote_scripts_dir remote_scripts/chatglm2-6b \ --qbits 0
获得一个合并后的fp16模型,然后这个模型可以直接加载,那就是fp16的推理,也可以按照训练脚本里那样,用bitsandbytes的config,以
nf4
的方式加载进来,这个就是方案4
那主页的方案相当于方案几呢?
from chatglm-6b-qlora.
@valkryhx 主页的对应的不是4,主页的模型没有merge,方案4的模型首先要:
python3 merge_lora_and_quantize.py \ --lora_path saved_files/chatGLM2_6B_QLoRA_t32 \ --output_path /tmp/qlora-model2 \ --remote_scripts_dir remote_scripts/chatglm2-6b \ --qbits 0
获得一个合并后的fp16模型,然后这个模型可以直接加载,那就是fp16的推理,也可以按照训练脚本里那样,用bitsandbytes的config,以
nf4
的方式加载进来,这个就是方案4那主页的方案相当于方案几呢?
主页相当于方案1,也就是inference_qlora.py这个脚本的方式,没有把base model和lora model合并
from chatglm-6b-qlora.
谢谢!
from chatglm-6b-qlora.
Related Issues (20)
- 数据集格式instruction,input,output时tokenized出错 HOT 2
- 训练结束后,数据展示出现问题
- merge后模型Loading checkpoint shards Killed HOT 6
- 调优后的模型是否可以在CPU服务上部署? HOT 1
- protobuf 和 icetk 版本不兼容 HOT 1
- ImportError: libcudnn.so.8: cannot open shared object file: No such file or directory HOT 12
- RuntimeError: mat1 and mat2 shapes cannot be multiplied (588x4096 and 1x9437184) ,ChatGLM2-6B做微调,请问如何设置参数?? HOT 1
- RuntimeError: Expected all tensors to be on the same device, but found at least two devices, cuda:1 and cuda:0! (when checking argument for argument target in method wrapper_CUDA_nll_loss_forward),请问如何调整训练代码,适配多卡训练?? HOT 1
- transformers>4.30.2时,模型不会进行量化,是因为什么?
- BrokenPipeError: [Errno 32] Broken pipe HOT 7
- 训练结束后没有保存完整的adapter文件 HOT 2
- 用V100显卡微调chatglm2-6b,但是loss一直为0,eval_loss=nan
- 训练显存有些问题
- 微调后推理性能问题 HOT 1
- ChatGLM3-6B 微调报错 RuntimeError: CUDA error: invalid argument HOT 1
- ChatGLM2-6B微调后合并报错We need an `offload_dir` to dispatch this model according to this `device_map`, the following submodules need to be offloaded: HOT 2
- 合并模型的时候显存不够,用的4090,24G
- qlora微调训练随机性
- ValueError:
- ChatGLM2-6b模型合并时报错ValueError: We need an `offload_dir` to dispatch this model according to this `device_map`, the following submodules need to be offloaded
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from chatglm-6b-qlora.