Coder Social home page Coder Social logo

Comments (10)

shuxueslpi avatar shuxueslpi commented on September 11, 2024

@valkryhx 我觉得不是推理慢,是陷入输出循环了,如果用stream_chat的方法应该能看出来。
你是用的merge后的int4模型吗?官方的int4方法貌似不是最优的,会导致一些性能,准确性的下降。

from chatglm-6b-qlora.

valkryhx avatar valkryhx commented on September 11, 2024

@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.

shuxueslpi avatar shuxueslpi commented on September 11, 2024

@valkryhx 各个库的版本和我的一致吗?我这里这部分一直没有报过错的。

from chatglm-6b-qlora.

valkryhx avatar valkryhx commented on September 11, 2024

我看您设置的bnb_4bit_compute_dtype=torch.float32
而我在做qlora的config里面是bnb_4bit_compute_dtype=torch.float16
有可能是这个原因?

from chatglm-6b-qlora.

valkryhx avatar valkryhx commented on September 11, 2024

另外 我也看到您和bash99 讨论的帖子 THUDM/ChatGLM2-6B#141 (comment)
您项目主页提供的推理方案 是否对应这个帖子中提到的方案4呢?

from chatglm-6b-qlora.

valkryhx avatar valkryhx commented on September 11, 2024

@valkryhx 各个库的版本和我的一致吗?我这里这部分一直没有报过错的。

这个问题排查出来了 我使用adapter推理那一步提前把peft版本回退到0.3.0了 所以报错 ,使用正确的peft==0.4.0dev就好了

from chatglm-6b-qlora.

shuxueslpi avatar shuxueslpi commented on September 11, 2024

@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 avatar valkryhx commented on September 11, 2024

@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.

shuxueslpi avatar shuxueslpi commented on September 11, 2024

@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.

valkryhx avatar valkryhx commented on September 11, 2024

谢谢!

from chatglm-6b-qlora.

Related Issues (20)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo 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.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.