模型简介
模型特点
模型能力
使用案例
🚀 GPT-SW3模型介绍
GPT-SW3是由AI Sweden联合RISE和WASP WARA for Media and Language开发的一系列仅解码器的大型预训练Transformer语言模型。该模型能以瑞典语、挪威语、丹麦语、冰岛语、英语和编程语言生成连贯文本,还可执行未明确训练过的文本任务。
🚀 快速开始
由于这是一个私有仓库,若要从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-instruct"
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)
数据预处理期间使用的聊天格式如下:
<|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的pipeline
方法是generate
方法的便捷替代方案,它会为你处理大部分工作:
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种不同语言和4种编程语言中生成连贯文本。
- 指令执行能力:可以被指示执行未明确训练过的文本任务,将其转化为文本生成任务。
📚 详细文档
模型描述
GPT-SW3是一系列仅解码器的大型预训练Transformer语言模型,由AI Sweden联合RISE和WASP WARA for Media and Language开发。该模型在包含瑞典语、挪威语、丹麦语、冰岛语、英语和编程语言代码的3200亿个标记的数据集上进行了预训练,使用NeMo Megatron GPT实现的因果语言建模(CLM)目标进行预训练。
预期用途
GPT-SW3是一个自回归大型语言模型,能够在5种不同语言和4种编程语言中生成连贯文本。它还可以被指示执行未明确训练过的文本任务,将其转化为文本生成任务。
局限性
与其他大型语言模型一样,由于训练数据的多样性(或缺乏多样性)会对模型质量产生下游影响,GPT-SW3在偏差和安全性等方面存在局限性。它在生成多样性和幻觉方面也可能存在质量问题。通过发布修改后的RAIL许可证,我们希望增加对大型语言模型的交流、透明度和研究。该模型可能会:过度代表某些观点而忽视其他观点,包含刻板印象,生成仇恨、辱骂、暴力、歧视或偏见性语言。模型可能会出错,包括产生看似事实的错误信息,生成无关或重复的输出,以及可能不适合所有场景的内容,包括色情内容。
合规性
GPT-SW3的发布包括模型权重、配置文件、分词器文件和词汇文件。这些文件均不包含任何个人身份信息(PII)或受版权保护的材料。
模型详情
属性 | 详情 |
---|---|
开发人员或组织 | 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的发布以及我们模型训练过程的相关信息能够增加对大型语言模型以及自然语言处理和深度学习的开放科学研究。
数据集动机
- 为了预训练大型语言模型(LLM),如GPT-3、Gopher、BLOOM等,需要数百甚至数千GB的文本数据。最近的研究表明,训练数据的规模比以前想象的更为重要。因此,为了训练瑞典语的大型语言模型,我们需要一个大规模、高质量的瑞典语数据集。由于在此之前没有这样的数据集,我们收集了北欧语言和英语的数据。
- 由AI Sweden的战略倡议自然语言理解团队创建,核心团队是AI Sweden的NLU研究小组,成员包括来自AI Sweden(Lindholmen Science Park AB)和RISE的研究人员和开发人员。
- 由瑞典创新局(Vinnova)通过多个不同的资助项目提供资金,包括2019 - 02996和2022 - 00949。
数据集组成
实例是按语言和文档类型分类的文本文档,数据集是经过过滤和去重的集合,来源包括:
- 书籍:Litteraturbanken、The Pile
- 文章:Diva、The Pile: PubMed、The Pile: ArXiv
- 代码:Code Parrot: Github code
- 对话:Familjeliv、Flashback、通过Parlai收集的数据集、Pushshift.io Reddit数据集
- 数学:英语数学数据集(由DeepMind代码生成)、瑞典语数学数据集(手动翻译模板生成)
- 其他:摘要数据、OPUS、电影脚本、自然指令、P3、挪威大型语料库、丹麦语大型语料库、冰岛语大型语料库、The Pile: Stack Exchange
- 网络通用爬虫:LES项目的网络数据、多语言C4、OSCAR、The Pile: Open Web Text
- 网络来源:各种瑞典公共网站抓取数据、Familjeliv文章、瑞典公共招聘广告、维基百科、官方维基百科转储
- 指令数据:dolly、Open Assistant、OIG、Fass(瑞典药品信息,转换为问答格式)
训练数据由1.1TB UTF - 8编码的文本组成,包含6.6亿个文档,总计3200亿个标记。
数据收集过程
- 数据是公开可用数据集和来源的集合,通过从互联网下载获得。
- 数据集在2021年6月至2022年6月期间收集,收集来源的创建时间各不相同,例如通用爬虫数据已持续收集了12年。
- 对数据进行了过滤、重新格式化和去重处理,以达到一致的文本格式并去除不符合文本质量要求的文档。指令数据处理方式不同,转换为聊天轮次格式并进行相应格式化,Open Assistant数据还使用GPT - SW3自动翻译成瑞典语、丹麦语、挪威语和冰岛语。
数据集用途
- 该数据集用于预训练GPT - SW3模型。
- 可用于预训练语言模型,是许多当前和未来语言任务的基础。
- 数据集可能代表瑞典互联网话语和公共部门,但不一定反映整个瑞典人口。未来用户应注意避免可能导致不公平对待个人或群体或其他不良后果的使用方式。
数据集分发
不会分发给第三方,未提及分发方式、时间、许可证、出口控制等相关信息。
数据集维护
由AI Sweden at Lindholmen Science Park AB支持、托管和维护,可通过nlu@ai.se联系。目前没有更新数据集的计划,有关数据保留限制请阅读AI Sweden的NLU倡议隐私政策。目前不支持他人扩展、增强或贡献数据集。
🔧 技术细节
GPT-SW3使用NeMo Megatron GPT实现进行预训练,使用因果语言建模(CLM)目标。在训练过程中,对数据集进行了过滤、格式化和去重处理,以提高模型的性能和质量。
📄 许可证
该模型使用修改后的RAIL许可证。
⚠️ 重要提示
该模型可能存在偏差、生成仇恨或不适当内容等问题,使用时需谨慎。
💡 使用建议
间接用户应知晓处理的内容由大型语言模型生成,用户需了解风险和局限性,必要时添加年龄声明或屏蔽界面。使用该模型预训练的模型应包含更新的模型卡片,并为受影响者提供反馈机制。



