Transformers 文档

GPT-Sw3

Hugging Face's logo
加入 Hugging Face 社区

并获得增强的文档体验

开始使用

GPT-Sw3

PyTorch TensorFlow Flax

概述

GPT-Sw3模型最早由Ariel Ekgren、Amaru Cuba Gyllensten、Evangelia Gogoulou、Alice Heiman、Severine Verlinden、Joey Öhman、Fredrik Carlsson和Magnus Sahlgren在《从GPT-SW3中汲取的经验:构建首个瑞典语大规模生成式语言模型》一文中提出。

自第一篇论文发表以来,作者扩展了他们的工作,并利用其名为“北欧语料库”(The Nordic Pile)的1.2TB新语料库训练了新模型。

GPT-Sw3是由AI Sweden与RISE以及WASP WARA for Media and Language合作开发的一系列大型仅解码器预训练Transformer语言模型。GPT-Sw3在一个包含3200亿词元的瑞典语、挪威语、丹麦语、冰岛语、英语和编程代码的数据集上进行了训练。该模型利用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")

>>> input_ids = tokenizer("Träd är fina för att", return_tensors="pt")["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_file do_lower_case = False remove_space = False keep_accents = False pad_token = None unk_token = None eos_token = None bos_token = None sp_model_kwargs: typing.Optional[dict[str, typing.Any]] = None **kwargs )

参数

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

    • enable_sampling: 启用子词正则化。

    • nbest_size: Unigram的采样参数。对BPE-Dropout无效。

      • nbest_size = {0,1}: 不执行采样。
      • nbest_size > 1: 从nbest_size个结果中采样。
      • nbest_size < 0: 假设nbest_size是无限的,并使用前向过滤和后向采样算法从所有假设(格)中采样。
    • alpha: Unigram采样的平滑参数,以及BPE-dropout的合并操作的丢弃概率。

  • sp_model (SentencePieceProcessor) — 用于每次转换(字符串、词元和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: str filename_prefix: typing.Optional[str] = None )

< > 在 GitHub 上更新