Transformers documentation

BigBirdPegasus

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

and get access to the augmented documentation experience

to get started

Эта модель была опубликована в HF papers 28.07.2020 и добавлена в Hugging Face Transformers 07.05.2021.

BigBirdPegasus

BigBirdPegasus — это трансформерная модель с архитектурой «кодек-декодер» (sequence-to-sequence), предназначенная для суммаризации длинных входных последовательностей. Она расширяет архитектуру BigBird за счёт дополнительного целевого функционала предобучения, заимствованного из Pegasus, — генерации последовательностей с пропусками (gap sequence generation, GSG). Целые предложения маскируются, и модель должна заполнить пропуски в документе. Способность BigBirdPegasus отслеживать длинные контексты делает его эффективным для суммаризации объёмных входных данных, превосходя по производительности базовые модели Pegasus.

Все исходные контрольные точки BigBirdPegasus можно найти в организации Google.

Эта модель была предоставлена пользователем vasudevgupta.

Щёлкните по моделям BigBirdPegasus в боковой панели справа, чтобы увидеть дополнительные примеры применения BigBirdPegasus к различным языковым задачам.

Приведённый ниже пример показывает, как суммаризовать текст с помощью Pipeline, AutoModel и из командной строки.

AutoModel
from transformers import AutoModelForSeq2SeqLM, AutoTokenizer


tokenizer = AutoTokenizer.from_pretrained(
    "google/bigbird-pegasus-large-arxiv"
)
model = AutoModelForSeq2SeqLM.from_pretrained(
    "google/bigbird-pegasus-large-arxiv",
    device_map="auto",
)

input_text = """Plants are among the most remarkable and essential life forms on Earth, possessing a unique ability to produce their own food through a process known as photosynthesis. This complex biochemical process is fundamental not only to plant life but to virtually all life on the planet.
Through photosynthesis, plants capture energy from sunlight using a green pigment called chlorophyll, which is located in specialized cell structures called chloroplasts. In the presence of light, plants absorb carbon dioxide from the atmosphere through small pores in their leaves called stomata, and take in water from the soil through their root systems.
These ingredients are then transformed into glucose, a type of sugar that serves as a source of chemical energy, and oxygen, which is released as a byproduct into the atmosphere. The glucose produced during photosynthesis is not just used immediately; plants also store it as starch or convert it into other organic compounds like cellulose, which is essential for building their cellular structure.
This energy reserve allows them to grow, develop leaves, produce flowers, bear fruit, and carry out various physiological processes throughout their lifecycle."""
input_ids = tokenizer(input_text, return_tensors="pt").to(model.device)

output = model.generate(**input_ids, cache_implementation="static")
print(tokenizer.decode(output[0], skip_special_tokens=True))

Квантование снижает нагрузку на память при работе с большими моделями, представляя веса в пониженной точности. Подробнее о доступных бэкендах квантования см. в обзоре Квантование.

Приведённый ниже пример использует bitsandbytes для квантования только весов до int4.

import torch

from transformers import AutoModelForSeq2SeqLM, AutoTokenizer, BitsAndBytesConfig


quantization_config = BitsAndBytesConfig(
    load_in_4bit=True,
    bnb_4bit_compute_dtype=torch.bfloat16,
    bnb_4bit_quant_type="nf4"
)
model = AutoModelForSeq2SeqLM.from_pretrained(
    "google/bigbird-pegasus-large-arxiv",
    device_map="auto",
    quantization_config=quantization_config
)

tokenizer = AutoTokenizer.from_pretrained(
    "google/bigbird-pegasus-large-arxiv"
)

input_text = """Plants are among the most remarkable and essential life forms on Earth, possessing a unique ability to produce their own food through a process known as photosynthesis. This complex biochemical process is fundamental not only to plant life but to virtually all life on the planet.
Through photosynthesis, plants capture energy from sunlight using a green pigment called chlorophyll, which is located in specialized cell structures called chloroplasts. In the presence of light, plants absorb carbon dioxide from the atmosphere through small pores in their leaves called stomata, and take in water from the soil through their root systems.
These ingredients are then transformed into glucose, a type of sugar that serves as a source of chemical energy, and oxygen, which is released as a byproduct into the atmosphere. The glucose produced during photosynthesis is not just used immediately; plants also store it as starch or convert it into other organic compounds like cellulose, which is essential for building their cellular structure.
This energy reserve allows them to grow, develop leaves, produce flowers, bear fruit, and carry out various physiological processes throughout their lifecycle."""
input_ids = tokenizer(input_text, return_tensors="pt").to(model.device)

output = model.generate(**input_ids, cache_implementation="static")
print(tokenizer.decode(output[0], skip_special_tokens=True))

Примечания

  • BigBirdPegasus также использует PegasusTokenizer.
  • Входные данные следует дополнять нулями справа, так как BigBird использует абсолютные позиционные эмбеддинги.
  • BigBirdPegasus поддерживает внимание original_full и block_sparse. Если длина входной последовательности меньше 1024, рекомендуется использовать original_full, так как разреженные паттерны не дают значимого преимущества для небольших входных данных.
  • Текущая реализация использует размер окна 3 блока и 2 глобальных блока, поддерживает только реализацию ITC и не поддерживает num_random_blocks=0.
  • Длина последовательности должна делиться на размер блока.

Ресурсы

Подробнее о том, как работает механизм внимания BigBird, читайте в блоге Understanding BigBird’s Block Sparse Attention.

BigBirdPegasusConfig

класс transformers.BigBirdPegasusConfig

< >

( 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 = 0id2label: 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 = Noneis_encoder_decoder: bool = Truevocab_size: int = 96103max_position_embeddings: int = 4096encoder_layers: int = 16encoder_ffn_dim: int = 4096encoder_attention_heads: int = 16decoder_layers: int = 16decoder_ffn_dim: int = 4096decoder_attention_heads: int = 16encoder_layerdrop: float | int = 0.0decoder_layerdrop: float | int = 0.0use_cache: bool = Trueactivation_function: str = 'gelu_new'd_model: int = 1024dropout: float | int = 0.1attention_dropout: float | int = 0.0activation_dropout: float | int = 0.0init_std: float = 0.02decoder_start_token_id: int = 2classifier_dropout: float | int = 0.0scale_embedding: bool = Truepad_token_id: int | None = 0bos_token_id: int | None = 2eos_token_id: int | list[int] | None = 1attention_type: str = 'block_sparse'block_size: int = 64num_random_blocks: int = 3use_bias: bool = Falseis_decoder: bool = Falsetie_word_embeddings: bool = True )

Параметры

  • is_encoder_decoder (bool, необязательный, по умолчанию True) — Указывает, используется ли модель в качестве энкодера/декодера.
  • vocab_size (int, необязательный, по умолчанию 96103) — Размер словаря модели. Определяет количество различных токенов, которые могут быть представлены в input_ids.
  • max_position_embeddings (int, необязательный, по умолчанию 4096) — Максимальная длина последовательности, с которой может использоваться эта модель.
  • encoder_layers (int, необязательный, по умолчанию 16) — Количество скрытых слоев в кодере Transformer. Если не задано, используется то же значение, что и у num_layers.
  • encoder_ffn_dim (int, необязательный, по умолчанию 4096) — Размерность «промежуточного» (часто называемого feed-forward) слоя в энкодере.
  • encoder_attention_heads (int, необязательный, по умолчанию 16) — Количество головок внимания в каждом слое внимания в кодере Transformer.
  • decoder_layers (int, необязательный, по умолчанию 16) — Количество скрытых слоев в декодере Transformer. Если не задано, используется то же значение, что и у num_layers.
  • decoder_ffn_dim (int, необязательный, по умолчанию 4096) — Размерность «промежуточного» (часто называемого feed-forward) слоя в декодере.
  • decoder_attention_heads (int, необязательный, по умолчанию 16) — Количество головок внимания в каждом слое внимания декодера Transformer.
  • encoder_layerdrop (Union[float, int], необязательный, по умолчанию 0.0) — Вероятность LayerDrop для энкодера. Подробности — в [статье о LayerDrop](см. https://huggingface.co/papers/1909.11556).
  • decoder_layerdrop (Union[float, int], необязательный, по умолчанию 0.0) — Вероятность LayerDrop для декодера. Подробности — в [статье о LayerDrop](см. https://huggingface.co/papers/1909.11556).
  • use_cache (bool, необязательный, по умолчанию True) — Указывает, должен ли модель возвращать последние ключи/значения внимания (не используется во всех моделях). Актуально только если config.is_decoder=True или если модель является генеративной моделью только с декодером.
  • activation_function (str, необязательный, по умолчанию gelu_new) — Нелинейная функция активации (функция или строка) в декодере. Например, "gelu", "relu", "silu" и т. д.
  • d_model (int, необязательный, по умолчанию 1024) — Размер слоев кодировщика и пулер-слоя.
  • dropout (Union[float, int], необязательный, по умолчанию 0.1) — Коэффициент для всех слоёв dropout.
  • attention_dropout (Union[float, int], необязательный, по умолчанию 0.0) — Коэффициент dropout для вероятностей внимания.
  • activation_dropout (Union[float, int], необязательный, по умолчанию 0.0) — Коэффициент dropout для активаций внутри полносвязного слоя.
  • init_std (float, необязательный, по умолчанию 0.02) — Стандартное отклонение truncated_normal_initializer для инициализации всех матриц весов.
  • decoder_start_token_id (int, необязательный, по умолчанию 2) — Если модель encoder-decoder начинает декодирование с токена, отличного от bos, то идентификатор этого токена.
  • classifier_dropout (Union[float, int], необязательный, по умолчанию 0.0) — Коэффициент dropout для классификатора.
  • scale_embedding (bool, необязательный, по умолчанию True) — Указывает, следует ли масштабировать эмбеддинги, деля их на sqrt(d_model).
  • pad_token_id (int, необязательный, по умолчанию 0) — Идентификатор токена, используемого для дополнения (padding) в словаре.
  • bos_token_id (int, необязательный, по умолчанию 2) — Идентификатор токена, используемого для обозначения начала потока в словаре.
  • eos_token_id (Union[int, list[int]], необязательный, по умолчанию 1) — Идентификатор токена, используемого для обозначения конца потока в словаре.
  • attention_type (str, необязательный, по умолчанию "block_sparse") — Использовать ли блок-разреженное внимание (сложность n), предложенное в статье, или исходный слой внимания (сложность n^2). Допустимые значения: "original_full" и "block_sparse".
  • block_size (int, необязательный, по умолчанию 64) — Размер каждого блока. Полезно только при attention_type == "block_sparse".
  • num_random_blocks (int, необязательный, по умолчанию 3) — Каждый запрос обращается к такому количеству случайных блоков. Полезно только при attention_type == "block_sparse".
  • use_bias (bool, необязательный, по умолчанию True) — Использовать ли смещение (bias) в query, key и value.
  • is_decoder (bool, необязательный, по умолчанию False) — Указывает, используется ли модель в качестве декодера. Если False, модель используется как энкодер.
  • tie_word_embeddings (bool, необязательный, по умолчанию True) — Определяет, следует ли связывать веса эмбеддингов согласно маппингу tied_weights_keys модели.

Это класс конфигурации для хранения конфигурации модели BigBirdPegasusModel. Он используется для создания модели Bigbird Pegasus в соответствии с указанными аргументами, определяя архитектуру модели. Создание конфигурации с параметрами по умолчанию даст конфигурацию, аналогичную конфигурации google/bigbird-pegasus-large-arxiv

Объекты конфигурации наследуются от PreTrainedConfig и могут использоваться для управления выводами модели. Подробнее читайте в документации PreTrainedConfig.

Пример:

>>> from transformers import BigBirdPegasusConfig, BigBirdPegasusModel

>>> # Initializing a BigBirdPegasus bigbird-pegasus-base style configuration
>>> configuration = BigBirdPegasusConfig()

>>> # Initializing a model (with random weights) from the bigbird-pegasus-base style configuration
>>> model = BigBirdPegasusModel(configuration)

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

BigBirdPegasusModel

класс transformers.BigBirdPegasusModel

< >

( config: BigBirdPegasusConfig )

Параметры

  • config (BigBirdPegasusConfig) — Класс конфигурации модели, содержащий все параметры модели. Инициализация с помощью файла конфигурации не загружает веса, связанные с моделью, а только конфигурацию. Используйте метод from_pretrained() для загрузки весов модели.

Модель Bigbird Pegasus без дополнительных слоёв, выводящая необработанные скрытые состояния.

Эта модель наследуется от PreTrainedModel. См. документацию родительского класса для общих методов, которые библиотека реализует для всех своих моделей (например, загрузка или сохранение, изменение размера входных эмбеддингов, обрезка голов и т. д.)

Эта модель также является подклассом torch.nn.Module в PyTorch. Используйте её как обычный модуль PyTorch и обращайтесь к документации PyTorch по всем вопросам, связанным с общим использованием и поведением.

forward

< >

( input_ids: typing.Optional[torch.LongTensor] = Noneattention_mask: typing.Optional[torch.Tensor] = Nonedecoder_input_ids: typing.Optional[torch.LongTensor] = Nonedecoder_attention_mask: typing.Optional[torch.LongTensor] = Noneencoder_outputs: list[torch.Tensor] | None = Nonepast_key_values: transformers.cache_utils.Cache | None = Noneinputs_embeds: typing.Optional[torch.Tensor] = Nonedecoder_inputs_embeds: typing.Optional[torch.Tensor] = Noneuse_cache: bool | None = None**kwargs: *<class 'transformers.utils.generic.TransformersKwargs'> ) → Seq2SeqModelOutput or tuple(torch.Tensor)

Параметры

  • input_ids (torch.LongTensor формы (batch_size, sequence_length), , необязательный) — Индексы токенов входной последовательности в словаре. По умолчанию токены отсечки (padding) игнорируются.

    Индексы можно получить с помощью AutoTokenizer. Подробности см. в PreTrainedTokenizer.encode() и PreTrainedTokenizer.call().

    Что такое входные идентификаторы?

  • attention_mask (torch.Tensor формы (batch_size, sequence_length), , необязательный) — Маска для исключения токенов-заполнителей из внимания. Значения маски из диапазона [0, 1]:
    • 1 для токенов, которые не замаскированы,
    • 0 для токенов, которые замаскированы.

    Что такое маски внимания?

  • decoder_input_ids (torch.LongTensor формы (batch_size, target_sequence_length), необязательный) — Используется для обучения переводу и суммаризации. По умолчанию модель создаёт этот тензор, сдвигая input_ids вправо, как описано в статье.
  • decoder_attention_mask (torch.LongTensor формы (batch_size, target_sequence_length), , необязательный) — Поведение по умолчанию: генерирует тензор, игнорирующий токены заполнения в decoder_input_ids. Маска причинности также будет использоваться по умолчанию. Если вы хотите изменить поведение при заполнении, прочитайте modeling_bigbird_pegasus._prepare_decoder_attention_mask и измените его под свои нужды. Подробнее о стратегии по умолчанию см. на рисунке 1 в статье.

    Если вы хотите изменить поведение отступов, вам следует изучить modeling_bigbird_pegasus._prepare_decoder_attention_mask и внести необходимые изменения. Дополнительную информацию о стратегии по умолчанию см. на схеме 1 в статье.

  • encoder_outputs (list[torch.Tensor], необязательный) — Кортеж состоит из (last_hidden_state, необязательный: hidden_states, необязательный: attentions) last_hidden_state формы (batch_size, sequence_length, hidden_size), необязательный) представляет собой последовательность скрытых состояний на выходе последнего слоя энкодера. Используется в кросс-внимании декодера.
  • past_key_values (~cache_utils.Cache, необязательный) — Предвычисленные скрытые состояния (ключи и значения в блоках само-внимания и кросс-внимания), которые можно использовать для ускорения последовательного декодирования. Обычно это past_key_values , возвращённые моделью на предыдущем этапе декодирования, когда use_cache=True или config.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), необязательный) — При необходимости, вместо передачи input_ids можно напрямую передать встроенное представление. Это полезно, если требуется больший контроль над тем, как индексы input_ids преобразуются в соответствующие векторы, чем это обеспечивает внутренняя матрица поиска встраиваний модели.
  • decoder_inputs_embeds (torch.Tensor формы (batch_size, target_sequence_length, hidden_size), необязательный) — Необязательно, вместо передачи decoder_input_ids можно напрямую передать встроенное представление. Если past_key_values используется, необязательно вводить только последний decoder_inputs_embeds (см. past_key_values). Это полезно, если вы хотите больше контролировать, как индексы decoder_input_ids преобразуются в соответствующие векторы, чем это делает внутренняя матрица эмбеддингов модели.

    Если decoder_input_ids и decoder_inputs_embeds не заданы, decoder_inputs_embeds принимает значение inputs_embeds.

  • use_cache (bool, необязательный) — Если установлено в True, возвращаются состояния ключей и значений past_key_values, которые можно использовать для ускорения декодирования (см. past_key_values).

Возвращает

Seq2SeqModelOutput или tuple(torch.Tensor)

Объект Seq2SeqModelOutput или кортеж из torch.Tensor (если передано return_dict=False или если config.return_dict=False), содержащий различные элементы в зависимости от конфигурации (BigBirdPegasusConfig) и входных данных.

Метод forward модели BigBirdPegasusModel переопределяет специальный метод __call__.

Хотя рецепт для прямого прохода должен быть определён внутри этой функции, после этого следует вызывать экземпляр Module, а не эту функцию, поскольку первый вариант обеспечивает выполнение шагов предварительной и последующей обработки, тогда как второй молча их игнорирует.

  • last_hidden_state (torch.Tensor формы (batch_size, sequence_length, hidden_size)) — Последовательность скрытых состояний на выходе последнего слоя декодера модели.

    Если используется past_key_values, выводится только последнее скрытое состояние последовательностей формы (batch_size, 1, hidden_size).

  • past_key_values (EncoderDecoderCache, необязательный, возвращается при передаче use_cache=True или когда config.use_cache=True) — это экземпляр EncoderDecoderCache. Подробнее см. в нашем руководстве по кэшу kv.

    Содержит предварительно вычисленные скрытые состояния (ключи и значения в блоках само-внимания и кросс-внимания), которые можно использовать (см. вход past_key_values) для ускорения последовательного декодирования.

  • decoder_hidden_states (tuple(torch.Tensor), необязательный, возвращается при передаче output_hidden_states=True или при config.output_hidden_states=True) — Кортеж из torch.Tensor (один для вывода эмбеддингов, если у модели есть слой эмбеддингов, + один для вывода каждого слоя) формы (batch_size, sequence_length, hidden_size).

    Скрытые состояния декодера на выходе каждого слоя, а также необязательные выходные значения начального эмбеддинга.

  • decoder_attentions (tuple(torch.Tensor), необязательный, возвращается при передаче output_attentions=True или когда config.output_attentions=True) — Кортеж torch.Tensor (по одному на каждый слой) формы (batch_size, num_heads, sequence_length, sequence_length).

    Веса внимания декодера после softmax внимания, используемые для вычисления взвешенного среднего в головах само-внимания.

  • cross_attentions (tuple(torch.Tensor), необязательный, возвращается при передаче output_attentions=True или при config.output_attentions=True) — Кортеж torch.Tensor (по одному на каждый слой) формы (batch_size, num_heads, sequence_length, sequence_length).

    Веса внимания кросс-внимания декодера после softmax внимания, используемые для вычисления взвешенного среднего в головах кросс-внимания.

  • encoder_last_hidden_state (torch.Tensor формы (batch_size, sequence_length, hidden_size), необязательный) — Последовательность скрытых состояний на выходе последнего слоя энкодера модели.

  • encoder_hidden_states (tuple(torch.Tensor), необязательный, возвращается, если передано output_hidden_states=True или если config.output_hidden_states=True) — Кортеж torch.Tensor (один для вывода слоя встраиваний, если модель имеет слой встраиваний, + один для вывода каждого слоя) формы (batch_size, sequence_length, hidden_size).

    Скрытые состояния энкодера на выходе каждого слоя, а также необязательные выходные значения начального эмбеддинга.

  • encoder_attentions (tuple(torch.Tensor), необязательный, возвращается при передаче output_attentions=True или при config.output_attentions=True) — Кортеж torch.Tensor (по одному на каждый слой) формы (batch_size, num_heads, sequence_length, sequence_length).

    Веса внимания энкодера после softmax внимания, используемые для вычисления взвешенного среднего в головах само-внимания.

BigBirdPegasusForConditionalGeneration

класс transformers.BigBirdPegasusForConditionalGeneration

< >

( config: BigBirdPegasusConfig )

Параметры

  • config (BigBirdPegasusConfig) — Класс конфигурации модели, содержащий все параметры модели. Инициализация с помощью файла конфигурации не загружает веса, связанные с моделью, а только конфигурацию. Используйте метод from_pretrained() для загрузки весов модели.

Модель BigBirdPegasus с головой для моделирования языка. Может использоваться для суммаризации.

Эта модель наследуется от PreTrainedModel. См. документацию родительского класса для общих методов, которые библиотека реализует для всех своих моделей (например, загрузка или сохранение, изменение размера входных эмбеддингов, обрезка голов и т. д.)

Эта модель также является подклассом torch.nn.Module в PyTorch. Используйте её как обычный модуль PyTorch и обращайтесь к документации PyTorch по всем вопросам, связанным с общим использованием и поведением.

forward

< >

( input_ids: typing.Optional[torch.LongTensor] = Noneattention_mask: typing.Optional[torch.Tensor] = Nonedecoder_input_ids: typing.Optional[torch.LongTensor] = Nonedecoder_attention_mask: typing.Optional[torch.LongTensor] = Noneencoder_outputs: list[torch.Tensor] | None = Nonepast_key_values: transformers.cache_utils.Cache | None = Noneinputs_embeds: typing.Optional[torch.Tensor] = Nonedecoder_inputs_embeds: typing.Optional[torch.Tensor] = Nonelabels: typing.Optional[torch.LongTensor] = Noneuse_cache: bool | None = None**kwargs: *<class 'transformers.utils.generic.TransformersKwargs'> ) → Seq2SeqLMOutput or tuple(torch.Tensor)

Параметры

  • input_ids (torch.LongTensor формы (batch_size, sequence_length), , необязательный) — Индексы токенов входной последовательности в словаре. По умолчанию токены отсечки (padding) игнорируются.

    Индексы можно получить с помощью AutoTokenizer. Подробности см. в PreTrainedTokenizer.encode() и PreTrainedTokenizer.call().

    Что такое входные идентификаторы?

  • attention_mask (torch.Tensor формы (batch_size, sequence_length), , необязательный) — Маска для исключения токенов-заполнителей из внимания. Значения маски из диапазона [0, 1]:
    • 1 для токенов, которые не замаскированы,
    • 0 для токенов, которые замаскированы.

    Что такое маски внимания?

  • decoder_input_ids (torch.LongTensor формы (batch_size, target_sequence_length), необязательный) — Используется для обучения переводу и суммаризации. По умолчанию модель создаёт этот тензор, сдвигая input_ids вправо, как описано в статье.
  • decoder_attention_mask (torch.LongTensor формы (batch_size, target_sequence_length), , необязательный) — Поведение по умолчанию: генерирует тензор, игнорирующий токены заполнения в decoder_input_ids. Маска причинности также будет использоваться по умолчанию. Если вы хотите изменить поведение при заполнении, прочитайте modeling_bigbird_pegasus._prepare_decoder_attention_mask и измените его под свои нужды. Подробнее о стратегии по умолчанию см. на рисунке 1 в статье.

    Если вы хотите изменить поведение отступов, вам следует изучить modeling_bigbird_pegasus._prepare_decoder_attention_mask и внести необходимые изменения. Дополнительную информацию о стратегии по умолчанию см. на схеме 1 в статье.

  • encoder_outputs (list[torch.Tensor], необязательный) — Кортеж состоит из (last_hidden_state, необязательный: hidden_states, необязательный: attentions) last_hidden_state формы (batch_size, sequence_length, hidden_size), необязательный) представляет собой последовательность скрытых состояний на выходе последнего слоя энкодера. Используется в кросс-внимании декодера.
  • past_key_values (~cache_utils.Cache, необязательный) — Предвычисленные скрытые состояния (ключи и значения в блоках само-внимания и кросс-внимания), которые можно использовать для ускорения последовательного декодирования. Обычно это past_key_values , возвращённые моделью на предыдущем этапе декодирования, когда use_cache=True или config.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), необязательный) — При необходимости, вместо передачи input_ids можно напрямую передать встроенное представление. Это полезно, если требуется больший контроль над тем, как индексы input_ids преобразуются в соответствующие векторы, чем это обеспечивает внутренняя матрица поиска встраиваний модели.
  • decoder_inputs_embeds (torch.Tensor формы (batch_size, target_sequence_length, hidden_size), необязательный) — Необязательно, вместо передачи decoder_input_ids можно напрямую передать встроенное представление. Если past_key_values используется, необязательно вводить только последний decoder_inputs_embeds (см. past_key_values). Это полезно, если вы хотите больше контролировать, как индексы decoder_input_ids преобразуются в соответствующие векторы, чем это делает внутренняя матрица эмбеддингов модели.

    Если decoder_input_ids и decoder_inputs_embeds не заданы, decoder_inputs_embeds принимает значение inputs_embeds.

  • labels (torch.LongTensor формы (batch_size, sequence_length), необязательный) — Метки для вычисления потерь маскированного языкового моделирования. Индексы должны находиться в диапазоне [0, ..., config.vocab_size] или быть равны -100 (см. docstring input_ids). Токены с индексами, установленными в -100, игнорируются (маскируются); потери вычисляются только для токенов с метками в диапазоне [0, ..., config.vocab_size].
  • use_cache (bool, необязательный) — Если установлено в True, возвращаются состояния ключей и значений past_key_values, которые можно использовать для ускорения декодирования (см. past_key_values).

Возвращает

Seq2SeqLMOutput или tuple(torch.Tensor)

Объект Seq2SeqLMOutput или кортеж из torch.Tensor (если передано return_dict=False или если config.return_dict=False), содержащий различные элементы в зависимости от конфигурации (BigBirdPegasusConfig) и входных данных.

Метод forward класса BigBirdPegasusForConditionalGeneration переопределяет специальный метод __call__.

Хотя рецепт для прямого прохода должен быть определён внутри этой функции, после этого следует вызывать экземпляр Module, а не эту функцию, поскольку первый вариант обеспечивает выполнение шагов предварительной и последующей обработки, тогда как второй молча их игнорирует.

  • loss (torch.Tensor формы (1,), необязательный, возвращается, если задан labels) — Потери языковой модели.

  • logits (torch.Tensor формы (batch_size, sequence_length, config.vocab_size)) — Оценки предсказаний языковой модели (оценки для каждого токена словаря до применения SoftMax).

  • past_key_values (EncoderDecoderCache, необязательный, возвращается при передаче use_cache=True или когда config.use_cache=True) — это экземпляр EncoderDecoderCache. Подробнее см. в нашем руководстве по кэшу kv.

    Содержит предварительно вычисленные скрытые состояния (ключи и значения в блоках само-внимания и кросс-внимания), которые можно использовать (см. вход past_key_values) для ускорения последовательного декодирования.

  • decoder_hidden_states (tuple(torch.Tensor), необязательный, возвращается при передаче output_hidden_states=True или при config.output_hidden_states=True) — Кортеж из torch.Tensor (один для вывода эмбеддингов, если у модели есть слой эмбеддингов, + один для вывода каждого слоя) формы (batch_size, sequence_length, hidden_size).

    Скрытые состояния декодера на выходе каждого слоя, а также выходные значения начального слоя встраивания.

  • decoder_attentions (tuple(torch.Tensor), необязательный, возвращается при передаче output_attentions=True или когда config.output_attentions=True) — Кортеж torch.Tensor (по одному на каждый слой) формы (batch_size, num_heads, sequence_length, sequence_length).

    Веса внимания декодера после softmax внимания, используемые для вычисления взвешенного среднего в головах само-внимания.

  • cross_attentions (tuple(torch.Tensor), необязательный, возвращается при передаче output_attentions=True или при config.output_attentions=True) — Кортеж torch.Tensor (по одному на каждый слой) формы (batch_size, num_heads, sequence_length, sequence_length).

    Веса внимания кросс-внимания декодера после softmax внимания, используемые для вычисления взвешенного среднего в головах кросс-внимания.

  • encoder_last_hidden_state (torch.Tensor формы (batch_size, sequence_length, hidden_size), необязательный) — Последовательность скрытых состояний на выходе последнего слоя энкодера модели.

  • encoder_hidden_states (tuple(torch.Tensor), необязательный, возвращается, если передано output_hidden_states=True или если config.output_hidden_states=True) — Кортеж torch.Tensor (один для вывода слоя встраиваний, если модель имеет слой встраиваний, + один для вывода каждого слоя) формы (batch_size, sequence_length, hidden_size).

    Скрытые состояния кодировщика на выходе каждого слоя, а также выходные значения начального слоя встраиваний.

  • encoder_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, BigBirdPegasusForConditionalGeneration

>>> model = BigBirdPegasusForConditionalGeneration.from_pretrained("google/bigbird-pegasus-large-arxiv")
>>> tokenizer = AutoTokenizer.from_pretrained("google/bigbird-pegasus-large-arxiv")

>>> ARTICLE_TO_SUMMARIZE = (
...     "The dominant sequence transduction models are based on complex recurrent or convolutional neural "
...     "networks in an encoder-decoder configuration. The best performing models also connect the encoder "
...     "and decoder through an attention mechanism. We propose a new simple network architecture, the Transformer, "
...     "based solely on attention mechanisms, dispensing with recurrence and convolutions entirely. "
...     "Experiments on two machine translation tasks show these models to be superior in quality "
...     "while being more parallelizable and requiring significantly less time to train."
... )
>>> inputs = tokenizer([ARTICLE_TO_SUMMARIZE], max_length=4096, return_tensors="pt", truncation=True)

>>> # Generate Summary
>>> summary_ids = model.generate(inputs["input_ids"], num_beams=4, max_length=15)
>>> tokenizer.batch_decode(summary_ids, skip_special_tokens=True, clean_up_tokenization_spaces=False)[0]
'dominant sequence models are based on recurrent or convolutional neural networks .'

BigBirdPegasusForSequenceClassification

класс transformers.BigBirdPegasusForSequenceClassification

< >

( config: BigBirdPegasusConfig**kwargs )

Параметры

  • config (BigBirdPegasusConfig) — Класс конфигурации модели, содержащий все параметры модели. Инициализация с помощью файла конфигурации не загружает веса, связанные с моделью, а только конфигурацию. Используйте метод from_pretrained() для загрузки весов модели.

Модель BigBirdPegasus с классификационной головой для последовательностей (линейный слой поверх пуллинг-выхода), например, для задач GLUE.

Эта модель наследуется от PreTrainedModel. См. документацию родительского класса для общих методов, которые библиотека реализует для всех своих моделей (например, загрузка или сохранение, изменение размера входных эмбеддингов, обрезка голов и т. д.)

Эта модель также является подклассом torch.nn.Module в PyTorch. Используйте её как обычный модуль PyTorch и обращайтесь к документации PyTorch по всем вопросам, связанным с общим использованием и поведением.

forward

< >

( input_ids: typing.Optional[torch.LongTensor] = Noneattention_mask: typing.Optional[torch.Tensor] = Nonedecoder_input_ids: typing.Optional[torch.LongTensor] = Nonedecoder_attention_mask: typing.Optional[torch.LongTensor] = Noneencoder_outputs: list[torch.Tensor] | None = Noneinputs_embeds: typing.Optional[torch.Tensor] = Nonedecoder_inputs_embeds: typing.Optional[torch.Tensor] = Nonelabels: typing.Optional[torch.LongTensor] = Noneuse_cache: bool | None = None**kwargs: *<class 'transformers.utils.generic.TransformersKwargs'> ) → Seq2SeqSequenceClassifierOutput or tuple(torch.Tensor)

Параметры

  • input_ids (torch.LongTensor формы (batch_size, sequence_length), , необязательный) — Индексы токенов входной последовательности в словаре. По умолчанию токены отсечки (padding) игнорируются.

    Индексы можно получить с помощью AutoTokenizer. Подробности см. в PreTrainedTokenizer.encode() и PreTrainedTokenizer.call().

    Что такое входные идентификаторы?

  • attention_mask (torch.Tensor формы (batch_size, sequence_length), , необязательный) — Маска для исключения токенов-заполнителей из внимания. Значения маски из диапазона [0, 1]:
    • 1 для токенов, которые не замаскированы,
    • 0 для токенов, которые замаскированы.

    Что такое маски внимания?

  • decoder_input_ids (torch.LongTensor формы (batch_size, target_sequence_length), необязательный) — Используется для обучения переводу и суммаризации. По умолчанию модель создаёт этот тензор, сдвигая input_ids вправо, как описано в статье.
  • decoder_attention_mask (torch.LongTensor формы (batch_size, target_sequence_length), , необязательный) — Поведение по умолчанию: генерирует тензор, игнорирующий токены заполнения в decoder_input_ids. Маска причинности также будет использоваться по умолчанию. Если вы хотите изменить поведение при заполнении, прочитайте modeling_bigbird_pegasus._prepare_decoder_attention_mask и измените его под свои нужды. Подробнее о стратегии по умолчанию см. на рисунке 1 в статье.

    Если вы хотите изменить поведение отступов, вам следует изучить modeling_bigbird_pegasus._prepare_decoder_attention_mask и внести необходимые изменения. Дополнительную информацию о стратегии по умолчанию см. на схеме 1 в статье.

  • encoder_outputs (list[torch.Tensor], необязательный) — Кортеж состоит из (last_hidden_state, необязательный: hidden_states, необязательный: attentions) last_hidden_state формы (batch_size, sequence_length, hidden_size), необязательный) представляет собой последовательность скрытых состояний на выходе последнего слоя энкодера. Используется в кросс-внимании декодера.
  • inputs_embeds (torch.Tensor формы (batch_size, sequence_length, hidden_size), необязательный) — При необходимости, вместо передачи input_ids можно напрямую передать встроенное представление. Это полезно, если требуется больший контроль над тем, как индексы input_ids преобразуются в соответствующие векторы, чем это обеспечивает внутренняя матрица поиска встраиваний модели.
  • decoder_inputs_embeds (torch.Tensor формы (batch_size, target_sequence_length, hidden_size), необязательный) — Необязательно, вместо передачи decoder_input_ids можно напрямую передать встроенное представление. Если past_key_values используется, необязательно вводить только последний decoder_inputs_embeds (см. past_key_values). Это полезно, если вы хотите больше контролировать, как индексы decoder_input_ids преобразуются в соответствующие векторы, чем это делает внутренняя матрица эмбеддингов модели.

    Если decoder_input_ids и decoder_inputs_embeds не заданы, decoder_inputs_embeds принимает значение inputs_embeds.

  • labels (torch.LongTensor формы (batch_size,), необязательный) — Метки для вычисления функции потерь классификации/регрессии последовательности. Индексы должны находиться в диапазоне [0, ..., config.num_labels - 1]. Если config.num_labels == 1, вычисляется функция потерь регрессии (среднеквадратичная ошибка), если config.num_labels > 1, вычисляется функция потерь классификации (кросс-энтропия).
  • use_cache (bool, необязательный) — Если установлено в True, возвращаются состояния ключей и значений past_key_values, которые можно использовать для ускорения декодирования (см. past_key_values).

Возвращает

Seq2SeqSequenceClassifierOutput или tuple(torch.Tensor)

Объект Seq2SeqSequenceClassifierOutput или кортеж из torch.Tensor (если передано return_dict=False или если config.return_dict=False), содержащий различные элементы в зависимости от конфигурации (BigBirdPegasusConfig) и входных данных.

Метод forward класса BigBirdPegasusForSequenceClassification переопределяет специальный метод __call__.

Хотя рецепт для прямого прохода должен быть определён внутри этой функции, после этого следует вызывать экземпляр Module, а не эту функцию, поскольку первый вариант обеспечивает выполнение шагов предварительной и последующей обработки, тогда как второй молча их игнорирует.

  • loss (torch.Tensor формы (1,), необязательный, возвращается, если задан label) — Потери классификации (или регрессии, если config.num_labels==1).

  • logits (torch.Tensor формы (batch_size, config.num_labels)) — Оценки для классификации (или регрессии, если config.num_labels==1) до применения SoftMax.

  • past_key_values (EncoderDecoderCache, необязательный, возвращается при передаче use_cache=True или когда config.use_cache=True) — это экземпляр EncoderDecoderCache. Подробнее см. в нашем руководстве по кэшу kv.

    Содержит предварительно вычисленные скрытые состояния (ключи и значения в блоках само-внимания и кросс-внимания), которые можно использовать (см. вход past_key_values) для ускорения последовательного декодирования.

  • decoder_hidden_states (tuple(torch.Tensor), необязательный, возвращается при передаче output_hidden_states=True или при config.output_hidden_states=True) — Кортеж из torch.Tensor (один для вывода эмбеддингов, если у модели есть слой эмбеддингов, + один для вывода каждого слоя) формы (batch_size, sequence_length, hidden_size).

    Скрытые состояния декодера на выходе каждого слоя, а также выходные значения начального слоя встраивания.

  • decoder_attentions (tuple(torch.Tensor), необязательный, возвращается при передаче output_attentions=True или когда config.output_attentions=True) — Кортеж torch.Tensor (по одному на каждый слой) формы (batch_size, num_heads, sequence_length, sequence_length).

    Веса внимания декодера после softmax внимания, используемые для вычисления взвешенного среднего в головах само-внимания.

  • cross_attentions (tuple(torch.Tensor), необязательный, возвращается при передаче output_attentions=True или при config.output_attentions=True) — Кортеж torch.Tensor (по одному на каждый слой) формы (batch_size, num_heads, sequence_length, sequence_length).

    Веса внимания кросс-внимания декодера после softmax внимания, используемые для вычисления взвешенного среднего в головах кросс-внимания.

  • encoder_last_hidden_state (torch.Tensor формы (batch_size, sequence_length, hidden_size), необязательный) — Последовательность скрытых состояний на выходе последнего слоя энкодера модели.

  • encoder_hidden_states (tuple(torch.Tensor), необязательный, возвращается, если передано output_hidden_states=True или если config.output_hidden_states=True) — Кортеж torch.Tensor (один для вывода слоя встраиваний, если модель имеет слой встраиваний, + один для вывода каждого слоя) формы (batch_size, sequence_length, hidden_size).

    Скрытые состояния кодировщика на выходе каждого слоя, а также выходные значения начального слоя встраиваний.

  • encoder_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, BigBirdPegasusForSequenceClassification

>>> tokenizer = AutoTokenizer.from_pretrained("google/bigbird-pegasus-large-arxiv")
>>> model = BigBirdPegasusForSequenceClassification.from_pretrained("google/bigbird-pegasus-large-arxiv")

>>> 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 = BigBirdPegasusForSequenceClassification.from_pretrained("google/bigbird-pegasus-large-arxiv", num_labels=num_labels)

>>> labels = torch.tensor([1])
>>> loss = model(**inputs, labels=labels).loss
>>> round(loss.item(), 2)
...

Пример многоклассовой классификации:

>>> import torch
>>> from transformers import AutoTokenizer, BigBirdPegasusForSequenceClassification

>>> tokenizer = AutoTokenizer.from_pretrained("google/bigbird-pegasus-large-arxiv")
>>> model = BigBirdPegasusForSequenceClassification.from_pretrained("google/bigbird-pegasus-large-arxiv", 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 = BigBirdPegasusForSequenceClassification.from_pretrained(
...     "google/bigbird-pegasus-large-arxiv", 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).loss

BigBirdPegasusForQuestionAnswering

класс transformers.BigBirdPegasusForQuestionAnswering

< >

( config: BigBirdPegasusConfig )

Параметры

  • config (BigBirdPegasusConfig) — Класс конфигурации модели, содержащий все параметры модели. Инициализация с помощью файла конфигурации не загружает веса, связанные с моделью, а только конфигурацию. Используйте метод from_pretrained() для загрузки весов модели.

Трансформер Bigbird Pegasus с головой для классификации пропусков, расположенной сверху, для задач извлекающего ответа на вопросы, таких как SQuAD (линейный слой поверх выходных скрытых состояний для вычисления span start logits и span end logits).

Эта модель наследуется от PreTrainedModel. См. документацию родительского класса для общих методов, которые библиотека реализует для всех своих моделей (например, загрузка или сохранение, изменение размера входных эмбеддингов, обрезка голов и т. д.)

Эта модель также является подклассом torch.nn.Module в PyTorch. Используйте её как обычный модуль PyTorch и обращайтесь к документации PyTorch по всем вопросам, связанным с общим использованием и поведением.

forward

< >

( input_ids: typing.Optional[torch.Tensor] = Noneattention_mask: typing.Optional[torch.Tensor] = Nonedecoder_input_ids: typing.Optional[torch.LongTensor] = Nonedecoder_attention_mask: typing.Optional[torch.LongTensor] = Noneencoder_outputs: list[torch.Tensor] | None = Nonestart_positions: typing.Optional[torch.LongTensor] = Noneend_positions: typing.Optional[torch.LongTensor] = Noneinputs_embeds: typing.Optional[torch.Tensor] = Nonedecoder_inputs_embeds: typing.Optional[torch.Tensor] = Noneuse_cache: bool | None = None**kwargs: *<class 'transformers.utils.generic.TransformersKwargs'> ) → Seq2SeqQuestionAnsweringModelOutput 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 для токенов, которые замаскированы.

    Что такое маски внимания?

  • decoder_input_ids (torch.LongTensor формы (batch_size, target_sequence_length), необязательный) — Используется для обучения переводу и суммаризации. По умолчанию модель создаёт этот тензор, сдвигая input_ids вправо, как описано в статье.
  • decoder_attention_mask (torch.LongTensor формы (batch_size, target_sequence_length), , необязательный) — Поведение по умолчанию: генерирует тензор, игнорирующий токены заполнения в decoder_input_ids. Маска причинности также будет использоваться по умолчанию. Если вы хотите изменить поведение при заполнении, прочитайте modeling_bigbird_pegasus._prepare_decoder_attention_mask и измените его под свои нужды. Подробнее о стратегии по умолчанию см. на рисунке 1 в статье.

    Если вы хотите изменить поведение отступов, вам следует изучить modeling_bigbird_pegasus._prepare_decoder_attention_mask и внести необходимые изменения. Дополнительную информацию о стратегии по умолчанию см. на схеме 1 в статье.

  • encoder_outputs (list[torch.Tensor], необязательный) — Кортеж состоит из (last_hidden_state, необязательный: hidden_states, необязательный: attentions) last_hidden_state формы (batch_size, sequence_length, hidden_size), необязательный) представляет собой последовательность скрытых состояний на выходе последнего слоя энкодера. Используется в кросс-внимании декодера.
  • start_positions (torch.LongTensor формы (batch_size,), необязательный) — Метки для позиции (индекса) начала размеченного фрагмента, используемые для вычисления функции потерь классификации токенов. Позиции ограничиваются длиной последовательности (sequence_length). Позиции, выходящие за пределы последовательности, не учитываются при вычислении функции потерь.
  • end_positions (torch.LongTensor формы (batch_size,), необязательный) — Метки для позиции (индекса) конца размеченного фрагмента, используемые для вычисления функции потерь классификации токенов. Позиции ограничиваются длиной последовательности (sequence_length). Позиции, выходящие за пределы последовательности, не учитываются при вычислении функции потерь.
  • inputs_embeds (torch.Tensor формы (batch_size, sequence_length, hidden_size), необязательный) — При необходимости, вместо передачи input_ids можно напрямую передать встроенное представление. Это полезно, если требуется больший контроль над тем, как индексы input_ids преобразуются в соответствующие векторы, чем это обеспечивает внутренняя матрица поиска встраиваний модели.
  • decoder_inputs_embeds (torch.Tensor формы (batch_size, target_sequence_length, hidden_size), необязательный) — Необязательно, вместо передачи decoder_input_ids можно напрямую передать встроенное представление. Если past_key_values используется, необязательно вводить только последний decoder_inputs_embeds (см. past_key_values). Это полезно, если вы хотите больше контролировать, как индексы decoder_input_ids преобразуются в соответствующие векторы, чем это делает внутренняя матрица эмбеддингов модели.

    Если decoder_input_ids и decoder_inputs_embeds не заданы, decoder_inputs_embeds принимает значение inputs_embeds.

  • use_cache (bool, необязательный) — Если установлено в True, возвращаются состояния ключей и значений past_key_values, которые можно использовать для ускорения декодирования (см. past_key_values).

Возвращает

Seq2SeqQuestionAnsweringModelOutput или tuple(torch.Tensor)

Объект Seq2SeqQuestionAnsweringModelOutput или кортеж из torch.Tensor (если передано return_dict=False или если config.return_dict=False), содержащий различные элементы в зависимости от конфигурации (BigBirdPegasusConfig) и входных данных.

Метод forward класса BigBirdPegasusForQuestionAnswering переопределяет специальный метод __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).

  • past_key_values (EncoderDecoderCache, необязательный, возвращается при передаче use_cache=True или когда config.use_cache=True) — это экземпляр EncoderDecoderCache. Подробнее см. в нашем руководстве по кэшу kv.

    Содержит предварительно вычисленные скрытые состояния (ключи и значения в блоках само-внимания и кросс-внимания), которые можно использовать (см. вход past_key_values) для ускорения последовательного декодирования.

  • decoder_hidden_states (tuple(torch.Tensor), необязательный, возвращается при передаче output_hidden_states=True или при config.output_hidden_states=True) — Кортеж из torch.Tensor (один для вывода эмбеддингов, если у модели есть слой эмбеддингов, + один для вывода каждого слоя) формы (batch_size, sequence_length, hidden_size).

    Скрытые состояния декодера на выходе каждого слоя, а также выходные значения начального слоя встраивания.

  • decoder_attentions (tuple(torch.Tensor), необязательный, возвращается при передаче output_attentions=True или когда config.output_attentions=True) — Кортеж torch.Tensor (по одному на каждый слой) формы (batch_size, num_heads, sequence_length, sequence_length).

    Веса внимания декодера после softmax внимания, используемые для вычисления взвешенного среднего в головах само-внимания.

  • cross_attentions (tuple(torch.Tensor), необязательный, возвращается при передаче output_attentions=True или при config.output_attentions=True) — Кортеж torch.Tensor (по одному на каждый слой) формы (batch_size, num_heads, sequence_length, sequence_length).

    Веса внимания кросс-внимания декодера после softmax внимания, используемые для вычисления взвешенного среднего в головах кросс-внимания.

  • encoder_last_hidden_state (torch.Tensor формы (batch_size, sequence_length, hidden_size), необязательный) — Последовательность скрытых состояний на выходе последнего слоя энкодера модели.

  • encoder_hidden_states (tuple(torch.Tensor), необязательный, возвращается, если передано output_hidden_states=True или если config.output_hidden_states=True) — Кортеж torch.Tensor (один для вывода слоя встраиваний, если модель имеет слой встраиваний, + один для вывода каждого слоя) формы (batch_size, sequence_length, hidden_size).

    Скрытые состояния кодировщика на выходе каждого слоя, а также выходные значения начального слоя встраиваний.

  • encoder_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, BigBirdPegasusForQuestionAnswering
>>> import torch

>>> tokenizer = AutoTokenizer.from_pretrained("google/bigbird-pegasus-large-arxiv")
>>> model = BigBirdPegasusForQuestionAnswering.from_pretrained("google/bigbird-pegasus-large-arxiv")

>>> 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)
...

BigBirdPegasusForCausalLM

класс transformers.BigBirdPegasusForCausalLM

< >

( config: BigBirdPegasusConfig )

forward

< >

( input_ids: typing.Optional[torch.LongTensor] = Noneattention_mask: typing.Optional[torch.Tensor] = Noneencoder_hidden_states: typing.Optional[torch.Tensor] = Noneencoder_attention_mask: typing.Optional[torch.Tensor] = Nonepast_key_values: transformers.cache_utils.Cache | None = Noneinputs_embeds: typing.Optional[torch.Tensor] = Nonelabels: typing.Optional[torch.LongTensor] = Noneuse_cache: bool | None = Nonelogits_to_keep: typing.Union[int, torch.Tensor] = 0**kwargs: *<class 'transformers.utils.generic.TransformersKwargs'> ) → CausalLMOutputWithCrossAttentions or tuple(torch.Tensor)

Параметры

  • input_ids (torch.LongTensor формы (batch_size, sequence_length), , необязательный) — Индексы токенов входной последовательности в словаре. По умолчанию токены отсечки (padding) игнорируются.

    Индексы можно получить с помощью AutoTokenizer. Подробности см. в PreTrainedTokenizer.encode() и PreTrainedTokenizer.call().

    Что такое входные идентификаторы?

  • attention_mask (torch.Tensor формы (batch_size, sequence_length), , необязательный) — Маска для исключения токенов-заполнителей из внимания. Значения маски из диапазона [0, 1]:
    • 1 для токенов, которые не замаскированы,
    • 0 для токенов, которые замаскированы.

    Что такое маски внимания?

  • encoder_hidden_states (torch.Tensor формы (batch_size, sequence_length, hidden_size), необязательный) — Последовательность скрытых состояний на выходе последнего слоя энкодера. Используется в кросс-внимании, если модель настроена как декодер.
  • encoder_attention_mask (torch.Tensor формы (batch_size, sequence_length), , необязательный) — Маска для исключения внимания к индексам токенов отступов во входных данных энкодера. Эта маска используется в кросс-внимании, если модель настроена как декодер. Значения маски из [0, 1]:
    • 1 для токенов, которые не замаскированы,
    • 0 для токенов, которые замаскированы.
  • past_key_values (~cache_utils.Cache, необязательный) — Предвычисленные скрытые состояния (ключи и значения в блоках само-внимания и кросс-внимания), которые можно использовать для ускорения последовательного декодирования. Обычно это past_key_values , возвращённые моделью на предыдущем этапе декодирования, когда use_cache=True или config.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), необязательный) — При необходимости, вместо передачи input_ids можно напрямую передать встроенное представление. Это полезно, если требуется больший контроль над тем, как индексы input_ids преобразуются в соответствующие векторы, чем это обеспечивает внутренняя матрица поиска встраиваний модели.
  • labels (torch.LongTensor формы (batch_size, sequence_length), необязательный) — Метки для вычисления потерь маскированного языкового моделирования. Индексы должны находиться в диапазоне [0, ..., config.vocab_size] или быть равны -100 (см. docstring input_ids). Токены с индексами, установленными в -100, игнорируются (маскируются); потери вычисляются только для токенов с метками в диапазоне [0, ..., config.vocab_size].
  • use_cache (bool, необязательный) — Если установлено в True, возвращаются состояния ключей и значений past_key_values, которые можно использовать для ускорения декодирования (см. past_key_values).
  • logits_to_keep (Union[int, torch.Tensor], необязательный, по умолчанию 0) — Если передано значение типа int, вычисляет logits для последних logits_to_keep токенов. Если указано 0, logits вычисляются для всех input_ids (особый случай). Для генерации нужны logits только последнего токена, и вычисление их только для этого токена позволяет сэкономить память, что становится весьма значимым для длинных последовательностей или большого размера словаря. Если передано значение типа torch.Tensor, оно должно быть одномерным и соответствовать индексам, которые нужно сохранить в измерении длины последовательности. Это полезно при использовании упакованного формата тензоров (один размер для batch и длины последовательности).

Возвращает

CausalLMOutputWithCrossAttentions или tuple(torch.Tensor)

Объект CausalLMOutputWithCrossAttentions или кортеж из torch.Tensor (если передано return_dict=False или если config.return_dict=False), содержащий различные элементы в зависимости от конфигурации (BigBirdPegasusConfig) и входных данных.

Метод forward класса BigBirdPegasusForCausalLM переопределяет специальный метод __call__.

Хотя рецепт для прямого прохода должен быть определён внутри этой функции, после этого следует вызывать экземпляр Module, а не эту функцию, поскольку первый вариант обеспечивает выполнение шагов предварительной и последующей обработки, тогда как второй молча их игнорирует.

  • loss (torch.Tensor формы (1,), необязательный, возвращается, если задан labels) — Потери языковой модели (для предсказания следующего токена).

  • 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 в механизме внимания, используемые для вычисления взвешенного среднего в головах само-внимания.

  • cross_attentions (tuple(torch.Tensor), необязательный, возвращается при передаче output_attentions=True или при config.output_attentions=True) — Кортеж torch.Tensor (по одному на каждый слой) формы (batch_size, num_heads, sequence_length, sequence_length).

    Веса кросс-внимания после softmax внимания, используемые для вычисления взвешенного среднего в головах кросс-внимания.

  • past_key_values (Cache, необязательный, возвращается при передаче use_cache=True или когда config.use_cache=True) — это экземпляр Cache. Подробнее см. в нашем руководстве по кэшу kv.

    Содержит предварительно вычисленные скрытые состояния (ключи и значения в блоках внимания), которые можно использовать (см. вход past_key_values) для ускорения последовательного декодирования.

Пример:

>>> from transformers import AutoTokenizer, BigBirdPegasusForCausalLM

>>> tokenizer = AutoTokenizer.from_pretrained("google/bigbird-pegasus-large-arxiv")
>>> model = BigBirdPegasusForCausalLM.from_pretrained(
...     "google/bigbird-pegasus-large-arxiv"
... )
>>> assert model.config.is_decoder, f"{model.__class__} has to be configured as a decoder."
>>> inputs = tokenizer("Hello, my dog is cute", return_tensors="pt")
>>> outputs = model(**inputs)

>>> logits = outputs.logits
Update on GitHub