书生·浦语大模型全链路开源体系
浦语大模型全链路开源体系
大模型成为发展通用人工智能的重要途径
- 专用模型:针对特定任务,一个模型解决一个问题
- 通用大模型:一个模型应对多种任务、多种模态
- 大模型发展时间线
- LLaMA 模型家族
- 书生·浦语大模型开源历程
书生·浦语 2.0(InternLM2)核心理念
- 面向不同的使用需求 ,每个规格包含三个模型版本
7B:为轻量级的研究和应用提供了一个轻便但性能不俗的模型
20B:模型的综合性能更为强劲,可有效支持更加复杂的实用场景
- InternLM2-Base
高质量和具有很强可塑性的模型基座是模型进行深度领域适配的高质量起笈
- InternLM2
在 Base 基础上,在多个能力方向进行了强化 ,在评测中成绩优异,同时保持了很好的通用语言能力,是我们推荐的在大部分应用中考虑选用的优秀基座
- InternLM2-Chat
在 Base 基础上,经过 SFT 和 RLHF,面向对话交互进行了优化,具有很好的指令遭循、共情聊天和调用工具等的能力
- 回归语言建模的本质
- 致力于通过更高质量的语料以及更高的信息密度,实现模型基座语言建模能力的质的提升
书生·浦语 2.0(InternLM2)的主要亮点
主要亮点 1:超长上下文支持
模型在 20 万字长输入中几乎完美地实现长文“大海捞针”
主要亮点 2:性能全方位提升
在各能力维度全面进步,在推理、数学、代码等方面的能力提升尤为显著,综合性能达到同量级开源模型的领先水平,在重点能力评测上 InternLM2-Chat-20B 甚至可以达到比肩 ChatGPT (GPT-3.5)的水平
主要亮点 3:优秀的对话和创作体验
- 贴心又可靠的 Al 助手
- 充满人文关怀的对话
- 富有想象力的创作
AlpacaEval2 英文主观对话榜单(斯坦福大学发布)IntemLM2-Chat-20B胜率(21.75%)超越了 GPT-3.5(14.13%),GeminiPro(16.85%)和Claude-2 (17.19%)
指令遵循能力评测集 IFEval(谷歌发布): InternLM2-Chat-208 的指令遵循率超越了 GPT-4(79.5%vs 79.3%)
![在这里插入图片描述](https://img-blog.csdnimg.cn/direct/dd2c160c38cc486fbf98eeba2c043bff.png x=x300)
主要亮点 4:工具调用能力升级
工具调用能够极大地拓展大语言模型的能力边界 ,使得大语言模型能够通过搜索、计算、代码解释器等获取最新的知识并处理更加复杂的问题。InternLM2进一步升级了模型的工具调用能力,能够更稳定地进行工具筛选和多步骤规划,完成复杂任务
主要亮点 5:数理能力突出
- 强大的内生计算能力
在预训练阶段,模型吸收了丰富的数学相关的语料,在微调阶段模型全面学习了覆盖不同学段各类知识点的题目,使得模型内生的计算能力得到了大大增强
- 代码解释器:更上一层楼
借助代码解释器,模型能够编写代码进行更复杂的计算,或者对推理的结果进行形式化验证,从而可以解决计算要求更高或者演算过程更加复杂的问题
- 数据分析和可视化
基于在计算及工具调用方面强大的基础能力,InternLM2在语言模型中具备了数据分析和可视化实用能力,进一步贴近用户使用场景
从模型到应用典型流程
书生·浦语全链条开源开放体系
全链条开源开放体系|数据
全链条开源开放体系|开放高质量语料数据
全链条开源开放体系|预训练
全链条开源开放体系|微调
全链条开源开放体系|评测
-
OpenCompass 2.0 司南大模型评测体系开源历程
![在这里插入图片描述](https://img-blog.csdnimg.cn/direct/8bf1289ac62d4b4eb3977bfc3f5d209b.png #pic_center)
-
CompassRank:中立全面的性能榜单
-
CompassKit:大模型评测全栈工具链
-
CompassHub:高质量评测基准社区
-
OpenCompass 2.0 能力维度全面升级
-
夯实基础:自研高质量大模型评测基准
-
洞见未来:年度榜单与能力分析
-
洞见未来:OpenCompass 年度榜单(主观评测-对战胜率)
-
洞见未来:OpenCompass 年度榜单(综合性客观评测)
-
群策群力:携手行业领先共建繁荣生态
全链条开源开放体系|部署
全链条开源开放体系|智能体
浦语大模型趣味 homework1
基础作业
部署 InternLM2-Chat-1.8B 模型进行智能对话
- 打开 Intern Studio 界面,点击 创建开发机 配置开发机系统,并创建Cuda11.7-conda镜像,然后点击进入开发机选项
- 进入开发机后,在 terminal 中输入环境配置命令 (配置环境时间较长,需耐心等待
studio-conda -o internlm-base -t demo
# 与 studio-conda 等效的配置方案
# conda create -n demo python==3.10 -y
# conda activate demo
# conda install pytorch==2.0.1 torchvision==0.15.2 torchaudio==2.0.2 pytorch-cuda=11.7 -c pytorch -c nvidia
- 然后进入创建conda环境,并安装相关环境包
# 1进入demo环境
conda activate demo
# 安装相关环境包
pip install huggingface-hub==0.17.3
pip install transformers==4.34
pip install psutil==5.9.8
pip install accelerate==0.24.1
pip install streamlit==1.32.2
pip install matplotlib==3.8.3
pip install modelscope==1.9.5
pip install sentencepiece==0.1.99
- 下载 InternLM2-Chat-1.8B 模型
# 按路径创建文件夹,并进入到对应文件目录中
mkdir -p /root/demo
touch /root/demo/cli_demo.py
touch /root/demo/download_mini.py
cd /root/demo
然后通过左侧文件夹栏目,双击进入 demo 文件夹
双击打开 /root/demo/download_mini.py 文件,复制以下代码:
import os
from modelscope.hub.snapshot_download import snapshot_download
# 创建保存模型目录
os.system("mkdir /root/models")
# save_dir是模型保存到本地的目录
save_dir="/root/models"
snapshot_download("Shanghai_AI_Laboratory/internlm2-chat-1_8b",
cache_dir=save_dir,
revision='v1.1.0')
执行命令,下载模型参数文件:
python /root/demo/download_mini.py
- 运行 cli_demo
双击打开 /root/demo/cli_demo.py 文件,复制以下代码:
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)
输入以下命令,运行demo:
conda activate demo
python /root/demo/cli_demo.py
成功运行后,即可输入内容:
请创作一个 300 字的科幻小故事
效果如下:
表现不佳的例子
让直接给出markdown源码,但这里还是给出转换后的markdown视图
进阶作业
config.json 文件下载
熟悉 huggingface 下载功能,使用 huggingface_hub python 包,下载 InternLM2-Chat-7B 的 config.json 文件到本地(需截图下载过程)
编写config.json下载代码
from huggingface_hub import hf_hub_download
repo_id = "internlm/internlm2-chat-7b"
filename = "config.json"
# 下载文件
file_path = hf_hub_download(repo_id, filename)
print(f"文件已下载到:{file_path}")
下载截图
完成 浦语·灵笔2 的 图文创作 及 视觉问答 部署
进入开发机,启动 conda
环境:
conda activate demo
# 补充环境包
pip install timm==0.4.12 sentencepiece==0.1.99 markdown2==2.4.10 xlsxwriter==3.1.2 gradio==4.13.0 modelscope==1.9.5
下载 InternLM-XComposer 仓库 相关的代码资源:
cd /root/demo
git clone https://gitee.com/internlm/InternLM-XComposer.git
# git clone https://github.com/internlm/InternLM-XComposer.git
cd /root/demo/InternLM-XComposer
git checkout f31220eddca2cf6246ee2ddf8e375a40457ff626
在 terminal
中输入指令,构造软链接快捷访问方式:
ln -s /root/share/new_models/Shanghai_AI_Laboratory/internlm-xcomposer2-7b /root/models/internlm-xcomposer2-7b
ln -s /root/share/new_models/Shanghai_AI_Laboratory/internlm-xcomposer2-vl-7b /root/models/internlm-xcomposer2-vl-7b
继续输入指令,用于启动 InternLM-XComposer
:
cd /root/demo/InternLM-XComposer
python /root/demo/InternLM-XComposer/examples/gradio_demo_composition.py \
--code_path /root/models/internlm-xcomposer2-7b \
--private \
--num_gpus 1 \
--port 6006
成功通过ssh在本地连接成功后打开网址:
关闭并重新启动一个新的 terminal
,继续输入指令,启动 InternLM-XComposer2-vl
:
conda activate demo
cd /root/demo/InternLM-XComposer
python /root/demo/InternLM-XComposer/examples/gradio_demo_chat.py \
--code_path /root/models/internlm-xcomposer2-vl-7b \
--private \
--num_gpus 1 \
--port 6006
完成 Lagent 工具调用 数据分析 Demo 部署
输入命令,开启 conda 环境:
conda activate demo
打开文件子路径
cd /root/demo
使用 git 命令下载 Lagent 相关的代码库:
git clone https://gitee.com/internlm/lagent.git
# git clone https://github.com/internlm/lagent.git
cd /root/demo/lagent
git checkout 581d9fb8987a5d9b72bb9ebd37a95efd47d479ac
pip install -e . # 源码安装
修改对应文件代码
streamlit run /root/demo/lagent/examples/internlm2_agent_web_demo_hf.py --server.address 127.0.0.1 --server.port 6006