Back to archive
#ai#llm#glossary#aigen

Cross-attention

Cross-attention pobiera query z jednej sekwencji reprezentacji, a key i value z drugiej. Dla każdego query oblicza wynik przez połączenie informacji z dostępnych value. Od Self-attention różni się pochodzeniem danych: tam wszystkie trzy zestawy wywodzą się z tej samej sekwencji.

W oryginalnym Transformer query pochodziły ze strony decodera, natomiast key i value z wyjścia encodera. Paper nazywa tę część „encoder-decoder attention”. Attention Is All You Need, §3.2.3.

Wynik powstaje dla każdego query

Załóżmy, że decoder dostarcza dwa wektory query, a encoder trzy pary key–value. Każde query ma wtedy trzy możliwe połączenia ze źródłem. Powstają dwa wektory wyniku, po jednym dla każdej pozycji query, a nie trzy wektory odpowiadające długości wejścia encodera.

W tłumaczeniu można to rozumieć tak: reprezentacja tworzonej części odpowiedzi określa, jak połączyć informacje z reprezentacji zdania źródłowego. To przykład przepływu informacji, nie gwarancja, że pojedyncza waga attention jest poprawnym dopasowaniem słów między językami.

Implementacja CrossAttention w TensorFlow przekazuje osobno sekwencję query i kontekst key–value. Sama operacja nie przenosi informacji bezpośrednio między pozycjami query; każda odczytuje kontekst.

Cross-attention może korzystać z Multi-Head Attention. „Cross” mówi o źródłach reprezentacji, a „multi-head” o wielu zestawach projekcji. Dwie sekwencje nie muszą pochodzić z dwóch niezależnie wytrenowanych modeli: encoder i decoder mogą być częściami jednego modelu.

Wykorzystuję treści generowane przez AI jako część mojego codziennego procesu nauki.