Self-Attention và Cross-Attention khác nhau ở nguồn của Q, K, V

Self-Attention và Cross-Attention khác nhau ở nguồn của Q, K, V A data-flow diagram generated by Archify. 01 / Nguồn 02 / Phép chiếu 03 / Attention 04 / Hệ quả Một sequence X · hidden states của chính nó · 01 / Nguồn Một sequence X hidden states của chính nó Q, K, V đều từ X · cùng một nguồn duy nhất · 02 / Phép chiếu Q, K, V đều từ X cùng một nguồn duy nhất Self-Attention · vị trí này hỏi vị trí kia · 03 / Attention · lõi của LLM hiện đại Self-Attention vị trí này hỏi vị trí kia lõi của LLM hiện đại Tự làm giàu ngữ cảnh · trong cùng một chuỗi · 04 / Hệ quả Tự làm giàu ngữ cảnh trong cùng một chuỗi Stream A · decoder · chuỗi đang được sinh ra · 01 / Nguồn Stream A · decoder chuỗi đang được sinh ra Q từ stream A · bên đặt câu hỏi · 02 / Phép chiếu Q từ stream A bên đặt câu hỏi Cross-Attention · hỏi sang chuỗi khác · 03 / Attention Cross-Attention hỏi sang chuỗi khác Lấy thông tin bên ngoài · decoder đọc encoder · 04 / Hệ quả Lấy thông tin bên ngoài decoder đọc encoder Stream B · encoder · câu nguồn đã mã hoá · 01 / Nguồn Stream B · encoder câu nguồn đã mã hoá K, V từ stream B · bên trả lời · 02 / Phép chiếu K, V từ stream B bên trả lời một nguồn duy nhất self là cùng nguồn ngữ cảnh nội bộ bên hỏi bên được hỏi Query Key và Value ngữ cảnh bên ngoài Legend primary data data flow

Self không có nghĩa là token chỉ nhìn chính nó

  • • Self nói về nguồn của Q, K, V, không nói về phạm vi nhìn
  • • Một token vẫn attention sang mọi token khác trong chuỗi
  • • Cái giới hạn phạm vi là mask, không phải chữ self

Ba biến thể hay gặp

  • • Encoder self-attention thường nhìn toàn bộ sequence
  • • Decoder causal self-attention chỉ nhìn hiện tại và quá khứ
  • • Cross-attention lấy Q từ một stream, K và V từ stream kia

LLM decoder-only dùng biến thể nào

  • • GPT và các model cùng họ chạy causal self-attention
  • • Q, K, V cùng đến từ chuỗi token đang xử lý
  • • Cross-attention xuất hiện khi có một nguồn thứ hai để đọc