Nền tảngNâng cao

Vị trí đi vào Transformer như thế nào?

Phân biệt mã hóa vị trí cộng vào embedding với RoPE, rồi tự kiểm quan hệ giữa góc quay và khoảng cách token.

Trong bài viết này

Từ được đánh dấu có giải thích. Di chuột hoặc chạm để xem, hay mở từ điển AI.

“Lan gọi Minh” và “Minh gọi Lan” chứa cùng những từ nhưng mô tả hai việc khác nhau. Nếu chỉ trộn một tập vector mà không có dấu hiệu vị trí, một cơ chế attention không tự biết từ nào đứng trước. Transformer cần cách đưa thứ tự vào phép tính.

Bạn nên biết query, key và tích vô hướng trước khi đọc. Bài này dùng góc quay hai chiều để giải thích RoPE; số đo và vector đều giả định, không phải cấu hình của một mô hình đang được cung cấp.

Khi thứ tự không nằm trong token

Trong self-attention không có thông tin vị trí và không có mặt nạ phụ thuộc vị trí, hoán vị các hàng đầu vào sẽ hoán vị các hàng đầu ra tương ứng. Phép tính nhận ra nội dung và quan hệ giữa vector nhưng không phân biệt một thứ tự tuyệt đối được áp từ bên ngoài.

Một cách đưa vị trí vào là cộng vector vị trí p_i với embedding x_i. Vector p_i có thể được học hoặc được xác định bằng hàm sin, cos. Sau phép cộng, các phép chiếu query và key nhận cả nội dung lẫn vị trí. Hai lần xuất hiện của cùng token vì vậy có thể tạo biểu diễn khác nhau.

Causal mask cũng mang thông tin về hướng thời gian, nhưng không đồng nghĩa với việc mọi kiến trúc đều bỏ được positional encoding. Hãy đọc đúng thiết kế của mô hình; một lập luận cho attention không mask không tự áp dụng nguyên vẹn cho mọi mạng có mask.

RoPE quay query và key

RoPE xử lý các cặp tọa độ của query và key bằng phép quay phụ thuộc vị trí. Với cặp [a, b] tại vị trí m và góc mθ, kết quả là [a cos(mθ) − b sin(mθ), a sin(mθ) + b cos(mθ)]. Các cặp dùng những tần số khác nhau.

Phép quay bảo toàn độ dài vector. Khi lấy tích vô hướng giữa query ở vị trí m và key ở vị trí n, tính chất của ma trận quay đưa độ lệch n − m vào quan hệ. Nội dung vẫn ở trong vector gốc; khoảng cách không thay thế nội dung mà điều chỉnh cách chúng tương tác.

Đây là ý tưởng trung tâm của RoFormer: Enhanced Transformer with Rotary Position Embedding. Bài báo giới thiệu RoPE và đánh giá trong phạm vi các mô hình, bộ dữ liệu cụ thể. Nó không chứng minh rằng cứ đổi góc quay là một mô hình bất kỳ đọc tốt tài liệu dài tùy ý.

Một phép thử dịch chuyển cả câu

Giả sử query và key trước quay đều là [1, 0], θ bằng 30 độ. Query tại m = 1 trở thành [cos30, sin30]; key tại n = 3 trở thành [cos90, sin90]. Tích vô hướng bằng cos60, tức 0,5.

Dịch cả hai vị trí thêm hai bước: m = 3 và n = 5. Góc tương ứng là 90 và 150 độ; tích vô hướng vẫn cos60. Ví dụ một cặp chiều này cho thấy tính phụ thuộc khoảng cách. Trong mạng thật, nội dung vector, nhiều tần số, mask và các lớp khác còn ảnh hưởng kết quả.

Nhìn để hiểuAttention: kết hợp thông tin trong ngữ cảnh

Một query được so với các key để tạo trọng số. Attention dùng những trọng số đó để tổng hợp các value thành biểu diễn mới của vị trí đang xét.

Attention kết hợp thông tin theo ngữ cảnhCác đường nối có độ dày khác nhau biểu thị trọng số minh họa khi xử lý token nó trong một câu. Attention kết hợp thông tin từ các vị trí khác; độ đậm không chứng minh suy luận của mô hình hay kết luận đúng về đại từ.NGỮ CẢNH ĐƯỢC RÚT GỌNLanđặt cốccạnh sáchnóToken đang xétTrọng số khác nhauBiểu diễn mớiĐộ dày minh họa trọng số, không chứng minh câu trả lời đúng.

↔ Vuốt ngang để xem toàn bộ sơ đồ.

  1. 01 / Query

    Vị trí đang xét có một vector truy vấn, gọi là query.

  2. 02 / Key

    Query được so với các vector key ở những vị trí mà mô hình được phép tham chiếu.

  3. 03 / Trọng số

    Điểm tương hợp được chuẩn hóa thành trọng số attention cho từng vị trí.

  4. 04 / Tổng hợp

    Các vector value được cộng theo trọng số đó, tạo biểu diễn có thông tin từ ngữ cảnh.

Sơ đồ giản lược một đầu attention, bỏ qua kích thước vector và phép chiếu. Các đường nối không phải lời giải thích đầy đủ cho quyết định của mô hình.

Sơ đồ attention nhắc lại nơi query và key tham gia trộn ngữ cảnh. Nó không mô phỏng phép quay RoPE, nên hãy dùng phép tính góc ở trên để kiểm tra cơ chế vị trí thay vì suy ra từ hình.

Ngữ cảnh dài cần được kiểm chứng riêng

Một công thức có thể tính ở vị trí lớn không có nghĩa mô hình đã học tốt các khoảng cách lớn ấy. Phân bố góc, khoảng cách xuất hiện khi huấn luyện và cách nội dung được sử dụng đều có thể thay đổi ngoài miền đã học. Mở rộng cửa sổ còn tăng chi phí bộ nhớ và thời gian.

Trong một hệ thống đọc hợp đồng, việc nhận đủ token mới chỉ là kiểm tra đầu vào. Cần đặt dữ kiện quan trọng ở đầu, giữa và cuối, thêm thông tin gây nhiễu, rồi đo khả năng trích đúng. Một phép thử tìm một chuỗi duy nhất không thay thế việc tổng hợp nhiều điều khoản cách xa nhau.

Các kỹ thuật điều chỉnh tần số hoặc nội suy vị trí cần đi cùng mô tả chính xác về checkpoint và quá trình thích nghi. Không thể chép một hệ số vào cấu hình rồi coi chiều dài mới là năng lực đã được xác nhận.

Bài tập: bảo toàn và không bảo toàn

Tính lại ví dụ với m = 2, n = 4; bạn phải nhận 0,5. Sau đó chỉ chuyển key từ n = 4 sang n = 5, giữ query tại m = 2; kết quả phải thành cos90, tức gần không trong sai số số học.

Viết thêm hai câu phân biệt “công thức chấp nhận vị trí mới” với “mô hình sử dụng thông tin ở vị trí mới chính xác”. Nếu câu trả lời có cả thay đổi phân bố và phép thử trên nhiệm vụ thật, bạn đã nắm giới hạn cần thiết. Đọc KV cache để nối vị trí với quá trình sinh từng token.

Bạn muốn hiểu điều gì?

Khám phá tất cả bài viết esc để đóng