模型简介
模型特点
模型能力
使用案例
🚀 GPT - SW3模型
GPT - SW3是由AI Sweden联合RISE以及WASP WARA for Media and Language开发的一系列仅解码器的大型预训练Transformer语言模型。它能够以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-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>
...
生成文本的过程与上述相同。
使用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"]
✨ 主要特性
- 多语言支持:能够以瑞典语、挪威语、丹麦语、冰岛语、英语这5种语言生成文本。
- 编程代码处理:可处理4种编程语言。
- 指令执行能力:可以被指示执行未明确训练过的文本任务。
📦 安装指南
由于这是私有仓库,需使用访问令牌登录:
huggingface-cli login
💻 使用示例
基础用法
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)
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)
print(generated_text)
高级用法
# 高级场景说明:使用HuggingFace管道进行文本生成
generator = pipeline('text-generation', tokenizer=tokenizer, model=model, device=device)
prompt = "请描述一下森林的重要性"
generated = generator(prompt, max_new_tokens=200, do_sample=True, temperature=0.7, top_p=0.9)[0]["generated_text"]
print(generated)
📚 详细文档
模型描述
GPT - SW3是一系列仅解码器的大型预训练Transformer语言模型,在包含3200亿瑞典语、挪威语、丹麦语、冰岛语、英语和编程代码标记的数据集上进行了训练。模型使用NeMo Megatron GPT实现,以因果语言建模(CLM)为目标进行预训练。
instruct
模型在指令数据上进行了微调,使用了聊天和原始文本两种格式。
预期用途
GPT - SW3是一个自回归大语言模型,能够以5种不同语言和4种编程语言生成连贯文本。它还可以被指示执行未明确训练过的文本任务。
局限性
与其他大语言模型一样,由于训练数据的多样性(或缺乏多样性)会对模型质量产生下游影响,GPT - SW3在偏差和安全性等方面存在局限性。它在生成多样性和幻觉方面也可能存在质量问题。模型可能会过度代表某些观点,而忽视其他观点,包含刻板印象,生成仇恨、辱骂、暴力、歧视或偏见性的语言。模型可能会出错,包括产生错误信息,生成无关或重复的输出,以及可能不适用于所有场景的内容,包括色情内容。
合规性
GPT - SW3的发布包括模型权重、配置文件、分词器文件和词汇文件。这些文件均不包含任何个人身份信息(PII)或受版权保护的材料。
模型卡片
- 开发团队:由AI Sweden联合RISE以及WASP WARA for Media and Language开发。
- 发布日期:2022 - 12 - 20
- 模型版本:GPT - SW3的第二代。
- 模型类型:大型仅解码器Transformer语言模型。
- 训练算法等信息:使用NeMo Megatron GPT实现进行训练。
- 许可证:[LICENSE](https://huggingface.co/AI - Sweden - Models/gpt - sw3 - 6.7b - v2 - instruct/blob/main/LICENSE)
- 问题反馈地址:nlu@ai.se
预期用途
- 主要用途:预发布GPT - SW3用于研究和评估北欧语言大语言模型的能力。
- 主要用户:北欧NLP生态系统中的组织和个人,他们可以为模型的验证和测试做出贡献,并向社区提供反馈。
- 超出范围的用例:请参阅修改后的RAIL许可证。
数据、局限性和建议
- 训练数据选择:基于广度和可用性选择训练数据,更多详细信息请参阅数据手册。
- 评估数据选择:暂无相关信息。
- 局限性:与其他大语言模型一样,存在偏差、安全性、生成多样性和幻觉等问题。
- 未来工作建议:间接用户应知晓其处理的内容是由大语言模型生成的;用户应了解风险和局限性,并根据需要包含适当的年龄声明或屏蔽界面;使用大语言模型预训练的模型应包含更新的模型卡片;模型用户应为受影响者提供反馈机制,如评论邮箱。
数据手册
动机
为了训练瑞典语大语言模型,需要高质量的大规模瑞典语数据集。由于此前不存在此类数据集,因此收集了北欧和英语语言的数据。
组成
- 数据实例:文本文件,按语言和文件类型分类。
- 数据来源:包括书籍、文章、代码、对话、数学、杂项、网络通用爬虫数据、网络来源等。
- 指令数据:包括dolly、[Open Assistant](https://github.com/LAION - AI/Open - Assistant/blob/main/docs/docs/data/datasets.md)、[OIG](https://laion.ai/blog/oig - dataset/)等。
- 数据总量:训练数据包含1.1TB UTF - 8编码文本,6.6亿个文档,共3200亿个标记。
收集过程
- 数据获取方式:从互联网下载,是公开可用数据集和来源的集合。
- 收集机制:数据由机器挖掘、过滤和采样。
- 收集时间范围:2021年6月至2022年6月。
预处理
- 数据处理:对数据集进行了过滤、重新格式化和去重处理。指令数据被转换为聊天轮次格式,并进行了相应的格式化。
- 原始数据保存:原始组件数据集在各自的位置公开可用。
用途
- 已使用任务:用于预训练GPT - SW3模型。
- 其他可能用途:可用于预训练语言模型,为许多当前和未来的语言任务奠定基础。
分发
- 是否分发给第三方:否。
- 分发方式等信息:暂无相关信息。
维护
- 维护方:Lindholmen Science Park AB的AI Sweden。
- 联系方式:nlu@ai.se
- 更新计划:目前暂无更新计划。
评估结果
属性 | 详情 |
---|---|
平均得分 | 39.57 |
ARC (25 - shot) | 40.78 |
HellaSwag (10 - shot) | 67.77 |
MMLU (5 - shot) | 31.57 |
TruthfulQA (0 - shot) | 40.32 |
Winogrande (5 - shot) | 63.54 |
GSM8K (5 - shot) | 6.37 |
DROP (3 - shot) | 26.67 |
🔧 技术细节
GPT - SW3使用NeMo Megatron GPT实现,以因果语言建模(CLM)为目标进行预训练。训练数据包含3200亿瑞典语、挪威语、丹麦语、冰岛语、英语和编程代码标记。instruct
模型在指令数据上进行了微调,使用了聊天和原始文本两种格式。
📄 许可证
[LICENSE](https://huggingface.co/AI - Sweden - Models/gpt - sw3 - 6.7b - v2 - instruct/blob/main/LICENSE)
⚠️ 重要提示
模型可能存在偏差和安全性等问题,可能会生成仇恨、辱骂、暴力、歧视或偏见性的语言,以及不适用于所有场景的内容。使用时请谨慎。
💡 使用建议
间接用户应知晓其处理的内容是由大语言模型生成的;用户应了解风险和局限性,并根据需要包含适当的年龄声明或屏蔽界面;使用大语言模型预训练的模型应包含更新的模型卡片;模型用户应为受影响者提供反馈机制,如评论邮箱。



