Transformers documentation

GPT-Sw3

You are viewing main version, which requires installation from source. If you'd like regular pip install, checkout the latest stable version (v5.22.2).
Hugging Face's logo
Join the Hugging Face community

and get access to the augmented documentation experience

to get started

该模型于 2022-12-12 贡献至 Hugging Face Transformers。

GPT-Sw3

概述

GPT-Sw3 模型首次提出于 Ariel Ekgren、Amaru Cuba Gyllensten、Evangelia Gogoulou、Alice Heiman、Severine Verlinden、Joey Öhman、Fredrik Carlsson 和 Magnus Sahlgren 撰写的 Lessons Learned from GPT-SW3: Building the First Large-Scale Generative Language Model for Swedish 一文中。

自那篇论文以来,作者们扩展了他们的研究,并在他们名为 The Nordic Pile 的新 1.2TB 语料库上训练了新的模型。

GPT-Sw3 是由 AI Sweden 与 RISE 以及 WASP WARA for Media and Language 合作开发的一系列大型仅解码器预训练 Transformer 语言模型。GPT-Sw3 在一个包含 320B 个 token 的数据集上进行训练,该数据集涵盖瑞典语、挪威语、丹麦语、冰岛语、英语以及编程代码。该模型使用 NeMo Megatron GPT 实现,基于因果语言建模(CLM)目标进行预训练。

该模型由 AI Sweden Models 贡献。

使用示例

from transformers import AutoTokenizer, AutoModelForCausalLM

tokenizer = AutoTokenizer.from_pretrained("AI-Sweden-Models/gpt-sw3-356m")
model = AutoModelForCausalLM.from_pretrained("AI-Sweden-Models/gpt-sw3-356m", device_map="auto")

input_ids = tokenizer("Träd är fina för att", return_tensors="pt").to(model.device)["input_ids"]

generated_token_ids = model.generate(inputs=input_ids, max_new_tokens=10, do_sample=True)[0]

print(tokenizer.decode(generated_token_ids))
Träd är fina för att de är färgstarka. Men ibland är det fint

资源

该实现使用了 GPT2Model 并结合了我们的 GPTSw3Tokenizer。有关 API 参考和示例,请参阅 GPT2Model 文档。

请注意,使用我们的分词器需要 sentencepiece,可以通过 pip install transformers[sentencepiece] 或 pip install sentencepiece 进行安装。

GPTSw3Tokenizer

class transformers.GPTSw3Tokenizer

< >

( vocab_filedo_lower_case = Falseremove_space = Falsekeep_accents = Falsepad_token = Noneunk_token = Noneeos_token = Nonebos_token = Nonesp_model_kwargs: dict[str, typing.Any] | None = None**kwargs )

参数

  • vocab_file (str) — 包含实例化分词器所需词汇表的 SentencePiece 文件(通常具有 .spm 扩展名)。
  • do_lower_case (bool,可选,默认为 False) — 是否在分词时将输入转换为小写。
  • remove_space (bool,可选,默认为 False) — 是否在分词时去除文本中的空格(即移除字符串前后多余的空格)。
  • keep_accents (bool,可选,默认为 False) — 分词时是否保留重音符号。
  • pad_token (str, 可选) — 用于填充的标记,例如在对长度不同的序列进行批处理时。如果未提供,将根据模型大小默认为 ’’ 或 ’’。
  • unk_token (str, 可选) — 未知标记。不在词汇表中的标记无法转换为 ID,因此会被设置为此标记。如果未提供,则默认为 ’‘.
  • eos_token (str, 可选) — 预训练期间看到的序列结束标记。如果未提供,则默认为 ’<|endoftext|>’
  • bos_token (str, 可选) — 可用于下游任务的序列起始标记,在预训练期间未见过。如果未提供,将根据模型大小默认为 ’’ 或 ’<|endoftext|>’。
  • sp_model_kwargs (dict, 可选) — 将传递给 SentencePieceProcessor.__init__() 方法。 SentencePiece 的 Python 封装 可用于(除其他用途外)设置:
    • enable_sampling:启用子词正则化。

    • nbest_size:一元模型的采样参数。对 BPE-Dropout 无效。

      • nbest_size = {0,1}:不执行采样。
      • nbest_size > 1:从 nbest_size 个结果中进行采样。
      • nbest_size < 0:假设 nbest_size 为无穷大,并使用前向滤波与后向采样算法从所有假设(格)中进行采样。
    • alpha:用于一元采样(unigram sampling)的平滑参数,以及 BPE-dropout 中合并操作的 dropout 概率。

  • sp_model (SentencePieceProcessor) — 用于所有转换(字符串、token 和 ID)的 SentencePiece 处理器。
  • whitespaces (set) — 预处理中空白字符规范化所替换的空白字符。
  • non_printing_characters_re (Pattern) — 用于在预处理中移除不可打印字符的已编译正则表达式。

构建一个 GPTSw3 分词器。基于 SentencePiece。

该分词器继承自 PreTrainedTokenizer,其中包含了大部分主要方法。用户应参考该父类以获取有关这些方法的更多信息。

用法示例:

>>> from transformers import GPTSw3Tokenizer

>>> tokenizer = GPTSw3Tokenizer.from_pretrained("AI-Sweden-Models/gpt-sw3-126m")
>>> tokenizer("Svenska är kul!")["input_ids"]
[1814, 377, 3617, 63504]

save_vocabulary

< >

( save_directory: strfilename_prefix: str | None = None ) → tuple(str)

参数

  • save_directory (str) — 用于保存词汇表的目录。
  • filename_prefix (str, 可选) — 一个可选的前缀,用于添加到保存文件的名称中。

返回值

tuple(str)

已保存文件的路径。

将 sentencepiece 词表(复制原始文件)保存到一个目录中。

Update on GitHub