模型简介
模型特点
模型能力
使用案例
许可证: 其他 数据集:
- laion/OIG
- databricks/databricks-dolly-15k
- OpenAssistant/oasst1 语言:
- 丹麦语
- 瑞典语
- 挪威语
- 英语
- 冰岛语 基础模型: AI-Sweden-Models/gpt-sw3-6.7b-v2-instruct
模型描述
AI Sweden
基础模型
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 Sweden与RISE及WASP WARA for Media and Language合作开发的一系列大型仅解码器预训练变压器语言模型。GPT-SW3在包含3200亿个瑞典语、挪威语、丹麦语、冰岛语、英语及编程代码标记的数据集上进行了训练。该模型使用NeMo Megatron GPT实现,通过因果语言建模(CLM)目标进行预训练。
指导
模型通过聊天和原始文本格式在指令数据上进行了微调。
预期用途
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-6.7b-v2-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>
User:
Jag tycker träd är fina
<s>
Bot:
Kul att du tycker det!
<s>
...
生成文本的过程与之前相同:
prompt = """
<|endoftext|><s>
User:
Varför är träd fina?
<s>
Bot:
""".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 Sweden与RISE及WASP WARA for Media and Language合作开发。
- 模型日期: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)等,需要数百甚至数千GB的文本数据,最近的研究(Chinchilla:J. Hoffmann等人,2022)表明训练数据的规模比以前想象的更为重要。因此,为了训练瑞典语LLM,我们需要一个大规模高质量的瑞典语数据集。由于在此倡议之前不存在这样的数据集,我们收集了北欧和英语语言的数据。
- 谁创建了数据集(例如,哪个团队、研究小组)以及代表哪个实体(例如,公司、机构、组织)?AI Sweden的战略倡议自然语言理解建立了一个新的研究环境,其中合作是关键。创建数据集的核心团队是AI Sweden的NLU研究小组。该小组由来自AI Sweden(Lindholmen Science Park 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编码的文本,包含6.6亿个文档,总计3200亿个标记。
-
数据集是否包含所有可能的实例,还是来自更大集合的样本(不一定是随机的)?如果数据集是样本,那么更大的集合是什么?样本是否代表更大的集合(例如,地理覆盖范围)?如果是,请描述如何验证/验证这种代表性。如果不代表更大的集合,请描述为什么不代表(例如,为了覆盖更多样化的实例范围,因为实例被保留或不可用)。我们的数据集中来自多语言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 Science Park AB的AI Sweden。
- 如何联系数据集的所有者/策展人/管理者(例如,电子邮件地址)?nlu@ai.se
- 是否有勘误表?如果有,请提供链接或其他访问点。不适用。
- 数据集是否会更新(例如,纠正标记错误、添加新实例、删除实例)?如果是,请描述更新频率、由谁更新以及如何向用户传达更新(例如,邮件列表、GitHub)?目前没有更新数据集的计划。
- 如果数据集与人相关,是否有适用于与实例相关的数据保留的限制(例如,相关个人是否被告知其数据将在固定时间段后保留并删除)?如果是,请描述这些限制并解释如何执行。阅读AI Sweden NLU倡议的隐私政策此处。
- 旧版本的数据集是否会继续支持/托管/维护?如果是,请描述如何支持。如果不是,请描述如何向用户传达其过时。不适用。
- 如果其他人希望扩展/增强/构建/贡献数据集,是否有机制让他们这样做?如果是,请提供描述。这些贡献是否会验证/验证?如果是,请描述如何验证。如果不是,为什么不是?是否有沟通/分发这些贡献给其他用户的过程?如果是,请提供描述。目前没有。
- 其他评论?无。


