模型简介
模型特点
模型能力
使用案例
🚀 GPT - SW3模型介绍
GPT - SW3是由AI Sweden与RISE以及WASP WARA for Media and Language合作开发的一系列仅解码器的大型预训练Transformer语言模型。该模型在包含瑞典语、挪威语、丹麦语、冰岛语、英语和编程代码的3200亿个标记的数据集上进行训练,能够在5种不同语言和4种编程语言中生成连贯的文本。
🚀 快速开始
由于这是一个私有存储库,若要从Python访问该模型,你必须使用访问令牌登录。可以使用huggingface-cli login
命令完成登录,更多信息请参阅HuggingFace快速入门指南。
以下代码片段用于加载分词器和模型,并在可用时使用GPU:
import torch
from transformers import pipeline, AutoTokenizer, AutoModelForCausalLM
# Initialize Variables
model_name = "AI-Sweden-Models/gpt-sw3-6.7b-v2"
device = "cuda:0" if torch.cuda.is_available() else "cpu"
prompt = "Träd är fina för att"
# Initialize Tokenizer & Model
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)
generate
方法的一个便捷替代方案是HuggingFace的pipeline,它可以为你处理大部分工作:
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"]
✨ 主要特性
- 多语言支持:能够在瑞典语、挪威语、丹麦语、冰岛语和英语这5种不同语言中生成连贯的文本。
- 代码处理能力:在编程代码数据上进行训练,可用于相关编程任务。
- 指令执行能力:可以被指示执行未明确训练过的文本任务,将其转化为文本生成任务。
📦 安装指南
无具体安装命令,跳过该章节。
💻 使用示例
基础用法
import torch
from transformers import pipeline, AutoTokenizer, AutoModelForCausalLM
# Initialize Variables
model_name = "AI-Sweden-Models/gpt-sw3-6.7b-v2"
device = "cuda:0" if torch.cuda.is_available() else "cpu"
prompt = "Träd är fina för att"
# Initialize Tokenizer & Model
tokenizer = AutoTokenizer.from_pretrained(model_name)
model = AutoModelForCausalLM.from_pretrained(model_name)
model.eval()
model.to(device)
高级用法
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)
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是一系列仅解码器的大型预训练Transformer语言模型,由AI Sweden与RISE以及WASP WARA for Media and Language合作开发。该模型在包含3200亿个标记的瑞典语、挪威语、丹麦语、冰岛语、英语和编程代码的数据集上进行预训练,使用NeMo Megatron GPT实现的因果语言建模(CLM)目标。
V2版本:67亿参数模型的这个版本与其他模型大小使用相同的分词器进行训练,但数据分布不同(更多的英语和代码),且训练时间更长。
预期用途
GPT - SW3是一个自回归大语言模型,能够在5种不同语言和4种编程语言中生成连贯的文本。它还可以被指示执行未明确训练过的文本任务,通过将其转化为文本生成任务来实现。
局限性
与其他大型语言模型一样,由于训练数据的多样性(或缺乏多样性)会对模型质量产生下游影响,GPT - SW3在偏差和安全性等方面存在局限性。该模型在生成多样性和幻觉方面也可能存在质量问题。通过发布修改后的RAIL许可证,我们也希望加强对大语言模型的沟通、透明度和研究。模型可能存在以下问题:过度代表某些观点而忽视其他观点;包含刻板印象;生成仇恨、辱骂、暴力、歧视或偏见性的语言;产生错误,包括将不正确的信息当作事实输出;生成无关或重复的输出;生成可能不适合所有场景的内容,包括色情内容。
合规性
GPT - SW3的发布包括模型权重、配置文件、分词器文件和词汇文件。这些文件均不包含任何个人身份信息(PII)或任何受版权保护的材料。
GPT - SW3模型卡片
我们按照Mitchell等人(2018)的建议,为GPT - SW3提供了模型卡片。
模型详情
属性 | 详情 |
---|---|
开发人员或组织 | GPT - SW3由AI Sweden与RISE以及WASP WARA for Media and Language合作开发。 |
模型发布日期 | 2022年12月20日 |
模型版本 | 这是GPT - SW3的第二代版本。 |
模型类型 | GPT - SW3是一个仅解码器的大型Transformer语言模型。 |
训练算法、参数、公平性约束或其他应用方法及特征信息 | GPT - SW3使用NeMo Megatron GPT实现进行训练。 |
更多信息的论文或其他资源 | 无。 |
许可证 | LICENSE |
发送关于模型的问题或评论的地址 | nlu@ai.se |
预期用途
- 主要预期用途:我们预发布GPT - SW3用于对北欧语言的大语言模型能力进行研究和评估。这是大语言模型知识构建过程中的重要一步,有助于验证模型并收集关于模型优缺点的反馈。
- 主要预期用户:北欧自然语言处理生态系统中的组织和个人,他们可以为模型的验证和测试做出贡献,并向社区提供反馈。
- 超出范围的用例:请参阅修改后的RAIL许可证。
数据、局限性和建议
- 训练数据选择:GPT - SW3的训练数据基于广度和可用性的组合进行选择。有关用于训练我们模型的数据的更多详细信息,请参阅我们的数据表。
- 评估数据选择:无。
- 局限性:与其他大型语言模型一样,由于训练数据的多样性(或缺乏多样性)会对模型质量产生下游影响,GPT - SW3在偏差和安全性等方面存在局限性。该模型在生成多样性和幻觉方面也可能存在质量问题。一般来说,GPT - SW3无法避免困扰现代大语言模型的诸多问题。通过发布修改后的RAIL许可证,我们也希望加强对大语言模型的沟通、透明度和研究。模型可能存在以下问题:过度代表某些观点而忽视其他观点;包含刻板印象;生成仇恨、辱骂、暴力、歧视或偏见性的语言;产生错误,包括将不正确的信息当作事实输出;生成无关或重复的输出;生成可能不适合所有场景的内容,包括色情内容。
- 未来工作建议:间接用户在处理由大语言模型生成的内容时应被告知。用户应了解风险和局限性,并在必要时包含适当的年龄声明或屏蔽界面。使用大语言模型进行预训练的模型应包含更新后的模型卡片。模型用户应提供机制,让受影响的人能够提供反馈,例如提供一个用于接收评论的电子邮件地址。
- 我们希望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)表明,训练数据的规模比以前想象的更为重要。因此,为了训练瑞典语大语言模型,我们需要一个大规模、高质量的瑞典语数据集。由于在此之前不存在这样的数据集,我们收集了北欧语言和英语的数据。
- 数据集创建者: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 code(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)、丹麦千兆词料库(https://gigaword.dk/)、冰岛千兆词料库(https://clarin.is/en/resources/gigaword/)、The Pile: Stack Exchange
- 网络通用爬虫:来自LES项目(Linguistic Explorations of Societies,https://les.gu.se)的网络数据、由AllenAI从C4(C. Raffel等人,2019)准备的多语言C4(MC4)、开放超大型爬取聚合语料库(OSCAR)(P. O. Suarez,2019)、The Pile: Open Web Text
- 网络来源:各种瑞典公共网站爬取数据(见数据论文附录)、Familjeliv文章、来自JobTech/Arbetsförmedlingen的瑞典公共招聘广告、维基百科、官方维基百科转储
- 实例总数:训练数据由1.1TB UTF - 8编码的文本组成,包含6.6亿个文档,总共有3200亿个标记。
- 数据集是否包含所有可能实例:我们数据集来自多语言通用爬虫数据集(MC4,Oscar)的子集按语言进行过滤,仅包括瑞典语、挪威语、丹麦语和冰岛语。从The Pile中,我们仅选择了通常文本质量最高或能补充我们数据集其他来源不足的部分(如书籍)。数据集的其余部分从上述其他来源收集。
- 每个实例的数据组成:每个实例由原始文本数据组成。
- 是否有标签或目标:否。
- 实例是否有信息缺失:否。
- 实例之间的关系是否明确:否。
- 是否有推荐的数据分割:该数据集没有明确推荐的数据分割。在预训练模型时,训练集、开发集和测试集的随机分割比例分别设置为99.99%、0.08%和0.02%,并按每个子集的权重和大小成比例采样。每个子集的权重事先手动确定。这些决策考虑了数据的价值、来源和语言,以形成具有代表性和平衡性的预训练语料库。
- 数据集中是否有错误、噪声或冗余:数据集是多个来源的集合,其中一些自然存在一些重叠。尽管我们进行了去重处理,但仍可能存在一些重叠。此外,通用爬虫数据集中可能存在一些噪声,我们的数据过滤过程可能未完全去除。除了这些,我们未发现其他错误、噪声或冗余。
- 数据集是否自包含:是。
- 数据集是否包含可能冒犯性的内容:数据集包含公共通用爬虫、Reddit、Familjeliv和Flashback的子集。这些可能包含直接查看时可能冒犯、侮辱、威胁或引起焦虑的句子。
- 数据集是否与人物相关:数据集中的一些文档与人物相关,如新闻文章、维基百科描述等。
- 数据集是否识别亚群体:否。
收集过程
- 数据获取方式:数据集是公共可用数据集和来源的集合。
- 数据收集机制:数据从互联网下载。
- 采样策略:请参阅前面关于数据集部分选择的回答。
- 数据收集人员及报酬:数据由机器挖掘、过滤和采样。
- 数据收集时间范围:数据集于2021年6月至2022年6月期间收集。收集来源的创建时间各不相同,例如通用爬虫数据已经连续收集了12年。
- 数据集是否与人物相关:是。文本由人产生。公开可用数据源中可能存在的任何个人信息,对于数据集的收集和使用并无影响。
- 是否进行了数据保护影响分析:是。
预处理/清理/标记
- 数据预处理情况:数据集使用标准程序在文档级别进行过滤和重新格式化,灵感来自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)中进行了更详细的描述。
- 原始数据是否保存:“原始”组件数据集是公开可用的。
📄 许可证



