大语言模型 InternLM2(书生·浦语) 一键部署

介绍

2024 年 1 月 17 日,新一代大语言模型书生·浦语 2.0(InternLM2)正式发布(GitHub 仓库地址)。相比于第一代 InternLM,InternLM2 在推理、对话体验等方面的能力全面提升,工具调用能力整体升级,并支持 20 万字超长上下文,实现长文对话 “大海捞针”。

InternLM2 包含 InternLM2-7B 和 InternLM2-20B 两种模型规格(20B 模型比 7B 模型功能更强大),每种规格又根据不同的应用场景,分为以下四种模型:InternLM2-BaseInternLM2InternLM2-Chat-SFTInternLM2-Chat。其中 InternLM2 是官方推荐使用的基础模型,InternLM2-Chat 是官方推荐使用的对话模型。下文主要介绍 InternLM2-Chat-7B 模型的部署和使用。

模型HuggingFaceModelScope
InternLM2-Chat-7B仓库地址仓库地址
InternLM2-Chat-20B仓库地址仓库地址

环境准备

Featurize 算力平台提供了高效便捷的在线实验环境,在平台上租用合适的 GPU 实例,部署大模型,方便快捷,省时省力,而且价格亲民。

本人实际部署 InternLM2-Chat-7B 模型消耗显存 20 GB 左右(受实际参数配置影响,仅供参考),因此租用一张 RTX 3090 或者 RTX 4090 的 GPU 实例就能满足模型运行条件。

关于 Featurize 平台的使用,建议直接阅读 官方文档,上手操作非常简单,在此不在赘述。

模型部署&使用

页面交互方式

两种部署方式只是页面展示效果不同,并无本质区别,选择其中一种方式部署即可。

Gradio

LMDeploy 工具中封装了 Gradio,我们使用该工具部署模型。

LMDeploy 所需的运行环境和模型部署代码已整理到下方的脚本文件中,执行脚本文件即可一键部署

首先解释下启动命令中的几个参数含义,各参数取值可根据硬件条件自行调整。

  • tp(tensor_parallel_size):表示使用几张 GPU 来运行一个模型。
  • max_batch_size:批处理大小,该参数值越大,吞吐量越高,但会占用更多显存。
  • cache_max_entry_count:设置 k/v 缓存大小,会占用显存。当值为 0~1 之间的小数时,表示 k/v block 使用的内存百分比(例如显存 60 G,该值设置为 0.5,则 k/v 使用的内存总量为 60 * 0.5 = 30G)。当值 >1 时,表示 k/v block 数量。
  • ./internlm2-chat-7b:模型本地存储路径。

具体操作步骤如下。

  1. 通过 ssh 终端连接到服务器实例,新建 deploy.sh 脚本文件,文件内容如下。
bash
 代码解读
复制代码
cd ~
# 安装运行环境
echo "Installing Python dependencies"
pip install lmdeploy socksio gradio==3.50.2

# 安装 Git ltf 扩展包
echo "Installing git lfs extension"
curl -s https://packagecloud.io/install/repositories/github/git-lfs/script.deb.sh | sudo bash
sudo apt-get install -y git-lfs
git lfs install

# 拉取模型库
echo "Download repo"
git clone https://huggingface.co/internlm/internlm2-chat-7b

# 启动模型
echo "start model"
python3 -m lmdeploy.serve.gradio.app --tp=1 --max_batch_size=64 --cache_max_entry_count=0.1 --server_name=0.0.0.0 --server_port=8888 ./internlm2-chat-7b
  1. 执行 sh deploy.sh 命令启动脚本。脚本执行大约需要 5 分钟时间(模型仓库中有几个大文件)。新开一个终端窗口,执行命令 watch -n 1 nvidia-smi 可以实时观察 GPU 资源的使用情况。

在这里插入图片描述

  1. 模型部署完成,执行下面命令,开放 Featurize 端口。端口开放后 Featurize 会提供公网访问地址。
bash
 代码解读
复制代码
# 开放端口
featurize port export 8888
# 查看已开放的端口
featurize port list
  1. 访问公网地址,使用模型。

在这里插入图片描述

Streamlit

官方 GitHub 仓库 中提供了使用 Streamlit 部署模型的代码。示例代码默认加载远程 Hugging Face 仓库中的模型,如果已经将模型下载到本地,可以修改源码从本地加载模型。

脚本文件如下,可直接执行,一键部署。

bash
 代码解读
复制代码
cd ~

# 安装环境
pip install streamlit==1.24.0
pip install transformers==4.37.0

# 克隆代码
git clone https://github.com/InternLM/InternLM.git

# 运行
streamlit run ./InternLM/chat/web_demo.py

默认启动端口:8501,记得开放 Featurize 端口。交互页面如下所示。

在这里插入图片描述

代码方式

注意:代码中./internlm2-chat-7b 为模型本地存储路径,请根据实际情况自行调整。

Transformers

ini
 代码解读
复制代码
import torch
from transformers import AutoTokenizer, AutoModelForCausalLM

if __name__ == '__main__':
    # 没有本地模型,替换为 internlm/internlm2-chat-7b
    tokenizer = AutoTokenizer.from_pretrained("./internlm2-chat-7b", trust_remote_code=True)
    model = AutoModelForCausalLM.from_pretrained("./internlm2-chat-7b", device_map="auto",
                                                 trust_remote_code=True, torch_dtype=torch.float16)
    model = model.eval()
    response, history = model.chat(tokenizer, "你好 我是 Cleaner", history=[])
    print(response)

ModelScope

ini
 代码解读
复制代码
import torch
from modelscope import snapshot_download, AutoTokenizer, AutoModelForCausalLM

if __name__ == '__main__':
    # 没有本地模型,替换为 Shanghai_AI_Laboratory/internlm2-chat-7b
    model_dir = snapshot_download('./internlm2-chat-7b')
    tokenizer = AutoTokenizer.from_pretrained(model_dir, device_map="auto", trust_remote_code=True)
    model = AutoModelForCausalLM.from_pretrained(model_dir, device_map="auto", trust_remote_code=True,
                                                 torch_dtype=torch.float16)
    model = model.eval()
    response, history = model.chat(tokenizer, "你好 我是 Cleaner", history=[])
    print(response)

LMDeploy

LMDeploy 使用文档

ini
 代码解读
复制代码
from lmdeploy import pipeline, TurbomindEngineConfig

if __name__ == '__main__':
    backend_config = TurbomindEngineConfig(tp=1,
                                           max_batch_size=64,
                                           cache_max_entry_count=0.1)
    # 没有本地模型,替换为 internlm/internlm2-chat-7b
    pipe = pipeline("./internlm2-chat-7b", backend_cofing=backend_cofing)
    response = pipe(["你好 我是 Cleaner"])
    print(response)

总结

梳理 InternLM2 的特点,帮助想要使用大语言模型的个人开发者或者企业,在面对众多大语言模型时,能够了解大语言模型提供的能力,并结合自身的需求与成本,做出清晰明确的选择。

  • 开源免费、可商用。
  • 超长上下文支持:200K token 的输入与理解。(书籍等大文本数据做摘要总结、若干轮对话后回忆之前的内容(大海捞针))
  • 支持工具调用能力:能够在一次交互中多次调用工具,完成相对复杂的任务。(Agent)
  • 支持微调和训练。(提供专有数据集,打造个人/企业私有化大模型)。

如何系统的去学习大模型LLM ?

大模型时代,火爆出圈的LLM大模型让程序员们开始重新评估自己的本领。 “AI会取代那些行业?”“谁的饭碗又将不保了?”等问题热议不断。

事实上,抢你饭碗的不是AI,而是会利用AI的人。

科大讯飞、阿里、华为等巨头公司发布AI产品后,很多中小企业也陆续进场!超高年薪,挖掘AI大模型人才! 如今大厂老板们,也更倾向于会AI的人,普通程序员,还有应对的机会吗?

与其焦虑……

不如成为「掌握AI工具的技术人」,毕竟AI时代,谁先尝试,谁就能占得先机!

但是LLM相关的内容很多,现在网上的老课程老教材关于LLM又太少。所以现在小白入门就只能靠自学,学习成本和门槛很高。

针对所有自学遇到困难的同学们,我帮大家系统梳理大模型学习脉络,将这份 LLM大模型资料 分享出来:包括LLM大模型书籍、640套大模型行业报告、LLM大模型学习视频、LLM大模型学习路线、开源大模型学习教程等, 😝有需要的小伙伴,可以 扫描下方二维码领取🆓↓↓↓

👉CSDN大礼包🎁:全网最全《LLM大模型入门+进阶学习资源包》免费分享(安全链接,放心点击)👈

一、LLM大模型经典书籍

AI大模型已经成为了当今科技领域的一大热点,那以下这些大模型书籍就是非常不错的学习资源。

在这里插入图片描述

二、640套LLM大模型报告合集

这套包含640份报告的合集,涵盖了大模型的理论研究、技术实现、行业应用等多个方面。无论您是科研人员、工程师,还是对AI大模型感兴趣的爱好者,这套报告合集都将为您提供宝贵的信息和启示。(几乎涵盖所有行业)

在这里插入图片描述

三、LLM大模型系列视频教程

在这里插入图片描述

四、LLM大模型开源教程(LLaLA/Meta/chatglm/chatgpt)

在这里插入图片描述

LLM大模型学习路线

阶段1:AI大模型时代的基础理解

  • 目标:了解AI大模型的基本概念、发展历程和核心原理。

  • 内容

    • L1.1 人工智能简述与大模型起源
    • L1.2 大模型与通用人工智能
    • L1.3 GPT模型的发展历程
    • L1.4 模型工程
    • L1.4.1 知识大模型
    • L1.4.2 生产大模型
    • L1.4.3 模型工程方法论
    • L1.4.4 模型工程实践
    • L1.5 GPT应用案例

阶段2:AI大模型API应用开发工程

  • 目标:掌握AI大模型API的使用和开发,以及相关的编程技能。

  • 内容

    • L2.1 API接口
    • L2.1.1 OpenAI API接口
    • L2.1.2 Python接口接入
    • L2.1.3 BOT工具类框架
    • L2.1.4 代码示例
    • L2.2 Prompt框架
    • L2.3 流水线工程
    • L2.4 总结与展望

阶段3:AI大模型应用架构实践

  • 目标:深入理解AI大模型的应用架构,并能够进行私有化部署。

  • 内容

    • L3.1 Agent模型框架
    • L3.2 MetaGPT
    • L3.3 ChatGLM
    • L3.4 LLAMA
    • L3.5 其他大模型介绍

阶段4:AI大模型私有化部署

  • 目标:掌握多种AI大模型的私有化部署,包括多模态和特定领域模型。

  • 内容

    • L4.1 模型私有化部署概述
    • L4.2 模型私有化部署的关键技术
    • L4.3 模型私有化部署的实施步骤
    • L4.4 模型私有化部署的应用场景

这份 LLM大模型资料 包括LLM大模型书籍、640套大模型行业报告、LLM大模型学习视频、LLM大模型学习路线、开源大模型学习教程等, 😝有需要的小伙伴,可以 扫描下方二维码领取🆓↓↓↓

👉CSDN大礼包🎁:全网最全《LLM大模型入门+进阶学习资源包》免费分享(安全链接,放心点击)👈

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值