Bloom 350m
BigScience大型开放科学多语言语言模型,支持46种自然语言和12种编程语言,由国际协作项目开发
下载量 43
发布时间 : 7/26/2022
模型简介
BLOOM是一个基于Transformer架构的多语言大语言模型,旨在促进大型语言模型的公共研究。它支持文本生成任务,并可作为特定任务微调的基础模型。
模型特点
多语言支持
支持46种自然语言和12种编程语言,特别关注资源较少的语言
开放科学
由国际志愿者团队开发,采用开放科学模式,促进公共研究
高效训练
使用法国超级计算机Jean Zay进行训练,采用核能供电并回收热量
负责任AI
包含详细的使用限制和风险说明,强调负责任使用
模型能力
多语言文本生成
编程代码生成
文本完形填空
反事实生成
文本重构
信息抽取
问答系统
文本摘要
使用案例
学术研究
语言模型研究
探索多语言语言模型的行为和特征
NLP任务基准测试
作为多语言NLP任务的基准模型
教育应用
语言学习辅助
帮助学习多种语言的文本生成和交互
社区应用
低资源语言支持
为资源较少的语言社区提供AI支持
🚀 BLOOM LM
大科学开放科学、开放访问的多语言大语言模型,助力公共研究探索语言生成新可能
🚀 快速开始
此部分文档未提供快速开始的相关内容,但你可以按照以下指引进一步了解和使用该模型:
- 阅读模型详情,了解模型的基本信息、技术规格、环境影响等。
- 查看使用说明,明确模型的预期用途、误用和超出范围的使用情况。
- 参考训练数据,了解模型训练所使用的数据。
- 关注风险和局限性,知悉模型可能存在的问题。
- 查看评估结果,了解模型的性能指标。
- 遵循使用建议,确保正确、安全地使用模型。
✨ 主要特性
- 多语言支持:支持多种自然语言和编程语言,包括但不限于英语、法语、中文、日语、韩语等,以及Java、Python、C++等编程语言。
- 开放科学与开放访问:由BigScience团队开发,所有协作者均为志愿者或与雇主达成协议,旨在推动大语言模型的公共研究。
- 基于Transformer架构:采用基于Transformer的语言模型架构,具有强大的语言理解和生成能力。
- 灵活应用:可用于文本生成、探索语言模型生成语言的特征,也可作为预训练基础模型,进一步微调用于特定任务,如信息提取、问答、摘要等。
📚 详细文档
模型详情
基础信息
- 开发团队:BigScience(官网)
- 模型类型:基于Transformer的语言模型
- 版本:1.0.0
- 支持语言:多种;详见训练数据
- 许可证:RAIL许可证v1.0(链接)
- 预计发布日期:2022年7月11日(周一)
- 咨询邮箱:bigscience-contact@googlegroups.com
- 引用方式:BigScience, BigScience Language Open-science Open-access Multilingual (BLOOM) Language Model. International, May 2021 - May 2022
- 资助方:
- 法国政府
- Hugging Face(官网)
- 贡献者所在组织(各组织详情待补充)
技术规格
请参考BLOOM训练README以获取训练复现的完整细节。
- 模型架构:基于Megatron - LM GPT2修改(详见论文,BLOOM Megatron代码):
- 目标函数:交叉熵损失(详见API文档)
- 计算基础设施:由法国政府提供的Jean Zay公共超级计算机(详见公告):
- 硬件:384个A100 80GB GPU(48个节点):
- 额外32个A100 80GB GPU(4个节点)作为备用
- 每个节点8个GPU,使用NVLink 4 GPU间连接,4条OmniPath链路
- CPU:AMD
- 每个节点CPU内存:512GB
- 每个节点GPU内存:640GB
- 节点间连接:Omni - Path架构(OPA)
- NCCL通信网络:专用子网
- 磁盘IO网络:与其他类型节点共享网络
- 软件:
- 硬件:384个A100 80GB GPU(48个节点):
训练信息
- 训练日志:Tensorboard链接
- 检查点大小:
- Bf16权重:329GB
- 包含优化器状态的完整检查点:2.3TB
- 训练吞吐量:约每个GPU每秒150 TFLOP
- 训练轮数:1(当前目标)
- 训练时间:
- 开始时间:2022年3月11日上午11:42(太平洋标准时间)
- 预计结束时间:2022年7月5日
- 预计训练成本:相当于200 - 500万美元的云计算费用(包括初步实验)
- 服务器训练地点:法国法兰西岛
分词器
BLOOM分词器(链接)是一个学习型子词分词器,使用以下方法训练:
- 字节级字节对编码(BPE)算法
- 简单的预分词规则,无归一化
- 词汇表大小为250,680 它在语料库的一个初步版本的子集上使用每种语言的alpha加权进行训练。
环境影响
训练用超级计算机Jean Zay(官网)主要使用核能,其产生的热量用于校园住房供暖。
- 预计碳排放:(训练完成后提供)
- 预计用电量:(训练完成后提供)
使用说明
预期用途
本模型旨在推动大语言模型(LLM)的公共研究。LLM可用于语言生成,或作为预训练基础模型,进一步微调用于特定任务。以下使用案例并非详尽无遗。
- 直接使用:
- 文本生成
- 探索语言模型生成语言的特征,例如完形填空测试、反事实情况、重新构建的生成
- 下游使用:
- 利用语言模型的任务包括:信息提取、问答、摘要
误用和超出范围的使用
请参阅BLOOM许可证附件A以获取详细的使用限制。以下列表并非详尽无遗,但列出了一些容易预见的有问题的使用案例。
- 超出范围的使用:
- 误用:
- 故意使用模型造成伤害、违反人权或进行其他恶意活动,均属于对本模型的误用。这包括:
- 垃圾邮件生成
- 虚假信息和影响操作
- 诋毁和诽谤
- 骚扰和虐待
- 欺骗
- 未经同意的模仿和假冒
- 未经同意的监视
- 未按照RAIL许可证使用限制对模型进行归因的内容生成
- 故意使用模型造成伤害、违反人权或进行其他恶意活动,均属于对本模型的误用。这包括:
预期用户
- 直接用户:
- 普通公众
- 研究人员
- 学生
- 教育工作者
- 工程师/开发者
- 非商业实体
- 社区倡导者,包括人权和公民权利组织
- 间接用户:
- 使用直接用户创建的衍生产品的用户,例如使用具有预期用途的软件的用户
- 使用许可证中描述的模型衍生产品的用户
- 其他受影响方:
- 大语言模型提及的个人和群体
- 接触大语言模型输出内容或基于其决策的个人和群体
- 其原创作品被纳入大语言模型的个人和群体
训练数据
每个数据集的详细信息请参阅各个数据卡片。
- 训练数据包括:
- 45种自然语言
- 12种编程语言
- 1.5TB预处理文本,转换为3500亿个唯一标记(详见分词器部分)
属性 | 详情 |
---|---|
模型类型 | 基于Transformer的语言模型 |
训练数据 | 45种自然语言和12种编程语言的1.5TB预处理文本,转换为3500亿个唯一标记 |
自然语言分布
以下表格展示了训练数据中尼日尔 - 刚果语系和印度语系语言的进一步分布情况:
尼日尔 - 刚果语系 | 百分比 | 印度语系 | 百分比 |
---|---|---|---|
奇通布卡语 | 0.00002 | 阿萨姆语 | 0.01 |
基库尤语 | 0.00004 | 奥里亚语 | 0.04 |
班巴拉语 | 0.00004 | 古吉拉特语 | 0.04 |
阿坎语 | 0.00007 | 马拉地语 | 0.05 |
聪加语 | 0.00007 | 旁遮普语 | 0.05 |
塞索托语 | 0.00007 | 卡纳达语 | 0.06 |
奇切瓦语 | 0.0001 | 尼泊尔语 | 0.07 |
茨瓦纳语 | 0.0002 | 泰卢固语 | 0.09 |
北索托语 | 0.0002 | 马拉雅拉姆语 | 0.10 |
丰语 | 0.0002 | 乌尔都语 | 0.10 |
基隆迪语 | 0.0003 | 泰米尔语 | 0.20 |
沃洛夫语 | 0.0004 | 孟加拉语 | 0.50 |
干达语 | 0.0004 | 印地语 | 0.70 |
奇绍纳语 | 0.001 | ||
祖鲁语 | 0.001 | ||
伊博语 | 0.001 | ||
科萨语 | 0.001 | ||
卢旺达语 | 0.003 | ||
约鲁巴语 | 0.006 | ||
斯瓦希里语 | 0.02 |
编程语言分布
文件扩展名 | 编程语言 | 文件数量 |
---|---|---|
java | Java | 5,407,724 |
php | PHP | 4,942,186 |
cpp | C++ | 2,503,930 |
py | Python | 2,435,072 |
js | JavaScript | 1,905,518 |
cs | C# | 1,577,347 |
rb | Ruby | 678,413 |
cc | C++ | 443,054 |
hpp | C++ | 391,048 |
lua | Lua | 352,317 |
go | GO | 227,763 |
ts | TypeScript | 195,254 |
C | C | 134,537 |
scala | Scala | 92,052 |
hh | C++ | 67,161 |
H | C++ | 55,899 |
tsx | TypeScript | 33,107 |
rs | Rust | 29,693 |
phpt | PHP | 9,702 |
c++ | C++ | 1,342 |
h++ | C++ | 791 |
php3 | PHP | 540 |
phps | PHP | 270 |
php5 | PHP | 166 |
php4 | PHP | 29 |
风险和局限性
模型可能存在以下问题:
- 过度代表某些观点,而对其他观点代表不足
- 包含刻板印象
- 包含个人信息
- 生成:
- 仇恨、辱骂或暴力语言
- 歧视性或偏见性语言
- 可能不适用于所有场景的内容,包括色情内容
- 出现错误,包括输出看似事实但不正确的信息
- 生成无关或重复的输出
评估
评估指标
指标 | 选择原因 |
---|---|
困惑度 | 量化模型训练过程中改进的标准指标 |
交叉熵损失 | 语言模型的标准目标 |
针对特定任务还有多种不同的指标。(评估协议完成后将提供更多评估指标。)
影响因素
- 语言,例如英语或约鲁巴语
- 领域,例如新闻专线或故事
- 人口统计学特征,例如性别或国籍
评估结果
训练时评估:截至2022年5月25日15:00(太平洋标准时间):
- 训练损失:2.0
- 验证损失:2.2
- 困惑度:8.9
(模型训练结束后将提供更多评估分数。)
使用建议
- 间接用户在处理由大语言模型生成的内容时应被告知。
- 用户应了解风险和局限性,并根据需要包含适当的年龄声明或屏蔽界面。
- 使用大语言模型预训练的模型应包含更新的模型卡片。
- 模型用户应提供受影响者反馈的机制,例如用于评论的电子邮件地址。
术语表和计算方法
- 损失:计算模型学习内容与数据显示内容(“真实情况”)之间的差异。损失越低越好。训练过程旨在最小化损失。
- 困惑度:基于模型对新数据概率的估计。困惑度越低越好。如果模型在预测下一个标记时100%正确,则困惑度为1。数学上通过熵计算。
- 高风险环境:例如欧盟提议的人工智能(AI)法案中确定的“高风险AI系统”和“不可接受风险AI系统”。
- 关键决策:例如美国提议的算法问责法案中定义的决策。
- 人权:包括世界人权宣言中定义的权利。
- 个人数据和个人信息:个人数据和信息在多个数据保护法规中定义,例如欧盟通用数据保护条例中的“个人数据”;南非共和国个人信息保护法中的“个人信息”;中华人民共和国个人信息保护法。
- 欺骗:故意误导个人相信虚假内容,例如在社交媒体上创建伪装成真人的僵尸机器人或聊天机器人,或在未让消费者知晓文本是机器生成的情况下生成文本文档。
更多信息
- 数据集创建:详细介绍数据集创建过程中设计选择的博客文章:https://bigscience.huggingface.co/blog/building-a-tb-scale-multilingual-dataset-for-language-modeling
- 技术规格:
- 总结架构、大小、形状和预训练时长选择的博客文章:https://bigscience.huggingface.co/blog/what-language-model-to-train-if-you-have-two-million-gpu-hours
- 架构/优化器的更多详细信息:https://github.com/bigscience-workshop/bigscience/tree/master/train/tr11-176B-ml
- 硬件/工程方面的博客文章:https://bigscience.huggingface.co/blog/which-hardware-to-train-a-176b-parameters-model
- 训练使用的分布式设置详情:https://github.com/bigscience-workshop/bigscience/tree/master/train/tr11-176B-ml
- 训练期间更新的Tensorboard:https://huggingface.co/bigscience/tr11-176B-ml-logs/tensorboard#scalars&tagFilter=loss
- 训练方法和负面结果的见解:https://github.com/bigscience-workshop/bigscience/blob/master/train/lessons-learned.md
- 工程准备过程中克服障碍的详情(不稳定性、训练吞吐量优化等众多技术技巧和问题):https://github.com/bigscience-workshop/bigscience/tree/master/train/tr11-176B-ml
📄 许可证
本模型使用RAIL许可证v1.0,详情请见链接。
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