❤️ 如果你也关注 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架构。
- 核心功能:支持自然语言理解、指令跟随、多轮对话和问题解决。
- 技术原理:采用Transformer架构,结合FlashAttention-2和bfloat16混合精度训练,优化内存使用和计算效率。
Instella 是什么
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
资源
- GitHub 仓库:https://github.com/AMD-AIG-AIMA/Instella
❤️ 如果你也关注 AI 的发展现状,且对 AI 应用开发感兴趣,我会每日分享大模型与 AI 领域的开源项目和应用,提供运行实例和实用教程,帮助你快速上手AI技术!
🥦 AI 在线答疑 -> 智能检索历史文章和开源项目 -> 丰富的 AI 工具库 -> 每日更新 -> 尽在微信公众号 -> 搜一搜:蚝油菜花 🥦