Transformers documentation
XLM
Эта модель была опубликована в HF papers 22.01.2019 и добавлена в Hugging Face Transformers 16.11.2020.
XLM
XLM демонстрирует кросс-лингвальный предобучение с использованием двух подходов: обучение без учителя на одном языке и обучение с учителем на нескольких языках с целью кросс-лингвальной языковой модели. Модель XLM поддерживает цели каузального моделирования языка, маскированного моделирования языка и переводного моделирования языка (расширение цели маскированного моделирования языка BERT на входные данные нескольких языков).
Все исходные контрольные точки XLM можно найти в организации Facebook AI community.
Нажмите на модели XLM в боковой панели справа, чтобы увидеть дополнительные примеры применения XLM к различным межъязыковым задачам, таким как классификация, машинный перевод и ответы на вопросы.
Приведённый ниже пример показывает, как предсказать токен <mask> с помощью Pipeline, AutoModel и из командной строки.
from transformers import pipeline
pipeline = pipeline(
task="fill-mask",
model="facebook/xlm-roberta-xl",
device=0
)
pipeline("Bonjour, je suis un modèle <mask>.")import torch
from transformers import AutoModelForMaskedLM, AutoTokenizer
tokenizer = AutoTokenizer.from_pretrained(
"FacebookAI/xlm-mlm-en-2048",
)
model = AutoModelForMaskedLM.from_pretrained(
"FacebookAI/xlm-mlm-en-2048",
device_map="auto",
)
inputs = tokenizer("Hello, I'm a <mask> model.", return_tensors="pt").to(model.device)
with torch.no_grad():
outputs = model(**inputs)
predictions = outputs.logits.argmax(dim=-1)
predicted_token = tokenizer.decode(predictions[0][inputs["input_ids"][0] == tokenizer.mask_token_id])
print(f"Predicted token: {predicted_token}")XLMConfig
класс transformers.XLMConfig
< source >( transformers_version: str | None = Nonearchitectures: list[str] | None = Noneoutput_hidden_states: bool | None = Falsereturn_dict: bool | None = Truedtype: str | torch.dtype | None = Nonechunk_size_feed_forward: int = 0is_encoder_decoder: bool = Falseid2label: dict[int, str] | dict[str, str] | None = Nonelabel2id: dict[str, int] | dict[str, str] | None = Noneproblem_type: Literal['regression', 'single_label_classification', 'multi_label_classification'] | None = Nonevocab_size: int = 30145emb_dim: int = 2048n_layers: int = 12n_heads: int = 16dropout: float | int = 0.1attention_dropout: float | int = 0.1gelu_activation: bool = Truesinusoidal_embeddings: bool = Falsecausal: bool = Falseasm: bool = Falsen_langs: int = 1use_lang_emb: bool = Truemax_position_embeddings: int = 512embed_init_std: float = 0.02209708691207961layer_norm_eps: float = 1e-12init_std: float = 0.02unk_index: int = 3mask_index: int = 5is_encoder: bool = Truesummary_type: str = 'first'summary_use_proj: bool = Truesummary_activation: str | None = Nonesummary_proj_to_labels: bool = Truesummary_first_dropout: float | int = 0.1start_n_top: int = 5end_n_top: int = 5mask_token_id: int | None = 0lang_id: int = 0pad_token_id: int | None = 2bos_token_id: int | None = 0eos_token_id: int | list[int] | None = 1tie_word_embeddings: bool = True )
Параметры
- vocab_size (
int, необязательный, по умолчанию30145) — Размер словаря модели. Определяет количество различных токенов, которые могут быть представлены вinput_ids. - emb_dim (
int, необязательный, по умолчанию2048) — Размерность эмбеддингов и скрытых состояний. - n_layers (
int, необязательный, по умолчанию12) — Количество скрытых слоев в декодере Transformer. - n_heads (
int, необязательный, по умолчанию16) — Количество голок внимания в каждом слое внимания декодера Transformer. - dropout (
Union[float, int], необязательный, по умолчанию0.1) — Коэффициент для всех слоёв dropout. - attention_dropout (
Union[float, int], необязательный, по умолчанию0.1) — Коэффициент dropout для вероятностей внимания. - gelu_activation (
bool, необязательный, по умолчаниюTrue) — Использовать ли gelu для активаций вместо relu. - sinusoidal_embeddings (
bool, необязательный, по умолчаниюFalse) — Использовать ли синусоидальные позиционные эмбеддинги вместо абсолютных позиционных эмбеддингов. - causal (
bool, необязательный, по умолчаниюFalse) — Определяет, должна ли модель работать в каузальном режиме. Каузальные модели используют треугольную маску внимания, чтобы обращать внимание только на левый контекст, а не на двунаправленный. - asm (
bool, optional, по умолчаниюFalse) — Использовать ли адаптивный слой проекции log softmax вместо линейного слоя для слоя предсказания. - n_langs (
int, необязательный, по умолчанию 1) — Количество языков, с которыми работает модель. Для моноязычных моделей установите значение 1. - use_lang_emb (
bool, необязательный, по умолчаниюTrue) — Использовать ли языковые эмбеддинги. Некоторые модели используют дополнительные языковые эмбеддинги, см. страницу о мультиязычных моделях для информации об их использовании. - max_position_embeddings (
int, необязательный, по умолчанию512) — Максимальная длина последовательности, с которой может использоваться эта модель. - embed_init_std (
float, необязательный, по умолчанию 2048^-0.5) — Стандартное отклонение truncated_normal_initializer для инициализации матриц эмбеддингов. - layer_norm_eps (
float, необязательный, по умолчанию1e-12) — Значение epsilon, используемое слоями нормализации. - init_std (
float, необязательный, по умолчанию0.02) — Стандартное отклонение truncated_normal_initializer для инициализации всех матриц весов. - unk_index (
int, необязательный, по умолчанию 3) — Индекс токена неизвестного слова в словаре. - mask_index (
int, необязательный, по умолчанию 5) — Индекс маскирующего токена в словаре. - is_encoder (
bool, необязательный, по умолчаниюTrue) — Указывает, должна ли инициализируемая модель представлять собой трансформер-энкодер или декодер, как описано в работе Vaswani et al. - summary_type (
string, необязательный, по умолчанию «first») — Аргумент, используемый при суммаризации последовательности. Применяется в моделях классификации последовательностей и выбора из нескольких вариантов. Должен быть одним из следующих значений:"last": использовать скрытое состояние последнего токена (как в XLNet)."first": использовать скрытое состояние первого токена (как в BERT)."mean": вычислить среднее значение скрытых состояний всех токенов."cls_index": укажите Tensor с позицией токена классификации (как в GPT/GPT-2)."attn": пока не реализовано, используйте multi-head attention.
- summary_use_proj (
bool, необязательный, по умолчаниюTrue) — Аргумент, используемый при выполнении сводки последовательности. Применяется в моделях классификации последовательностей и множественного выбора. Определяет, следует ли добавлять проекцию после извлечения вектора. - summary_activation (
str, необязательный) — Аргумент, используемый при выполнении сводки последовательности. Применяется в моделях классификации последовательностей и множественного выбора. Передайте"tanh", чтобы применить активацию tanh к выходу; любое другое значение приведет к отсутствию активации. - summary_proj_to_labels (
bool, необязательный, по умолчаниюTrue) — Используется в моделях классификации последовательностей и множественного выбора. Определяет, должно ли количество классов в выходных данных проекции быть равноconfig.num_labelsилиconfig.hidden_size. - summary_first_dropout (
float, необязательный, по умолчанию 0.1) — Используется в моделях классификации последовательностей и множественного выбора. Коэффициент dropout, применяемый после проекции и функции активации. - start_n_top (
int, необязательный, по умолчанию 5) — Используется в скрипте оценки SQuAD. - end_n_top (
int, необязательный, по умолчанию 5) — Используется в скрипте оценки SQuAD. - mask_token_id (
int, необязательный, по умолчанию 0) — Параметр, не зависящий от модели, для идентификации замаскированных токенов при генерации текста в контексте MLM. - lang_id (
int, необязательный, по умолчанию 1) — Идентификатор языка, используемого моделью. Этот параметр применяется при генерации текста на заданном языке. - pad_token_id (
int, необязательный, по умолчанию2) — Идентификатор токена, используемого для выравнивания (padding) в словаре. - bos_token_id (
int, необязательный, по умолчанию0) — Идентификатор токена, используемого для обозначения начала потока в словаре. - eos_token_id (
Union[int, list[int]], необязательный, по умолчанию1) — Идентификатор токена, используемого для обозначения конца потока в словаре. - tie_word_embeddings (
bool, необязательный, по умолчаниюTrue) — Определяет, следует ли связывать веса эмбеддингов согласно маппингуtied_weights_keysмодели.
Это класс конфигурации для хранения настроек модели XLMModel. Он используется для создания модели Xlm в соответствии с указанными аргументами, определяющими архитектуру модели. Создание конфигурации с параметрами по умолчанию даст конфигурацию, аналогичную конфигурации FacebookAI/xlm-mlm-en-2048
Объекты конфигурации наследуются от PreTrainedConfig и могут использоваться для управления выводами модели. Подробнее читайте в документации PreTrainedConfig.
Примеры:
>>> from transformers import XLMConfig, XLMModel
>>> # Initializing a XLM configuration
>>> configuration = XLMConfig()
>>> # Initializing a model (with random weights) from the configuration
>>> model = XLMModel(configuration)
>>> # Accessing the model configuration
>>> configuration = model.configXLMTokenizer
класс transformers.XLMTokenizer
< source >( vocab_filemerges_fileunk_token = '<unk>'bos_token = '<s>'sep_token = '</s>'pad_token = '<pad>'cls_token = '</s>'mask_token = '<special1>'additional_special_tokens = ['<special0>', '<special1>', '<special2>', '<special3>', '<special4>', '<special5>', '<special6>', '<special7>', '<special8>', '<special9>']lang2id = Noneid2lang = Nonedo_lowercase_and_remove_accent = True**kwargs )
Параметры
- vocab_file (
str) — Файл словаря. - merges_file (
str) — Файл слияний. - unk_token (
str, необязательный, по умолчанию"<unk>") — Токен неизвестного слова. Токен, отсутствующий в словаре, не может быть преобразован в ID, поэтому вместо него используется этот токен. - bos_token (
str, необязательный, по умолчанию"<s>") — Токен начала последовательности, использовавшийся при предварительном обучении. Может использоваться в качестве токена классификатора последовательности. При построении последовательности с помощью специальных токенов этот токен не используется для обозначения начала последовательности. Вместо него используется cls_token.При построении последовательности с использованием специальных токенов этот токен не используется для начала последовательности. В качестве токена начала последовательности используется
cls_token. - sep_token (
str, необязательный, по умолчанию"</s>") — Токен-разделитель, который используется при построении последовательности из нескольких последовательностей, например, двух последовательностей для классификации последовательностей или текста и вопроса для ответа на вопросы. Он также используется в качестве последнего токена в последовательности, построенной со специальными токенами. - pad_token (
str, необязательный, по умолчанию"<pad>") — Токен, используемый для выравнивания, например, при пакетной обработке последовательностей разной длины. - cls_token (
str, необязательный, по умолчанию"</s>") — Токен классификатора, используемый при классификации последовательности (классификация всей последовательности, а не посимвольная классификация). Это первый токен последовательности, если она построена со специальными токенами. - mask_token (
str, необязательный, по умолчанию"<special1>") — Токен, используемый для маскирования значений. Это тот токен, который применяется при обучении модели с использованием маскированного языкового моделирования. Именно этот токен модель будет пытаться предсказать. - additional_special_tokens (
List[str], необязательный, по умолчанию['<special0>', '<special1>', '<special2>', '<special3>', '<special4>', '<special5>', '<special6>', '<special7>', '<special8>', '<special9>']) — Список дополнительных специальных токенов. - lang2id (
Dict[str, int], необязательный) — Словарь, сопоставляющий строковые идентификаторы языков с их ID. - id2lang (
Dict[int, str], необязательный) — Словарь, сопоставляющий идентификаторы языков с их строковыми обозначениями. - do_lowercase_and_remove_accent (
bool, необязательный, по умолчаниюTrue) — Определяет, нужно ли приводить текст к нижнему регистру и удалять диакритические знаки при токенизации.
Создаёт токенизатор XLM. Основан на байтовом парном кодировании (Byte-Pair Encoding). Процесс токенизации выглядит следующим образом:
- Предобработка и токенизация Moses для большинства поддерживаемых языков.
- Токенизация с учётом особенностей языка для китайского (Jieba), японского (KyTea) и тайского (PyThaiNLP).
- Необязательно приводит весь входной текст к нижнему регистру и нормализует его.
- Аргумент
special_tokensи функцияset_special_tokensмогут использоваться для добавления дополнительных символов (например, ”classify”) в словарь. - Атрибут
lang2idсопоставляет языки, поддерживаемые моделью, с их идентификаторами, если они заданы (устанавливается автоматически для предобученных словарей). - Атрибут
id2langвыполняет обратное отображение, если он задан (устанавливается автоматически для предобученных словарей).
Этот токенизатор наследуется от PreTrainedTokenizer, который содержит большинство основных методов. За дополнительной информацией об этих методах следует обращаться к этому суперклассу.
build_inputs_with_special_tokens
< source >( token_ids_0: listtoken_ids_1: list[int] | None = None ) → List[int]
Параметры
- token_ids_0 (
List[int]) — Список идентификаторов, к которым будут добавлены специальные токены. - token_ids_1 (
List[int], необязательный) — Необязательный второй список идентификаторов для пар последовательностей.
Возвращает
List[int]
Список идентификаторов входных токенов с соответствующими специальными токенами.
Создайте входные данные модели из последовательности или пары последовательностей для задач классификации последовательностей, конкатенируя их и добавляя специальные токены. Последовательность XLM имеет следующий формат:
- одна последовательность:
<s> X </s> - пара последовательностей:
<s> A </s> B </s>
get_special_tokens_mask
< source >( token_ids_0: listtoken_ids_1: list[int] | None = Nonealready_has_special_tokens: bool = False ) → List[int]
Параметры
- token_ids_0 (
List[int]) — Список идентификаторов. - token_ids_1 (
List[int], необязательный) — Необязательный второй список идентификаторов для пар последовательностей. - already_has_special_tokens (
bool, необязательный, по умолчаниюFalse) — Указывает, содержит ли список токенов уже отформатированные специальные токены для модели.
Возвращает
List[int]
Список целых чисел в диапазоне [0, 1]: 1 для специального токена, 0 для токена последовательности.
Получить идентификаторы последовательностей из списка токенов, в который не добавлены специальные токены. Этот метод вызывается при добавлении специальных токенов с помощью метода prepare_for_model токенизатора.
create_token_type_ids_from_sequences
< source >( token_ids_0: listtoken_ids_1: list[int] | None = None ) → list[int]
Создайте маску из двух переданных последовательностей для использования в задаче классификации пар последовательностей.
Этот метод динамически формирует идентификаторы типов токенов на основе атрибутов конфигурации токенизатора:
token_type_ids_pattern: шаблон для использования (“all_zeros” или “bert_style”)token_type_ids_include_special_tokens: Учитывать ли специальные токены при вычислении длины
Примеры:
# All zeros pattern (default, used by RoBERTa, BART, etc.)
tokenizer.token_type_ids_pattern = "all_zeros"
# Returns: [0, 0, 0, ...] for both sequences
# BERT-style pattern (first sequence gets 0s, second gets 1s)
tokenizer.token_type_ids_pattern = "bert_style"
# Returns: [0, 0, 0, ..., 1, 1, 1, ...] for sequence pairsСпецифические для XLM выходные данные
класс transformers.models.xlm.modeling_xlm.XLMForQuestionAnsweringOutput
< source >( loss: typing.Optional[torch.Tensor] = Nonestart_top_log_probs: typing.Optional[torch.Tensor] = Nonestart_top_index: typing.Optional[torch.LongTensor] = Noneend_top_log_probs: typing.Optional[torch.Tensor] = Noneend_top_index: typing.Optional[torch.LongTensor] = Nonecls_logits: typing.Optional[torch.Tensor] = Nonehidden_states: tuple[torch.Tensor, ...] | None = Noneattentions: tuple[torch.Tensor, ...] | None = None )
Параметры
- loss (
torch.Tensorформы(1,), необязательный, возвращается, если заданы иstart_positions, иend_positions) — Потери классификации, представленные как сумма потерь классификации начального токена, конечного токена (а также is_impossible, если он задан). - start_top_log_probs (
torch.Tensorформы(batch_size, config.start_n_top), необязательный, возвращается, еслиstart_positionsилиend_positionsне указаны) — Логарифмические вероятности для config.start_n_top наиболее вероятных стартовых токенов (поиск по лучам). - start_top_index (
torch.LongTensorформы(batch_size, config.start_n_top), необязательный, возвращается, еслиstart_positionsилиend_positionsне переданы) — Индексы для config.start_n_top наиболее вероятных вариантов стартового токена (поиск по лучам). - end_top_log_probs (
torch.Tensorформы(batch_size, config.start_n_top * config.end_n_top), необязательный, возвращается, еслиstart_positionsилиend_positionsне указаны) — Логарифмические вероятности для топ-config.start_n_top * config.end_n_topвариантов конечных токенов (beam-search). - end_top_index (
torch.LongTensorформы(batch_size, config.start_n_top * config.end_n_top), необязательный, возвращается, еслиstart_positionsилиend_positionsне заданы) — Индексы дляconfig.start_n_top * config.end_n_topнаиболее вероятных вариантов конечного токена (поиск по лучам). - cls_logits (
torch.Tensorформы(batch_size,), необязательный, возвращается, еслиstart_positionsилиend_positionsне указаны) — Логарифмические вероятности для меткиis_impossibleответов. - hidden_states (
tuple[torch.Tensor, ...], необязательный, возвращается, еслиoutput_hidden_states=Trueпередан или еслиconfig.output_hidden_states=True) — кортежtorch.Tensor(по одному для вывода слоя встраиваний, если модель имеет слой встраиваний, + по одному для вывода каждого слоя) формы(batch_size, sequence_length, hidden_size).Скрытые состояния модели на выходе каждого слоя, а также необязательные выходные значения начального слоя встраивания.
- attentions (
tuple[torch.Tensor, ...], необязательный, возвращается, еслиoutput_attentions=Trueпередан или еслиconfig.output_attentions=True) — Кортежtorch.Tensor(по одному для каждого слоя) формы(batch_size, num_heads, sequence_length, sequence_length).Веса внимания после softmax в механизме внимания, используемые для вычисления взвешенного среднего в головах само-внимания.
Базовый класс для выходов моделей вопросно-ответных систем, использующих XLMSQuADHead.
XLMModel
класс transformers.XLMModel
< source >( config: XLMConfig )
Параметры
- config (XLMConfig) — Класс конфигурации модели, содержащий все параметры модели. Инициализация с помощью файла конфигурации не загружает веса, связанные с моделью, а только конфигурацию. Используйте метод from_pretrained() для загрузки весов модели.
Модель Xlm без дополнительных слоёв, выводящая необработанные скрытые состояния.
Эта модель наследуется от PreTrainedModel. См. документацию родительского класса для общих методов, которые библиотека реализует для всех своих моделей (например, загрузка или сохранение, изменение размера входных эмбеддингов, обрезка голов и т. д.)
Эта модель также является подклассом torch.nn.Module в PyTorch. Используйте её как обычный модуль PyTorch и обращайтесь к документации PyTorch по всем вопросам, связанным с общим использованием и поведением.
forward
< source >( input_ids: typing.Optional[torch.Tensor] = Noneattention_mask: typing.Optional[torch.Tensor] = Nonelangs: typing.Optional[torch.Tensor] = Nonetoken_type_ids: typing.Optional[torch.Tensor] = Noneposition_ids: typing.Optional[torch.Tensor] = Nonelengths: typing.Optional[torch.Tensor] = Nonecache: dict[str, torch.Tensor] | None = Noneinputs_embeds: typing.Optional[torch.Tensor] = Noneoutput_attentions: bool | None = Noneoutput_hidden_states: bool | None = Nonereturn_dict: bool | None = None**kwargs ) → BaseModelOutput or tuple(torch.Tensor)
Параметры
- input_ids (
torch.Tensorформы(batch_size, sequence_length), необязательный) — Индексы токенов входной последовательности в словаре. По умолчанию padding игнорируется.Индексы можно получить с помощью AutoTokenizer. Подробности см. в PreTrainedTokenizer.encode() и PreTrainedTokenizer.call().
- attention_mask (
torch.Tensorформы(batch_size, sequence_length), , необязательный) — Маска для исключения токенов-заполнителей из внимания. Значения маски из диапазона[0, 1]:- 1 для токенов, которые не замаскированы,
- 0 для токенов, которые замаскированы.
- langs (
torch.LongTensorразмером(batch_size, sequence_length), , необязательный) — Параллельная последовательность токенов, используемая для указания языка каждого токена во входных данных. Индексы — это идентификаторы языков, которые можно получить из названий языков с помощью двух карт преобразования, предоставленных в конфигурации модели (доступно только для многоязычных моделей). Более точно, карта название языка → идентификатор языка находится вmodel.config.lang2id((это словарь, сопоставляющий строки с целыми числами), а карта идентификатор языка → название языка находится вmodel.config.id2lang((словарь, сопоставляющий целые числа со строками).См. примеры использования, подробно описанные в многоязычной документации.
- token_type_ids (
torch.Tensorформы(batch_size, sequence_length), , необязательный) — Индексы сегментных токенов для указания первой и второй частей входных данных. Индексы выбираются из[0, 1]:- 0 соответствует токену sentence A,
- 1 соответствует токену sentence B.
- position_ids (
torch.Tensorформы(batch_size, sequence_length), , необязательный) — Индексы позиций токенов каждого входного последовательности в позиционных эмбеддингах. Выбираются из диапазона[0, config.n_positions - 1]. - lengths (
torch.LongTensorформы(batch_size,), необязательный) — Длина каждого предложения, которую можно использовать, чтобы избежать применения механизма внимания к индексам токенов отступов. Для достижения того же результата можно также использовать attention_mask (см. выше); параметр сохранён здесь в целях совместимости. Индексы выбираются из диапазона[0, ..., input_ids.size(-1)]. - cache (
dict[str, torch.Tensor], необязательный) — ЭкземплярEncoderDecoderCache, содержащий предварительно вычисленные KV-состояния. Может использоваться для ускорения последовательного декодирования. - inputs_embeds (
torch.Tensorформы(batch_size, sequence_length, hidden_size), необязательный) — При необходимости, вместо передачиinput_idsможно напрямую передать встроенное представление. Это полезно, если требуется больший контроль над тем, как индексыinput_idsпреобразуются в соответствующие векторы, чем это обеспечивает внутренняя матрица поиска встраиваний модели. - output_attentions (
bool, необязательный) — Указывает, следует ли возвращать тензоры внимания всех слоев внимания. Подробности см. в описанииattentionsв разделе возвращаемых тензоров. - output_hidden_states (
bool, необязательный) — Указывает, следует ли возвращать скрытые состояния всех слоев. Подробности см. в описанииhidden_statesсреди возвращаемых тензоров. - return_dict (
bool, необязательный) — Указывает, следует ли возвращать ModelOutput вместо обычного кортежа.
Возвращает
BaseModelOutput или tuple(torch.Tensor)
Объект BaseModelOutput или кортеж из
torch.Tensor (если передано return_dict=False или если config.return_dict=False), содержащий различные
элементы в зависимости от конфигурации (XLMConfig) и входных данных.
Метод XLMModel forward переопределяет специальный метод __call__.
Хотя рецепт для прямого прохода должен быть определён внутри этой функции, после этого следует вызывать экземпляр
Module, а не эту функцию, поскольку первый вариант обеспечивает выполнение шагов предварительной и последующей обработки, тогда как второй молча их игнорирует.
last_hidden_state (
torch.Tensorформы(batch_size, sequence_length, hidden_size)) — Последовательность скрытых состояний на выходе последнего слоя модели.hidden_states (
tuple(torch.Tensor), optional, возвращается, если переданоoutput_hidden_states=Trueили еслиconfig.output_hidden_states=True) — кортеж изtorch.Tensor(один для вывода слоя встраиваний, если модель имеет слой встраиваний, + один для вывода каждого слоя) формы(batch_size, sequence_length, hidden_size).Скрытые состояния модели на выходе каждого слоя, а также необязательные выходные значения начального слоя встраивания.
attentions (
tuple(torch.Tensor), необязательный, возвращается при передачеoutput_attentions=Trueили приconfig.output_attentions=True) — Кортежtorch.Tensor(по одному на каждый слой) формы(batch_size, num_heads, sequence_length, sequence_length).Веса внимания после softmax в механизме внимания, используемые для вычисления взвешенного среднего в головах само-внимания.
XLMWithLMHeadModel
класс transformers.XLMWithLMHeadModel
< source >( config: XLMConfig )
Параметры
- config (XLMConfig) — Класс конфигурации модели, содержащий все параметры модели. Инициализация с помощью файла конфигурации не загружает веса, связанные с моделью, а только конфигурацию. Используйте метод from_pretrained() для загрузки весов модели.
Трансформер модели XLM с головной частью для моделирования языка сверху (линейный слой с весами, связанными с входными эмбеддингами).
Эта модель наследуется от PreTrainedModel. См. документацию родительского класса для общих методов, которые библиотека реализует для всех своих моделей (например, загрузка или сохранение, изменение размера входных эмбеддингов, обрезка голов и т. д.)
Эта модель также является подклассом torch.nn.Module в PyTorch. Используйте её как обычный модуль PyTorch и обращайтесь к документации PyTorch по всем вопросам, связанным с общим использованием и поведением.
forward
< source >( input_ids: typing.Optional[torch.Tensor] = Noneattention_mask: typing.Optional[torch.Tensor] = Nonelangs: typing.Optional[torch.Tensor] = Nonetoken_type_ids: typing.Optional[torch.Tensor] = Noneposition_ids: typing.Optional[torch.Tensor] = Nonelengths: typing.Optional[torch.Tensor] = Nonecache: dict[str, torch.Tensor] | None = Noneinputs_embeds: typing.Optional[torch.Tensor] = Nonelabels: typing.Optional[torch.Tensor] = Noneoutput_attentions: bool | None = Noneoutput_hidden_states: bool | None = Nonereturn_dict: bool | None = Nonelogits_to_keep: typing.Union[int, torch.Tensor] = 0**kwargs ) → MaskedLMOutput or tuple(torch.Tensor)
Параметры
- input_ids (
torch.Tensorформы(batch_size, sequence_length), необязательный) — Индексы токенов входной последовательности в словаре. По умолчанию padding игнорируется.Индексы можно получить с помощью AutoTokenizer. Подробности см. в PreTrainedTokenizer.encode() и PreTrainedTokenizer.call().
- attention_mask (
torch.Tensorформы(batch_size, sequence_length), , необязательный) — Маска для исключения токенов-заполнителей из внимания. Значения маски из диапазона[0, 1]:- 1 для токенов, которые не замаскированы,
- 0 для токенов, которые замаскированы.
- langs (
torch.LongTensorразмером(batch_size, sequence_length), , необязательный) — Параллельная последовательность токенов, используемая для указания языка каждого токена во входных данных. Индексы — это идентификаторы языков, которые можно получить из названий языков с помощью двух карт преобразования, предоставленных в конфигурации модели (доступно только для многоязычных моделей). Более точно, карта название языка → идентификатор языка находится вmodel.config.lang2id((это словарь, сопоставляющий строки с целыми числами), а карта идентификатор языка → название языка находится вmodel.config.id2lang((словарь, сопоставляющий целые числа со строками).См. примеры использования, подробно описанные в многоязычной документации.
- token_type_ids (
torch.Tensorформы(batch_size, sequence_length), , необязательный) — Индексы сегментных токенов для указания первой и второй частей входных данных. Индексы выбираются из[0, 1]:- 0 соответствует токену sentence A,
- 1 соответствует токену sentence B.
- position_ids (
torch.Tensorформы(batch_size, sequence_length), , необязательный) — Индексы позиций токенов каждого входного последовательности в позиционных эмбеддингах. Выбираются из диапазона[0, config.n_positions - 1]. - lengths (
torch.LongTensorформы(batch_size,), необязательный) — Длина каждого предложения, которую можно использовать, чтобы избежать применения механизма внимания к индексам токенов отступов. Для достижения того же результата можно также использовать attention_mask (см. выше); параметр сохранён здесь в целях совместимости. Индексы выбираются из диапазона[0, ..., input_ids.size(-1)]. - cache (
dict[str, torch.Tensor], необязательный) — ЭкземплярEncoderDecoderCache, содержащий предварительно вычисленные KV-состояния. Может использоваться для ускорения последовательного декодирования. - inputs_embeds (
torch.Tensorформы(batch_size, sequence_length, hidden_size), необязательный) — При необходимости, вместо передачиinput_idsможно напрямую передать встроенное представление. Это полезно, если требуется больший контроль над тем, как индексыinput_idsпреобразуются в соответствующие векторы, чем это обеспечивает внутренняя матрица поиска встраиваний модели. - labels (
torch.LongTensorформы(batch_size, sequence_length), необязательный) — Метки для моделирования языка. Обратите внимание, что метки сдвигаются внутри модели, то есть можно задатьlabels = input_idsИндексы выбираются из диапазона[-100, 0, ..., config.vocab_size]Все метки, установленные в-100, игнорируются (маскируются); потеря вычисляется только для меток из диапазона[0, ..., config.vocab_size] - output_attentions (
bool, необязательный) — Указывает, следует ли возвращать тензоры внимания всех слоев внимания. Подробности см. в описанииattentionsв разделе возвращаемых тензоров. - output_hidden_states (
bool, необязательный) — Указывает, следует ли возвращать скрытые состояния всех слоев. Подробности см. в описанииhidden_statesсреди возвращаемых тензоров. - return_dict (
bool, необязательный) — Указывает, следует ли возвращать ModelOutput вместо обычного кортежа. - logits_to_keep (
Union[int, torch.Tensor], необязательный, по умолчанию0) — Если передано значение типаint, вычисляет logits для последнихlogits_to_keepтокенов. Если указано0, logits вычисляются для всехinput_ids(особый случай). Для генерации нужны logits только последнего токена, и вычисление их только для этого токена позволяет сэкономить память, что становится весьма значимым для длинных последовательностей или большого размера словаря. Если передано значение типаtorch.Tensor, оно должно быть одномерным и соответствовать индексам, которые нужно сохранить в измерении длины последовательности. Это полезно при использовании упакованного формата тензоров (один размер для batch и длины последовательности).
Возвращает
MaskedLMOutput или tuple(torch.Tensor)
Объект MaskedLMOutput или кортеж
torch.Tensor (если передано return_dict=False или если config.return_dict=False), содержащий различные
элементы в зависимости от конфигурации (XLMConfig) и входных данных.
Метод forward модели XLMWithLMHeadModel переопределяет специальный метод __call__.
Хотя рецепт для прямого прохода должен быть определён внутри этой функции, после этого следует вызывать экземпляр
Module, а не эту функцию, поскольку первый вариант обеспечивает выполнение шагов предварительной и последующей обработки, тогда как второй молча их игнорирует.
loss (
torch.Tensorформы(1,), необязательный, возвращается, если переданlabels) — Потери маскированного языкового моделирования (MLM).logits (
torch.Tensorформы(batch_size, sequence_length, config.vocab_size)) — Оценки предсказаний языковой модели (оценки для каждого токена словаря до применения SoftMax).hidden_states (
tuple(torch.Tensor), optional, возвращается, если переданоoutput_hidden_states=Trueили еслиconfig.output_hidden_states=True) — кортеж изtorch.Tensor(один для вывода слоя встраиваний, если модель имеет слой встраиваний, + один для вывода каждого слоя) формы(batch_size, sequence_length, hidden_size).Скрытые состояния модели на выходе каждого слоя, а также необязательные выходные значения начального слоя встраивания.
attentions (
tuple(torch.Tensor), необязательный, возвращается при передачеoutput_attentions=Trueили приconfig.output_attentions=True) — Кортежtorch.Tensor(по одному на каждый слой) формы(batch_size, num_heads, sequence_length, sequence_length).Веса внимания после softmax в механизме внимания, используемые для вычисления взвешенного среднего в головах само-внимания.
Пример:
>>> import torch
>>> from transformers import AutoTokenizer, XLMWithLMHeadModel
>>> tokenizer = AutoTokenizer.from_pretrained("FacebookAI/xlm-mlm-en-2048")
>>> model = XLMWithLMHeadModel.from_pretrained("FacebookAI/xlm-mlm-en-2048")
>>> inputs = tokenizer("Hello, my dog is cute", return_tensors="pt")
>>> outputs = model(**inputs, labels=inputs["input_ids"])
>>> loss = outputs.loss
>>> logits = outputs.logitsXLMForSequenceClassification
класс transformers.XLMForSequenceClassification
< source >( config: XLMConfig )
Параметры
- config (XLMConfig) — Класс конфигурации модели, содержащий все параметры модели. Инициализация с помощью файла конфигурации не загружает веса, связанные с моделью, а только конфигурацию. Используйте метод from_pretrained() для загрузки весов модели.
Модель XLM с головной частью для классификации/регрессии последовательностей (линейный слой поверх пуллинг-выхода), например, для задач GLUE.
Эта модель наследуется от PreTrainedModel. См. документацию родительского класса для общих методов, которые библиотека реализует для всех своих моделей (например, загрузка или сохранение, изменение размера входных эмбеддингов, обрезка голов и т. д.)
Эта модель также является подклассом torch.nn.Module в PyTorch. Используйте её как обычный модуль PyTorch и обращайтесь к документации PyTorch по всем вопросам, связанным с общим использованием и поведением.
forward
< source >( input_ids: typing.Optional[torch.Tensor] = Noneattention_mask: typing.Optional[torch.Tensor] = Nonelangs: typing.Optional[torch.Tensor] = Nonetoken_type_ids: typing.Optional[torch.Tensor] = Noneposition_ids: typing.Optional[torch.Tensor] = Nonelengths: typing.Optional[torch.Tensor] = Nonecache: dict[str, torch.Tensor] | None = Noneinputs_embeds: typing.Optional[torch.Tensor] = Nonelabels: typing.Optional[torch.Tensor] = Noneoutput_attentions: bool | None = Noneoutput_hidden_states: bool | None = Nonereturn_dict: bool | None = None**kwargs ) → SequenceClassifierOutput or tuple(torch.Tensor)
Параметры
- input_ids (
torch.Tensorформы(batch_size, sequence_length), необязательный) — Индексы токенов входной последовательности в словаре. По умолчанию padding игнорируется.Индексы можно получить с помощью AutoTokenizer. Подробности см. в PreTrainedTokenizer.encode() и PreTrainedTokenizer.call().
- attention_mask (
torch.Tensorформы(batch_size, sequence_length), , необязательный) — Маска для исключения токенов-заполнителей из внимания. Значения маски из диапазона[0, 1]:- 1 для токенов, которые не замаскированы,
- 0 для токенов, которые замаскированы.
- langs (
torch.LongTensorразмером(batch_size, sequence_length), , необязательный) — Параллельная последовательность токенов, используемая для указания языка каждого токена во входных данных. Индексы — это идентификаторы языков, которые можно получить из названий языков с помощью двух карт преобразования, предоставленных в конфигурации модели (доступно только для многоязычных моделей). Более точно, карта название языка → идентификатор языка находится вmodel.config.lang2id((это словарь, сопоставляющий строки с целыми числами), а карта идентификатор языка → название языка находится вmodel.config.id2lang((словарь, сопоставляющий целые числа со строками).См. примеры использования, подробно описанные в многоязычной документации.
- token_type_ids (
torch.Tensorформы(batch_size, sequence_length), , необязательный) — Индексы сегментных токенов для указания первой и второй частей входных данных. Индексы выбираются из[0, 1]:- 0 соответствует токену sentence A,
- 1 соответствует токену sentence B.
- position_ids (
torch.Tensorформы(batch_size, sequence_length), , необязательный) — Индексы позиций токенов каждого входного последовательности в позиционных эмбеддингах. Выбираются из диапазона[0, config.n_positions - 1]. - lengths (
torch.LongTensorформы(batch_size,), необязательный) — Длина каждого предложения, которую можно использовать, чтобы избежать применения механизма внимания к индексам токенов отступов. Для достижения того же результата можно также использовать attention_mask (см. выше); параметр сохранён здесь в целях совместимости. Индексы выбираются из диапазона[0, ..., input_ids.size(-1)]. - cache (
dict[str, torch.Tensor], необязательный) — ЭкземплярEncoderDecoderCache, содержащий предварительно вычисленные KV-состояния. Может использоваться для ускорения последовательного декодирования. - inputs_embeds (
torch.Tensorформы(batch_size, sequence_length, hidden_size), необязательный) — При необходимости, вместо передачиinput_idsможно напрямую передать встроенное представление. Это полезно, если требуется больший контроль над тем, как индексыinput_idsпреобразуются в соответствующие векторы, чем это обеспечивает внутренняя матрица поиска встраиваний модели. - labels (
torch.LongTensorформы(batch_size,), необязательный) — Метки для вычисления функции потерь классификации/регрессии последовательности. Индексы должны находиться в диапазоне[0, ..., config.num_labels - 1]. Еслиconfig.num_labels == 1, вычисляется функция потерь регрессии (среднеквадратичная ошибка), еслиconfig.num_labels > 1, вычисляется функция потерь классификации (кросс-энтропия). - output_attentions (
bool, необязательный) — Указывает, следует ли возвращать тензоры внимания всех слоев внимания. Подробности см. в описанииattentionsв разделе возвращаемых тензоров. - output_hidden_states (
bool, необязательный) — Указывает, следует ли возвращать скрытые состояния всех слоев. Подробности см. в описанииhidden_statesсреди возвращаемых тензоров. - return_dict (
bool, необязательный) — Указывает, следует ли возвращать ModelOutput вместо обычного кортежа.
Возвращает
SequenceClassifierOutput или tuple(torch.Tensor)
Объект SequenceClassifierOutput или кортеж из
torch.Tensor (если передано return_dict=False или если config.return_dict=False), содержащий различные
элементы в зависимости от конфигурации (XLMConfig) и входных данных.
Метод forward класса XLMForSequenceClassification переопределяет специальный метод __call__.
Хотя рецепт для прямого прохода должен быть определён внутри этой функции, после этого следует вызывать экземпляр
Module, а не эту функцию, поскольку первый вариант обеспечивает выполнение шагов предварительной и последующей обработки, тогда как второй молча их игнорирует.
loss (
torch.Tensorформы(1,), необязательный, возвращается, если заданlabels) — Потери классификации (или регрессии, если config.num_labels==1).logits (
torch.Tensorформы(batch_size, config.num_labels)) — Оценки для классификации (или регрессии, если config.num_labels==1) до применения SoftMax.hidden_states (
tuple(torch.Tensor), optional, возвращается, если переданоoutput_hidden_states=Trueили еслиconfig.output_hidden_states=True) — кортеж изtorch.Tensor(один для вывода слоя встраиваний, если модель имеет слой встраиваний, + один для вывода каждого слоя) формы(batch_size, sequence_length, hidden_size).Скрытые состояния модели на выходе каждого слоя, а также необязательные выходные значения начального слоя встраивания.
attentions (
tuple(torch.Tensor), необязательный, возвращается при передачеoutput_attentions=Trueили приconfig.output_attentions=True) — Кортежtorch.Tensor(по одному на каждый слой) формы(batch_size, num_heads, sequence_length, sequence_length).Веса внимания после softmax в механизме внимания, используемые для вычисления взвешенного среднего в головах само-внимания.
Пример классификации с одной меткой:
>>> import torch
>>> from transformers import AutoTokenizer, XLMForSequenceClassification
>>> tokenizer = AutoTokenizer.from_pretrained("FacebookAI/xlm-mlm-en-2048")
>>> model = XLMForSequenceClassification.from_pretrained("FacebookAI/xlm-mlm-en-2048")
>>> inputs = tokenizer("Hello, my dog is cute", return_tensors="pt")
>>> with torch.no_grad():
... logits = model(**inputs).logits
>>> predicted_class_id = logits.argmax().item()
>>> model.config.id2label[predicted_class_id]
...
>>> # To train a model on `num_labels` classes, you can pass `num_labels=num_labels` to `.from_pretrained(...)`
>>> num_labels = len(model.config.id2label)
>>> model = XLMForSequenceClassification.from_pretrained("FacebookAI/xlm-mlm-en-2048", num_labels=num_labels)
>>> labels = torch.tensor([1])
>>> loss = model(**inputs, labels=labels).loss
>>> round(loss.item(), 2)
...Пример многоклассовой классификации:
>>> import torch
>>> from transformers import AutoTokenizer, XLMForSequenceClassification
>>> tokenizer = AutoTokenizer.from_pretrained("FacebookAI/xlm-mlm-en-2048")
>>> model = XLMForSequenceClassification.from_pretrained("FacebookAI/xlm-mlm-en-2048", problem_type="multi_label_classification")
>>> inputs = tokenizer("Hello, my dog is cute", return_tensors="pt")
>>> with torch.no_grad():
... logits = model(**inputs).logits
>>> predicted_class_ids = torch.arange(0, logits.shape[-1])[torch.sigmoid(logits).squeeze(dim=0) > 0.5]
>>> # To train a model on `num_labels` classes, you can pass `num_labels=num_labels` to `.from_pretrained(...)`
>>> num_labels = len(model.config.id2label)
>>> model = XLMForSequenceClassification.from_pretrained(
... "FacebookAI/xlm-mlm-en-2048", num_labels=num_labels, problem_type="multi_label_classification"
... )
>>> labels = torch.sum(
... torch.nn.functional.one_hot(predicted_class_ids[None, :].clone(), num_classes=num_labels), dim=1
... ).to(torch.float)
>>> loss = model(**inputs, labels=labels).lossXLMForMultipleChoice
класс transformers.XLMForMultipleChoice
< source >( config: XLMConfig*inputs**kwargs )
Параметры
- config (XLMConfig) — Класс конфигурации модели, содержащий все параметры модели. Инициализация с помощью файла конфигурации не загружает веса, связанные с моделью, а только конфигурацию. Используйте метод from_pretrained() для загрузки весов модели.
Модель Xlm с головой для классификации с множественным выбором (линейный слой поверх пуллинг-выхода и softmax), например, для задач RocStories/SWAG.
Эта модель наследуется от PreTrainedModel. См. документацию родительского класса для общих методов, которые библиотека реализует для всех своих моделей (например, загрузка или сохранение, изменение размера входных эмбеддингов, обрезка голов и т. д.)
Эта модель также является подклассом torch.nn.Module в PyTorch. Используйте её как обычный модуль PyTorch и обращайтесь к документации PyTorch по всем вопросам, связанным с общим использованием и поведением.
forward
< source >( input_ids: typing.Optional[torch.Tensor] = Noneattention_mask: typing.Optional[torch.Tensor] = Nonelangs: typing.Optional[torch.Tensor] = Nonetoken_type_ids: typing.Optional[torch.Tensor] = Noneposition_ids: typing.Optional[torch.Tensor] = Nonelengths: typing.Optional[torch.Tensor] = Nonecache: dict[str, torch.Tensor] | None = Noneinputs_embeds: typing.Optional[torch.Tensor] = Nonelabels: typing.Optional[torch.Tensor] = Noneoutput_attentions: bool | None = Noneoutput_hidden_states: bool | None = Nonereturn_dict: bool | None = None**kwargs ) → MultipleChoiceModelOutput or tuple(torch.Tensor)
Параметры
- input_ids (
torch.LongTensorформы(batch_size, num_choices, sequence_length)) — Индексы токенов входной последовательности в словаре.Индексы можно получить с помощью AutoTokenizer. Подробности см. в PreTrainedTokenizer.encode() и PreTrainedTokenizer.call().
- attention_mask (
torch.Tensorформы(batch_size, sequence_length), , необязательный) — Маска для исключения токенов-заполнителей из внимания. Значения маски из диапазона[0, 1]:- 1 для токенов, которые не замаскированы,
- 0 для токенов, которые замаскированы.
- langs (
torch.LongTensorформы(batch_size, num_choices, sequence_length), необязательный) — Параллельная последовательность токенов, используемая для указания языка каждого токена во входных данных. Индексы — это идентификаторы языков, которые можно получить из названий языков с помощью двух карт преобразований, предоставленных в конфигурации модели (доступно только для многоязычных моделей). Более точно, карта название языка в идентификатор языка находится вmodel.config.lang2id((это словарь, сопоставляющий строки с целыми числами), а карта идентификатор языка в название языка находится вmodel.config.id2lang((словарь, сопоставляющий целые числа со строками).См. примеры использования, подробно описанные в многоязычной документации.
- token_type_ids (
torch.LongTensorформы(batch_size, num_choices, sequence_length), необязательный) — Индексы сегментов для указания первой и второй частей входных данных. Индексы выбираются из[0, 1]:- 0 соответствует токену sentence A,
- 1 соответствует токену sentence B.
- position_ids (
torch.LongTensorформы(batch_size, num_choices, sequence_length), , необязательный) — Индексы позиций токенов каждого входного последовательности в позиционных эмбеддингах. Выбранные в диапазоне[0, config.max_position_embeddings - 1]. - lengths (
torch.LongTensorформы(batch_size,), необязательный) — Длина каждого предложения, которую можно использовать, чтобы избежать применения механизма внимания к индексам токенов отступов. Для достижения того же результата можно также использовать attention_mask (см. выше); параметр сохранён здесь в целях совместимости. Индексы выбираются из диапазона[0, ..., input_ids.size(-1)]. - cache (
dict[str, torch.Tensor], необязательный) — ЭкземплярEncoderDecoderCache, содержащий предварительно вычисленные KV-состояния. Может использоваться для ускорения последовательного декодирования. - inputs_embeds (
torch.Tensorформы(batch_size, num_choices, sequence_length, hidden_size), необязательный) — При необходимости вместо передачиinput_idsможно напрямую передать встроенное представление. Это полезно, если требуется больший контроль над тем, как индексыinput_idsпреобразуются в соответствующие векторы, чем позволяет внутренняя матрица поиска встраиваний модели. - labels (
torch.LongTensorформы(batch_size,), необязательный) — Метки для вычисления функции потерь классификации с множественным выбором. Индексы должны находиться в диапазоне[0, ..., num_choices-1], гдеnum_choices— размер второго измерения входных тензоров. (См.input_idsвыше) - output_attentions (
bool, необязательный) — Указывает, следует ли возвращать тензоры внимания всех слоев внимания. Подробности см. в описанииattentionsв разделе возвращаемых тензоров. - output_hidden_states (
bool, необязательный) — Указывает, следует ли возвращать скрытые состояния всех слоев. Подробности см. в описанииhidden_statesсреди возвращаемых тензоров. - return_dict (
bool, необязательный) — Указывает, следует ли возвращать ModelOutput вместо обычного кортежа.
Возвращает
MultipleChoiceModelOutput или tuple(torch.Tensor)
Объект MultipleChoiceModelOutput или кортеж
torch.Tensor (если передано return_dict=False или если config.return_dict=False), содержащий различные
элементы в зависимости от конфигурации (XLMConfig) и входных данных.
Метод forward класса XLMForMultipleChoice переопределяет специальный метод __call__.
Хотя рецепт для прямого прохода должен быть определён внутри этой функции, после этого следует вызывать экземпляр
Module, а не эту функцию, поскольку первый вариант обеспечивает выполнение шагов предварительной и последующей обработки, тогда как второй молча их игнорирует.
loss (
torch.Tensorформы (1,), необязательный, возвращается, если заданlabels) — Потери классификации.logits (
torch.Tensorформы(batch_size, num_choices)) — num_choices — это второе измерение входных тензоров (см. input_ids выше).Оценки классификации (до SoftMax).
hidden_states (
tuple(torch.Tensor), optional, возвращается, если переданоoutput_hidden_states=Trueили еслиconfig.output_hidden_states=True) — кортеж изtorch.Tensor(один для вывода слоя встраиваний, если модель имеет слой встраиваний, + один для вывода каждого слоя) формы(batch_size, sequence_length, hidden_size).Скрытые состояния модели на выходе каждого слоя, а также необязательные выходные значения начального слоя встраивания.
attentions (
tuple(torch.Tensor), необязательный, возвращается при передачеoutput_attentions=Trueили приconfig.output_attentions=True) — Кортежtorch.Tensor(по одному на каждый слой) формы(batch_size, num_heads, sequence_length, sequence_length).Веса внимания после softmax в механизме внимания, используемые для вычисления взвешенного среднего в головах само-внимания.
Пример:
>>> from transformers import AutoTokenizer, XLMForMultipleChoice
>>> import torch
>>> tokenizer = AutoTokenizer.from_pretrained("FacebookAI/xlm-mlm-en-2048")
>>> model = XLMForMultipleChoice.from_pretrained("FacebookAI/xlm-mlm-en-2048")
>>> prompt = "In Italy, pizza served in formal settings, such as at a restaurant, is presented unsliced."
>>> choice0 = "It is eaten with a fork and a knife."
>>> choice1 = "It is eaten while held in the hand."
>>> labels = torch.tensor(0).unsqueeze(0) # choice0 is correct (according to Wikipedia ;)), batch size 1
>>> encoding = tokenizer([prompt, prompt], [choice0, choice1], return_tensors="pt", padding=True)
>>> outputs = model(**{k: v.unsqueeze(0) for k, v in encoding.items()}, labels=labels) # batch size is 1
>>> # the linear classifier still needs to be trained
>>> loss = outputs.loss
>>> logits = outputs.logitsXLMForTokenClassification
класс transformers.XLMForTokenClassification
< source >( config: XLMConfig )
Параметры
- config (XLMConfig) — Класс конфигурации модели, содержащий все параметры модели. Инициализация с помощью файла конфигурации не загружает веса, связанные с моделью, а только конфигурацию. Используйте метод from_pretrained() для загрузки весов модели.
Трансформер Xlm с головой для классификации токенов (линейный слой поверх выходных скрытых состояний), например, для задач распознавания именованных сущностей (NER).
Эта модель наследуется от PreTrainedModel. См. документацию родительского класса для общих методов, которые библиотека реализует для всех своих моделей (например, загрузка или сохранение, изменение размера входных эмбеддингов, обрезка голов и т. д.)
Эта модель также является подклассом torch.nn.Module в PyTorch. Используйте её как обычный модуль PyTorch и обращайтесь к документации PyTorch по всем вопросам, связанным с общим использованием и поведением.
forward
< source >( input_ids: typing.Optional[torch.Tensor] = Noneattention_mask: typing.Optional[torch.Tensor] = Nonelangs: typing.Optional[torch.Tensor] = Nonetoken_type_ids: typing.Optional[torch.Tensor] = Noneposition_ids: typing.Optional[torch.Tensor] = Nonelengths: typing.Optional[torch.Tensor] = Nonecache: dict[str, torch.Tensor] | None = Noneinputs_embeds: typing.Optional[torch.Tensor] = Nonelabels: typing.Optional[torch.Tensor] = Noneoutput_attentions: bool | None = Noneoutput_hidden_states: bool | None = Nonereturn_dict: bool | None = None**kwargs ) → TokenClassifierOutput or tuple(torch.Tensor)
Параметры
- input_ids (
torch.Tensorформы(batch_size, sequence_length), необязательный) — Индексы токенов входной последовательности в словаре. По умолчанию padding игнорируется.Индексы можно получить с помощью AutoTokenizer. Подробности см. в PreTrainedTokenizer.encode() и PreTrainedTokenizer.call().
- attention_mask (
torch.Tensorформы(batch_size, sequence_length), , необязательный) — Маска для исключения токенов-заполнителей из внимания. Значения маски из диапазона[0, 1]:- 1 для токенов, которые не замаскированы,
- 0 для токенов, которые замаскированы.
- langs (
torch.LongTensorразмером(batch_size, sequence_length), , необязательный) — Параллельная последовательность токенов, используемая для указания языка каждого токена во входных данных. Индексы — это идентификаторы языков, которые можно получить из названий языков с помощью двух карт преобразования, предоставленных в конфигурации модели (доступно только для многоязычных моделей). Более точно, карта название языка → идентификатор языка находится вmodel.config.lang2id((это словарь, сопоставляющий строки с целыми числами), а карта идентификатор языка → название языка находится вmodel.config.id2lang((словарь, сопоставляющий целые числа со строками).См. примеры использования, подробно описанные в многоязычной документации.
- token_type_ids (
torch.Tensorформы(batch_size, sequence_length), , необязательный) — Индексы сегментных токенов для указания первой и второй частей входных данных. Индексы выбираются из[0, 1]:- 0 соответствует токену sentence A,
- 1 соответствует токену sentence B.
- position_ids (
torch.Tensorформы(batch_size, sequence_length), , необязательный) — Индексы позиций токенов каждого входного последовательности в позиционных эмбеддингах. Выбираются из диапазона[0, config.n_positions - 1]. - lengths (
torch.LongTensorформы(batch_size,), необязательный) — Длина каждого предложения, которую можно использовать, чтобы избежать применения механизма внимания к индексам токенов отступов. Для достижения того же результата можно также использовать attention_mask (см. выше); параметр сохранён здесь в целях совместимости. Индексы выбираются из диапазона[0, ..., input_ids.size(-1)]. - cache (
dict[str, torch.Tensor], необязательный) — ЭкземплярEncoderDecoderCache, содержащий предварительно вычисленные KV-состояния. Может использоваться для ускорения последовательного декодирования. - inputs_embeds (
torch.Tensorформы(batch_size, sequence_length, hidden_size), необязательный) — При необходимости, вместо передачиinput_idsможно напрямую передать встроенное представление. Это полезно, если требуется больший контроль над тем, как индексыinput_idsпреобразуются в соответствующие векторы, чем это обеспечивает внутренняя матрица поиска встраиваний модели. - labels (
torch.LongTensorформы(batch_size, sequence_length), необязательный) — Метки для вычисления функции потерь классификации токенов. Индексы должны находиться в диапазоне[0, ..., config.num_labels - 1]. - output_attentions (
bool, необязательный) — Указывает, следует ли возвращать тензоры внимания всех слоев внимания. Подробности см. в описанииattentionsв разделе возвращаемых тензоров. - output_hidden_states (
bool, необязательный) — Указывает, следует ли возвращать скрытые состояния всех слоев. Подробности см. в описанииhidden_statesсреди возвращаемых тензоров. - return_dict (
bool, необязательный) — Указывает, следует ли возвращать ModelOutput вместо обычного кортежа.
Возвращает
TokenClassifierOutput или tuple(torch.Tensor)
Объект TokenClassifierOutput или кортеж из
torch.Tensor (если передано return_dict=False или если config.return_dict=False), содержащий различные
элементы в зависимости от конфигурации (XLMConfig) и входных данных.
Метод forward класса XLMForTokenClassification переопределяет специальный метод __call__.
Хотя рецепт для прямого прохода должен быть определён внутри этой функции, после этого следует вызывать экземпляр
Module, а не эту функцию, поскольку первый вариант обеспечивает выполнение шагов предварительной и последующей обработки, тогда как второй молча их игнорирует.
loss (
torch.Tensorформы(1,), необязательный, возвращается, если заданlabels) — Потери классификации.logits (
torch.Tensorформы(batch_size, sequence_length, config.num_labels)) — Оценки классификации (до SoftMax).hidden_states (
tuple(torch.Tensor), optional, возвращается, если переданоoutput_hidden_states=Trueили еслиconfig.output_hidden_states=True) — кортеж изtorch.Tensor(один для вывода слоя встраиваний, если модель имеет слой встраиваний, + один для вывода каждого слоя) формы(batch_size, sequence_length, hidden_size).Скрытые состояния модели на выходе каждого слоя, а также необязательные выходные значения начального слоя встраивания.
attentions (
tuple(torch.Tensor), необязательный, возвращается при передачеoutput_attentions=Trueили приconfig.output_attentions=True) — Кортежtorch.Tensor(по одному на каждый слой) формы(batch_size, num_heads, sequence_length, sequence_length).Веса внимания после softmax в механизме внимания, используемые для вычисления взвешенного среднего в головах само-внимания.
Пример:
>>> from transformers import AutoTokenizer, XLMForTokenClassification
>>> import torch
>>> tokenizer = AutoTokenizer.from_pretrained("FacebookAI/xlm-mlm-en-2048")
>>> model = XLMForTokenClassification.from_pretrained("FacebookAI/xlm-mlm-en-2048")
>>> inputs = tokenizer(
... "HuggingFace is a company based in Paris and New York", add_special_tokens=False, return_tensors="pt"
... )
>>> with torch.no_grad():
... logits = model(**inputs).logits
>>> predicted_token_class_ids = logits.argmax(-1)
>>> # Note that tokens are classified rather then input words which means that
>>> # there might be more predicted token classes than words.
>>> # Multiple token classes might account for the same word
>>> predicted_tokens_classes = [model.config.id2label[t.item()] for t in predicted_token_class_ids[0]]
>>> predicted_tokens_classes
...
>>> labels = predicted_token_class_ids
>>> loss = model(**inputs, labels=labels).loss
>>> round(loss.item(), 2)
...XLMForQuestionAnsweringSimple
класс transformers.XLMForQuestionAnsweringSimple
< source >( config: XLMConfig )
Параметры
- config (XLMConfig) — Класс конфигурации модели, содержащий все параметры модели. Инициализация с помощью файла конфигурации не загружает веса, связанные с моделью, а только конфигурацию. Используйте метод from_pretrained() для загрузки весов модели.
Модель XLM со слоем классификации пропусков (span classification head) для задач извлекающего вопросно-ответного типа, таких как SQuAD (линейные слои поверх выходных скрытых состояний для вычисления span start logits и span end logits).
Эта модель наследуется от PreTrainedModel. См. документацию родительского класса для общих методов, которые библиотека реализует для всех своих моделей (например, загрузка или сохранение, изменение размера входных эмбеддингов, обрезка голов и т. д.)
Эта модель также является подклассом torch.nn.Module в PyTorch. Используйте её как обычный модуль PyTorch и обращайтесь к документации PyTorch по всем вопросам, связанным с общим использованием и поведением.
forward
< source >( input_ids: typing.Optional[torch.Tensor] = Noneattention_mask: typing.Optional[torch.Tensor] = Nonelangs: typing.Optional[torch.Tensor] = Nonetoken_type_ids: typing.Optional[torch.Tensor] = Noneposition_ids: typing.Optional[torch.Tensor] = Nonelengths: typing.Optional[torch.Tensor] = Nonecache: dict[str, torch.Tensor] | None = Noneinputs_embeds: typing.Optional[torch.Tensor] = Nonestart_positions: typing.Optional[torch.Tensor] = Noneend_positions: typing.Optional[torch.Tensor] = Noneoutput_attentions: bool | None = Noneoutput_hidden_states: bool | None = Nonereturn_dict: bool | None = None**kwargs ) → QuestionAnsweringModelOutput or tuple(torch.Tensor)
Параметры
- input_ids (
torch.Tensorформы(batch_size, sequence_length), необязательный) — Индексы токенов входной последовательности в словаре. По умолчанию padding игнорируется.Индексы можно получить с помощью AutoTokenizer. Подробности см. в PreTrainedTokenizer.encode() и PreTrainedTokenizer.call().
- attention_mask (
torch.Tensorформы(batch_size, sequence_length), , необязательный) — Маска для исключения токенов-заполнителей из внимания. Значения маски из диапазона[0, 1]:- 1 для токенов, которые не замаскированы,
- 0 для токенов, которые замаскированы.
- langs (
torch.LongTensorразмером(batch_size, sequence_length), , необязательный) — Параллельная последовательность токенов, используемая для указания языка каждого токена во входных данных. Индексы — это идентификаторы языков, которые можно получить из названий языков с помощью двух карт преобразования, предоставленных в конфигурации модели (доступно только для многоязычных моделей). Более точно, карта название языка → идентификатор языка находится вmodel.config.lang2id((это словарь, сопоставляющий строки с целыми числами), а карта идентификатор языка → название языка находится вmodel.config.id2lang((словарь, сопоставляющий целые числа со строками).См. примеры использования, подробно описанные в многоязычной документации.
- token_type_ids (
torch.Tensorформы(batch_size, sequence_length), , необязательный) — Индексы сегментных токенов для указания первой и второй частей входных данных. Индексы выбираются из[0, 1]:- 0 соответствует токену sentence A,
- 1 соответствует токену sentence B.
- position_ids (
torch.Tensorформы(batch_size, sequence_length), , необязательный) — Индексы позиций токенов каждого входного последовательности в позиционных эмбеддингах. Выбираются из диапазона[0, config.n_positions - 1]. - lengths (
torch.LongTensorформы(batch_size,), необязательный) — Длина каждого предложения, которую можно использовать, чтобы избежать применения механизма внимания к индексам токенов отступов. Для достижения того же результата можно также использовать attention_mask (см. выше); параметр сохранён здесь в целях совместимости. Индексы выбираются из диапазона[0, ..., input_ids.size(-1)]. - cache (
dict[str, torch.Tensor], необязательный) — ЭкземплярEncoderDecoderCache, содержащий предварительно вычисленные KV-состояния. Может использоваться для ускорения последовательного декодирования. - inputs_embeds (
torch.Tensorформы(batch_size, sequence_length, hidden_size), необязательный) — При необходимости, вместо передачиinput_idsможно напрямую передать встроенное представление. Это полезно, если требуется больший контроль над тем, как индексыinput_idsпреобразуются в соответствующие векторы, чем это обеспечивает внутренняя матрица поиска встраиваний модели. - start_positions (
torch.Tensorформы(batch_size,), необязательный) — Метки для позиции (индекса) начала размеченного фрагмента, используемые для вычисления функции потерь классификации токенов. Позиции ограничиваются длиной последовательности (sequence_length). Позиции, выходящие за пределы последовательности, не учитываются при вычислении функции потерь. - end_positions (
torch.Tensorформы(batch_size,), необязательный) — Метки для позиции (индекса) конца размеченного фрагмента, используемые для вычисления функции потерь классификации токенов. Позиции ограничиваются длиной последовательности (sequence_length). Позиции, выходящие за пределы последовательности, не учитываются при вычислении функции потерь. - output_attentions (
bool, необязательный) — Указывает, следует ли возвращать тензоры внимания всех слоев внимания. Подробности см. в описанииattentionsв разделе возвращаемых тензоров. - output_hidden_states (
bool, необязательный) — Указывает, следует ли возвращать скрытые состояния всех слоев. Подробности см. в описанииhidden_statesсреди возвращаемых тензоров. - return_dict (
bool, необязательный) — Указывает, следует ли возвращать ModelOutput вместо обычного кортежа.
Возвращает
QuestionAnsweringModelOutput или tuple(torch.Tensor)
Объект QuestionAnsweringModelOutput или кортеж
torch.Tensor (если передано return_dict=False или если config.return_dict=False), содержащий различные
элементы в зависимости от конфигурации (XLMConfig) и входных данных.
Метод forward класса XLMForQuestionAnsweringSimple переопределяет специальный метод __call__.
Хотя рецепт для прямого прохода должен быть определён внутри этой функции, после этого следует вызывать экземпляр
Module, а не эту функцию, поскольку первый вариант обеспечивает выполнение шагов предварительной и последующей обработки, тогда как второй молча их игнорирует.
loss (
torch.Tensorформы(1,), необязательный, возвращается, если заданlabels) — Суммарная функция потерь для извлечения пролёгов представляет собой сумму кросс-энтропии для начальных и конечных позиций.start_logits (
torch.Tensorформы(batch_size, sequence_length)) — Оценки начала спана (до SoftMax).end_logits (
torch.Tensorформы(batch_size, sequence_length)) — Оценки конца пролета (до SoftMax).hidden_states (
tuple(torch.Tensor), optional, возвращается, если переданоoutput_hidden_states=Trueили еслиconfig.output_hidden_states=True) — кортеж изtorch.Tensor(один для вывода слоя встраиваний, если модель имеет слой встраиваний, + один для вывода каждого слоя) формы(batch_size, sequence_length, hidden_size).Скрытые состояния модели на выходе каждого слоя, а также необязательные выходные значения начального слоя встраивания.
attentions (
tuple(torch.Tensor), необязательный, возвращается при передачеoutput_attentions=Trueили приconfig.output_attentions=True) — Кортежtorch.Tensor(по одному на каждый слой) формы(batch_size, num_heads, sequence_length, sequence_length).Веса внимания после softmax в механизме внимания, используемые для вычисления взвешенного среднего в головах само-внимания.
Пример:
>>> from transformers import AutoTokenizer, XLMForQuestionAnsweringSimple
>>> import torch
>>> tokenizer = AutoTokenizer.from_pretrained("FacebookAI/xlm-mlm-en-2048")
>>> model = XLMForQuestionAnsweringSimple.from_pretrained("FacebookAI/xlm-mlm-en-2048")
>>> question, text = "Who was Jim Henson?", "Jim Henson was a nice puppet"
>>> inputs = tokenizer(question, text, return_tensors="pt")
>>> with torch.no_grad():
... outputs = model(**inputs)
>>> answer_start_index = outputs.start_logits.argmax()
>>> answer_end_index = outputs.end_logits.argmax()
>>> predict_answer_tokens = inputs.input_ids[0, answer_start_index : answer_end_index + 1]
>>> tokenizer.decode(predict_answer_tokens, skip_special_tokens=True)
...
>>> # target is "nice puppet"
>>> target_start_index = torch.tensor([14])
>>> target_end_index = torch.tensor([15])
>>> outputs = model(**inputs, start_positions=target_start_index, end_positions=target_end_index)
>>> loss = outputs.loss
>>> round(loss.item(), 2)
...XLMForQuestionAnswering
класс transformers.XLMForQuestionAnswering
< source >( config: XLMConfig )
Параметры
- config (XLMConfig) — Класс конфигурации модели, содержащий все параметры модели. Инициализация с помощью файла конфигурации не загружает веса, связанные с моделью, а только конфигурацию. Используйте метод from_pretrained() для загрузки весов модели.
Трансформер Xlm со слоем классификации пропусков на выходе для задач извлекающего ответа на вопросы, таких как SQuAD (линейный слой поверх выходных скрытых состояний для вычисления span start logits и span end logits).
Эта модель наследуется от PreTrainedModel. См. документацию родительского класса для общих методов, которые библиотека реализует для всех своих моделей (например, загрузка или сохранение, изменение размера входных эмбеддингов, обрезка голов и т. д.)
Эта модель также является подклассом torch.nn.Module в PyTorch. Используйте её как обычный модуль PyTorch и обращайтесь к документации PyTorch по всем вопросам, связанным с общим использованием и поведением.
forward
< source >( input_ids: typing.Optional[torch.Tensor] = Noneattention_mask: typing.Optional[torch.Tensor] = Nonelangs: typing.Optional[torch.Tensor] = Nonetoken_type_ids: typing.Optional[torch.Tensor] = Noneposition_ids: typing.Optional[torch.Tensor] = Nonelengths: typing.Optional[torch.Tensor] = Nonecache: dict[str, torch.Tensor] | None = Noneinputs_embeds: typing.Optional[torch.Tensor] = Nonestart_positions: typing.Optional[torch.Tensor] = Noneend_positions: typing.Optional[torch.Tensor] = Noneis_impossible: typing.Optional[torch.Tensor] = Nonecls_index: typing.Optional[torch.Tensor] = Nonep_mask: typing.Optional[torch.Tensor] = Noneoutput_attentions: bool | None = Noneoutput_hidden_states: bool | None = Nonereturn_dict: bool | None = None**kwargs ) → XLMForQuestionAnsweringOutput or tuple(torch.Tensor)
Параметры
- input_ids (
torch.Tensorформы(batch_size, sequence_length), необязательный) — Индексы токенов входной последовательности в словаре. По умолчанию padding игнорируется.Индексы можно получить с помощью AutoTokenizer. Подробности см. в PreTrainedTokenizer.encode() и PreTrainedTokenizer.call().
- attention_mask (
torch.Tensorформы(batch_size, sequence_length), , необязательный) — Маска для исключения токенов-заполнителей из внимания. Значения маски из диапазона[0, 1]:- 1 для токенов, которые не замаскированы,
- 0 для токенов, которые замаскированы.
- langs (
torch.LongTensorразмером(batch_size, sequence_length), , необязательный) — Параллельная последовательность токенов, используемая для указания языка каждого токена во входных данных. Индексы — это идентификаторы языков, которые можно получить из названий языков с помощью двух карт преобразования, предоставленных в конфигурации модели (доступно только для многоязычных моделей). Более точно, карта название языка → идентификатор языка находится вmodel.config.lang2id((это словарь, сопоставляющий строки с целыми числами), а карта идентификатор языка → название языка находится вmodel.config.id2lang((словарь, сопоставляющий целые числа со строками).См. примеры использования, подробно описанные в многоязычной документации.
- token_type_ids (
torch.Tensorформы(batch_size, sequence_length), , необязательный) — Индексы сегментных токенов для указания первой и второй частей входных данных. Индексы выбираются из[0, 1]:- 0 соответствует токену sentence A,
- 1 соответствует токену sentence B.
- position_ids (
torch.Tensorформы(batch_size, sequence_length), , необязательный) — Индексы позиций токенов каждого входного последовательности в позиционных эмбеддингах. Выбираются из диапазона[0, config.n_positions - 1]. - lengths (
torch.LongTensorформы(batch_size,), необязательный) — Длина каждого предложения, которую можно использовать, чтобы избежать применения механизма внимания к индексам токенов отступов. Для достижения того же результата можно также использовать attention_mask (см. выше); параметр сохранён здесь в целях совместимости. Индексы выбираются из диапазона[0, ..., input_ids.size(-1)]. - cache (
dict[str, torch.Tensor], необязательный) — ЭкземплярEncoderDecoderCache, содержащий предварительно вычисленные KV-состояния. Может использоваться для ускорения последовательного декодирования. - inputs_embeds (
torch.Tensorформы(batch_size, sequence_length, hidden_size), необязательный) — При необходимости, вместо передачиinput_idsможно напрямую передать встроенное представление. Это полезно, если требуется больший контроль над тем, как индексыinput_idsпреобразуются в соответствующие векторы, чем это обеспечивает внутренняя матрица поиска встраиваний модели. - start_positions (
torch.Tensorформы(batch_size,), необязательный) — Метки для позиции (индекса) начала размеченного фрагмента, используемые для вычисления функции потерь классификации токенов. Позиции ограничиваются длиной последовательности (sequence_length). Позиции, выходящие за пределы последовательности, не учитываются при вычислении функции потерь. - end_positions (
torch.Tensorформы(batch_size,), необязательный) — Метки для позиции (индекса) конца размеченного фрагмента, используемые для вычисления функции потерь классификации токенов. Позиции ограничиваются длиной последовательности (sequence_length). Позиции, выходящие за пределы последовательности, не учитываются при вычислении функции потерь. - is_impossible (
torch.LongTensorформы(batch_size,), необязательный) — Метки, указывающие, есть ли у вопроса ответ или нет (SQuAD 2.0) - cls_index (
torch.LongTensorформы(batch_size,), необязательный) — Метки для позиции (индекса) токена классификации, используемого в качестве входа для вычисления правдоподобия ответа. - p_mask (
torch.Tensorформы(batch_size, sequence_length), необязательный) — Необязательная маска токенов, которые не могут входить в ответ (например, [CLS], [PAD], …). Значение 1.0 означает, что токен должен быть замаскирован. Значение 0.0 означает, что токен не замаскирован. - output_attentions (
bool, необязательный) — Указывает, следует ли возвращать тензоры внимания всех слоев внимания. Подробности см. в описанииattentionsв разделе возвращаемых тензоров. - output_hidden_states (
bool, необязательный) — Указывает, следует ли возвращать скрытые состояния всех слоев. Подробности см. в описанииhidden_statesсреди возвращаемых тензоров. - return_dict (
bool, необязательный) — Указывает, следует ли возвращать ModelOutput вместо обычного кортежа.
Возвращает
XLMForQuestionAnsweringOutput или tuple(torch.Tensor)
Объект XLMForQuestionAnsweringOutput или кортеж из
torch.Tensor (если передано return_dict=False или если config.return_dict=False), содержащий различные
элементы в зависимости от конфигурации (XLMConfig) и входных данных.
Метод forward класса XLMForQuestionAnswering переопределяет специальный метод __call__.
Хотя рецепт для прямого прохода должен быть определён внутри этой функции, после этого следует вызывать экземпляр
Module, а не эту функцию, поскольку первый вариант обеспечивает выполнение шагов предварительной и последующей обработки, тогда как второй молча их игнорирует.
loss (
torch.Tensorформы(1,), необязательный, возвращается, если заданы иstart_positions, иend_positions) — Потери классификации, представленные как сумма потерь классификации начального токена, конечного токена (а также is_impossible, если он задан).start_top_log_probs (
torch.Tensorформы(batch_size, config.start_n_top), необязательный, возвращается, еслиstart_positionsилиend_positionsне указаны) — Логарифмические вероятности для config.start_n_top наиболее вероятных стартовых токенов (поиск по лучам).start_top_index (
torch.LongTensorформы(batch_size, config.start_n_top), необязательный, возвращается, еслиstart_positionsилиend_positionsне заданы) — Индексы для config.start_n_top наиболее вероятных вариантов стартового токена (поиск по лучам).end_top_log_probs (
torch.Tensorформы(batch_size, config.start_n_top * config.end_n_top), необязательный, возвращается, еслиstart_positionsилиend_positionsне указаны) — логарифмические вероятности дляconfig.start_n_top * config.end_n_topнаиболее вероятных вариантов конечного токена (beam-search).end_top_index (
torch.LongTensorформы(batch_size, config.start_n_top * config.end_n_top), необязательный, возвращается, еслиstart_positionsилиend_positionsне переданы) — Индексы для топ-config.start_n_top * config.end_n_topвариантов конечных токенов (beam-search).cls_logits (
torch.Tensorформы(batch_size,), необязательный, возвращается, еслиstart_positionsилиend_positionsне указаны) — логарифмические вероятности для меткиis_impossibleответов.hidden_states (
tuple[torch.Tensor, ...], необязательный, возвращается при передачеoutput_hidden_states=Trueили когдаconfig.output_hidden_states=True) — Кортеж изtorch.Tensor(один для вывода слоя встраиваний, если модель имеет слой встраиваний, + один для вывода каждого слоя) формы(batch_size, sequence_length, hidden_size).Скрытые состояния модели на выходе каждого слоя, а также необязательные выходные значения начального слоя встраивания.
attentions (
tuple[torch.Tensor, ...], необязательный, возвращается при передачеoutput_attentions=Trueили когдаconfig.output_attentions=True) — Кортежtorch.Tensor(по одному на каждый слой) формы(batch_size, num_heads, sequence_length, sequence_length).Веса внимания после softmax в механизме внимания, используемые для вычисления взвешенного среднего в головах само-внимания.
Пример:
>>> from transformers import AutoTokenizer, XLMForQuestionAnswering
>>> import torch
>>> tokenizer = AutoTokenizer.from_pretrained("FacebookAI/xlm-mlm-en-2048")
>>> model = XLMForQuestionAnswering.from_pretrained("FacebookAI/xlm-mlm-en-2048")
>>> input_ids = torch.tensor(tokenizer.encode("Hello, my dog is cute", add_special_tokens=True)).unsqueeze(
... 0
... ) # Batch size 1
>>> start_positions = torch.tensor([1])
>>> end_positions = torch.tensor([3])
>>> outputs = model(input_ids, start_positions=start_positions, end_positions=end_positions)
>>> loss = outputs.loss