InternLM 书生:上海 AI 实验室的实用级大模型

FreeGuideOnline 最新 2026-06-22

初识 InternLM 书生

InternLM 是由上海人工智能实验室(Shanghai AI Laboratory)推出的一系列实用级大语言模型,中文名称为“书生”。它不仅仅是一个用于聊天的模型,更是一个面向实际应用场景、注重工具使用与知识增强的开源模型家族。InternLM 提供从轻量级到大规模、从通用对话到专用工具的完整模型矩阵,适合学术研究、个人学习、企业部署等多种需求。

为什么选择 InternLM

  • 实用导向:InternLM 从一开始就强调模型“能用、好用”,在多种中文评测基准上表现优异,尤其擅长代码生成、长文本理解与工具调用。
  • 完整生态:项目提供数据、训练、微调、评测、部署的全流程工具链,极大降低使用门槛。
  • 开放开源:模型权重、训练框架(InternEvo)、对话平台(Lagent)等均以开放许可证发布,允许商用。
  • 多尺寸选择:涵盖 7B、20B、102B 等参数量,满足从移动端到云端的不同部署需求。

模型家族一览

InternLM 系列目前包含以下几个主要版本,建议初学者从最新的 InternLM3 开始了解。

InternLM3

最新一代模型,在推理、代码、工具使用上全面增强,支持更长的上下文窗口(最高 1M tokens),提供 8B 和 68B 两个尺寸。

InternLM2.5

在 InternLM2 基础上进行中间版本迭代,引入“数据仓库”理念,强化了数理推理与工具调用能力,发布 1.8B、7B、20B 等多种规格。

InternLM-XComposer2

专注于视觉-语言多模态理解的模型,支持高分辨率图像输入、图文交错生成,可直接用于创建演示文稿、报告等富文本内容。

InternVL(ViT-Intern)

融合视觉与语言的联合模型,在图文问答、文档理解等场景达到业界领先水平。

环境准备与快速开始

安装依赖

使用 pip 安装核心依赖时,推荐在 Python 3.10 环境下操作。以下为最小安装示例:

pip install transformers>=4.38.0 torch>=2.0.0 accelerate sentencepiece

若需要完整训练与微调工具,可克隆官方仓库:

git clone https://github.com/InternLM/InternLM
cd InternLM && pip install -e .

加载模型并使用(Hugging Face 格式)

InternLM3 的模型权重已上传至 Hugging Face Hub,可直接通过 from_pretrained 加载:

from transformers import AutoTokenizer, AutoModelForCausalLM

model_name = "internlm/internlm3-8b-instruct"
tokenizer = AutoTokenizer.from_pretrained(model_name, trust_remote_code=True)
model = AutoModelForCausalLM.from_pretrained(model_name, torch_dtype="auto", device_map="auto", trust_remote_code=True)

messages = [{"role": "user", "content": "用 Python 写一个冒泡排序"}]
inputs = tokenizer.apply_chat_template(messages, add_generation_prompt=True, return_tensors="pt").to(model.device)
output = model.generate(inputs, max_new_tokens=512)
print(tokenizer.decode(output[0], skip_special_tokens=True))

对话与工具调用

使用 Lagent 构建智能体

Lagent 是 InternLM 团队推出的轻量级智能体框架,支持模型调用搜索引擎、计算器、代码解释器等外部工具。

安装 Lagent:

pip install lagent

示例:创建一个能搜索的对话智能体

from lagent.agents import Internlm2Agent
from lagent.actions import BingSearch, PythonInterpreter

agent = Internlm2Agent(
    model_name_or_path="internlm/internlm3-8b-instruct",
    tools=[PythonInterpreter(), BingSearch(api_key="your-bing-key")]
)
response = agent.chat("查找今天上海的天气,然后用 Python 计算 1024 的平方根")
print(response)

代码解释器能力

InternLM3 可直接生成并执行代码,解决数学运算、数据可视化等任务。在 Lagent 或原生推理中,模型会输出带有 ````python` 标记的代码块,若环境允许执行,则会返回执行结果。

模型微调与自定义训练

InternLM 提供了 InternEvo 训练框架,支持全参数微调(SFT)与 LoRA/QLoRA 等高效微调。

准备微调数据

数据应为 JSON Lines 格式,每行包含 conversation 字段,格式示例:

{"conversation": [{"from": "user", "value": "你好"}, {"from": "assistant", "value": "有什么可以帮你的?"}]}

使用 XTuner 进行高效微调

XTuner 是 InternLM 官方推荐的微调工具,一行命令即可启动 LoRA 微调:

xtuner train internlm3_8b_instruct_qlora_oasst1_512.py --deepspeed deepspeed_zero2

你也可以使用自定义数据集,将数据目录指向你的 JSON Lines 文件。

模型部署与量化

本地推理部署(LMDeploy)

LMDeploy 是高效推理部署工具,支持 TurboMind 引擎和 PyTorch 引擎,可实现高吞吐量、低延迟的对话服务。

安装 LMDeploy:

pip install lmdeploy

启动推理服务:

lmdeploy serve api_server internlm/internlm3-8b-instruct --server-port 23333

之后可通过 OpenAI 兼容接口调用。

量化部署

InternLM 支持 AWQ、GPTQ 等量化方案,显著降低显存占用。例如,使用 LMDeploy 进行 AWQ 量化:

lmdeploy lite auto_awq internlm/internlm3-8b-instruct --work-dir internlm3-8b-4bit

量化后模型可无缝部署,参数量不变,显存需求减少约 50%。

长文本与多模态能力

超长上下文

InternLM3 支持最大 1M token 上下文,你可以在推理时直接指定更大的 max_length,模型会自动外推到未训练过的长度。处理长文档时,只需将全文分段输入即可。

InternVL2 多模态体验

若你在项目中需要图像理解,可以加载 InternVL2 系列模型:

from transformers import AutoTokenizer, AutoModel
model = AutoModel.from_pretrained("OpenGVLab/InternVL2-8B", trust_remote_code=True)
tokenizer = AutoTokenizer.from_pretrained("OpenGVLab/InternVL2-8B", trust_remote_code=True)

pixel_values = load_image("path/to/image.jpg")
response = model.chat(tokenizer, pixel_values, question="描述这张图片", generation_config=dict(max_new_tokens=512))
print(response)

常用资源与社区

常见问题

Q:InternLM 支持商用吗?
A:InternLM2 及后续版本均遵循宽松的开源协议(如 Apache 2.0),允许商用,但建议查阅最新的 LICENSE 文件确认。

Q:如何选择模型尺寸?
A:个人学习推荐 7B/8B 版本,可在一张消费级显卡(如 RTX 3060 12GB)运行;高精度任务可使用 20B 或 68B 版本;边缘设备可尝试 1.8B 量化版。

Q:需要多少显存?
A:8B 模型在 float16 精度下约需 16GB 显存,使用 4-bit 量化可降至约 6GB;20B 模型满精度约需 40GB,量化后约 15GB。

Q:遇到问题去哪里求助?
A:推荐在 InternLM 的 GitHub Issues 提问,或在书生·浦语开放平台的社区板块与开发者交流。


至此,你已经掌握了 InternLM 的核心概念与基本使用流程。下一步可以尝试使用你自己的数据微调一个专用模型,或者将模型部署为一个在线 API,开始创造属于你的智能应用。