赞
踩
pip3 install "fschat[model_worker,webui]"
git clone https://github.com/lm-sys/FastChat.git
cd FastChat
Mac 上运行:
brew install rust cmake
从源文件安装
pip3 install --upgrade pip # enable PEP 660 support
pip3 install -e ".[model_worker,webui]"
python3 -m fastchat.serve.cli --model-path lmsys/vicuna-7b-v1.3
关键参数汇总:
参数 | 说明 |
---|---|
–model-path | 模型路径,可以是本地文件夹或HuggingFace的repo ID |
–revision | HuggingFace Hub模型修订版本标识 |
–device | 设备类型,可选择cpu/cuda/mps/xpu |
–gpus | 指定单个或多个GPU,如1或0,2 |
–num-gpus | GPU数量 |
–max-gpu-memory | 每个GPU用于存储模型权重的最大内存,使用字符串表示如’13Gib’ |
–load-8bit | 使用8位量化 |
–cpu-offloading | 仅用于8位量化:将超出GPU容量的权重卸载到CPU |
–gptq-ckpt | GPTQ检查点路径,用于GPTQ量化 |
–gptq-wbits | GPTQ量化比特数,可选择2/3/4/8/16 |
–gptq-groupsize | GPTQ量化分组大小,默认为整行 |
–gptq-act-order | 是否应用GPTQ激活顺序启发式方法 |
–awq-ckpt | AWQ检查点路径,用于AWQ量化 |
–awq-wbits | AWQ量化比特数,可选择4/16 |
–awq-groupsize | AWQ量化分组大小,默认为整行 |
–conv-template | 对话提示模板 |
–conv-system-msg | 对话系统消息 |
–temperature | 温度参数 |
–repetition_penalty | 重复惩罚参数 |
–max-new-tokens | 最大新生成词元数量 |
–no-history | 不保留历史记录 |
–style | 显示样式,可选择simple/rich/programmatic |
–multiline | 启用多行输入 |
–mouse | 启用鼠标支持光标定位(仅限rich样式) |
–judge-sent-end | 是否启用识别句子结束的逻辑纠正 |
–debug | 打印调试信息(如prompt) |
要使用 Web UI 提供服务,您需要三个主要组件:
python3 -m fastchat.serve.controller
python3 -m fastchat.serve.model_worker --model-path lmsys/vicuna-7b-v1.3
等到进程完成加载模型,您会看到“Uvicorn running on …”。模型工作者将自己注册到控制器。
测试模型是否注册到控制器,成功会有一个简短的输出
python3 -m fastchat.serve.gradio_web_server
这是用户将与之交互的用户界面。
打开 http://0.0.0.0:7860 ,可以看到交互界面
- 您可以将多个模型工作人员注册到单个控制器,该控制器可用于为具有更高吞吐量的单个模型提供服务或同时为多个模型提供服务。执行此操作时,请为不同的模型工作人员分配不同的 GPU 和端口。
# worker 0
CUDA_VISIBLE_DEVICES=0 python3 -m fastchat.serve.model_worker --model-path lmsys/vicuna-7b-v1.3 --controller http://localhost:21001 --port 31000 --worker http://localhost:31000
# worker 1
CUDA_VISIBLE_DEVICES=1 python3 -m fastchat.serve.model_worker --model-path lmsys/fastchat-t5-3b-v1.0 --controller http://localhost:21001 --port 31001 --worker http://localhost:31001
- 您还可以启动多选项卡 gradio 服务器,其中包括 Chatbot Arena 选项卡。
python3 -m fastchat.serve.gradio_web_server_multi
python3 -m fastchat.serve.controller
python3 -m fastchat.serve.model_worker --model-path /mnt/code/LLM_Service/model/Baichuan-13b-Chat
#多卡运行
python3 -m fastchat.serve.model_worker --model-path my_model_path --num-gpus 4 --max-gpu-memory "20GiB"
# CUDA_VISIBLE_DEVICES=0,1,2,3 --gpus "0,1,2,3"这几个参数多卡没有效果,必须加--max-gpu-memory
python3 -m fastchat.serve.openai_api_server --host localhost --port 8000
pip install --upgrade openai
通过ChatOpenAI接口调用模型:
from langchain.chat_models import ChatOpenAI from langchain import LLMChain from langchain.prompts.chat import ( ChatPromptTemplate, HumanMessagePromptTemplate, ) api_base_url = "http://192.168.175.6:8000/v1" api_key= "EMPTY" LLM_MODEL = "Baichuan-13b-Chat" model = ChatOpenAI( streaming=True, verbose=True, # callbacks=[callback], openai_api_key=api_key, openai_api_base=api_base_url, model_name=LLM_MODEL ) human_prompt = "{input}" human_message_template = HumanMessagePromptTemplate.from_template(human_prompt) chat_prompt = ChatPromptTemplate.from_messages( [("human", "我们来玩成语接龙,我先来,生龙活虎"), ("ai", "虎头虎脑"), ("human", "{input}")]) chain = LLMChain(prompt=chat_prompt, llm=model, verbose=True) print(chain({"input": "恼羞成怒"}))
如果您想在同一台机器上、同一进程中运行多个模型,可以将
model_worker
上述步骤替换为多模型变体:
python3 -m fastchat.serve.multi_model_worker \
--model-path lmsys/vicuna-7b-v1.3 \
--model-names vicuna-7b-v1.3 \
--model-path lmsys/longchat-7b-16k \
--model-names longchat-7b-16k
pip3 install -e ".[train]"
您可以使用以下命令使用 4 x A100 (40GB) 训练 Vicuna-7B。
--model_name_or_path
使用 LLaMA 权重的实际路径和--data_path
数据的实际路径进行更新。
torchrun --nproc_per_node=4 --master_port=20001 fastchat/train/train_mem.py \ --model_name_or_path ~/model_weights/llama-7b \ --data_path data/dummy_conversation.json \ --bf16 True \ --output_dir output_vicuna \ --num_train_epochs 3 \ --per_device_train_batch_size 2 \ --per_device_eval_batch_size 2 \ --gradient_accumulation_steps 16 \ --evaluation_strategy "no" \ --save_strategy "steps" \ --save_steps 1200 \ --save_total_limit 10 \ --learning_rate 2e-5 \ --weight_decay 0. \ --warmup_ratio 0.03 \ --lr_scheduler_type "cosine" \ --logging_steps 1 \ --fsdp "full_shard auto_wrap" \ --fsdp_transformer_layer_cls_to_wrap 'LlamaDecoderLayer' \ --tf32 True \ --model_max_length 2048 \ --gradient_checkpointing True \ --lazy_preprocess True
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。