pollymars

Results 5 comments of pollymars

"./chatglm-6b-int4"中就是huggingface上面对应的代码和模型文件。 没有看到关于cpm_kernels的报错。 显卡是A100,我测试下。 有没有可能是gcc和openmp的版本问题?谢谢!

> 可以成功运行的。 我更新了"./chatglm-6b-int4"中的代码,现在kernel编译成功了,不过模型推理时还是报“RuntimeError: CUDA Error: no kernel image is available for execution on the device”。 报错信息显示,是在quantization.py的235行,即调用kernels.int4WeightExtractionHalf的时候,进到cpm_kernels/library/cuda.py,checkCUStatus(cuda.cuModuleLoadData(ctypes.byref(module), data))这一行报错。 可能和issue #119 的问题类似。

> > > > 有没有尝试过用Agent来实现,Agent可以做到多轮对话,若是涉及到本地知识库的,用tools询问本地vector store,将获取的上下文信息放入prompt中让LLM回答? > > > > 我用openai embedding+gpt-3.5-turbo试过,可行,不过困难的是让LLM判断是否需要agent来完成一次问答。 > > > > > > > > > 就是说如果不涉及到本地知识库的就让gpt-3.5正常交互,如果涉及到的把检索到的信息补充进prompt?那怎么判断是不是涉及到本地知识库呢,检索的步骤是少不了的吧。然后其实用chatglm应该也能做到和gpt3.5类似的效果? > > > > > > 「判断是不是涉及到本地知识库」就是问题,只能让AI自己判断(目前AI自己判断大约的正确率估计大约在6-7成左右)。我之前尝试过每次问答必须让agent走本地知识库,如果本地知识库中没有相关信息,就回答不知道。但是没有成功。 >...

修改了torch/nn/modules/linear.py的114行,把self.weight(即attention的linear权重)所在device设为合适的cuda: `return F.linear(input, self.weight.to(input.device), self.bias)` 然后就可以跑通infer了。这个bug应该是因为模型微调时,设置LoraConfig的target_modules=['query_key_value','dense','dense_h_to_4h','dense_4h_to_h'],然后infer的时候,有些Lora调整过的dense层的权重被加载在cpu了(不清楚是不是可以在Lora加载的时候指定一下)。 但是,后续又遇到另一个问题,用微调后模型做问答的时候,问一些常规问题时可以正常回答、响应也挺快,然而,问一些训练集问题的时候,就会卡好一会、反复打印输入参数直到报OutOfMemoryError。给我感觉是,模型会根据问题文本,走不同的参数路径,当遇到训练集问题的时候,就走到Lora层,然后就死循环了?。 不知道大家伙有没有遇到类似问题的。。现在打算修改LoraConfig的target_modules试验看看。

> 但是,后续又遇到另一个问题,用微调后模型做问答的时候,问一些常规问题时可以正常回答、响应也挺快,然而,问一些训练集问题的时候,就会卡好一会、反复打印输入参数直到报OutOfMemoryError。给我感觉是,模型会根据问题文本,走不同的参数路径,当遇到训练集问题的时候,就走到Lora层,然后就死循环了?。 不知道大家伙有没有遇到类似问题的。。现在打算修改LoraConfig的target_modules试验看看。 而且,反复打印的输入参数显示,输入文本越来越长;使用训练epoch更久的模型,基本都会响应异常(这点也对应了我先前没提到的另一个奇怪现象,训练过了4个epoch之后,train_loss和eval_loss都开始变很大)。 > 我自己也用自己的数据训练了,也是这样,不知道为啥?但是alpaca_chinese_dataset训出来的模型没问题,是数据问题吗? 我也是用自己数据训练,和LoraConfig的target_modules设置有关系吗?