Hacker News Nổi bật (buzzing.cc bản dịch tiếng Trung)
92

Thủ thuật

Transformer Explainer: Công cụ tương tác trực quan hóa kiến trúc GPT-2 ngay trên trình duyệt

(giờ Việt Nam)

Tóm tắt AI

Transformer Explainer từ Georgia Tech cho phép người dùng khám phá cách vận hành của mô hình GPT-2 (124M) thông qua giao diện tương tác trực quan, chạy trực tiếp trên trình duyệt nhờ ONNX Runtime.

Bản dịch AI

Transformer Explainer: LLM Transformer Model Visually Explained

Transformer là gì?

Transformer là một kiến trúc mạng thần kinh đã thay đổi hoàn toàn cách tiếp cận Trí tuệ nhân tạo. Transformer lần đầu tiên được giới thiệu trong bài báo mang tính đột phá "Attention is All You Need" vào năm 2017 và kể từ đó đã trở thành kiến trúc ưu tiên cho các mô hình học sâu, cung cấp sức mạnh cho các mô hình tạo văn bản như GPT của OpenAI, Llama của Meta và Gemini của Google. Ngoài văn bản, Transformer còn được ứng dụng trong tạo âm thanh, nhận diện hình ảnh, dự đoán cấu trúc protein và thậm chí là chơi game, cho thấy tính linh hoạt của nó trên nhiều lĩnh vực.

Về cơ bản, các mô hình Transformer tạo văn bản hoạt động dựa trên nguyên tắc dự đoán token tiếp theo: với một câu lệnh (prompt) từ người dùng, đâu là token (một từ hoặc một phần của từ) có khả năng cao nhất sẽ xuất hiện sau đầu vào này? Đổi mới cốt lõi và sức mạnh của Transformer nằm ở việc sử dụng cơ chế tự chú ý (self-attention), cho phép chúng xử lý toàn bộ chuỗi và nắm bắt các phụ thuộc tầm xa hiệu quả hơn so với các kiến trúc trước đây.

Họ mô hình GPT-2 là những ví dụ nổi bật của Transformer tạo văn bản. Transformer Explainer được vận hành bởi mô hình GPT-2 (bản nhỏ) với 124 triệu tham số. Mặc dù đây không phải là mô hình Transformer mới nhất hay mạnh mẽ nhất, nhưng nó chia sẻ nhiều thành phần kiến trúc và nguyên lý giống với các mô hình hiện đại nhất hiện nay, khiến nó trở thành điểm khởi đầu lý tưởng để hiểu những kiến thức cơ bản.

Kiến trúc Transformer

Mọi Transformer tạo văn bản đều bao gồm ba thành phần chính sau:

Embedding (Nhúng)

Giả sử bạn muốn tạo văn bản bằng mô hình Transformer. Bạn thêm một câu lệnh như sau: “Data visualization empowers users to”. Đầu vào này cần được chuyển đổi sang định dạng mà mô hình có thể hiểu và xử lý. Đó là lúc embedding xuất hiện: nó biến đổi văn bản thành một biểu diễn số mà mô hình có thể làm việc. Để chuyển đổi một câu lệnh thành embedding, chúng ta cần 1) tokenize đầu vào, 2) lấy các token embedding, 3) thêm thông tin vị trí, và cuối cùng 4) cộng các mã hóa token và vị trí để có được embedding cuối cùng. Hãy cùng xem cách thực hiện từng bước này.

Hình 1. Mở rộng chế độ xem lớp Embedding, cho thấy cách câu lệnh đầu vào được chuyển đổi thành biểu diễn vector. Quá trình này bao gồm (1) Tokenization, (2) Token Embedding, (3) Positional Encoding (Mã hóa vị trí), và (4) Final Embedding (Embedding cuối cùng).

Bước 1: Tokenization (Phân tách token)

Tokenization là quá trình chia nhỏ văn bản đầu vào thành các phần nhỏ hơn, dễ quản lý hơn gọi là các token. Các token này có thể là một từ hoặc một phần của từ. Các từ "Data" và "visualization" tương ứng với các token riêng biệt, trong khi từ "empowers" được chia thành hai token. Toàn bộ từ vựng của các token được quyết định trước khi huấn luyện mô hình: từ vựng của GPT-2 có 50.257 token duy nhất. Bây giờ khi đã chia văn bản đầu vào thành các token với ID riêng biệt, chúng ta có thể lấy biểu diễn vector của chúng từ các embedding.

Bước 2. Token Embedding

GPT-2 (bản nhỏ) biểu diễn mỗi token trong từ vựng dưới dạng một vector 768 chiều; số chiều của vector phụ thuộc vào từng mô hình. Các vector embedding này được lưu trữ trong một ma trận có hình dạng (50.257, 768), chứa khoảng 39 triệu tham số! Ma trận khổng lồ này cho phép mô hình gán ý nghĩa ngữ nghĩa cho mỗi token, theo nghĩa là các token có cách sử dụng hoặc ý nghĩa tương tự trong ngôn ngữ sẽ được đặt gần nhau trong không gian nhiều chiều này, trong khi các token không tương đồng sẽ nằm xa nhau hơn.

Bước 3. Positional Encoding (Mã hóa vị trí)

Lớp Embedding cũng mã hóa thông tin về vị trí của mỗi token trong câu lệnh đầu vào. Các mô hình khác nhau sử dụng nhiều phương pháp khác nhau cho việc mã hóa vị trí. GPT-2 tự huấn luyện ma trận mã hóa vị trí của riêng mình từ đầu, tích hợp trực tiếp vào quá trình huấn luyện.

Bước 4. Final Embedding (Embedding cuối cùng)

Cuối cùng, chúng ta cộng các mã hóa token và mã hóa vị trí để có được biểu diễn embedding cuối cùng. Biểu diễn kết hợp này nắm bắt được cả ý nghĩa ngữ nghĩa của các token và vị trí của chúng trong chuỗi đầu vào.

Khối Transformer (Transformer Block)

Cốt lõi trong quá trình xử lý của Transformer nằm ở khối Transformer, bao gồm cơ chế tự chú ý đa đầu (multi-head self-attention) và một lớp Perceptron đa tầng (Multi-Layer Perceptron). Hầu hết các mô hình bao gồm nhiều khối như vậy được xếp chồng tuần tự lên nhau. Các biểu diễn token phát triển qua các lớp, từ khối đầu tiên đến khối cuối cùng, cho phép mô hình xây dựng sự hiểu biết phức tạp về từng token. Cách tiếp cận theo lớp này dẫn đến các biểu diễn bậc cao hơn của đầu vào. Mô hình GPT-2 (bản nhỏ) mà chúng ta đang xem xét bao gồm 12 khối như vậy.

Multi-Head Self-Attention (Tự chú ý đa đầu)

Cơ chế tự chú ý cho phép mô hình nắm bắt các mối quan hệ giữa các token trong một chuỗi, để biểu diễn của mỗi token bị ảnh hưởng bởi các token còn lại. Nhiều đầu chú ý (attention heads) cho phép mô hình xem xét các mối quan hệ này từ các góc độ khác nhau; ví dụ, một đầu có thể nắm bắt các liên kết cú pháp tầm ngắn trong khi đầu khác theo dõi ngữ cảnh ngữ nghĩa rộng hơn. Trong phần tiếp theo, chúng ta sẽ đi qua cách tính toán tự chú ý đa đầu từng bước một.

Bước 1: Ma trận Query, Key và Value

QKVij=(∑d=1768Embeddingi,d⋅Weightsd,j)+Biasj

Hình 2. Tính toán các ma trận Query, Key và Value từ embedding gốc.

Vector embedding của mỗi token được biến đổi thành ba vector: Query (Q), Key (K) và Value (V). Các vector này được tạo ra bằng cách nhân ma trận embedding đầu vào với các ma trận trọng số đã học cho Q, K và V. Dưới đây là một phép so sánh với tìm kiếm web để giúp chúng ta xây dựng trực giác về các ma trận này:

Bằng cách sử dụng các giá trị QKV này, mô hình có thể tính toán điểm chú ý (attention scores), xác định mức độ tập trung mà mỗi token nên nhận được khi tạo dự đoán.

Bước 2: Phân tách đa đầu (Multi-Head Splitting)

Các vector Query, Key và Value được chia thành nhiều đầu—trong trường hợp của GPT-2 (bản nhỏ) là 12 đầu. Mỗi đầu xử lý một phân đoạn của các embedding một cách độc lập, nắm bắt các mối quan hệ cú pháp và ngữ nghĩa khác nhau. Thiết kế này tạo điều kiện cho việc học song song các đặc điểm ngôn ngữ đa dạng, nâng cao sức mạnh biểu diễn của mô hình.

Bước 3: Masked Self-Attention (Tự chú ý có che)

Trong mỗi đầu, chúng ta thực hiện các tính toán tự chú ý có che. Cơ chế này cho phép mô hình tạo các chuỗi bằng cách tập trung vào các phần liên quan của đầu vào trong khi ngăn chặn việc truy cập vào các token tương lai.

Hình 3. Sử dụng các ma trận Query, Key và Value để tính toán tự chú ý có che.

Bước 4: Đầu ra và Ghép nối (Concatenation)

Mô hình sử dụng các điểm số tự chú ý có che và nhân chúng với ma trận Value để có được đầu ra cuối cùng của cơ chế tự chú ý. GPT-2 có 12 đầu tự chú ý, mỗi đầu nắm bắt các mối quan hệ khác nhau giữa các token. Đầu ra của các đầu này được ghép nối và truyền qua một phép chiếu tuyến tính (linear projection).

MLP: Perceptron đa tầng

Hình 4. Sử dụng lớp MLP để chiếu các biểu diễn tự chú ý vào các chiều cao hơn nhằm nâng cao khả năng biểu diễn của mô hình.

Sau khi nhiều đầu tự chú ý nắm bắt các mối quan hệ đa dạng giữa các token đầu vào, các đầu ra đã ghép nối được truyền qua lớp Perceptron đa tầng (MLP) để nâng cao khả năng biểu diễn của mô hình. Khối MLP bao gồm hai phép biến đổi tuyến tính với hàm kích hoạt GELU ở giữa.

Phép biến đổi tuyến tính đầu tiên mở rộng số chiều của đầu vào gấp bốn lần, từ 768 lên 3072. Bước mở rộng này cho phép mô hình chiếu các biểu diễn token vào một không gian nhiều chiều hơn, nơi nó có thể nắm bắt các mẫu phong phú và phức tạp hơn mà có thể không nhìn thấy được ở chiều gốc.

Phép biến đổi tuyến tính thứ hai sau đó giảm số chiều trở lại kích thước gốc là 768. Bước nén này đưa các biểu diễn trở lại kích thước dễ quản lý trong khi vẫn giữ lại các phép biến đổi phi tuyến tính hữu ích đã được đưa vào ở bước mở rộng.

Không giống như cơ chế tự chú ý, vốn tích hợp thông tin giữa các token, MLP xử lý các token một cách độc lập và chỉ đơn giản là ánh xạ biểu diễn của mỗi token từ không gian này sang không gian khác, làm phong phú thêm năng lực tổng thể của mô hình.

TransformerGPT-2Trực quan hóaGiáo dục AICông cụ
Đọc bài gốc

Bài viết được AI dịch và tổng hợp tự động từ Hacker News Nổi bật (buzzing.cc bản dịch tiếng Trung). Liên kết bài gốc ở phía trên. AIHOT.vn luôn dẫn nguồn đầy đủ — nếu bạn thấy điểm cần chỉnh sửa, hãy gửi ý kiến tại trang phản hồi.