课程视频:
https://www.bilibili.com/video/BV1Ci4y1z72H/?spm_id_from=pageDriver&vd_source=7ec57e9f8774c23edf14450231ffa086
MarkDown:
https://github.com/InternLM/tutorial/blob/main/helloworld/hello_world.md
1. 大模型及InternLM模型介绍
- 什么是大模型?
人工智能领域中参数数量巨大、拥有庞大计算能力和参数规模的模型。
- 特点及应用
利用大量数据进行训练
拥有数十亿甚至数千亿个参数
模型在各种任务中展现出惊人的性能
- InternLM模型全链条开源
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亿参数的基础模型和一个为实际场景量身定制的对话模型。该模型 具有以下特点: 1.利用数万亿的高质量token进行训练,建立了一个强大的知识库。 2.支持8 k token的上下文窗口长度,使得输入序列更长并增强了推理能力。
3. Lagent智能体工具调用Demo
- Lagent介绍 Lagent是一个轻量级、开源的基于大语言模型的智能体(agent)框架,用户可以快速地将一个大语言模型转变为多种类型的智能体,并提供了一些典型工具为大语言模型赋能。架构如图所示:
4. 浦语·灵笔图文创作理解Demo
- InternLM-Xcomposer-7B介绍
浦语•灵笔是基于书生·浦语大语言模型研发的视觉-语言大模型,提供出色的图文理解和创作能力, 具有多项优势: 1.为用户打造图文并貌的专属文章。 2.设计了高效的训练策略,为模型注入海量的多模态概念和知识数据,赋予其强大的图文理解和 对话能力。
5. 通用环境配置
5.1 pip、conda换源
pip换源设置pip默认镜像源,升级pip到最新的版本(>=10.0.0)后进行配置,如下所示:
临时使用镜像源安装,如下所示:some-package 为你需要安装的包名
pip install -i https://mirrors.cernet.edu.cn/pypi/web/simple some-package 设置pip默认镜像源,升级 pip 到最新的版本 (>=10.0.0) 后进行配置,如下所示:
python -m pip install --upgrade pip
pip config set global.index-url https://mirrors.cernet.edu.cn/pypi/web/simple
如果 pip 默认源的网络连接较差,临时使用镜像源升级 pip:
python -m pip install -i https://mirrors.cernet.edu.cn/pypi/web/simple --upgrade pip
cat <<'EOF' > ~/.condarc
channels:
- defaults
show_channel_urls: true
default_channels:
- https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/main
- https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/r
- https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/msys2
custom_channels:
conda-forge: https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud
pytorch: https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud
EOF
5.2 模型下载
- Hugging Face
下载使用Hugging Face官方提供的 huggingface-cli命令行工具。安装依赖:
pip install -U huggingface hub
huggingface-cli download --resume-download internlm/internlm-chat-7b --local-dir your_path
# 下载模型中的部分文件
import os
from huggingface_hub import hf_hub_download # Load model directly
hf_hub_download(repo_id="internlm/internlm-7b", filename="config.json")
- OpenXLab
OpenXLab可以通过指定模型仓库的地址,以及需要下载的文件的名称,文件所需下载的位 置等,直接下载模型权重文件。使用Python脚本下载模型首先要安装依赖,安装代码如下:pip install-U openxlab安装完成后使用download函数导入模型中心的模型。 将以下代码写入Python文件,运行即可。
from openxlab.model import download
download(model_repo='OpenLMLab/InternLM-7b', model_name='InternLM-7b', output='your local path')
- modelscope
使用modelscope中的snapshot download函数下载模型,第一个参数为模型名称,参数 cache dir为模型的下载路径。首先安装依赖:
pip install modelscope==1.9.5
pip install transformers==4.35.2
在当前目录下新建python文件,填入以下代码,运行即可。
import torch
from modelscope import snapshot_download, AutoModel, AutoTokenizer
import os
model_dir = snapshot_download('Shanghai_AI_Laboratory/internlm-chat-7b', cache_dir='your path', revision='master')
6. 课后作业
基础作业:
6.1使用 InternLM-Chat-7B 模型生成 300 字的小故事(需截图)。
①cli_demo
PS:语义理解不到位:①“回家路上”被理解为“回到家中”,②乘客垫付医药费的前提被忽略。
②web_demo
6.2 熟悉 hugging face 下载功能,使用 huggingface_hub python 包,下载 InternLM-20B 的 config.json 文件到本地(需截图下载过程)。
1.安装huggingface-cli 命令行工具依赖
2.python代码
import os
from huggingface_hub import hf_hub_download # Load model directly
hf_hub_download(repo_id="internlm/internlm-20b", filename="config.json")
3.运行python
进阶作业(可选做)
6.3 完成浦语·灵笔的图文理解及创作部署(需截图)
①图文创作
②多模态对话