解决ChatGLM-6B的微调算法P-tuning v2运行train.sh出错

运行清华大学开源的ChatGLM-6B及其微调算法P-tuning v2,根据其官方提供的步骤,在配置好环境后Run:

>>bash train.sh
>>报错如下:
Traceback (most recent call last):
  File "/home/tricorder/workspace/NascentCore/ChatGLM-6B/ptuning/main.py", line 433, in <module>
    main()
  File "/home/tricorder/workspace/NascentCore/ChatGLM-6B/ptuning/main.py", line 371, in main
    model.enable_input_require_grads()
  File "/home/tricorder/yang/anaconda3/lib/python3.10/site-packages/torch/nn/modules/module.py", line 1614, in __getattr__
    raise AttributeError("'{}' object has no attribute '{}'".format(
AttributeError: 'ChatGLMForConditionalGeneration' object has no attribute 'enable_input_require_grads'

原因是transformers包没有更新(需要降级或升级)。
运行以下代码:

pip install transformers==4.27.1

问题解决。

ChatGLM-6B 是一种预训练语言模型,通常用于大规模文本生成、问答系统和自然语言理解等任务。部署 ChatGLM-6B 并微调至特定应用场景,如P-Tuning(Prompt Tuning),通常需要经过以下步骤: 1. **下载模型库**:首先从官方或提供者的仓库下载包含 ChatGLM-6B 的模型库,比如 Hugging Face的transformers库。 2. **加载模型**:使用对应的Python API(如`from transformers import GPT2LMHeadModel, GPT2Tokenizer`)加载模型和分词器。 3. **微调(P-Tuning)**:对于P-Tuning,你需要准备一些精心设计的提示(prompts)。将原始的模型输入更改为包含上下文提示的形式,然后通过小规模的数据集调整模型对这些提示的响应。 4. **编写API接口**:创建一个`api.py`文件,编写函数来处理用户的请求。这个函数会接受用户输入,应用P-Tuning后的模型生成响应,并返回给用户。你可以利用`model.generate()`或其他适合的方法来完成文本生成。 5. **运行服务**:设置并运行API服务,可以使用Flask、FastAPI之类的Web框架将API暴露在网络上。 ```python from transformers import AutoModelForCausalLM, AutoTokenizer # 加载模型和分词器 model = AutoModelForCausalLM.from_pretrained("your_model_name") tokenizer = AutoTokenizer.from_pretrained("your_tokenizer_name") def generate_response(prompt): input_ids = tokenizer.encode(prompt, return_tensors="pt") response = model.generate(input_ids, max_length=100, do_sample=True) return tokenizer.decode(response[0], skip_special_tokens=True) if __name__ == "__main__": app.run_server(host='localhost', port=8000) # 示例中的服务器运行配置 ```
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值