第二节“书生·浦语大模型趣味 Demo”笔记

主要任务

  1. 部署 InternLM2-Chat-1.8B 模型进行智能对话
  2. 部署实战营优秀作品 八戒-Chat-1.8B 模型
  3. 通过 InternLM2-Chat-7B 运行 Lagent 智能体 Demo
  4. 实践部署 浦语·灵笔2 模型

一、部署 InternLM2-Chat-1.8B 模型

配置环境

使用 Intern Studio平台配置开发机
在这里插入图片描述
创建Conda虚拟环境,安装所需Python库
下载 InternLM2-Chat-1.8B 模型——利用modelscope.hub.snapshot_download工具,直接从modelscope社区下载
下载的内容为:
在这里插入图片描述

输入python /root/demo/cli_demo.py命令,执行 Demo 程序:

import torch
from transformers import AutoTokenizer, AutoModelForCausalLM


model_name_or_path = "/root/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)

代码中首先通过transformers.AutoTokenizer读取文本分割Tokenizer文件
随后通过transformers.AutoModelForCausalLM读取因果语言模型文件
model = model.eval() 这行代码将模型设置为评估模式,不修改模型参数
随后通过system_prompt while 循环实现对话:

在这里插入图片描述

受限于模型量级,推理时间较长,同时存在一定问题,模型推理中系统资源占用:
在这里插入图片描述

二、部署实战营优秀作品 八戒-Chat-1.8B 模型

使用git clone下载模型
Web IDE 中执行 bajie_download.py运行Demo
在这里插入图片描述

配置SSH远程访问,实现本地机调用模型Web界面
在这里插入图片描述

三、使用 Lagent 运行 InternLM2-Chat-7B 模型——待完成

在这里插入图片描述

Lagent 是一个轻量级、开源的基于大语言模型的智能体(agent)框架,支持用户快速地将一个大语言模型转变为多种类型的智能体,并提供了一些典型工具为大语言模型赋能。

Lagent 的特性总结如下:

  • 流式输出:提供 stream_chat 接口作流式输出,本地就能演示酷炫的流式 Demo。
  • 接口统一,设计全面升级,提升拓展性,包括:
    – Model : 不论是 OpenAI API, Transformers 还是推理加速框架 LMDeploy 一网打尽,模型切换可以游刃有余;
    – Action: 简单的继承和装饰,即可打造自己个人的工具集,不论 InternLM 还是 GPT 均可适配;
    – Agent:与 Model 的输入接口保持一致,模型到智能体的蜕变只需一步,便捷各种 agent 的探索实现;
  • 文档全面升级,API 文档全覆盖。

克隆源代码并切换分支

git clone https://gitee.com/internlm/lagent.git
git checkout 581d9fb8987a5d9b72bb9ebd37a95efd47d479ac

通过流式运行,并通过端口开启Web访问:
streamlit run /root/demo/lagent/examples/internlm2_agent_web_demo_hf.py --server.address 127.0.0.1 --server.port 6006

在这里插入图片描述
智能体能够通过调用Python,实现数学计算
同时智能体具备图像打开功能,但无法实现图像理解
智能体论文助手(Arxiv Search)目前存在问题无法运行
在这里插入图片描述

四、实践部署 浦语·灵笔2 模型

图文生成

运行模型及Web页面
在这里插入图片描述
运行系统资源占用约35GB显存
在这里插入图片描述
根据以下标题:“中国水墨画:流动的诗意与东方美学”,创作长文章,字数不少于800字。请结合以下文本素材:
在这里插入图片描述
在这里插入图片描述
请对小米SU7汽车进行介绍,创作短文,字数不少于300字。

在这里插入图片描述

视觉问答

在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值