Chủ đề thịnh hành
#
Bonk Eco continues to show strength amid $USELESS rally
#
Pump.fun to raise $1B token sale, traders speculating on airdrop
#
Boop.Fun leading the way with a new launchpad on Solana.
Bạn đang tham gia phỏng vấn Nhà nghiên cứu tại OpenAI.
Người phỏng vấn hỏi:
"Bạn sẽ mở rộng độ dài ngữ cảnh của một LLM từ 2K lên 128K token như thế nào?"
Bạn: "Tôi sẽ tinh chỉnh mô hình trên các tài liệu dài với ngữ cảnh 128K"
Phỏng vấn kết thúc.
Đây là những gì bạn đã bỏ lỡ:
Mở rộng cửa sổ ngữ cảnh không chỉ đơn thuần là về các ma trận lớn hơn.
Trong một transformer truyền thống, việc mở rộng các token lên 8 lần sẽ làm tăng nhu cầu bộ nhớ lên 64 lần do độ phức tạp bậc hai của sự chú ý. Xem hình ảnh bên dưới!
Vậy, chúng ta quản lý điều đó như thế nào?
tiếp tục...👇

1) Chú ý thưa
Nó giới hạn việc tính toán chú ý chỉ với một tập hợp con của các token bằng cách:
- Sử dụng chú ý cục bộ (các token chỉ chú ý đến hàng xóm của chúng).
- Để cho mô hình học cách tập trung vào các token nào.
Nhưng điều này có một sự đánh đổi giữa độ phức tạp tính toán và hiệu suất.

Một ý tưởng tương tự đã được sử dụng trong ModernBERT.
→ Chú ý toàn cầu đầy đủ mỗi 3 lớp
→ Chú ý cục bộ (128 token) trong các trường hợp khác
Kết quả:
- Độ dài chuỗi lớn hơn 16 lần
- Hiệu suất tốt hơn nhiều
- Bộ mã hóa tiết kiệm bộ nhớ nhất
Đơn giản nhưng mạnh mẽ. 👇
Đây là một giải thích trực quan được lấy từ bài báo:
Hãy tưởng tượng bạn đang đọc một cuốn sách. Đối với mỗi câu bạn đọc, bạn có cần phải hoàn toàn nhận thức về toàn bộ cốt truyện để hiểu hầu hết nó (sự chú ý toàn cầu đầy đủ)?
Hay chỉ cần nhận thức về chương hiện tại là đủ (sự chú ý cục bộ), miễn là bạn thỉnh thoảng nghĩ lại về tầm quan trọng của nó đối với cốt truyện chính (sự chú ý toàn cầu)?
Trong phần lớn các trường hợp, đó là cái sau.
2) Flash Attention
Đây là một phương pháp nhanh chóng và tiết kiệm bộ nhớ, giữ nguyên độ chính xác của các cơ chế attention truyền thống, tức là, nó sử dụng attention toàn cầu nhưng một cách hiệu quả.
Toàn bộ ý tưởng xoay quanh việc tối ưu hóa việc di chuyển dữ liệu trong bộ nhớ GPU.
Hãy cùng tìm hiểu!

Một số thông tin nền:
- Một luồng là đơn vị thực thi nhỏ nhất.
- Nhiều luồng tạo thành một khối.
Ngoài ra:
- Các luồng trong một khối chia sẻ một bộ nhớ nhanh (nhưng khan hiếm) gọi là SRAM.
- Tất cả các khối chia sẻ một bộ nhớ toàn cầu gọi là HBM (dồi dào nhưng chậm).
Kiểm tra điều này 👇

Chú ý di chuyển các ma trận lớn giữa SRAM và HBM:
Để tính QK:
- phân phối các ma trận cho các luồng
- tính toán, và
- gửi sản phẩm đến HBM
Để tính softmax:
- phân phối sản phẩm cho các luồng
- tính toán, và
- gửi đầu ra đến HBM
Lặp lại cho tất cả các lớp.
Kiểm tra điều này 👇

Chú ý nhanh liên quan đến tối ưu hóa ở cấp phần cứng, trong đó nó sử dụng SRAM để lưu trữ các kết quả trung gian.
Bằng cách này, nó giảm thiểu các chuyển động dư thừa, mang lại tốc độ nhanh hơn tới 7.6 lần so với các phương pháp chú ý tiêu chuẩn.
Kiểm tra điều này 👇

98,94K
Hàng đầu
Thứ hạng
Yêu thích