Spec-Zone.ru › TensorFlow

tf.keras.layers.GroupQueryAttention

Слой внимания с групповыми запросами.

Наследуется от: 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 et al., 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 Вероятность отсева.
use_bias Логическое значение: использовать ли в полносвязных слоях векторы/матрицы смещений.
kernel_initializer Инициализатор ядер полносвязного слоя.
bias_initializer Инициализатор смещений полносвязного слоя.
kernel_regularizer Регуляризатор ядер полносвязного слоя.
bias_regularizer Регуляризатор смещений полносвязного слоя.
activity_regularizer Регуляризатор активности полносвязного слоя.
kernel_constraint Ограничение для ядер полносвязного слоя.
bias_constraint Ограничение для ядер полносвязного слоя.
Аргументы вызова
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). Если он не задан, для key и value используется 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 Логическое значение Python, указывающее, должен ли слой работать в режиме обучения (с применением отсева) или в режиме вывода (без отсева). Используется режим обучения родительского слоя/модели либо 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 и позволяет создать экземпляр того же слоя на основе словаря конфигурации. Он не обрабатывает связи слоёв (это делает Network) и веса (это делает 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