IntenLM-20B 在 Hugging Face Hub 正式发布

社区文章 发布于 2023 年 9 月 30 日

有关 InternLM 的更多信息,欢迎关注我们的 Twitter:https://twitter.com/intern_lm

我们很高兴推出我们的新模型 —— InternLM-20B。InternLM-20B 经过了超过 2.3T token 的预训练。它由上海人工智能实验室和来自不同大学与公司的研究人员共同开发。现在,它已在 HuggingFace 上发布!

您可以通过以下链接在 Huggingface 下载模型并试用其演示:

模型
基础模型:https://huggingface.co/internlm/internlm-20b
聊天模型:https://huggingface.co/internlm/internlm-chat-20b

应用程序:https://huggingface.co/spaces/BridgeEight/internlm-20B-chat-w4-turbomind(由社区 @BridgeEight 提供支持)
在本博客中,我们将介绍 InternLM-20B,解释其优势以及如何使用它。

简介

InternLM-20B 包含两个大型语言模型,它们在超过 2.3T Token 的高质量英文、中文和代码数据上进行了预训练。此外,聊天版本还经过了 SFT 和 RLHF 训练,使其能够更好、更安全地满足用户需求。在模型结构方面,InternLM-20B 采用了更深层次的架构,深度设置为 60 层。此外,用于 InternLM-20B 预训练的数据经过了更高质量的清洗,并补充了富含知识和旨在强化理解与推理能力的数据。因此,它在理解、推理、数学和编程能力方面表现出显著的改进——所有这些都考验着语言模型的技术熟练程度。

亮点

与之前的模型相比,InternLM-20B 具有以下特点:

  • 卓越的整体性能
    InternLM-20B 具有出色的整体性能。它不仅超越了同等规模的开源模型(包括 Llama-33B、Llama2-13B 以及许多其他 7B、13B 模型),而且取得了与 Llama2-70B 相媲美的更佳分数。
  • 强大的工具调用能力
    InternLM-20B 扩展了模型能力的边界,在大模型和真实世界场景之间建立了更好的连接。InternLM-20B 支持数十种插件和数千个 API 功能,在 ToolBench 测试集上取得了最佳结果。与 ChatGPT 相比,它取得了 61.7% 的胜率。此外,InternLM-20B 拥有代码解释器和自我纠正能力,为构建智能代理提供了坚实的技术基础。
  • 支持 16k 上下文长度
    InternLM-20B 将上下文窗口扩展到 16,000 个 token,这将更好地支持长上下文理解、长文本生成和超长对话。
  • 更好的价值对齐。与之前的模型相比,InternLM-20B 在价值对齐方面更安全可靠。在训练过程中,我们基于监督微调(SFT)和基于人类反馈的强化学习(RLHF)进行了两阶段的价值对齐。通过专家红队对抗训练,显著提高了其安全性。它能更好地处理有偏见的问题,并提供积极的引导。
  • 开放源代码工具和训练数据
    除了 InternLM 模型,我们还提供了各种工具包和开源数据集。包括预训练工具包 InternLM-Train、高效微调工具包 XTuner、压缩和部署工具包 LMDeploy、评估工具包 OpenCompass,以及用于构建基于 LLM 代理的轻量级框架 Lagent。这些工具包与开源数据平台 OpenDataLab 共同构成了强大的开源工具和数据系统,共同为学术界和工业界提供端到端的研究和应用支持。
    有关 InternLM-20B 的更多信息,请访问 https://github.com/InternLM/InternLM

用法

使用 LMDeploy 部署 InternLM-20B

我们推荐使用 LMDeploy 进行 4 比特量化和推理能力来部署 InternLM-20B 模型。与 FP16 推理相比,LMDeploy 4 比特量化推理不仅将模型的内存使用量减少了 60% 以上,更重要的是,凭借极致优化的内核,推理性能没有受到影响。相反,在 A100 上,其速度是 FP16 推理的两倍多。

批量大小 数据类型 输入 Token 数量 输出 Token 数量 Token 吞吐量(token/s) 内存(GB)
1 FP16 256 512 33.64 41.39
1 W4A16 256 512 79.12 15.67
16 FP16 256 512 409.69 77.21
16 W4A16 256 512 708.76 51.48

以下是快速部署 InternLM-20B-4bit 模型并进行聊天的步骤:

  1. 安装 lmdeploy
pip install 'lmdeploy>=0.0.9'
  1. 下载 InternLM-20B-4bit 模型
git-lfs install
git clone https://huggingface.co/internlm/internlm-chat-20b-4bit
  1. 转换模型
python3 -m lmdeploy.serve.turbomind.deploy internlm-chat \
    --model-path ./internlm-chat-20b-4bit \
    --model-format awq \
    --group-size 128
  1. 启动 Gradio 服务
python3 -m lmdeploy.serve.gradio.app ./workspace --server_name {ip_addr} --server_port {port}

有关 LMDeploy 的更多信息,请访问 https://github.com/InternLM/lmdeploy

使用 XTuner 在单个 24G GPU 上微调 InternLM-20B

XTuner 是由上海人工智能实验室开发的低成本大模型训练和微调工具箱。使用 XTuner,微调 InternLM-20B 仅需 24G 内存——使用单个 RTX3090 即可轻松实现!

目前,XTuner 支持大型语言模型的全参数、LoRA 和 QLoRA 微调。它无缝集成了 DeepSpeed ZeRO 2/3 优化技术,并兼容 Alpaca 和 OpenAssistant 等多种流行开源数据集。XTuner 设计为用户友好型,用户可以“开箱即用”!

硬件要求

模型 微调类型 最低资源 示例设备
InternLM-20B 全参数 w/ ZeRO-3 550GB 8x A100 80GB
LoRA w/ ZeRO-3 150GB 2x A100 80GB
QLoRA 24GB 1x 3090 24GB

快速入门

只需两条命令,我们就可以在 24G GPU 上实现 InternLM-20B 的 QLoRA 微调(以 oasst1 数据集为例)。

pip install xtuner
xtuner train internlm_20b_qlora_oasst1_512_e3

同时,XTuner 提供了许多即开即用的 InternLM-20B 微调配置,我们可以通过以下方式查看:

xtuner list-cfg -p internlm_20b

对于有特定需求的专业开发者,如自定义训练流程或自定义训练数据,XTuner 提供了可导出的示例配置文件。这可以进行定制和修改,以灵活配置来满足各种需求。

xtuner copy-cfg internlm_20b_qlora_oasst1_512_e3 ${SAVE_PATH}

有关 XTuner 的更多信息,请访问 https://github.com/InternLM/xtuner

社区

注册登录 发表评论