Instella:AMD开源30亿参数语言模型!训练效率碾压同级选手

87 阅读5分钟

❤️ 如果你也关注 AI 的发展现状,且对 AI 应用开发感兴趣,我会每日分享大模型与 AI 领域的开源项目和应用,提供运行实例和实用教程,帮助你快速上手AI技术!

🥦 AI 在线答疑 -> 智能检索历史文章和开源项目 -> 丰富的 AI 工具库 -> 每日更新 -> 尽在微信公众号 -> 搜一搜:蚝油菜花 🥦


💥 "开发者集体沸腾!AMD祭出开源核弹:30亿参数模型免费商用"

大家好,我是蚝油菜花。当同行还在为千亿参数内卷时,AMD用开源重写了大模型游戏规则!

你是否经历过这些窒息时刻:

  • 🤑 训练大模型烧掉80%预算在GPU适配调优上
  • 🔒 商用模型API调用费比程序员咖啡钱还贵
  • 🤯 调教模型就像教外星人说方言——指令总对不上频段

今天揭秘的 Instella 语言模型,正在掀起开源革命!这个完全基于AMD MI300X显卡训练的开源神器,用三大王炸横扫行业痛点:

  • 硬核训练架构:FlashAttention-2+混合精度,同参数规模训练速度快1.8倍
  • 零套路开源:权重/数据集/训练代码全开放,商用无需跪求授权
  • 对话炼金术:DPO优化让模型秒懂"把代码改成赛博朋克风"这种骚操作

已有团队用它48小时训出行业专属客服AI,文末附保姆级微调教程——你的显卡准备好迎接开源狂欢了吗?

🚀 快速阅读

Instella是AMD推出的30亿参数开源语言模型,基于自回归Transformer架构。

  1. 核心功能:支持自然语言理解、指令跟随、多轮对话和问题解决。
  2. 技术原理:采用Transformer架构,结合FlashAttention-2和bfloat16混合精度训练,优化内存使用和计算效率。

Instella 是什么

Instella-scaling_perf_instruct

Instella是AMD推出的系列30亿参数的开源语言模型。模型完全从零开始在AMD Instinct™ MI300X GPU上训练而成,基于自回归Transformer架构,包含36个解码器层和32个注意力头,支持最长4096个标记的序列。Instella经过多阶段训练,包括大规模预训练、监督微调和偏好优化,提升自然语言理解、指令跟随和对话能力。

Instella在多个基准测试中超越现有的开源模型,与最先进的开源权重模型具有竞争力。AMD完全开源Instella的模型权重、训练配置、数据集和代码,促进AI社区的合作与创新。

Instella 的主要功能

  • 自然语言理解:理解复杂的自然语言文本,处理各种语言任务,如问答、文本生成和语义分析。
  • 指令跟随:基于监督微调(SFT)和直接偏好优化(DPO),准确理解和执行用户指令,生成符合人类偏好的回答。
  • 多轮对话能力:支持多轮交互,根据上下文进行连贯的对话。
  • 问题解决能力:在数学问题、逻辑推理和知识问答等任务上表现出色。
  • 多领域适应性:基于多样化的训练数据,适应多种领域,如学术、编程、数学和日常对话等。

Instella 的技术原理

  • Transformer架构:基于自回归Transformer架构,包含36个解码器层,每层有32个注意力头,支持最长4096个标记的序列长度。
  • 高效训练技术:FlashAttention-2、Torch Compile和bfloat16混合精度训练,优化内存使用和计算效率。
  • 多阶段训练:用4.065万亿标记进行大规模预训练,建立基础语言理解能力。在第一阶段基础上进一步训练,使用额外的575.75亿标记,增强特定任务能力。
  • 监督微调(SFT):用高质量的指令-响应对数据进行微调,提升指令跟随能力。
  • 直接偏好优化(DPO):基于人类偏好数据对模型进行优化,让输出更符合人类价值观。
  • 分布式训练:基于完全分片数据并行(FSDP)技术,将模型参数、梯度和优化器状态在节点内分片,在节点间复制,实现大规模集群训练。
  • 数据集:基于多样化的高质量数据集进行训练,包括学术、编程、数学和对话数据,及合成数据集,确保模型具备广泛的知识和能力。

如何运行 Instella

1. 安装

首先根据操作系统安装 PyTorch。对于AMD GPU,可以从 rocm/pytorch docker 开始。

从源码安装(推荐用于训练/微调):

git clone https://github.com/AMD-AIG-AIMA/Instella.git
cd Instella
# 在MI300X上安装Flash-Attention
GPU_ARCH=gfx942 MAX_JOBS=$(nproc) pip install git+https://github.com/Dao-AILab/flash-attention.git -v
# 安装其他依赖
pip install -e .[all]

2. 示例用法

from transformers import AutoModelForCausalLM, AutoTokenizer
checkpoint = "amd/Instella-3B-Instruct"

tokenizer = AutoTokenizer.from_pretrained(checkpoint, trust_remote_code=True)
model = AutoModelForCausalLM.from_pretrained(checkpoint, device_map="auto", trust_remote_code=True)

prompt = [{"role": "user", "content": "What are the benefits of open-source AI research?"}]
inputs = tokenizer.apply_chat_template(
    prompt,
    add_generation_prompt=True,
    return_tensors='pt'
)

tokens = model.generate(
    inputs.to(model.device),
    max_new_tokens=1024,
    temperature=0.8,
    do_sample=True
)

print(tokenizer.decode(tokens[0], skip_special_tokens=False))

3. 使用TRL进行聊天

你也可以使用TRL CLI从终端与模型聊天:

pip install trl
trl chat --model_name_or_path amd/Instella-3B-Instruct --trust_remote_code --max_new_tokens 1024

资源


❤️ 如果你也关注 AI 的发展现状,且对 AI 应用开发感兴趣,我会每日分享大模型与 AI 领域的开源项目和应用,提供运行实例和实用教程,帮助你快速上手AI技术!

🥦 AI 在线答疑 -> 智能检索历史文章和开源项目 -> 丰富的 AI 工具库 -> 每日更新 -> 尽在微信公众号 -> 搜一搜:蚝油菜花 🥦