【课堂笔记】2_轻松玩转书生·浦语大模型趣味Demo

这篇课堂笔记详细介绍了如何玩转书生·浦语大模型,包括InternLM-Chat-7B智能对话的环境配置、模型下载、代码准备与运行,以及Lagent智能体工具的调用流程。通过InternLM的开源框架和Lagent,用户可以快速体验大语言模型的智能对话和多功能智能体应用。
摘要由CSDN通过智能技术生成

【课堂笔记】2_轻松玩转书生·浦语大模型趣味Demo

课程资料来源:书生·浦语大模型实战营

1 大模型及InternLM模型介绍

什么是大模型?

人工智能领域中参数数量巨大、拥有庞大计算能力和参数规模的模型。

特点及应用

  • 利用大量数据进行训练
  • 拥有数十亿甚至数千亿个参数
  • 模型在各种任务中展现出惊人的性能

lnternLM模型全链条开源

InternLM是一个开源的轻量级训练框架,旨在支持大模型训练而无需大量的依赖。基于InternLM训练框架,上海人工智能实验室已经发布了两个开源的预训练模型:InternLM-7B和InternLM-20B。

Lagent是一个轻量级、开源的基于大语言模型的智能体(agent)框架,用户可以快速地将一个大语言模型转变为多种类型的智能体。通过 Lagent框架可以更好的发挥InternLM模型的全部性能。

浦语·灵笔是基于书生·浦语大语言模型研发的视觉·语言大模型,有着出色的图文理解和创作能力,使用浦语·灵笔大模型可以轻松的创作一篇图文推文。

2 InternLM-Chat-7B智能对话Demo

通过单一的代码库,InternLM支持在拥有数千个GPU的大型集群上进行预训练,并在单个GPU上进行微调,同时实现了卓越的性能优化。在1024个GPU上训练时,InternLM可以实现近90%的加速效率。

InternLM-7B包含了一个拥有70亿参数的基础模型和一个为实际场景量身定制的对话模型。该模型具有以下特点:

  • 利用数万亿的高质量token 进行训练,建立了一个强大的知识库。
  • 支持8k token 的上下文窗口长度,使得输入序列更长并增强了推理能力。

2.1 环境准备

在 InternStudio平台中选择 A100(1/4) 的配置,镜像选择 Cuda11.7-conda

接下来打开刚刚租用服务器的进入开发机,并且打开其中的终端开始环境配置、模型下载和运行 demo

进入开发机后,在页面的左上角可以切换 JupyterLab终端VScode,并在终端输入 bash 命令,进入 conda 环境。如下图所示:

进入 conda 环境之后,使用以下命令从本地克隆一个已有的 pytorch 2.0.1 的环境

bash # 请每次使用 jupyter lab 打开终端时务必先执行 bash 命令进入 bash 中
/root/share/install_conda_env_internlm_base.sh internlm-demo

然后使用以下命令激活环境

conda activate internlm-demo

并在环境中安装运行 demo 所需要的依赖。

# 升级pip
python -m pip install --upgrade pip

pip install modelscope==1.9.5
pip install transformers==4.35.2
pip install streamlit==1.24.0
pip install sentencepiece==0.1.99
pip install accelerate==0.24.1

2.2 模型下载

InternStudio平台的 share 目录下已经为我们准备了全系列的 InternLM 模型,所以我们可以直接复制即可。使用如下命令复制:

mkdir -p /root/model/Shanghai_AI_Laboratory
cp -r /root/share/temp/model_repos/internlm-chat-7b /root/model/Shanghai_AI_Laboratory

-r 选项表示递归地复制目录及其内容

也可以使用 modelscope 中的 snapshot_download 函数下载模型,第一个参数为模型名称,参数 cache_dir 为模型的下载路径。

/root 路径下新建目录 model,在目录下新建 download.py 文件并在其中输入以下内容,粘贴代码后记得保存文件,如下图所示。并运行 python /root/model/download.py 执行下载,模型大小为 14 GB,下载模型大概需要 10~20 分钟

import torch
from modelscope import snapshot_download, AutoModel, AutoTokenizer
import os
model_dir = snapshot_download('Shanghai_AI_Laboratory/internlm-chat-7b', cache_dir='/root/model', revision='v1.0.3')

注意:使用 pwd 命令可以查看当前的路径,JupyterLab 左侧目录栏显示为 /root/ 下的路径。

2.3 代码准备

首先 clone 代码,在 /root 路径下新建 code 目录,然后切换路径, clone 代码.

cd /root/code
git clone https://gitee.com/internlm/InternLM.git

切换 commit 版本,与教程 commit 版本保持一致,可以让大家更好的复现。

cd InternLM
git checkout 3028f07cb79e5b1d7342f4ad8d11efad3fd13d17

/root/code/InternLM/web_demo.py 中 29 行和 33 行的模型更换为本地的 /root/model/Shanghai_AI_Laboratory/internlm-chat-7b

2.4 终端运行

我们可以在 /root/code/InternLM 目录下新建一个 cli_demo.py 文件,将以下代码填入其中:

import torch
from transformers import AutoTokenizer, AutoModelForCausalLM


model_name_or_path = "/root/model/Shanghai_AI_Laboratory/internlm-chat-7b"

tokenizer = AutoTokenizer.from_pretrained(model_name_or_path, trust_remote_code=True)
model = AutoModelForCausalLM.from_pretrained(model_name_or_path, trust_remote_code=True, torch_dtype=torch.bfloat16, device_map='auto')
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("User  >>> ")
    input_text = input_text.replace(' ', '')
    if input_text == "exit":
        break
    response, history = model.chat(tokenizer, input_text, history=messages)
    messages.append((input_text, response))
    print(f"robot >>> {response}")
  • 17
    点赞
  • 27
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值