• ChatGLM-6b的微调与推理


    基于ChatGLM-6B的推理与部署

    1.使用git clone命令ChatGLM项目地址,将项目clone到本地。
    2.下载ChatGLM-6B模型文件

    【注意】运行下面代码的时候,要将源代码中的模型文件路径改成自己的地址,不然会报错!!!

    运行以下代码可以在命令行中与ChatGLM进行交互式的对话

    python cli_demo.py
    
    • 1

    在这里插入图片描述
    在这里插入图片描述
    运行以下代码可以在网页与ChatGLM进行交互式的对话

    python web_demo.py
    
    • 1

    在这里插入图片描述

    微调

    ①从仓库中下载微调的项目

    git clone https://github.com/mymusise/ChatGLM-Tuning.git
    
    • 1

    在这里插入图片描述

    ②配置环境

    conda create -n torch1.13 python==3.8
    conda activate torch1.13
    pip install bitsandbytes==0.37.1
    pip install torch==1.13.1+cu116 torchvision==0.14.1+cu116 torchaudio==0.13.1 --extra-index-url https://download.pytorch.org/whl/cu116
    pip install accelerate==0.17.1
    pip install tensorboard==2.10
    pip install protobuf==3.19.5
    pip install transformers==4.27.1
    pip install icetk
    pip install cpm_kernels==1.0.11
    pip install datasets==2.10.1
    pip install git+https://github.com/huggingface/peft.git # 最新版本 >=0.3.0.dev0
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12

    ③下载ChatGLM模型地址
    在这里插入图片描述
    ④数据处理

    python cover_alpaca2jsonl.py \
    --data_path data/alpaca_data.json \
    --save_path data/alpaca_data.jsonl \
    
    • 1
    • 2
    • 3

    ⑤运行 tokenize_dataset_rows.py 文件
    【注】这里需要把tokenize_dataset_rows.py 中的model_name改为自己ChatGLM的地址。
    【报错】在这里插入图片描述
    解决方法

    pip install pyarrow==6.0.0
    
    • 1
    python tokenize_dataset_rows.py \
    --jsonl_path data/alpaca_data.jsonl \
    --save_path data/alpaca \
    --max_seq_length 200 \
    --skip_overlength False \
    
    • 1
    • 2
    • 3
    • 4
    • 5

    ⑥微调
    【注】这里需要把finetune.py 中的模型地址改为自己ChatGLM的地址。

    python finetune.py \
    --dataset_path data/alpaca \
    --lora_rank 8 \
    --per_device_train_batch_size 1 \
    --gradient_accumulation_steps 1 \
    --max_steps 52000 \
    --save_steps 1000 \
    --save_total_limit 2 \
    --learning_rate 1e-4 \
    --fp16 True \
    --remove_unused_columns false \
    --logging_steps 50 \
    --output_dir output;
    
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14

    在这里插入图片描述

    ⑦执行推理
    在这里插入图片描述

    cli_demo.py第8行的model路径改为./ptuning/output/adgen-chatglm-6b-pt-8-2e-2/checkpoint-3000
    运行 python cli_demo.py
    在这里插入图片描述

  • 相关阅读:
    如何将腾讯文档(在线文档)转换成二维码?
    Spring Cloud OpenFeign(声明式服务调用)
    基于node的tcp客户端和服务端的简单通信
    JAVA【Maven的下载和初次使用】
    进阶JS-作用域和作用域链
    自动驾驶 2D 单目\双目\多目视觉方法 一(Pseudo-LiDAR,Mono3D,FCOS3D,PSMNet)
    VXLAN间通信
    浅谈 AI 大模型的崛起与未来展望:马斯克的 xAI 与中国产业发展
    最新版两款不同版SEO超级外链工具PHP源码
    RabbitMQ内容
  • 原文地址:https://blog.csdn.net/weixin_44563460/article/details/132892392