当前位置:   article > 正文

本地部署 FastChat

fastchat

文章还在创作中。。。

1. 什么是 FastChat

FastChat 是一个开放平台,用于训练、服务和评估基于大型语言模型的聊天机器人。

核心功能包括:

  • 最先进模型(例如,Vicuna、FastChat-T5)的权重、训练代码和评估代码。

  • 具有 Web UI 和 OpenAI 兼容 RESTful API 的分布式多模型服务系统。

2. Github 地址

https://github.com/lm-sys/FastChat

3. 安装 Miniconda3

下载 Conda 安装脚本,

wget https://repo.anaconda.com/miniconda/Miniconda3-latest-Linux-x86_64.sh
  • 1

运行安装脚本,

bash Miniconda3-latest-Linux-x86_64.sh
  • 1

按提示操作。当提示是否初始化 Conda 时,输入 “yes”,

在这里插入图片描述

安装完成后,关闭当前终端并打开新终端,这将激活 Conda,

sudo su - root
  • 1

更新 Conda 至最新版本,

conda update conda
  • 1

在这里插入图片描述
在这里插入图片描述

4. 创建虚拟环境

conda create -n fastchat python==3.10.6
conda activate fastchat

conda install pytorch torchvision torchaudio pytorch-cuda=11.8 -c pytorch -c nvidia
  • 1
  • 2
  • 3
  • 4

5. 安装 FastChat

克隆代码,

git clone --recursive https://github.com/lm-sys/FastChat.git; cd FastChat
  • 1

升级 pip

pip3 install --upgrade pip
  • 1

安装依赖库,

pip3 install -e .
  • 1

6. 使用命令行进行推理

python3 -m fastchat.serve.cli --model-path lmsys/vicuna-13b-v1.3 --load-8bit
  • 1

在这里插入图片描述
在这里插入图片描述

7. 使用 Web GUI 服务进行推理

启动 controller,

python3 -m fastchat.serve.controller
  • 1

启动 worker,

python3 -m fastchat.serve.model_worker --model-path lmsys/vicuna-7b-v1.3
  • 1

启动 Gradio Web 服务器,

python3 -m fastchat.serve.gradio_web_server
  • 1

浏览器打开 http://127.0.0.1:7860/?__theme=dark 进行访问,

在这里插入图片描述

8. 使用 Lora 进行训练

安装依赖库,

pip install deepspeed
pip install git+https://github.com/huggingface/peft
  • 1
  • 2

下载数据 HealthCareMagic-100k.json,将数据存储在 ./data 目录下。

转换数据格式,

python3 -m fastchat.data.convert_alpaca --in-file ./data/HealthCareMagic-100k.json --out-file ./data/HealthCareMagic-100k-Lora.json
  • 1

开始微调,

CUDA_VISIBLE_DEVICES=0 \
deepspeed --num_gpus=1 fastchat/train/train_lora.py \
    --model_name_or_path lmsys/vicuna-7b-v1.3  \
    --lora_r 8 \
    --lora_alpha 16 \
    --lora_dropout 0.05 \
    --data_path ./data/HealthCareMagic-100k-Lora.json \
    --bf16 True \
    --output_dir ./checkpoints \
    --num_train_epochs 3 \
    --per_device_train_batch_size 4 \
    --per_device_eval_batch_size 4 \
    --gradient_accumulation_steps 1 \
    --evaluation_strategy "no" \
    --save_strategy "steps" \
    --save_steps 1200 \
    --save_total_limit 100 \
    --learning_rate 2e-5 \
    --weight_decay 0. \
    --warmup_ratio 0.03 \
    --lr_scheduler_type "cosine" \
    --logging_steps 1 \
    --tf32 True \
    --model_max_length 2048 \
    --q_lora True \
    --deepspeed playground/deepspeed_config_s2.json \
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26

未完待续!

9. 其他

pip install einops flash_attn==1.0.5
  • 1

完结!

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/知新_RL/article/detail/73740
推荐阅读
相关标签
  

闽ICP备14008679号