模型简介
模型特点
模型能力
使用案例
许可证:其他 数据集:
- laion/OIG
- databricks/databricks-dolly-15k
- OpenAssistant/oasst1 语言:
- 丹麦语
- 瑞典语
- 挪威语
- 英语
- 冰岛语 基础模型:AI-Sweden-Models/gpt-sw3-6.7b-v2
模型描述
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 Instruct | GPT-Sw3 356M Instruct | GPT-Sw3 1.3B Instruct
GPT-Sw3 6.7B v2 Instruct | GPT-Sw3 20B Instruct
量化模型
GPT-Sw3 6.7B v2 Instruct 4-bit gptq | GPT-Sw3 20B Instruct 4-bit gptq
GPT-SW3是由AI Sweden与RISE及WASP WARA媒体与语言项目合作开发的一系列大型仅解码器预训练Transformer语言模型。GPT-SW3在包含3200亿个瑞典语、挪威语、丹麦语、冰岛语、英语及编程代码标记的数据集上进行训练。该模型采用因果语言建模(CLM)目标,使用NeMo Megatron GPT实现进行预训练。
instruct
模型通过聊天和原始文本格式在指令数据上进行了微调。
预期用途
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>
用户:
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]
generate
方法的便捷替代是HuggingFace管道,它为您处理大部分工作:
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媒体与语言项目合作开发。
- 模型日期:GPT-SW3于2022-12-20发布。
- 模型版本:这是GPT-SW3的第二代。
- 模型类型:GPT-SW3是一个大型仅解码器Transformer语言模型。
- 关于训练算法、参数、公平性约束或其他应用方法和特征的信息: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 P


