模型简介
模型特点
模型能力
使用案例
许可证: 其他 语言:
- 丹麦语
- 瑞典语
- 英语
- 挪威语
- 冰岛语 数据集:
- laion/OIG
- databricks/databricks-dolly-15k
- OpenAssistant/oasst1 基础模型: AI-Sweden-Models/gpt-sw3-20b-instruct
模型描述
AI瑞典
基础模型
GPT-Sw3 126M | GPT-Sw3 356M | GPT-Sw3 1.3B
GPT-Sw3 6.7B | GPT-Sw3 6.7B v2 | GPT-Sw3 20B
GPT-Sw3 40B
指导模型
GPT-Sw3 126M 指导 | GPT-Sw3 356M 指导 | GPT-Sw3 1.3B 指导
GPT-Sw3 6.7B v2 指导 | GPT-Sw3 20B 指导
量化模型
GPT-Sw3 6.7B v2 指导 4-bit gptq | GPT-Sw3 20B 指导 4-bit gptq
GPT-SW3是由AI瑞典与RISE和WASP WARA媒体与语言项目合作开发的一系列大型仅解码器预训练变压器语言模型。GPT-SW3在包含320B个瑞典语、挪威语、丹麦语、冰岛语、英语和编程代码标记的数据集上进行了训练。该模型使用因果语言建模(CLM)目标,利用NeMo Megatron GPT实现进行预训练。
指导
模型通过聊天和原始文本格式在指令数据上进行了微调。
预期用途
GPT-SW3是一个自回归大型语言模型,能够用5种不同语言和4种编程语言生成连贯文本。GPT-SW3还可以通过将任务转换为文本生成任务来执行未经明确训练的文本任务。
限制
与其他大型语言模型一样,训练数据的多样性(或缺乏多样性)对我们的模型质量产生了下游影响,GPT-SW3在偏见和安全性等方面存在限制。GPT-SW3在生成多样性和幻觉方面也可能存在质量问题。通过发布修改后的RAIL许可证,我们还希望增加大型语言模型的交流、透明度和研究。该模型可能:过度代表某些观点而低估其他观点,包含刻板印象,生成仇恨、辱骂、暴力、歧视或偏见语言。模型可能出错,包括产生错误信息,可能生成无关或重复的输出,以及可能不适合所有环境的内容,包括性内容。
使用方法
由于这是一个私有存储库,要从Python访问模型,您必须使用访问令牌登录。这可以通过huggingface-cli login
完成,更多信息请参阅HuggingFace快速入门指南。
以下代码片段加载我们的分词器和模型,并在可用时使用GPU。
import torch
from transformers import pipeline, AutoTokenizer, AutoModelForCausalLM
# 初始化变量
model_name = "AI-Sweden-Models/gpt-sw3-20b-instruct"
device = "cuda:0" if torch.cuda.is_available() else "cpu"
prompt = "Träd är fina för att"
# 初始化分词器和模型
tokenizer = AutoTokenizer.from_pretrained(model_name)
model = AutoModelForCausalLM.from_pretrained(model_name)
model.eval()
model.to(device)
使用generate
方法生成文本如下:
input_ids = tokenizer(prompt, return_tensors="pt")["input_ids"].to(device)
generated_token_ids = model.generate(
inputs=input_ids,
max_new_tokens=100,
do_sample=True,
temperature=0.6,
top_p=1,
)[0]
generated_text = tokenizer.decode(generated_token_ids)
数据预处理期间使用的聊天格式如下:
<|endoftext|><s>
用户:
Jag tycker träd är fina
<s>
机器人:
Kul att du tycker det!
<s>
...
生成文本的过程与之前相同:
prompt = """
<|endoftext|><s>
用户:
Varför är träd fina?
<s>
机器人:
""".strip()
input_ids = tokenizer(prompt, return_tensors="pt")["input_ids"].to(device)
generated_token_ids = model.generate(
inputs=input_ids,
max_new_tokens=100,
do_sample=True,
temperature=0.6,
top_p=1,
)[0]
generated_text = tokenizer.decode(generated_token_ids)
使用generate
方法生成文本如下:
input_ids = tokenizer(prompt, return_tensors="pt")["input_ids"].to(device)
generated_token_ids = model.generate(
inputs=input_ids,
max_new_tokens=100,
do_sample=True,
temperature=0.6,
top_p=1,
)[0]
HuggingFace管道是`generate`方法的一个便捷替代方案,它为您处理大部分工作:
```python
generator = pipeline('text-generation', tokenizer=tokenizer, model=model, device=device)
generated = generator(prompt, max_new_tokens=100, do_sample=True, temperature=0.6, top_p=1)[0]["generated_text"]
合规性
GPT-SW3的发布包括模型权重、配置文件、分词器文件和词汇文件。这些文件均不包含任何个人可识别信息(PII)或任何受版权保护的材料。
GPT-SW3模型卡
遵循Mitchell等人(2018)的建议,我们为GPT-SW3提供了模型卡。
模型详情
- 开发模型的个人或组织:GPT-SW3由AI瑞典与RISE和WASP WARA媒体与语言项目合作开发。
- 模型日期:GPT-SW3发布日期2022-12-20
- 模型版本:这是GPT-SW3的第二代。
- 模型类型:GPT-SW3是一个大型仅解码器变压器语言模型。
- 关于训练算法、参数、公平性约束或其他应用方法和特性的信息:GPT-SW3使用NeMo Megatron GPT实现进行训练。
- 更多信息的论文或其他资源:无。
- 许可证:LICENSE。
- 发送有关模型的问题或评论的地方:nlu@ai.se
预期用途
- 主要预期用途:我们预发布GPT-SW3用于研究和评估大型语言模型在北欧语言中的能力。这是LLM知识构建过程中的重要一步,验证模型并收集关于哪些工作良好和哪些不行的反馈。
- 主要预期用户:北欧NLP生态系统中的组织和个人,他们可以贡献模型的验证和测试,并向社区提供反馈。
- 超出范围的用例:参见修改后的RAIL许可证。
数据、限制和建议
- 训练数据的选择:GPT-SW3的训练数据基于广度和可用性的组合进行选择。有关用于训练我们模型的数据的更多详细信息,请参阅我们的数据表。
- 评估数据的选择:无
- 限制:与其他大型语言模型一样,训练数据的多样性(或缺乏多样性)对我们的模型质量产生了下游影响,GPT-SW3在偏见和安全性等方面存在限制。GPT-SW3在生成多样性和幻觉方面也可能存在质量问题。总的来说,GPT-SW3无法避免困扰现代大型语言模型的众多问题。通过发布修改后的RAIL许可证,我们还希望增加大型语言模型的交流、透明度和研究。该模型可能:过度代表某些观点而低估其他观点。包含刻板印象。生成:仇恨、辱骂或暴力语言。歧视或偏见语言。可能不适合所有环境的内容,包括性内容。出错,包括产生错误信息。生成无关或重复的输出。
- 未来工作的建议:间接用户应被告知他们正在处理的内容是由LLM创建的。用户应了解风险和限制,并根据需要包括适当的年龄免责声明或阻止界面。使用LLM预训练的模型应包括更新的模型卡。模型用户应提供机制,让受影响的人提供反馈,例如评论的电子邮件地址。
- 我们希望GPT-SW3的发布以及有关我们模型训练过程的信息将增加关于大型语言模型的具体研究和自然语言处理及深度学习的开放科学。
GPT-SW3数据表
- 我们遵循Gebru等人(2021)的建议,并为用于训练GPT-SW3的数据集提供了数据表。
动机
- 数据集创建的目的是什么?是否有特定的任务?是否有需要填补的特定空白?请提供描述。大型语言模型(LLM)的预训练,如GPT-3(T. B. Brown等人,2020)、Gopher(J. W. Rae等人,2022)、BLOOM(T. L. Scao等人,2022)等,需要100s甚至1000s GB的文本数据,最近的研究(Chinchilla:J. Hoffmann等人,2022)表明训练数据的规模比以前想象的更重要。因此,为了训练瑞典语LLM,我们需要一个大规模的瑞典语高质量数据集。由于在此倡议之前不存在这样的数据集,我们收集了北欧和英语语言的数据。
- 谁创建了数据集(例如,哪个团队、研究小组)以及代表哪个实体(例如,公司、机构、组织)?AI瑞典的战略倡议自然语言理解建立了一个新的研究环境,其中合作是关键。创建数据集的核心团队是AI瑞典的NLU研究小组。该小组由来自AI瑞典(Lindholmen科学公园AB)和RISE的研究人员和开发人员组成。
- 谁资助了数据集的创建?如果有相关资助,请提供资助者和资助名称及编号。瑞典创新署(Vinnova)通过多个不同的资助资助了这项工作,包括2019-02996和2022-00949。
- 其他评论?无。
组成
-
数据集中的实例代表什么(例如,文档、照片、人、国家)?是否有多种类型的实例(例如,电影、用户和评分;人和他们之间的互动;节点和边)?请提供描述。实例是按语言和文档类型分类的文本文档。数据集是一个经过过滤和去重的集合,包括以下来源:
-
书籍
- Litteraturbanken (https://litteraturbanken.se/)
- The Pile
-
文章
- Diva (https://www.diva-portal.org/)
- The Pile: PubMed
- The Pile: ArXiv
-
代码
- Code Parrot: Github代码 (https://huggingface.co/datasets/codeparrot/github-code)
-
对话
- Familjeliv (https://www.familjeliv.se/)
- Flashback (https://flashback.se/)
- 通过Parlai收集的数据集(完整列表见数据论文附录)(https://github.com/facebookresearch/ParlAI)
- Pushshift.io Reddit数据集,由Baumgartner等人(2020)开发,Roller等人(2021)处理
-
数学
- 使用DeepMind代码生成的英语数学数据集(D. Saxton等人,2019)
- 瑞典语数学数据集,使用手动翻译的模板生成
-
其他
- 摘要数据 (https://www.ida.liu.se/~arnjo82/papers/clarin-21-julius.pdf)
- OPUS,开放平行语料库 (https://opus.nlpl.eu/)
- 电影剧本 (https://github.com/Aveek-Saha/Movie-Script-Database)
- 自然指令 (https://github.com/allenai/natural-instructions)
- P3(公共提示池),(https://huggingface.co/datasets/bigscience/P3)
- 挪威语巨量语料库 (https://huggingface.co/datasets/NbAiLab/NCC)
- 丹麦语Gigaword (https://gigaword.dk/)
- 冰岛语Gigaword (https://clarin.is/en/resources/gigaword/)
- The Pile: Stack Exchange
-
网络Common Crawl
- 来自LES项目(社会语言探索,https://les.gu.se)的网络数据。
- 多语言C4(MC4),由AllenAI从C4(C. Raffel等人,2019)准备
- 开放超大规模爬取聚合语料库(OSCAR)(P. O. Suarez,2019)
- The Pile: Open Web Text
-
网络来源
- 各种公共瑞典网站抓取(见数据论文附录)
- Familjeliv文章
- 来自JobTech/Arbetsförmedlingen的公共瑞典招聘广告
- 维基百科
- 官方维基百科转储
-
指令数据:
- dolly
- Open Assistant
- OIG
- Fass:瑞典药品信息,已转换为问答格式。
-
总共有多少实例(每种类型,如果适用)?训练数据由1.1TB UTF-8编码文本组成,包含660M个文档,总计320B个标记。
-
数据集是否包含所有可能的实例,还是来自更大集合的样本(不一定是随机的)?如果数据集是样本,那么更大的集合是什么?样本是否代表更大的集合(例如,地理覆盖范围)?如果是,请描述如何验证/验证这种代表性。如果不是,请描述为什么不(例如,为了覆盖更多样化的实例范围,因为实例被保留或不可用)。我们的数据集中来自多语言Common Crawl数据集(MC4,Oscar)的子集,按语言过滤,仅包括瑞典语、挪威语、丹麦语和冰岛语。从The Pile中,我们仅包括通常具有最高文本质量的部分,或用我们其他缺乏的来源(例如书籍)补充其余数据集。数据集的其余部分是从上述来源收集的。
-
每个实例由什么数据组成?“原始”数据(例如,未处理的文本或图像)或特征?无论哪种情况,请提供描述。每个实例由原始文本数据组成。
-
每个实例是否有标签或目标?如果有,请提供描述。无。
-
是否有任何信息从单个实例中缺失?如果有,请提供描述,解释为什么这些信息缺失(例如,因为它不可用)。这不包括故意删除的信息,但可能包括,例如,编辑的文本。无。
-
是否明确了个体实例之间的关系(例如,用户的电影评分,社交网络链接)?如果是,请描述这些关系是如何明确的。个体实例之间没有明确的关系。
-
是否有推荐的数据分割(例如,训练、开发/验证、测试)?如果有,请提供这些分割的描述,解释其背后的理由。此数据集没有明确推荐的分割。在预训练模型时,训练、开发、测试的随机分割分别设置为99.99%、0.08%、0.02%,并按每个子集的权重和大小进行比例采样。每个子集的权重是事先手动决定的。这些决定考虑了数据的价值、来源和语言,以形成一个有代表性和平衡的预训练语料库。
-
数据集中是否有任何错误、噪声源或冗余?如果有,请提供描述。数据集是许多来源的集合,其中一些自然包含一些重叠。尽管我们进行了去重,但仍可能存在一些重叠。此外,可能还有一些来自Common Crawl数据集的噪声,我们的数据过滤过程可能遗漏了这些噪声。除此之外,我们不知道任何错误、噪声源或冗余。
-
数据集是自包含的,还是链接到或依赖于外部资源(例如,网站、推文、其他数据集)?数据集是自包含的。
-
数据集是否包含如果直接查看可能会冒犯、侮辱、威胁或可能引起焦虑的数据?如果是,请描述为什么。数据集包含公共Common Crawl、Reddit、Familjeliv和Flashback的子集。这些可能包含如果直接查看可能会冒犯、侮辱、威胁或可能引起焦虑的句子。
-
数据集是否与人相关?如果不相关,您可以跳过本节中的其余问题。此数据的某些文档与人相关,例如新闻文章、维基百科描述等。
-
数据集是否识别任何子群体(例如,按年龄、性别)?如果是,请描述如何识别这些子群体,并提供它们在数据集中的各自分布描述。不,数据集没有明确包括子群体识别。
-
其他评论?无。
收集过程
-
如何获取与每个实例相关的数据?数据是直接可观察的(例如,原始文本、电影评分),由受试者报告的(例如,调查响应),还是从其他数据间接推断/派生的(例如,词性标签、基于模型的年龄或语言猜测)?如果数据由受试者报告或从其他数据间接推断/派生,数据是否经过验证/验证?如果是,请描述如何。不适用。数据集是公开可用数据集和来源的联合。
-
使用什么机制或程序收集数据(例如,硬件设备或传感器、手动人工管理、软件程序、软件API)?这些机制或程序如何验证?数据是从互联网下载的。
-
如果数据集是来自更大集合的样本,采样策略是什么(例如,确定性、具有特定采样概率的概率)?有关如何选择数据集的部分,请参阅前面的答案。
-
谁参与了数据收集过程(例如,学生、众包工作者、承包商),以及他们如何获得补偿(例如,众包工作者支付了多少)?此数据由机器挖掘、过滤和采样。
-
数据收集的时间范围是什么?此时间范围是否与实例相关数据的创建时间范围匹配(例如,最近抓取的旧新闻文章)?如果不匹配,请描述与实例相关的数据的创建时间范围。数据集在2021年6月至2022年6月期间收集。收集来源的创建时间各不相同,例如Common Crawl数据已连续收集了12年。
-
数据集是否与人相关?如果不相关,您可以跳过本节中的其余问题。是的。文本由人产生。任何可能存在于公开可用数据源中并因此在创建的数据集中的个人信息对数据集的收集和使用不感兴趣。
-
是否对数据集及其使用对数据主体的潜在影响进行了分析(例如,数据保护影响分析)?如果是,请提供此分析的描述,包括结果,以及任何支持文档的链接或其他访问点。是的。
-
其他评论?无。
-
预处理/清理/标记
-
是否对数据进行了任何预处理/清理/标记(例如,离散化或分桶、分词、词性标记、SIFT特征提取、实例删除、缺失值处理)?如果是,请提供描述。如果不是,您可以跳过本节中的其余问题。数据集使用标准程序在文档级别进行了过滤和重新格式化,灵感来自The BigScience ROOTS Corpus(H. Laurençon等人,2022)和Gopher(J. W. Rae等人,2022)的工作。这样做是为了在整个数据集中实现一致的文本格式,并删除不符合我们文本质量要求的文档(例如重复性)。此外,数据集进行了去重,以补救收集子集之间的重叠,使用MinHash算法,类似于GPT-3和The Pile中使用的方法,并在“Deduplicating Training Data Makes Language Models Better”(K. Lee等人,2021)中更详细地描述。
指令数据:上述处理未应用于指令数据。 指令数据被转换为聊天轮次格式,并使用轮次结束标记进行格式化,以及展开为原始文本形式。 Open Assistant数据还使用GPT-SW3自动翻译为瑞典语、丹麦语、挪威语和冰岛语。
-
“原始”数据是否除了预处理/清理/标记的数据外还保存(例如,以支持未预期的未来用途)?如果是,请提供“原始”数据的链接或其他访问点。“原始”组件数据集在其各自的位置公开可用。
-
其他评论?无。
用途
- 数据集是否已用于任何任务?如果是,请提供描述。数据集用于预训练GPT-SW3模型。
- 是否有存储库链接到使用数据集的任何或所有论文或系统?如果是,请提供链接或其他访问点。不适用。
- 数据集可以用于哪些(其他)任务?数据可用于预训练语言模型,这是许多当前和未来语言任务的基础。
- 数据集的组成或收集和预处理/清理/标记的方式是否可能影响未来用途?例如,是否有任何未来用户需要了解以避免可能导致对个人或群体的不公平待遇(例如,刻板印象、服务质量问题)或其他不良危害(例如,财务危害、法律风险)?如果是,请提供描述。是否有任何未来用户可以采取的措施来减轻这些不良危害?数据集可能相当代表瑞典互联网话语的一般情况,以及瑞典公共部门,但我们知道这些数据不一定反映整个瑞典人口。
- 是否有数据集不应使用的任务?如果是,请提供描述。目前我们不知道任何。
- 其他评论?无。
分发
- 数据集是否会分发给创建数据集所代表的实体(例如,公司、机构、组织)之外的第三方?如果是,请提供描述。不。
- 数据集将如何分发(例如,网站上的tarball、API、GitHub)?数据集是否有数字对象标识符(DOI)?不适用。
- 数据集何时分发?不适用。
- 数据集是否在版权或其他知识产权(IP)许可下分发,和/或根据适用的使用条款(ToU)?如果是,请描述此许可和/或ToU,并提供相关许可条款或ToU的链接或其他访问点,或复制这些条款,以及任何相关限制的费用。不适用。
- 是否有任何出口管制或其他监管限制适用于数据集或单个实例?如果是,请描述这些限制,并提供支持文档的链接或其他访问点,或复制这些文档。不适用。
- 其他评论?无。
维护
- 谁支持/托管/维护数据集?Lindholmen科学公园AB的AI瑞典。
- 如何联系数据集的所有者/管理者/经理(例如,电子邮件地址)?nlu@ai.se
- 是否有勘误表?如果是,请提供链接或其他访问点。不适用。
- 数据集是否会更新(例如,纠正标记错误、添加新实例、删除实例)?如果是,请描述更新频率、由谁更新以及如何向用户传达更新(例如,邮件列表、GitHub)?目前没有更新数据集的计划。
- 如果数据集与人相关,是否有适用于与实例相关的数据保留的限制(例如,相关个人是否被告知其数据将在固定时间段后删除)?如果是,请描述这些限制并解释如何执行。阅读AI瑞典NLU倡议的隐私政策此处。
- 旧版本的数据集是否会继续支持/托管/维护?如果是,请描述如何。如果不是,请描述如何向用户传达其过时。不适用。
- 如果其他人希望扩展/增强/构建/贡献数据集,是否有机制让他们这样做?如果是,请提供描述。这些贡献是否会验证/验证?如果是,请描述如何。如果不是,为什么不是?是否有沟通/分发这些贡献给其他用户的过程?如果是,请提供描述。目前没有。
- 其他评论?无。
开放LLM排行榜评估结果
详细结果可以在此处找到此处
指标 | 值 |
---|---|
平均 | 38.19 |
ARC (25-shot) | 43.17 |
HellaSwag (10-shot) | 71.09 |
MMLU (5-shot) | 31.32 |
TruthfulQA (0-shot) | 41.02 |
Winogrande (5-shot) | 66.77 |
GSM8K (5-shot) | 8.79 |
DROP (3-shot) | 5.15 |


