社区供稿 | 猎户星空百亿参数大模型 Orion-14B系列开源,一张3060就能跑(附魔搭社区推理微调最佳实践)

本文涉及的产品
模型训练 PAI-DLC,5000CU*H 3个月
模型在线服务 PAI-EAS,A10/V100等 500元 1个月
交互式建模 PAI-DSW,每月250计算时 3个月
简介: 1月21日,傅盛在猎户星空大模型发布会上宣布,“为企业应用而生” 的开源百亿参数猎户星空大模型正式发布。猎户星空大模型(Orion-14B)是由猎户星空研发的预训练多语言大语言模型,以其140亿参数规模展现出了卓越的性能。

1月21日,傅盛在猎户星空大模型发布会上宣布,“为企业应用而生” 的开源百亿参数猎户星空大模型正式发布。猎户星空大模型(Orion-14B)是由猎户星空研发的预训练多语言大语言模型,以其140亿参数规模展现出了卓越的性能。



模型性能评测


Orion-14B模型在一个庞大且多样化的数据集上进行训练,数据集规模达到了2.5万亿token。这一规模不仅覆盖了常见语言,还涵盖了专业术语和特定领域知识,确保模型能够理解和生成多种语境下的文本。


百亿参数大模型基座能力行业领先。Orion-14B在MMLU、C-Eval、CMMLU、GAOKAO、BBH等第三方测试集上,均为同级别模型SOTA。


基于第三方机构OpenCompass独立评测结果


140亿参数,以小博大。第三方OpenCompass综合测评总分中,700亿以下参数基座模型中文数据集排名第一。


实现长文本中「大海捞针」。最长可支持 320K token 超长文本,一次性读入一本小说。在三十万文字中任意位置随机隐藏关键信息,对模型进行提问,结果全部正确。



量化性能几乎无损。通过AWQ Q4量化技术,模型大小减少70%,推理速度提升30%,性能几乎无损(损失小于1%),可在千元级显卡可以流畅运行。在NVIDIA RTX 3060显卡实测,推理速度可达31 token/s (约每秒50汉字)




多语言能力强。超越了市面上许多更大参数的模型,尤其日语和韩语能力表现优秀,评测全球第一。



日文为JNLI等8项评测集平均得分;韩文为COPA等4项评测集平均得分;中文英文为OpenCompass对应语言评测集平均得分



模型应用


独家推出微调模型全家桶

为了更好地满足企业的应用需求,猎户星空独家推出了微调全家桶。在专业应用场景层面,Orion-14B也表现出了显著的可塑性和广泛的应用潜力,可以与千亿级模型媲美。


具体来说,猎户星空大模型涵盖了七大应用微调方向:

通用对话微调、插件微调、RAG微调、长Token微调、知识抽取微调、问答对生成微调、日韩文微调。


其中,基础对话能力微调模型(Orion-14B-Chat)专注于提升对话能力,尤其在理解历史消息和角色扮演方面显示出更高的准确性。


这一版本能够捕捉对话上下文中的细微变化,并根据不同角色和场景做出相应的反应,从而提供更加自然、连贯的对话体验。



除此之外,猎户星空还在两个大模型应用的主流方向上深入打磨——检索增强生成(RAG)和Agent。


两大重点:RAG和Agent

针对不同的应用需求,进一步扩展了猎户星空大模型(Orion-14B)的功能和实用性,着重打磨的两个方向,检索增强生成(RAG)和Agent。


所有基于大模型搭建好的应用,想要获取实时数据,都需要建立在检索增强生成(RAG)技术之上,RAG能力微调模型 (Orion-14B-RAG)使企业能够快速整合自身知识库,构建定制化的应用。猎户星空通过针对知识边界控制、问答对生成、幻觉控制、结构化数据提取等能力进行专项微调,使之成为最适合开发RAG应用的底座模型。



通过对比,可以看到猎户星空大模型RAG套件与普通RAG套件在专业领域的区别。



除了RAG,大模型应用可能拓宽的另一条重要路径,便是Agent。插件能力微调模型(Orion-14B-Plugin)的关键在于增强模型根据用户问题调用最适配工具的能力,并将插件的结果与模型的处理相结合,以解决更复杂的问题。通过针对意图识别、函数调用、缺槽反问、单轮抽参、多轮抽参、ReAct等能力进行专项微调,使之成为最适合构建Agent应用的底座模型。



重磅预告:MoE已经在训了!

目前,猎户星空已经在已有模型的基础上,调试和训练MoE架构的专家混合模型了。

据称,在这「N个臭皮匠」的加持下,智能水平可以全方位媲美千亿参数模型。




模型体验


Orion-14B已经全面开源,并且可以直接在线上体验。


GitHub:

https://github.com/OrionStarAI/Orion


ModelScope:

https://modelscope.cn/studios/OrionStarAI/Orion-14B-App-Demo/summary


Hugging Face:

https://huggingface.co/OrionStarAI


技术报告:https://github.com/OrionStarAI/Orion/blob/master/doc/Orion14B_v3.pdf


围绕企业应用的核心场景,Orion-14B 在基础能力、文档问答、插件工具调用、QA对生成、数据抽取方面均展示了不俗的效果:


基础能力-代码能力:


文档问答:


插件工具调用能力:


QA对生成:


信息数据抽取:


魔搭社区推理&微调最佳实践

  环境配置与安装

  1. python 3.8及以上版本
  2. pytorch 1.12及以上版本,推荐2.0及以上版本
  3. 建议使用CUDA 11.4及以上

使用步骤

本文主要演示的模型为 Orion-14B-Chat 模型.

  模型推理

Orion-14B-Chat模型链接:

https://modelscope.cn/models/OrionStarAI/Orion-14B-Chat/summary

推理代码

import torch
from modelscope import AutoModelForCausalLM, AutoTokenizer
from modelscope import GenerationConfig
tokenizer = AutoTokenizer.from_pretrained("OrionStarAI/Orion-14B-Chat", use_fast=False, trust_remote_code=True)
model = AutoModelForCausalLM.from_pretrained("OrionStarAI/Orion-14B-Chat", device_map="auto",
                                             torch_dtype=torch.bfloat16, trust_remote_code=True)
model.generation_config = GenerationConfig.from_pretrained("OrionStarAI/Orion-14B-Chat")
messages = [{"role": "user", "content": "你好! 你叫什么名字!"}]
response = model.chat(tokenizer, messages)
print(response)

  Orion-14B-Chat微调和微调后推理

环境准备:

我们使用swift来对模型进行微调

git clone https://github.com/modelscope/swift.git
cd swift
pip install .[llm]

微调脚本: lora_ddp

# https://github.com/modelscope/swift/tree/main/examples/pytorch/llm/scripts/orion_14b_chat
# Experimental environment: 4 * A100
# 4 * 45GB GPU memory
nproc_per_node=4
CUDA_VISIBLE_DEVICES=0,1,2,3 \
NPROC_PER_NODE=$nproc_per_node \
MASTER_PORT=29500 \
swift sft \
    --model_type orion-14b-chat \
    --sft_type lora \
    --tuner_backend swift \
    --template_type AUTO \
    --dtype AUTO \
    --output_dir output \
    --ddp_backend nccl \
    --dataset blossom-math-zh \
    --train_dataset_sample -1 \
    --num_train_epochs 2 \
    --max_length 2048 \
    --check_dataset_strategy warning \
    --lora_rank 8 \
    --lora_alpha 32 \
    --lora_dropout_p 0.05 \
    --lora_target_modules ALL \
    --gradient_checkpointing true \
    --batch_size 1 \
    --weight_decay 0.01 \
    --learning_rate 1e-4 \
    --gradient_accumulation_steps $(expr 16 / $nproc_per_node) \
    --max_grad_norm 0.5 \
    --warmup_ratio 0.03 \
    --eval_steps 100 \
    --save_steps 100 \
    --save_total_limit 2 \
    --logging_steps 10 \
    --use_flash_attn true \

训练过程支持本地数据集,需要指定如下参数:

--custom_train_dataset_path xxx.jsonl \
--custom_val_dataset_path yyy.jsonl \

自定义数据集的格式可以参考:

https://github.com/modelscope/swift/blob/main/docs/source/LLM/自定义与拓展.md#注册数据集的方式

微调后推理脚本: (这里的ckpt_dir需要修改为训练生成的checkpoint文件夹)

# Experimental environment: A100
CUDA_VISIBLE_DEVICES=0 \
swift infer \
    --ckpt_dir "output/orion-14b-chat/vx_xxx/checkpoint-xxx" \
    --load_dataset_config true \
    --max_length 2048 \
    --use_flash_attn true \
    --max_new_tokens 2048 \
    --temperature 0.1 \
    --top_p 0.7 \
    --repetition_penalty 1. \
    --do_sample true \

训练损失:

训练后生成样例:

[PROMPT]<s> Human: Sarah每周开始存5美元,连续4周。然后她连续4周每周存10美元。接下来她连续4周每周存20美元。在12周内,她一共存了多少钱?
Assistant: </s>[OUTPUT]首先,我们计算Sarah每周存5美元连续4周所存的钱数:
5美元/周 * 4周 = 20美元
然后,我们计算Sarah连续4周每周存10美元所存的钱数:
10美元/周 * 4周 = 40美元
最后,我们计算Sarah连续4周每周存20美元所存的钱数:
20美元/周 * 4周 = 80美元
将这三个数相加,得到Sarah一共存了多少钱:
20美元 + 40美元 + 80美元 = 140美元
所以,在12周内,Sarah一共存了140美元。
Answer: 140</s>
[LABELS]在最开始的4周内,她每周存5美元,所以总共存入5 * 4 = 20美元。
在接下来的4周内,她每周存10美元,所以总共存入10 * 4 = 40美元。
最后,她连续4周每周存20美元,所以总共存入20 * 4 = 80美元。
在12周内,她总共存入20 + 40 + 80 = 140美元。
Answer: 140
--------------------------------------------------
[PROMPT]<s> Human: 凯伦想出去买一些快餐。她开车到了汽车餐厅的驶入通道,点了一个5美元的汉堡。她的儿子突然大声喊着要一个4美元的三明治,于是加到了订单里。然后凯伦决定再订一些饮料,选择了两杯4美元的冰沙。凯伦的快餐订单总共多少钱?
Assistant: </s>[OUTPUT]凯伦的快餐订单总共多少钱为:
5美元 + 4美元 + 4美元 + 4美元 = 17美元
Answer: 17</s>
[LABELS]凯伦点了一个5美元的汉堡,然后加了一个4美元的三明治。再加上两杯4美元的冰沙。
5 + 4 + (4 * 2) = 5 + 4 + 8 = 17
凯伦的快餐订单总共是17美元。
Answer: 17

参考资料:

https://github.com/OrionStarAI/Orion

https://modelscope.cn/studios/OrionStarAI/Orion-14B-App-Demo/summary

https://huggingface.co/OrionStarAI

Orion-14B-App-Demo · 创空间 (modelscope.cn)

相关文章
|
6月前
|
缓存 API 开发者
魔搭社区牵手FastChat&vLLM,打造极致LLM模型部署体验
FastChat是一个开放平台,用于训练、服务和评估基于LLM的ChatBot。
|
2月前
|
机器学习/深度学习 人工智能 自然语言处理
社区供稿 | 元象发布255B大规模MoE开源大模型,落地应用登顶港台榜
元象XVERSE发布 中国最大MoE开源模型:XVERSE-MoE-A36B,加速AI应用低成本部署,将国产开源提升至国际领先水平。
社区供稿 | 元象发布255B大规模MoE开源大模型,落地应用登顶港台榜
|
4月前
|
自然语言处理 API Android开发
阿里Qwen2-72B大模型已是开源榜的王者,为什么还要推出其他参数模型,被其他模型打榜?
阿里云的Qwen2-72B模型在Hugging Face上荣登开源模型榜首,展现卓越性能,超越其他包括Meta的Llama-3在内的竞争者。Qwen2有多个参数版本,其中72B版本在自然语言理解、知识、代码等任务上表现出色。较小参数版本如7B模型在某些方面略逊一筹。推出不同参数模型可能是为了降低成本、加速迭代、构建丰富的模型生态。通过提供不同规模的模型,阿里云旨在促进技术研究和全场景应用,类似于微软Windows XP和阿里云OS生态的构建策略。
309 1
|
4月前
|
人工智能 JSON 文字识别
开源VLM新标杆 InternVL 2.0 怎么用?部署、微调尽在魔搭社区!
7月4日下午,世界人工智能大会科学前沿论坛,上海人工智能实验室OpenGVLab发布了InternVL 2.0 版本,中文名书生·万象。
|
5月前
|
编解码 人工智能 测试技术
ShareGPT4V作者团队又一力作!百万高质量视频-字幕数据助力社区提升多模态大模型视频理解及生成能力
【6月更文挑战第30天】ShareGPT4Video`团队推出百万视频-字幕数据集,强化多模态模型的视频理解和生成。包括40K视频的`ShareGPT4Video`数据集、`ShareCaptioner-Video`模型和8B参数的`ShareGPT4Video-8B`模型,后者在视频基准测试中取得最佳效果。差异化字幕生成策略解决了传统方法的局限。尽管取得突破,但数据规模和模型泛化仍是未来挑战。[论文链接](https://arxiv.org/abs/2406.04325v1)
66 1
|
6月前
|
机器学习/深度学习 人工智能 算法
仅靠开源数据复刻出LLaMA3指令学习效果,在线迭代RLHF全流程解决方案来了
【5月更文挑战第27天】在线迭代RLHF方案使用开源数据复现LLaMA3指令学习效果,提供了一种动态收集和更新模型的新方法,提升大型语言模型的性能。通过代理偏好模型模拟人类反馈,降低训练成本,促进技术民主化。虽然面临数据利用、探索与利用平衡等挑战,且需解决长尾分布数据处理问题,该方案已在多基准测试中展现优秀性能,为LLM训练提供高效途径。论文链接:https://arxiv.org/pdf/2405.07863
64 1
|
6月前
|
人工智能 Rust Apache
社区供稿 | 更长、更强、更开放,零一万物 Yi-1.5 系列开源模型发布一周广受好评
5 月 13 日,零一万物 Yi 系列开源模型全新升级为 Yi-1.5。相较于去年 11 月的开源版本,这次的 Yi-1.5 在保持原 Yi 系列模型优秀的通用语言能力的前提下,通过增量训练 500B 高质量 token,大幅提高了数学逻辑、代码能力。
|
6月前
|
数据采集 机器学习/深度学习 存储
性能提升30%!中国电信进一步开源12B星辰大模型TeleChat-12B!魔搭社区最佳实践来啦!
中国电信人工智能研究院开源12B参数规模星辰语义大模型TeleChat-12B,相较1月开源7B版本,内容、性能和应用等方面整体效果提升30%,其中,多轮推理、安全问题等领域提升超40%。在C-eval、MMLU、AGIEVAL等国际权威榜单上,排名处于国内同级别参数开源模型的前列,进一步促进大模型开源生态繁荣,助力AI产业加速高质量发展。另据悉,中国电信人工智能研究院将于年内开源千亿级参数大模型。
|
6月前
|
存储 自然语言处理 负载均衡
元象开源首个MoE大模型:4.2B激活参数,效果堪比13B模型,魔搭社区最佳实践来了
近日,元象发布其首个Moe大模型 XVERSE-MoE-A4.2B, 采用混合专家模型架构 (Mixture of Experts),激活参数4.2B,效果即可媲美13B模型。该模型全开源,无条件免费商用,支持中小企业、研究者和开发者可在元象高性能“全家桶”中按需选用,推动低成本部署。

热门文章

最新文章