GPT-Sw3
概述
GPT-Sw3模型首次在 Lessons Learned from GPT-SW3: Building the First Large-Scale Generative Language Model for Swedish 由Ariel Ekgren, Amaru Cuba Gyllensten, Evangelia Gogoulou, Alice Heiman, Severine Verlinden, Joey Öhman, Fredrik Carlsson, Magnus Sahlgren提出。
自那第一篇论文以来,作者们扩展了他们的工作,并在他们名为The Nordic Pile的1.2TB新语料库上训练了新的模型。
GPT-Sw3 是由瑞典AI与RISE以及WASP WARA媒体与语言项目合作开发的一系列大型仅解码器预训练变压器语言模型。GPT-Sw3 在一个包含3200亿个瑞典语、挪威语、丹麦语、冰岛语、英语和编程代码的数据集上进行了训练。该模型使用因果语言建模(CLM)目标进行预训练,利用了NeMo Megatron GPT实现。
该模型由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
结合。请参阅GPT2Model文档以获取API参考和示例。
请注意,使用我们的分词器需要安装sentencepiece,可以通过pip install transformers[sentencepiece]
或pip install sentencepiece
来安装。
GPTSw3Tokenizer
类 transformers.GPTSw3Tokenizer
< source >( 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[typing.Dict[str, typing.Any]] = None **kwargs )
参数
- vocab_file (
str
) — SentencePiece 文件(通常具有 .spm 扩展名),包含实例化分词器所需的词汇表。 - do_lower_case (
bool
, optional, defaults toFalse
) — 是否在分词时将输入转换为小写。 - remove_space (
bool
, optional, defaults toFalse
) — 是否在分词时去除文本中的空格(去除字符串前后的多余空格)。 - keep_accents (
bool
, optional, defaults toFalse
) — 是否在分词时保留重音符号。 - pad_token (
str
, optional) — 用于填充的标记,例如在对不同长度的序列进行批处理时。如果未提供,将根据模型大小默认为''或' '。 - unk_token (
str
, optional) — 未知标记。不在词汇表中的标记无法转换为ID,而是设置为该标记。如果未提供,将默认为’‘。 - eos_token (
str
, optional) — 在预训练期间看到的序列结束标记。如果未提供,将默认为’<|endoftext|>’ - bos_token (
str
, optional) — 序列开始的标记,可用于下游任务,在预训练期间未见。如果未提供,将默认为’’或’<|endoftext|>’,取决于模型大小。 - sp_model_kwargs (
dict
, optional) — Will be passed to theSentencePieceProcessor.__init__()
method. The Python wrapper for SentencePiece can be used, among other things, to set:-
enable_sampling
: 启用子词正则化。 -
nbest_size
: 用于unigram的采样参数。对于BPE-Dropout无效。nbest_size = {0,1}
: No sampling is performed.nbest_size > 1
: samples from the nbest_size results.nbest_size < 0
: assuming that nbest_size is infinite and samples from the all hypothesis (lattice) using forward-filtering-and-backward-sampling algorithm.
-
alpha
: 用于单字采样的平滑参数,以及BPE-dropout的合并操作丢弃概率。
-
- sp_model (
SentencePieceProcessor
) — 用于每次转换(字符串、标记和ID)的SentencePiece处理器。 - 空白字符 (
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]