Decoder (Transformer) (VI)
Bộ giải mã (tiếng Anh: Decoder) — trong Machine Learning và học sâu, đây là thành phần của mạng nơ-ron có nhiệm vụ chính là chuyển đổi biểu diễn đã được mã hóa (ví dụ: vector ngữ cảnh hoặc chuỗi các trạng thái ẩn nhận được từ bộ mã hóa) thành chuỗi dữ liệu đầu ra (ví dụ: văn bản hoặc hình ảnh). Bộ giải mã tạo ra dữ liệu đầu ra từng bước một, thông thường theo chế độ tự hồi quy (autoregressive).
Theo nghĩa rộng hơn, trong lý thuyết thông tin, bộ giải mã là bất kỳ thiết bị hoặc thuật toán nào chuyển đổi dữ liệu đã mã hóa trở lại định dạng gốc hoặc định dạng có thể hiểu được.
Khái niệm và mục đích
Nếu bộ mã hóa (encoder) chịu trách nhiệm hiểu và nén dữ liệu đầu vào, thì bộ giải mã chịu trách nhiệm tạo sinh và triển khai dữ liệu đầu ra. Nó nhận biểu diễn nhỏ gọn, giàu thông tin và tuần tự chuyển đổi nó thành định dạng mong muốn, dù đó là câu trong ngôn ngữ khác, mô tả văn bản của hình ảnh hay chuỗi nốt nhạc.
Đặc điểm quan trọng của hầu hết các bộ giải mã là tính chất tự hồi quy (autoregressive): để tạo ra phần tử tiếp theo của chuỗi (ví dụ: từ hoặc pixel), chúng sử dụng cả biểu diễn đã mã hóa lẫn tất cả các phần tử đã được tạo ra trước đó.
Bộ giải mã trong các kiến trúc khác nhau
Bộ giải mã trong autoencoder
Trong kiến trúc autoencoder, bộ giải mã thực hiện nhiệm vụ ngược lại với bộ mã hóa:
- Bộ mã hóa nén dữ liệu đầu vào thành biểu diễn ẩn.
- Bộ giải mã lấy biểu diễn ẩn đó và cố gắng khôi phục (tái tạo) dữ liệu gốc từ nó.
Việc huấn luyện mạng như vậy cho phép sử dụng bộ giải mã riêng lẻ để tạo sinh dữ liệu mới, bằng cách đưa vào đầu vào của nó các vector từ không gian tiềm ẩn (latent space).
Bộ giải mã trong mạng nơ-ron hồi quy (RNN/LSTM)
Trong các mô hình chuyển đổi chuỗi sang chuỗi (seq2seq) cổ điển dựa trên RNN hoặc LSTM, bộ giải mã là một mạng hồi quy tạo ra chuỗi đầu ra theo từng token.
- Nguyên lý hoạt động: Bộ giải mã được khởi tạo bằng trạng thái ẩn cuối cùng (vector ngữ cảnh) của bộ mã hóa. Ở mỗi bước, nó nhận vào token đã tạo trước đó và trạng thái ẩn trước đó của mình, sau đó tạo ra token tiếp theo và cập nhật trạng thái. Quá trình này tiếp tục cho đến khi token kết thúc chuỗi đặc biệt (`<EOS>`) được tạo ra.
Bộ giải mã trong kiến trúc Transformer
Bộ giải mã dựa trên kiến trúc Transformer cũng hoạt động theo chế độ tự hồi quy, nhưng cấu trúc bên trong của nó khác biệt. Nó bao gồm một ngăn xếp () các lớp giống hệt nhau, mỗi lớp có ba lớp con chính:
- Masked Multi-Head Self-Attention - Tự chú ý đa đầu có che mặt nạ: Cơ chế này hoạt động tương tự như trong bộ mã hóa, nhưng với một điểm khác biệt quan trọng — che mặt nạ (masking). Mặt nạ không cho phép mỗi vị trí "chú ý" đến các vị trí tiếp theo trong chuỗi. Điều này đảm bảo rằng dự đoán cho vị trí chỉ phụ thuộc vào các đầu ra đã biết ở các vị trí , duy trì tính chất tự hồi quy.
- Multi-Head Cross-Attention - Chú ý chéo đa đầu: Đây là cơ chế quan trọng kết nối bộ giải mã với bộ mã hóa. Ở đây, các truy vấn (Query) đến từ lớp trước của bộ giải mã, còn các khóa (Key) và giá trị (Value) đến từ các biểu diễn đầu ra của bộ mã hóa. Điều này cho phép bộ giải mã ở mỗi bước tạo sinh tập trung vào những phần liên quan nhất của chuỗi đầu vào.
- Feed-Forward Network - Mạng nơ-ron kết nối đầy đủ: Tương tự như mạng được sử dụng trong bộ mã hóa.
Các loại mô hình dựa trên bộ giải mã
Mô hình encoder-decoder
Đây là kiến trúc cổ điển, trong đó bộ mã hóa và bộ giải mã hoạt động theo cặp.
- Nguyên lý hoạt động: Bộ mã hóa tạo ra biểu diễn dữ liệu đầu vào, còn bộ giải mã tạo sinh dữ liệu đầu ra sử dụng biểu diễn đó.
- Ví dụ: Transformer gốc, T5, BART.
Mô hình chỉ-giải-mã (Decoder-Only)
Các mô hình này, đã trở nên chiếm ưu thế trong AI tạo sinh, sử dụng duy nhất ngăn xếp bộ giải mã Transformer.
- Nguyên lý hoạt động: Trong các mô hình như vậy không có cơ chế chú ý chéo tới bộ mã hóa, vì không có bộ mã hóa. Mô hình hoạt động hoàn toàn theo chế độ tự hồi quy, dự đoán token tiếp theo dựa trên tất cả các token trước đó trong cùng một chuỗi. Prompt đầu vào và văn bản đã được tạo ra được xử lý cùng nhau.
- Ứng dụng: Lý tưởng cho các tác vụ yêu cầu tiếp nối văn bản đã cho (tạo sinh văn bản, hệ thống hội thoại, chatbot).
- Ví dụ: Dòng GPT, LLaMA, Claude.
Mối liên hệ với bộ mã hóa
Sự tương tác giữa bộ mã hóa và bộ giải mã là nguyên lý cơ bản cho các tác vụ chuyển đổi.
- Bộ mã hóa nén thông tin về chuỗi đầu vào thành một tập hợp các vector.
- Bộ giải mã sử dụng tập hợp vector đó để tuần tự tạo sinh một chuỗi mới.
Cơ chế chú ý chéo (cross-attention) cho phép bộ giải mã ở mỗi bước "tham khảo" bộ mã hóa để hiểu phần nào của văn bản gốc cần tập trung vào tại thời điểm đó. Ví dụ, khi dịch một câu, bộ giải mã khi tạo ra một từ tiếng Đức có thể "nhìn" vào từ tiếng Anh tương ứng trong đầu vào.
Xem thêm
- GPT
Tài liệu tham khảo
- Vaswani, A. et al. (2017). Attention Is All You Need. NIPS.