Klang(金浪)AI量化论坛

    • 注册
    • 登录
    • 版块
    • 最新
    • 标签
    • 热门
    • 用户
    • 群组

    使用 chatGLM 官方示例做微调

    AI研究
    1
    1
    214
    正在加载更多帖子
    • 从旧到新
    • 从新到旧
    • 最多赞同
    回复
    • 在新帖中回复
    登录后回复
    此主题已被删除。只有拥有主题管理权限的用户可以查看。
    • A
      asmcos 管理员 最后由 asmcos 编辑

      1. 环境
        Linux 云平台 autodl 花费 10元左右
        8d52ace9-8ac7-46b9-b8d0-c0cf8624aebe-image.png
        配置是24G的显存,3090显卡。

      为什么选择这款配置?因为我在本机6G 显卡折腾好久没有成功。 用的 6b-int4 版本,网上都说可以成功。折腾我好久。所以干脆用云24G的实验了。

      1. 下载源代码
      git clone https://github.com/THUDM/ChatGLM-6B
      cd ChatGLM-6B
      pip3 install -r requirements.txt
      
      1. 进入微调
      cd  ptuning
      pip3 install rouge_chinese nltk jieba datasets
      
      1. 下载 需要例子数据
      wget -O AdvertiseGen.tar.gz https://cloud.tsinghua.edu.cn/f/b3f119a008264b1cabd1/?dl=1
      tar xvf AdvertiseGen.tar.gz
      

      下载后需要展开。

      1. 修改 源文件
        为什么要修改,如果不修改 总是 按照多gpu处理,我没有多gpu,并且即使是多GPU,也需要修改代码
        这里有讨论
        https://github.com/THUDM/ChatGLM-6B/issues/1169

      我的方法如下:

      ptuning/main.py
      59
      60 training_args.local_rank = -1
      61
      增加上面这句
      
      1. 开始 工作
        P-Tuning v2
      bash train.sh
      
      1. 如果你需要 微调
        24G 显存不够
        需要再修改
        增加 Lora
      pip3 install deepspeed
      vim ds_train_finetune.sh
          --per_device_train_batch_size 4 \ 修改为1
       --num_gpus=4 修改为1 
      

      vim main.py

      头部 增加 :
      from peft import get_peft_model, LoraConfig, TaskType
      
      第 136行 增加 下面的代码:
      
          peft_config = LoraConfig(
              task_type=TaskType.CAUSAL_LM,
              inference_mode=False,
              r=finetune_args.lora_rank,
              lora_alpha=32,
              lora_dropout=0.1,
              target_modules=["query_key_value"],
          )
          model = get_peft_model(model, peft_config)
      
      

      以上可以 在24G显存测试通过。

      1 条回复 最后回复 回复 引用 0
      • First post
        Last post