书生·浦语大模型实战2

发布时间:2024年01月09日

轻松玩转书生·浦语大模型趣味 Demo

大模型及 InternLM 模型简介

什么是大模型

大模型通常指的是机器学习或人工智能领域中参数数量巨大、拥有庞大计算能力和参数规模的模型。这些模型利用大量数据进行训练,并且拥有数十亿甚至数千亿个参数。大模型的出现和发展得益于增长的数据量、计算能力的提升以及算法优化等因素。这些模型在各种任务中展现出惊人的性能,比如自然语言处理、计算机视觉、语音识别等。这种模型通常采用深度神经网络结构,如?TransformerBERTGPT( Generative Pre-trained Transformer )等

InternLM 模型

InternLM?是一个开源的轻量级训练框架,旨在支持大模型训练而无需大量的依赖。通过单一的代码库,它支持在拥有数千个?GPU?的大型集群上进行预训练,并在单个?GPU?上进行微调,同时实现了卓越的性能优化。在?1024?个?GPU?上训练时,InternLM?可以实现近?90%?的加速效率。

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

InternLM-Chat-7B 智能对话 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

模型下载

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')

代码准备

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

mkdir -p /root/code
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

终端运行

我们可以在?/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}")

然后在终端运行以下命令,即可体验?InternLM-Chat-7B?模型的对话能力。对话效果如下所示

python /root/code/InternLM/cli_demo.py

web demo 运行?

我们切换到?VScode?中,运行?/root/code/InternLM?目录下的?web_demo.py?文件,输入以下命令后,查看本教程5.2配置本地端口后,将端口映射到本地。在本地浏览器输入http://127.0.0.1:6006即可

文章来源:https://blog.csdn.net/m0_73202283/article/details/135482490
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。