SOLAR 10.7B Instruct V1.0
SOLAR-10.7B是一个拥有107亿参数的高级大语言模型,在自然语言处理任务中表现出色,参数规模低于300亿的模型中性能领先。
下载量 58.99k
发布时间 : 12/12/2023
模型简介
SOLAR-10.7B是一个基于深度向上扩展(DUS)方法构建的大语言模型,通过指令微调优化了单轮对话能力。
模型特点
深度向上扩展技术
采用创新的深度向上扩展方法,整合Mistral 7B权重并进行持续预训练,显著提升模型性能。
高效参数利用
仅107亿参数却超越许多更大规模模型,在300亿参数以下模型中表现卓越。
先进指令微调
结合SFT和DPO方法进行指令微调,使用高质量数据集优化模型响应能力。
数据污染控制
严格筛选训练数据,确保模型未受基准测试数据污染,保持评估结果的可靠性。
模型能力
文本生成
单轮对话
自然语言理解
指令跟随
使用案例
对话系统
单轮问答
回答用户提出的单轮问题
提供准确、有帮助的回答
内容生成
文本创作
根据提示生成连贯的文本内容
生成符合语境的自然语言文本
🚀 10.7B Solar模型:借助Upstage深度扩展提升性能!
这是一款先进的大语言模型,在自然语言处理任务中表现卓越,参数规模虽小但能力强大,是微调的理想选择。
🚀 快速开始
版本
确保你安装了正确版本的transformers
库:
pip install transformers==4.35.2
加载模型
使用以下Python代码加载模型:
import torch
from transformers import AutoModelForCausalLM, AutoTokenizer
tokenizer = AutoTokenizer.from_pretrained("Upstage/SOLAR-10.7B-Instruct-v1.0")
model = AutoModelForCausalLM.from_pretrained(
"Upstage/SOLAR-10.7B-Instruct-v1.0",
device_map="auto",
torch_dtype=torch.float16,
)
进行单轮对话
conversation = [ {'role': 'user', 'content': 'Hello?'} ]
prompt = tokenizer.apply_chat_template(conversation, tokenize=False, add_generation_prompt=True)
inputs = tokenizer(prompt, return_tensors="pt").to(model.device)
outputs = model.generate(**inputs, use_cache=True, max_length=4096)
output_text = tokenizer.decode(outputs[0])
print(output_text)
以下是输出示例:
<s> ### User:
Hello?
### Assistant:
Hello, how can I assist you today? Please feel free to ask any questions or request help with a specific task.</s>
✨ 主要特性
- 性能卓越:SOLAR - 10.7B是一款拥有107亿参数的先进大语言模型(LLM),在各种自然语言处理(NLP)任务中表现出色。在参数少于30B的模型中,展现出了无与伦比的先进性能,甚至超越了参数高达30B的模型,包括近期的Mixtral 8X7B模型。
- 微调理想之选:SOLAR - 10.7B为微调提供了强大的鲁棒性和适应性。使用SOLAR - 10.7B预训练模型进行简单的指令微调,就能显著提升性能。
- 数据纯净:模型训练过程中尽力排除了所有与基准测试相关的数据集,并通过了数据污染测试,结果表明模型未受污染。
📦 安装指南
确保安装正确版本的transformers
库:
pip install transformers==4.35.2
💻 使用示例
基础用法
import torch
from transformers import AutoModelForCausalLM, AutoTokenizer
tokenizer = AutoTokenizer.from_pretrained("Upstage/SOLAR-10.7B-Instruct-v1.0")
model = AutoModelForCausalLM.from_pretrained(
"Upstage/SOLAR-10.7B-Instruct-v1.0",
device_map="auto",
torch_dtype=torch.float16,
)
conversation = [ {'role': 'user', 'content': 'Hello?'} ]
prompt = tokenizer.apply_chat_template(conversation, tokenize=False, add_generation_prompt=True)
inputs = tokenizer(prompt, return_tensors="pt").to(model.device)
outputs = model.generate(**inputs, use_cache=True, max_length=4096)
output_text = tokenizer.decode(outputs[0])
print(output_text)
📚 详细文档
指令微调策略
采用了包括监督微调(SFT)和直接偏好优化(DPO)在内的先进指令微调方法。使用了以下数据集的混合:
- c - s - ale/alpaca - gpt4 - data (SFT)
- Open - Orca/OpenOrca (SFT)
- 利用Metamath生成的内部数据 (SFT, DPO)
- Intel/orca_dpo_pairs (DPO)
- allenai/ultrafeedback_binarized_cleaned (DPO)
为避免数据污染,在生成数据时不使用GSM8K样本,并通过以下列表过滤任务:
filtering_task_list = [
'task228_arc_answer_generation_easy',
'ai2_arc/ARC-Challenge:1.0.0',
'ai2_arc/ARC-Easy:1.0.0',
'task229_arc_answer_generation_hard',
'hellaswag:1.1.0',
'task1389_hellaswag_completion',
'cot_gsm8k',
'cot_gsm8k_ii',
'drop:2.0.0',
'winogrande:1.1.0'
]
使用上述数据集,应用SFT和迭代DPO训练,这是一种专有的对齐策略,以最大化模型性能。
数据污染测试结果
近期,大语言模型排行榜上的一些模型存在数据污染问题。本模型在训练中尽力排除了所有与基准测试相关的数据集,并进行了数据污染测试(测试方法同HuggingFace团队使用的方法)。结果显示,各项指标均远低于0.9(result < 0.1, %
),表明模型未受污染。
模型 | ARC | MMLU | TruthfulQA | GSM8K |
---|---|---|---|---|
SOLAR - 10.7B - Instruct - v1.0 | result < 0.1, %: 0.06 | result < 0.1, %: 0.15 | result < 0.1, %: 0.28 | result < 0.1, %: 0.70 |
评估结果
模型 | H6 | 模型大小 |
---|---|---|
SOLAR - 10.7B - Instruct - v1.0 | 74.20 | ~ 11B |
mistralai/Mixtral - 8x7B - Instruct - v0.1 | 72.62 | ~ 46.7B |
01 - ai/Yi - 34B - 200K | 70.81 | ~ 34B |
01 - ai/Yi - 34B | 69.42 | ~ 34B |
mistralai/Mixtral - 8x7B - v0.1 | 68.42 | ~ 46.7B |
meta - llama/Llama - 2 - 70b - hf | 67.87 | ~ 70B |
tiiuae/falcon - 180B | 67.85 | ~ 180B |
SOLAR - 10.7B - v1.0 | 66.04 | ~11B |
mistralai/Mistral - 7B - Instruct - v0.2 | 65.71 | ~ 7B |
Qwen/Qwen - 14B | 65.86 | ~ 14B |
01 - ai/Yi - 34B - Chat | 65.32 | ~34B |
meta - llama/Llama - 2 - 70b - chat - hf | 62.4 | ~ 70B |
mistralai/Mistral - 7B - v0.1 | 60.97 | ~ 7B |
mistralai/Mistral - 7B - Instruct - v0.1 | 54.96 | ~ 7B |
🔧 技术细节
提出了一种名为深度扩展(DUS)的大语言模型扩展方法,包括架构修改和持续预训练。具体来说,将Mistral 7B的权重集成到扩展层中,最后对整个模型进行持续预训练。
📄 许可证
- [upstage/SOLAR - 10.7B - v1.0](https://huggingface.co/upstage/SOLAR - 10.7B - v1.0):apache - 2.0
- [upstage/SOLAR - 10.7B - Instruct - v1.0](https://huggingface.co/upstage/SOLAR - 10.7B - Instruct - v1.0):cc - by - nc - 4.0。由于微调使用了一些非商业数据集(如Alpaca),因此该模型以cc - by - nc - 4.0许可证发布。
引用方式
使用该模型时,请使用以下格式引用相关论文:
@misc{kim2023solar,
title={SOLAR 10.7B: Scaling Large Language Models with Simple yet Effective Depth Up-Scaling},
author={Dahyun Kim and Chanjun Park and Sanghoon Kim and Wonsung Lee and Wonho Song and Yunsu Kim and Hyeonwoo Kim and Yungi Kim and Hyeonju Lee and Jihoo Kim and Changbae Ahn and Seonghoon Yang and Sukyung Lee and Hyunbyung Park and Gyoungjin Gim and Mikyoung Cha and Hwalsuk Lee and Sunghun Kim},
year={2023},
eprint={2312.15166},
archivePrefix={arXiv},
primaryClass={cs.CL}
}
@misc{kim2024sdpo,
title={sDPO: Don't Use Your Data All at Once},
author={Dahyun Kim and Yungi Kim and Wonho Song and Hyeonwoo Kim and Yunsu Kim and Sanghoon Kim and Chanjun Park},
year={2024},
eprint={2403.19270},
archivePrefix={arXiv},
primaryClass={cs.CL}
}
Upstage AI团队
Upstage正在打造最优秀的大语言模型和文档AI。更多信息请访问:https://upstage.ai
联系我们
如有任何问题或建议,请使用讨论区。若想直接联系我们,请发送邮件至 contact@upstage.ai 。
Phi 2 GGUF
其他
Phi-2是微软开发的一个小型但强大的语言模型,具有27亿参数,专注于高效推理和高质量文本生成。
大型语言模型 支持多种语言
P
TheBloke
41.5M
205
Roberta Large
MIT
基于掩码语言建模目标预训练的大型英语语言模型,采用改进的BERT训练方法
大型语言模型 英语
R
FacebookAI
19.4M
212
Distilbert Base Uncased
Apache-2.0
DistilBERT是BERT基础模型的蒸馏版本,在保持相近性能的同时更轻量高效,适用于序列分类、标记分类等自然语言处理任务。
大型语言模型 英语
D
distilbert
11.1M
669
Llama 3.1 8B Instruct GGUF
Meta Llama 3.1 8B Instruct 是一个多语言大语言模型,针对多语言对话用例进行了优化,在常见的行业基准测试中表现优异。
大型语言模型 英语
L
modularai
9.7M
4
Xlm Roberta Base
MIT
XLM-RoBERTa是基于100种语言的2.5TB过滤CommonCrawl数据预训练的多语言模型,采用掩码语言建模目标进行训练。
大型语言模型 支持多种语言
X
FacebookAI
9.6M
664
Roberta Base
MIT
基于Transformer架构的英语预训练模型,通过掩码语言建模目标在海量文本上训练,支持文本特征提取和下游任务微调
大型语言模型 英语
R
FacebookAI
9.3M
488
Opt 125m
其他
OPT是由Meta AI发布的开放预训练Transformer语言模型套件,参数量从1.25亿到1750亿,旨在对标GPT-3系列性能,同时促进大规模语言模型的开放研究。
大型语言模型 英语
O
facebook
6.3M
198
1
基于transformers库的预训练模型,适用于多种NLP任务
大型语言模型
Transformers

1
unslothai
6.2M
1
Llama 3.1 8B Instruct
Llama 3.1是Meta推出的多语言大语言模型系列,包含8B、70B和405B参数规模,支持8种语言和代码生成,优化了多语言对话场景。
大型语言模型
Transformers 支持多种语言

L
meta-llama
5.7M
3,898
T5 Base
Apache-2.0
T5基础版是由Google开发的文本到文本转换Transformer模型,参数规模2.2亿,支持多语言NLP任务。
大型语言模型 支持多种语言
T
google-t5
5.4M
702
精选推荐AI模型
Llama 3 Typhoon V1.5x 8b Instruct
专为泰语设计的80亿参数指令模型,性能媲美GPT-3.5-turbo,优化了应用场景、检索增强生成、受限生成和推理任务
大型语言模型
Transformers 支持多种语言

L
scb10x
3,269
16
Cadet Tiny
Openrail
Cadet-Tiny是一个基于SODA数据集训练的超小型对话模型,专为边缘设备推理设计,体积仅为Cosmo-3B模型的2%左右。
对话系统
Transformers 英语

C
ToddGoldfarb
2,691
6
Roberta Base Chinese Extractive Qa
基于RoBERTa架构的中文抽取式问答模型,适用于从给定文本中提取答案的任务。
问答系统 中文
R
uer
2,694
98