使用LMdeploy 运行书生模型

Cli Demo 部署 InternLM2-Chat-1.8B 模型 并生成300字的小故事

  • 启动开发机(略)
  • vscode远程连接开发机(略)
  • 创建cli_demo.py 文件
    在这里插入图片描述
  • 写代码:
import torch
from transformers import AutoTokenizer, AutoModelForCausalLM


model_name_or_path = "/root/share/new_models/Shanghai_AI_Laboratory/internlm2-chat-1_8b"

tokenizer = AutoTokenizer.from_pretrained(model_name_or_path, trust_remote_code=True, device_map='cuda:0')
model = AutoModelForCausalLM.from_pretrained(model_name_or_path, trust_remote_code=True, torch_dtype=torch.bfloat16, device_map='cuda:0')
model = model.eval()

system_prompt = """You are an AI assistant whose name is InternLM (书生·浦语).
- InternLM (书生·浦语) is a conversational language model that is developed by Shanghai AI Laboratory (上海人工智能实验室). It is designed to be helpful, honest, and harmless.
- InternLM (书生·浦语) can understand and communicate fluently in the language chosen by the user such as English and 中文.
"""
messages = [(system_prompt, '')]

print("=============Welcome to InternLM chatbot, type 'exit' to exit.=============")

while True:
    input_text = input("\nUser  >>> ")
    input_text = input_text.replace(' ', '')
    if input_text == "exit":
        break

    length = 0
    for response, _ in model.stream_chat(tokenizer, input_text, messages):
        if response is not None:
            print(response[length:], flush=True, end="")
            length = len(response)
  • 运行
    在这里插入图片描述
  • 生成内容:
    写一篇300字的故事,内容为许仙和小青的爱情故事,他们 结婚后 生了2 孩子

仙和小青是一对年轻的情侣,他们在美丽的西湖畔相识相恋,最终决定携手步入婚姻的殿堂。他们共同经营着一间小客栈,过着幸福美满的生活。

然而,许仙的梦想是成为一名医生,而小青则喜欢照顾孩子和家务。尽管他们有着不同的职业追求,但他们深深地相爱着,互相扶持着。

随着时间的推移,他们有了自己的孩子。许仙开始承担起家庭的责任,照顾年幼的孩子,而小青则负责照顾老人和家务。他们的孩子非常聪明可爱,让他们的生活充满了欢乐和温馨。

许仙和小青一直坚持着他们的爱情,即使他们面临了种种困难和挑战。他们的婚姻也变得越来越牢固,他们彼此间的信任和理解也更加深厚。

然而,他们的生活并不总是那么平静。有一次,许仙因为一场意外而失去了手臂,这让他感到非常痛苦和无助。小青为了照顾他,放弃了她的事业和自由,一直陪伴在他身边,为他治疗和康复。

随着时间的推移,许仙的身体逐渐康复,他和小青的婚姻也更加稳定。他们决定一起开始新的生活,带着孩子一起成长。

许仙和小青的孩子渐渐长大,他们之间的感情也越来越深厚。他们的孩子成为了他们爱情的见证者,让他们更加坚定地相信彼此。

许仙和小青的孩子们非常聪明、勤奋,他们在学校里表现出色,受到了老师的赞赏。许仙和小青为此感到非常骄傲和满足,他们知道自己的孩子们继承了父母的优良品质。

许仙和小青的爱情故事告诉我们,无论我们的梦想和追求如何不同,只要我们相互扶持、相互理解,就能够共同创造美好的未来。他们的故事也激励着我们,要珍惜身边的人,共同走过人生的每一个阶段。

Lmdeploy

LMDeploy 由 MMDeploy 和 MMRazor 团队联合开发,是涵盖了 LLM 任务的全套轻量化、部署和服务解决方案。 这个强大的工具箱提供以下核心功能:

高效的推理:LMDeploy 开发了 Persistent Batch(即 Continuous Batch),Blocked K/V Cache,动态拆分和融合,张量并行,高效的计算 kernel等重要特性。推理性能是 vLLM 的 1.8 倍

可靠的量化:LMDeploy 支持权重量化和 k/v 量化。4bit 模型推理效率是 FP16 下的 2.4 倍。量化模型的可靠性已通过 OpenCompass 评测得到充分验证。

便捷的服务:通过请求分发服务,LMDeploy 支持多模型在多机、多卡上的推理服务。

有状态推理:通过缓存多轮对话过程中 attention 的 k/v,记住对话历史,从而避免重复处理历史会话。显著提升长文本多轮对话场景中的效率。

卓越的兼容性: LMDeploy 支持 KV Cache 量化, AWQ 和 Automatic Prefix Caching 同时使用。

MLdeploy使用

  • 创建 单独的环境
conda create -n mld python=3.10
conda activate mld 
  • 下载模型
    使用 开发机中 share 路径下的模型即可

  • 运行模型
    import lmdeploy
    pipe = lmdeploy.pipeline(“/root/InternLM/XTuner/Shanghai_AI_Laboratory/internlm2-chat-1_8b”)
    response = pipe([“介绍下你自己”, “上海是”])
    for r in response:
    print(r.text)

效果

在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

一宸哥

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值