ChatGLM3微调遇到的坑

文章讨论了在使用THUDM/ChatGLM3进行微调时遇到的问题,主要是因为数据格式不符合官方期望,缺少prompt键。作者提到原始数据应包含系统提示、用户输入和助手响应的多轮对话结构。解决方法是更新到官方最新的微调脚本并检查数据格式调整。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

问题:微调的各种问题 · THUDM/ChatGLM3 · Discussion #253 · GitHubshi

Traceback (most recent call last):
  File "/opt/projects/chatglm3-test/scripts/finetune.py", line 171, in <module>
    main()
  File "/opt/projects/chatglm3-test/scripts/finetune.py", line 137, in main
    print(train_dataset[0]['input_ids'])
  File "/opt/projects/chatglm3-test/scripts/preprocess_utils.py", line 127, in __getitem__
    a_ids = self.tokenizer.encode(text=data_item['prompt'], add_special_tokens=True, truncation=True,
KeyError: 'prompt'

实际上看看preprocess_utils.py对应行数的代码就知道了,单纯的对话模型,数据格式不是按照官方给定的如下格式:

```json
[
  {
    "conversations": [
      {
        "role": "system",
        "content": "<system prompt text>"
      },
      {
        "role": "user",
        "content": "<user prompt text>"
      },
      {
        "role": "assistant",
        "content": "<assistant response text>"
      }, 
       // ... Muti Turn
      {
        "role": "user",
        "content": "<user prompt text>"
      },
      {
        "role": "assistant",
        "content": "<assistant response text>"
      }
    ]
  }
  // ...
]
``` 

 “prompt”键名并不存在,最新的官方微调脚本已于,改天尝试一下。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

才 神

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值