Transformers 文档

XGLM

Hugging Face's logo
加入 Hugging Face 社区

并获得增强的文档体验

开始使用

该模型于 2021-12-20 发布,并于 2022-01-28 添加到 Hugging Face Transformers。

XGLM

PyTorch

概述

Few-shot Learning with Multilingual Language Models 中提出了 XGLM 模型,作者是 Xi Victoria Lin、Todor Mihaylov、Mikel Artetxe、Tianlu Wang、Shuohui Chen、Daniel Simig、Myle Ott、Naman Goyal、Shruti Bhosale、Jingfei Du、Ramakanth Pasunuru、Sam Shleifer、Punit Singh Koura、Vishrav Chaudhary、Brian O’Horo、Jeff Wang、Luke Zettlemoyer、Zornitsa Kozareva、Mona Diab、Veselin Stoyanov、Xian Li。

论文摘要如下:

像 GPT-3 这样的大规模自回归语言模型是少样本学习者,它们可以在没有微调的情况下执行广泛的语言任务。虽然这些模型能够联合表示许多不同的语言,但它们的训练数据以英语为主,这可能会限制它们的跨语言泛化能力。在本研究中,我们在涵盖多种语言的平衡语料库上训练了多语言自回归语言模型,并研究了它们在各种任务中的少样本和零样本学习能力。我们最大的 75 亿参数模型在超过 20 种代表性语言的少样本学习方面设定了新的最先进水平,在多语言常识推理(在零样本设置中准确率提高 +7.4%,在 4 样本设置中提高 +9.4%)和自然语言推理(在零样本和 4 样本设置中分别提高 +5.4%)方面,其性能优于同等规模的 GPT-3。在 FLORES-101 机器翻译基准测试中,我们的模型在 32 个训练样本的情况下,在 182 个翻译方向中的 171 个方向上优于 GPT-3,同时在 45 个方向上超过了官方监督基线。我们对模型成功和失败之处进行了详细分析,特别表明它在某些任务上实现了跨语言的上下文学习,但在表面形式鲁棒性和适应非标准形式任务方面仍有改进空间。最后,我们评估了我们在五种语言的仇恨言论检测等社会价值任务中的模型表现,并发现其存在与同等规模的 GPT-3 模型相似的局限性。

该模型由 Suraj 贡献。原始代码可以在 这里找到。

资源

XGLMConfig

class transformers.XGLMConfig

< >

( vocab_size = 256008 max_position_embeddings = 2048 d_model = 1024 ffn_dim = 4096 num_layers = 24 attention_heads = 16 activation_function = 'gelu' dropout = 0.1 attention_dropout = 0.1 activation_dropout = 0.0 layerdrop = 0.0 init_std = 0.02 scale_embedding = True use_cache = True decoder_start_token_id = 2 pad_token_id = 1 bos_token_id = 0 eos_token_id = 2 add_cross_attention = False tie_word_embeddings = True **kwargs )

参数

  • vocab_size (int, optional, 默认为 256008) — XGLM 模型的词汇量大小。定义调用 XGLMModel 时传入的 inputs_ids 可以表示的不同 token 的数量。
  • max_position_embeddings (int, optional, 默认为 2048) — 该模型可能使用的最大序列长度。通常将其设置为一个较大的值以防万一(例如,512 或 1024 或 2048)。
  • d_model (int, optional, 默认为 1024) — 层和池化层的维度。
  • ffn_dim (int, optional, 默认为 4096) — 解码器中“中间”(通常称为前馈)层的维度。
  • num_layers (int, optional, 默认为 24) — Transformer 解码器中的隐藏层数。
  • attention_heads (int, optional, 默认为 16) — Transformer 解码器中每个注意力层的注意力头数。
  • activation_function (strfunction, optional, 默认为 "gelu") — 编码器和池化层中的非线性激活函数(函数或字符串)。如果为字符串,则支持 "gelu"、"relu"、"silu" 和 "gelu_new"。
  • dropout (float, optional, 默认为 0.1) — 嵌入、编码器和池化层中所有全连接层的 dropout 概率。
  • attention_dropout (float, optional, 默认为 0.1) — 注意力概率的 dropout 比率。
  • activation_dropout (float, optional, 默认为 0.0) — 全连接层内激活值的 dropout 比率。
  • layerdrop (float, optional, 默认为 0.0) — 编码器的 LayerDrop 比率。更多详情请参阅 [LayerDrop 论文](参阅 https://huggingface.co/papers/1909.11556)。
  • init_std (float, optional, 默认为 0.02) — 用于初始化所有权重矩阵的 truncated_normal_initializer 的标准差。
  • scale_embedding (bool, optional, 默认为 True) — 通过除以 sqrt(d_model) 来缩放嵌入。
  • use_cache (bool, optional, 默认为 True) — 模型是否应返回最后的键/值注意力(并非所有模型都使用)。

这是用于存储 XGLMModel 配置的类。它用于根据指定的参数实例化 XGLM 模型,定义模型架构。使用默认值实例化配置将产生与 XGLM facebook/xglm-564M 架构类似的配置。

配置对象继承自 PreTrainedConfig,可用于控制模型输出。有关更多信息,请阅读 PreTrainedConfig 的文档。

示例

>>> from transformers import XGLMModel, XGLMConfig

>>> # Initializing a XGLM facebook/xglm-564M style configuration
>>> configuration = XGLMConfig()

>>> # Initializing a model from the facebook/xglm-564M style configuration
>>> model = XGLMModel(configuration)

>>> # Accessing the model configuration
>>> configuration = model.config

XGLMTokenizer

class transformers.XGLMTokenizer

< >

( vocab: str | list[tuple[str, float]] | None = None bos_token: str = '<s>' eos_token: str = '</s>' sep_token: str = '</s>' cls_token: str = '<s>' unk_token: str = '<unk>' pad_token: str = '<pad>' add_prefix_space: bool = True **kwargs )

参数

  • tokenizer_file (str, optional) — path to a tokenizers JSON file containing the serialization of a tokenizer.
  • bos_token (str, optional, 默认为 "<s>") — 预训练期间使用的序列开始标记。可用于序列分类器标记。
  • eos_token (str, optional, defaults to "</s>") — 序列结束标记。
  • sep_token (str, optional, defaults to "</s>") — 分隔符标记,用于从多个序列构建一个序列。
  • cls_token (str, optional, defaults to "<s>") — 分类标记,用于执行序列分类。
  • unk_token (str, optional, defaults to "<unk>") — 未知标记。
  • pad_token (str, optional, defaults to "<pad>") — 用于填充的标记。
  • vocab (str, dict or list, optional) — 自定义词汇表字典。如果未提供,则会创建一个最小词汇表。
  • merges (list[tuple[str, str]], optional) — BPE 的自定义合并规则。如果未提供,则从词汇表中生成合并规则。
  • add_prefix_space (bool, optional, defaults to True) — 在编码前是否添加前导空格。

使用 HuggingFace 的 tokenizers 库构建 XGLM 分词器。基于 BPE。

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

get_special_tokens_mask

< >

( token_ids_0: list[int] token_ids_1: list[int] | None = None already_has_special_tokens: bool = False ) 一个介于 0 和 1 之间的整数列表

参数

  • token_ids_0 — (可能已格式化)序列的 ID 列表。
  • token_ids_1 — 当 already_has_special_tokens=True 时未使用。在这种情况下必须为 None。
  • already_has_special_tokens — 序列是否已用特殊标记格式化。

返回

一个范围在 [0, 1] 的整数列表

特殊令牌为 1,序列令牌为 0。

Retrieve sequence ids from a token list that has no special tokens added.

For fast tokenizers, data collators call this with already_has_special_tokens=True to build a mask over an already-formatted sequence. In that case, we compute the mask by checking membership in all_special_ids.

save_vocabulary

< >

( save_directory: str filename_prefix: str | None = None )

XGLMTokenizerFast

class transformers.XGLMTokenizer

< >

( vocab: str | list[tuple[str, float]] | None = None bos_token: str = '<s>' eos_token: str = '</s>' sep_token: str = '</s>' cls_token: str = '<s>' unk_token: str = '<unk>' pad_token: str = '<pad>' add_prefix_space: bool = True **kwargs )

参数

  • tokenizer_file (str, optional) — path to a tokenizers JSON file containing the serialization of a tokenizer.
  • bos_token (str, optional, 默认为 "<s>") — 预训练期间使用的序列开始标记。可用于序列分类器标记。
  • eos_token (str, optional, defaults to "</s>") — 序列结束标记。
  • sep_token (str, optional, defaults to "</s>") — 分隔符标记,用于从多个序列构建一个序列。
  • cls_token (str, optional, defaults to "<s>") — 分类标记,用于执行序列分类。
  • unk_token (str, optional, defaults to "<unk>") — 未知标记。
  • pad_token (str, optional, defaults to "<pad>") — 用于填充的标记。
  • vocab (str, dict or list, optional) — 自定义词汇表字典。如果未提供,则会创建一个最小词汇表。
  • merges (list[tuple[str, str]], optional) — BPE 的自定义合并规则。如果未提供,则从词汇表中生成合并规则。
  • add_prefix_space (bool, optional, defaults to True) — 在编码前是否添加前导空格。

使用 HuggingFace 的 tokenizers 库构建 XGLM 分词器。基于 BPE。

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

XGLMModel

class transformers.XGLMModel

< >

( config: XGLMConfig )

参数

  • config (XGLMConfig) — 模型配置类,包含模型的所有参数。使用配置文件初始化不会加载与模型相关的权重,只会加载配置。请查看 from_pretrained() 方法来加载模型权重。

不带任何特定顶部头部的裸 Xglm 模型,输出原始隐藏状态。

此模型继承自 PreTrainedModel。查看其父类文档,了解库为所有模型实现的通用方法(例如下载或保存、调整输入嵌入大小、修剪头等)。

此模型也是一个 PyTorch torch.nn.Module 子类。像普通的 PyTorch Module 一样使用它,并参考 PyTorch 文档了解一般用法和行为的所有相关信息。

forward

< >

( input_ids: torch.Tensor | None = None attention_mask: torch.Tensor | None = None position_ids: torch.Tensor | None = None encoder_hidden_states: torch.Tensor | None = None encoder_attention_mask: torch.Tensor | None = None past_key_values: transformers.cache_utils.Cache | None = None inputs_embeds: torch.Tensor | None = None use_cache: bool | None = None output_attentions: bool | None = None output_hidden_states: bool | None = None return_dict: bool | None = None cache_position: torch.Tensor | None = None **kwargs ) transformers.modeling_outputs.BaseModelOutputWithPastAndCrossAttentionstuple(torch.FloatTensor)

参数

  • input_ids (torch.Tensor, 形状为 (batch_size, sequence_length), optional) — 词汇表中输入序列标记的索引。默认情况下将忽略填充。

    可以使用 AutoTokenizer 获取索引。有关详细信息,请参阅 PreTrainedTokenizer.encode()PreTrainedTokenizer.call()

    什么是输入 ID?

  • attention_mask (torch.Tensor, 形状为 (batch_size, sequence_length), optional) — 避免对填充标记索引执行注意力的掩码。掩码值选择在 [0, 1] 中:

    • 1 表示未掩码的标记,
    • 0 表示已掩码的标记。

    什么是注意力掩码?

  • position_ids (torch.Tensor, 形状为 (batch_size, sequence_length), optional) — 位置嵌入中每个输入序列标记的位置索引。选择范围为 [0, config.n_positions - 1]

    什么是位置 ID?

  • encoder_hidden_states (torch.FloatTensor, 形状为 (batch_size, encoder_sequence_length, hidden_size), optional) — 编码器最后一层的输出隐藏状态序列。用于解码器的交叉注意力。
  • encoder_attention_mask (torch.LongTensor, 形状为 (batch_size, encoder_sequence_length), optional) — 避免对编码器 input_ids 的填充标记执行交叉注意力的掩码。掩码值选择在 [0, 1] 中:

    • 1 表示未掩码的标记,
    • 0 表示已掩码的标记。

    什么是注意力掩码?

  • past_key_values (~cache_utils.Cache, optional) — 可用于加速顺序解码的预计算隐藏状态(自注意力块和交叉注意力块中的键和值)。这通常包括在解码的先前阶段由模型返回的 past_key_values,当 use_cache=Trueconfig.use_cache=True 时。

    仅允许 Cache 实例作为输入,请参阅我们的 kv 缓存指南。如果未传入 past_key_values,则默认初始化 DynamicCache

    模型将输出与输入相同的缓存格式。

    如果使用 past_key_values,则用户应仅传入未处理的 input_ids(其过去键值状态未提供给此模型的那些),形状为 (batch_size, unprocessed_length),而不是所有 input_ids,形状为 (batch_size, sequence_length)

  • inputs_embeds (torch.Tensor, 形状为 (batch_size, sequence_length, hidden_size), optional) — 可选地,您可以直接传入嵌入表示,而不是传入 input_ids。如果您想比模型内部的嵌入查找矩阵更精确地控制如何将 input_ids 索引转换为关联向量,这将很有用。
  • use_cache (bool, optional) — 如果设置为 True,则返回 past_key_values 键值状态,并可用于加速解码。
  • output_attentions (bool, optional) — 是否返回所有注意力层的注意力张量。有关详细信息,请参阅返回张量下的 attentions
  • output_hidden_states (bool, optional) — 是否返回所有层的隐藏状态。有关详细信息,请参阅返回张量下的 hidden_states
  • return_dict (bool, optional) — 是否返回一个 ModelOutput 而不是一个普通的元组。
  • cache_position (torch.Tensor of shape (sequence_length), optional) — Indices depicting the position of the input sequence tokens in the sequence. Contrarily to position_ids, this tensor is not affected by padding. It is used to update the cache in the correct position and to infer the complete sequence length.

返回

transformers.modeling_outputs.BaseModelOutputWithPastAndCrossAttentionstuple(torch.FloatTensor)

A transformers.modeling_outputs.BaseModelOutputWithPastAndCrossAttentions or a tuple of torch.FloatTensor (if return_dict=False is passed or when config.return_dict=False) comprising various elements depending on the configuration (XGLMConfig) and inputs.

  • last_hidden_state (torch.FloatTensor, 形状为 (batch_size, sequence_length, hidden_size)) — 模型最后一层输出的隐藏状态序列。

    如果使用了 past_key_values,则只输出形状为 (batch_size, 1, hidden_size) 的序列的最后一个隐藏状态。

  • past_key_values (Cache, optional, 当传递 use_cache=True 或当 config.use_cache=True 时返回) — 它是 Cache 实例。更多详情,请参阅我们的 kv cache 指南

    Contains pre-computed hidden-states (key and values in the self-attention blocks and optionally if config.is_encoder_decoder=True in the cross-attention blocks) that can be used (see past_key_values input) to speed up sequential decoding.

  • hidden_states (tuple(torch.FloatTensor), optional, 当传递 output_hidden_states=True 或当 config.output_hidden_states=True 时返回) — torch.FloatTensor 的元组(一个用于嵌入层的输出,如果模型有嵌入层;+一个用于每个层的输出),形状为 (batch_size, sequence_length, hidden_size)

    模型在每个层输出的隐藏状态以及可选的初始嵌入输出。

  • attentions (tuple(torch.FloatTensor), optional, 当传递 output_attentions=True 或当 config.output_attentions=True 时返回) — torch.FloatTensor 的元组(每个层一个),形状为 (batch_size, num_heads, sequence_length, sequence_length)

    注意力 softmax 后的注意力权重,用于计算自注意力头中的加权平均值。

  • cross_attentions (tuple(torch.FloatTensor), optional, returned when output_attentions=True and config.add_cross_attention=True is passed or when config.output_attentions=True) — Tuple of torch.FloatTensor (one for each layer) of shape (batch_size, num_heads, sequence_length, sequence_length).

    解码器交叉注意力层的注意力权重,在注意力 softmax 之后,用于计算交叉注意力头中的加权平均。

The XGLMModel forward method, overrides the __call__ special method.

虽然 forward pass 的实现需要在此函数中定义,但你应该在之后调用 Module 实例而不是这个,因为前者负责运行预处理和后处理步骤,而后者会静默地忽略它们。

XGLMForCausalLM

class transformers.XGLMForCausalLM

< >

( config model_args: ~utils.generic.ModelArgs | None = None adapter_args: ~utils.generic.AdapterArgs | None = None lora_args: ~utils.generic.LoRAArgs | None = None tokenizer_args: ~utils.generic.TokenizerArgs | None = None dataset_args: ~utils.generic.DatasetArgs | None = None data_args: ~utils.generic.DataArgs | None = None training_args: ~utils.generic.TrainingArgs | None = None generation_args: ~utils.generic.GenerationArgs | None = None vision_tower_args: ~utils.generic.VisionTowerArgs | None = None qlora_args: ~utils.generic.QLoRAArgs | None = None vision_tower_template_args: ~utils.generic.VisionTowerTemplateArgs | None = None video_tower_args: ~utils.generic.VideoTowerArgs | None = None vision_config: ~utils.generic.VisionConfig | None = None video_config: ~utils.generic.VideoConfig | None = None load_dataset: bool | None = None load_data_collator: bool | None = None load_processor: bool | None = None load_lora_adapter: bool | None = None load_adapter: bool | None = None load_qlora_adapter: bool | None = None **kwargs: typing_extensions.Unpack[transformers.modeling_utils.PreTrainedModelKwargs] )

参数

  • config (XGLMForCausalLM) — Model configuration class with all the parameters of the model. Initializing with a config file does not load the weights associated with the model, only the configuration. Check out the from_pretrained() method to load the model weights.

The XGLM Model transformer with a language modeling head on top (linear layer with weights tied to the input embeddings).

此模型继承自 PreTrainedModel。查看其父类文档,了解库为所有模型实现的通用方法(例如下载或保存、调整输入嵌入大小、修剪头等)。

此模型也是一个 PyTorch torch.nn.Module 子类。像普通的 PyTorch Module 一样使用它,并参考 PyTorch 文档了解一般用法和行为的所有相关信息。

forward

< >

( input_ids: torch.Tensor | None = None attention_mask: torch.Tensor | None = None position_ids: torch.Tensor | None = None encoder_hidden_states: torch.Tensor | None = None encoder_attention_mask: torch.Tensor | None = None past_key_values: transformers.cache_utils.Cache | None = None inputs_embeds: torch.Tensor | None = None labels: torch.Tensor | None = None use_cache: bool | None = None output_attentions: bool | None = None output_hidden_states: bool | None = None return_dict: bool | None = None cache_position: torch.Tensor | None = None logits_to_keep: int | torch.Tensor = 0 **kwargs ) transformers.modeling_outputs.CausalLMOutputWithCrossAttentions or tuple(torch.FloatTensor)

参数

  • input_ids (torch.Tensor of shape (batch_size, sequence_length), optional) — Indices of input sequence tokens in the vocabulary. Padding will be ignored by default.

    Indices can be obtained using AutoTokenizer. See PreTrainedTokenizer.encode() and PreTrainedTokenizer.call() for details.

    What are input IDs?

  • attention_mask (torch.Tensor of shape (batch_size, sequence_length), optional) — Mask to avoid performing attention on padding token indices. Mask values selected in [0, 1]:

    • 1 for tokens that are not masked,
    • 0 for tokens that are masked.

    What are attention masks?

  • position_ids (torch.Tensor of shape (batch_size, sequence_length), optional) — Indices of positions of each input sequence tokens in the position embeddings. Selected in the range [0, config.n_positions - 1].

    What are position IDs?

  • encoder_hidden_states (torch.FloatTensor of shape (batch_size, encoder_sequence_length, hidden_size), optional) — Sequence of hidden-states at the output of the last layer of the encoder. Used in the cross-attention of the decoder.
  • encoder_attention_mask (torch.LongTensor of shape (batch_size, encoder_sequence_length), optional) — Mask to avoid performing cross-attention on padding tokens indices of encoder input_ids. Mask values selected in [0, 1]:

    • 1 for tokens that are not masked,
    • 0 for tokens that are masked.

    What are attention masks?

  • past_key_values (~cache_utils.Cache, optional) — Pre-computed hidden-states (key and values in the self-attention blocks and in the cross-attention blocks) that can be used to speed up sequential decoding. This typically consists in the past_key_values returned by the model at a previous stage of decoding, when use_cache=True or config.use_cache=True.

    Only Cache instance is allowed as input, see our kv cache guide. If no past_key_values are passed, DynamicCache will be initialized by default.

    The model will output the same cache format that is fed as input.

    If past_key_values are used, the user is expected to input only unprocessed input_ids (those that don’t have their past key value states given to this model) of shape (batch_size, unprocessed_length) instead of all input_ids of shape (batch_size, sequence_length).

  • inputs_embeds (torch.Tensor of shape (batch_size, sequence_length, hidden_size), optional) — Optionally, instead of passing input_ids you can choose to directly pass an embedded representation. This is useful if you want more control over how to convert input_ids indices into associated vectors than the model’s internal embedding lookup matrix.
  • labels (torch.LongTensor of shape (batch_size, sequence_length), optional) — Labels for computing the masked language modeling loss. Indices should either be in [0, ..., config.vocab_size] or -100 (see input_ids docstring). Tokens with indices set to -100 are ignored (masked), the loss is only computed for the tokens with labels in [0, ..., config.vocab_size].
  • use_cache (bool, optional) — If set to True, past_key_values key value states are returned and can be used to speed up decoding (see past_key_values).
  • output_attentions (bool, optional) — Whether or not to return the attentions tensors of all attention layers. See attentions under returned tensors for more detail.
  • output_hidden_states (bool, optional) — Whether or not to return the hidden states of all layers. See hidden_states under returned tensors for more detail.
  • return_dict (bool, optional) — Whether or not to return a ModelOutput instead of a plain tuple.
  • cache_position (torch.Tensor of shape (sequence_length), optional) — Indices depicting the position of the input sequence tokens in the sequence. Contrarily to position_ids, this tensor is not affected by padding. It is used to update the cache in the correct position and to infer the complete sequence length.
  • logits_to_keep (Union[int, torch.Tensor], optional, defaults to 0) — If an int, compute logits for the last logits_to_keep tokens. If 0, calculate logits for all input_ids (special case). Only last token logits are needed for generation, and calculating them only for that token can save memory, which becomes pretty significant for long sequences or large vocabulary size. If a torch.Tensor, must be 1D corresponding to the indices to keep in the sequence length dimension. This is useful when using packed tensor format (single dimension for batch and sequence length).

返回

transformers.modeling_outputs.CausalLMOutputWithCrossAttentions or tuple(torch.FloatTensor)

A transformers.modeling_outputs.CausalLMOutputWithCrossAttentions or a tuple of torch.FloatTensor (if return_dict=False is passed or when config.return_dict=False) comprising various elements depending on the configuration (XGLMConfig) and inputs.

  • loss (torch.FloatTensor 形状为 (1,)可选,当提供 labels 时返回) — 语言建模损失(用于下一个 token 预测)。

  • logits (形状为 (batch_size, sequence_length, config.vocab_size)torch.FloatTensor) — 语言建模头部的预测分数(SoftMax 之前的每个词汇标记的分数)。

  • hidden_states (tuple(torch.FloatTensor), optional, 当传递 output_hidden_states=True 或当 config.output_hidden_states=True 时返回) — torch.FloatTensor 的元组(一个用于嵌入层的输出,如果模型有嵌入层;+一个用于每个层的输出),形状为 (batch_size, sequence_length, hidden_size)

    模型在每个层输出的隐藏状态以及可选的初始嵌入输出。

  • attentions (tuple(torch.FloatTensor), optional, 当传递 output_attentions=True 或当 config.output_attentions=True 时返回) — torch.FloatTensor 的元组(每个层一个),形状为 (batch_size, num_heads, sequence_length, sequence_length)

    注意力 softmax 后的注意力权重,用于计算自注意力头中的加权平均值。

  • cross_attentions (tuple(torch.FloatTensor), optional, returned when output_attentions=True is passed or when config.output_attentions=True) — Tuple of torch.FloatTensor (one for each layer) of shape (batch_size, num_heads, sequence_length, sequence_length).

    注意力 softmax 后的交叉注意力权重,用于计算交叉注意力头中的加权平均。

  • past_key_values (Cache, optional, 当传递 use_cache=True 或当 config.use_cache=True 时返回) — 它是 Cache 实例。更多详情,请参阅我们的 kv cache 指南

    包含预先计算的隐藏状态(注意力块中的键和值),可用于(参见 past_key_values 输入)加速顺序解码。

The XGLMForCausalLM forward method, overrides the __call__ special method.

虽然 forward pass 的实现需要在此函数中定义,但你应该在之后调用 Module 实例而不是这个,因为前者负责运行预处理和后处理步骤,而后者会静默地忽略它们。

示例

在 GitHub 上更新

© . This site is unofficial and not affiliated with Hugging Face, Inc.