【 书生·浦语大模型实战营】作业(五):LMDeploy 量化部署
🎉AI学习星球推荐: GoAI的学习社区 知识星球是一个致力于提供《机器学习 | 深度学习 | CV | NLP | 大模型 | 多模态 | AIGC 》各个最新AI方向综述、论文等成体系的学习资料,配有全面而有深度的专栏内容,包括不限于 前沿论文解读、资料共享、行业最新动态以、实践教程、求职相关(简历撰写技巧、面经资料与心得)多方面综合学习平台,强烈推荐AI小白及AI爱好者学习,性价比非常高!加入星球➡️点击链接
本次作业内容:
【作业】:https://github.com/InternLM/Tutorial
基础作业
- Task1:配置 LMDeploy 运行环境
- Task2 :以命令行方式与 InternLM2-Chat-1.8B 模型对话
Task1:
studio-conda -t lmdeploy -o pytorch-2.1.2
激活环境并安装lmdeploy
conda activate lmdeploy
pip install lmdeploy[all]==0.3.0
LMDeploy模型对话(chat)
使用Transformer库运行模型
用Transformer来直接运行InternLM2-Chat-1.8B模型,终端中输入如下指令,新建pipeline_transformer.py
。
touch /root/pipeline_transformer.py
将以下内容复制粘贴进入pipeline_transformer.py
。
import torch
from transformers import AutoTokenizer, AutoModelForCausalLM
tokenizer = AutoTokenizer.from_pretrained("/root/internlm2-chat-1_8b", trust_remote_code=True)
# Set `torch_dtype=torch.float16` to load model in float16, otherwise it will be loaded as float32 and cause OOM Error.
model = AutoModelForCausalLM.from_pretrained("/root/internlm2-chat-1_8b", torch_dtype=torch.float16, trust_remote_code=True).cuda()
model = model.eval()
inp = "hello"
print("[INPUT]", inp)
response, history = model.chat(tokenizer, inp, history=[])
print("[OUTPUT]", response)
inp = "please provide three suggestions about time management"
print("[INPUT]", inp)
response, history = model.chat(tokenizer, inp, history=history)
print("[OUTPUT]", response)
运行代码:
python /root/pipeline_transformer.py
Task 2
使用LMDeploy与模型对话
chat-1_8b为例:
lmdeploy chat /root/internlm2-chat-1_8b
参数展示:
效果展示: