Spec-Zone.ru › TensorFlow

tf.keras.layers.GroupQueryAttention

Слой группированной запросовой (query) внимательности.

Наследуется от: Layer, Operation

tf.keras.layers.GroupQueryAttention(
    head_dim,
    num_query_heads,
    num_key_value_heads,
    dropout=0.0,
    use_bias=True,
    kernel_initializer='glorot_uniform',
    bias_initializer='zeros',
    kernel_regularizer=None,
    bias_regularizer=None,
    activity_regularizer=None,
    kernel_constraint=None,
    bias_constraint=None,
    **kwargs
)

Это реализация группированной запросовой внимательности, представленной в работе Ainslie и др., 2023. Здесь num_key_value_heads обозначает количество групп, установка num_key_value_heads в 1 эквивалентна многозапросовой внимательности, а когда num_key_value_heads равно num_query_heads, это эквивалентно внимательности с несколькими головками.

Этот слой сначала проектирует query, key и value тензоры. Затем key и value повторяются, чтобы соответствовать количеству головок query.

Затем query масштабируется и выполняется скалярное произведение с тензорами key. Эти тензоры обрабатываются функцией softmax для получения вероятностей внимания. Затем тензоры значений интерполируются с этими вероятностями и конкатенируются обратно в один тензор.

Аргументы
head_dim Размер каждой головы внимания.
num_query_heads Количество головок запроса.
num_key_value_heads Количество головок ключа и значения.
dropout Вероятность отбрасывания (dropout).
use_bias Булево значение, указывает, используют ли слои Dense смещения.
kernel_initializer Инициализатор для ядер слоя Dense.
bias_initializer Инициализатор для смещений слоя Dense.
kernel_regularizer Регуляризатор для ядер слоя Dense.
bias_regularizer Регуляризатор для смещений слоя Dense.
activity_regularizer Регуляризатор для активности слоя Dense.
kernel_constraint Ограничение для ядер слоя Dense.
bias_constraint Ограничение для ядер слоя Dense.
Аргументы вызова
query Тензор запроса формы (batch_dim, target_seq_len, feature_dim), где batch_dim - размер батча, target_seq_len - длина целевой последовательности, а feature_dim - размерность признака.
value Тензор значения формы (batch_dim, source_seq_len, feature_dim), где batch_dim - размер батча, source_seq_len - длина исходной последовательности, а feature_dim - размерность признака.
key Необязательный тензор ключа формы (batch_dim, source_seq_len, feature_dim). Если не указан, используется value для обоих key и value, что является наиболее распространённым случаем.
attention_mask Булево маскирование формы (batch_dim, target_seq_len, source_seq_len), предотвращающее внимание к определённым позициям. Маска указывает, какие элементы запроса могут обращать внимание на какие элементы ключа, где 1 означает внимание, а 0 - отсутствие внимания. Распространение может происходить для отсутствующих размерностей батча и размерности головки.
return_attention_scores Булево значение, указывающее, следует ли получить результат (attention_output, attention_scores), если True, или attention_output, если False. По умолчанию - False.
training Булево значение, указывающее, должен ли слой работать в режиме обучения (добавление dropout) или в режиме вывода (без dropout). Будет использоваться либо режим обучения родительского слоя/модели, либо False (вывод), если родительского слоя нет.
use_causal_mask Булево значение, указывающее, следует ли применять маску причинности, чтобы предотвратить токенам обращать внимание на будущие токены (например, используется в декодере Transformer).
Возвращаемое значение
attention_output Результат вычисления формы (batch_dim, target_seq_len, feature_dim), где target_seq_len - длина целевой последовательности, а feature_dim - последняя размерность входных данных запроса.
attention_scores (Необязательно) коэффициенты внимания формы (batch_dim, num_query_heads, target_seq_len, source_seq_len).
Атрибуты
input Получает тензор(ы) входных данных символической операции.

Возвращает только тензор(ы), соответствующий первому вызову операции.

output Получает тензор(ы) выходных данных слоя.

Возвращает только тензор(ы), соответствующий первому вызову операции.

Методы

from_config

Посмотреть исходный код

@classmethod
from_config(
    config
)

Создаёт слой из его конфигурации.

Этот метод - обратное преобразование get_config, способное создать тот же слой из словаря конфигурации. Он не обрабатывает соединение слоёв (это обрабатывается сетью), а также веса (это обрабатывается set_weights).

Аргументы
config Словарь Python, обычно результат работы get_config.
Возвращаемое значение
Экземпляр слоя.

symbolic_call

Посмотреть исходный код

symbolic_call(
    *args, **kwargs
)

© 2022 The TensorFlow Authors. All rights reserved.
Licensed under the Creative Commons Attribution License 4.0.
Code samples licensed under the Apache 2.0 License.
https://www.tensorflow.org/api_docs/python/tf/keras/layers/GroupQueryAttention

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API