Giới thiệu
Trong bối cảnh phát triển của các mô hình ngôn ngữ lớn (LLMs), việc tối ưu hóa quy trình suy diễn là rất quan trọng. Hệ thống bộ nhớ không chỉ đảm bảo hiệu suất mà còn cần tối ưu hóa chi phí tính toán. Bài viết này sẽ trình bày về HeMA (Kiến trúc bộ nhớ đa dạng) và MISO (Tối ưu hóa phần mềm dựa trên bộ nhớ) - một giải pháp nhằm giải quyết các thách thức liên quan đến bộ nhớ trong suy diễn LLM.
Tổng quan
Quá trình suy diễn cho LLM đặt ra áp lực lớn lên các hệ thống bộ nhớ. Đầu tiên, độ cường độ số học thấp của các phép toán có nghĩa là các hoạt động thường bị giới hạn bởi bộ nhớ, điều này nhấn mạnh sự cần thiết phải có băng thông bộ nhớ cao. Thứ hai, bản chất của học sâu liên quan đến việc tái sử dụng dữ liệu rất lớn, làm cho việc sử dụng bộ nhớ cache SRAM trở nên khó khăn. Cuối cùng, các LLM quy mô máy chủ thường gặp phải giới hạn về dung lượng bộ nhớ.
Nghiên cứu này tập trung vào rào cản dung lượng bộ nhớ. Tôi đề xuất HeMA, một cấu trúc NPU sử dụng bộ nhớ đa dạng, và MISO, một kỹ thuật tối ưu hóa phần mềm nhằm tối đa hóa hiệu suất.
Động lực
Thách thức về dung lượng bộ nhớ trở nên rõ ràng hơn với các mô hình MoE gần đây. Bảng dưới đây trình bày một số mô hình MoE nổi bật, cho thấy số lượng chuyên gia, tỷ lệ tham số mà các chuyên gia chiếm giữ và số lượng chip TPUv4 cần thiết để lưu trữ toàn bộ mô hình với độ chính xác FP8.
| Mô hình MoE | Số lượng chuyên gia | Tỷ lệ tham số | Số chip TPUv4 |
|---|---|---|---|
| Mô hình A | 10 | 80% | 4 |
| Mô hình B | 20 | 90% | 8 |
Như bảng cho thấy, các chuyên gia chiếm phần lớn tham số của mô hình. Nếu các lớp MoE này được thay thế bằng các lớp FFN tiêu chuẩn, yêu cầu phần cứng sẽ giảm đáng kể.
Xu hướng hướng tới chiều dài ngữ cảnh dài càng làm trầm trọng thêm vấn đề này. Các mô hình LLM hiện đại đang mở rộng cửa sổ ngữ cảnh của họ để xử lý các tác vụ như trò chuyện đa lượt, xử lý video và hiểu biết các tài liệu kỹ thuật toàn diện. Mô hình như Llama-4 Scout có thể đạt tới 10 triệu token, làm tăng thời gian thực hiện của cơ chế chú ý bị ràng buộc bởi bộ nhớ.
Một giải pháp cho vấn đề dung lượng này là mở rộng bằng cách thêm nhiều TPUs. Tuy nhiên, cách tiếp cận này lãng phí sức mạnh tính toán và gây ra các điểm nghẽn kết nối. Một phương pháp khả thi hơn là xây dựng một hệ thống bộ nhớ phân cấp kết hợp HBM và DDR/LPDDR. SambaNova SN40L là một ví dụ hiện có với hệ thống hai tầng HBM và DDR.
Phương pháp
HeMA
Để giải quyết các thách thức về bộ nhớ, HeMA có cấu trúc bộ nhớ hai tầng. Phương pháp HeMA bao gồm việc thêm bộ nhớ DDR hoặc LPDDR vào một NPU đã sử dụng HBM. Để quản lý các loại bộ nhớ khác nhau, một core xử lý bộ nhớ (MHC) được giới thiệu.
Bên dưới là hình ảnh minh họa cấu trúc HeMA:

Khi một đơn vị tính toán gửi yêu cầu bộ nhớ tới MHC, MHC sử dụng bộ so sánh để định hướng yêu cầu dựa trên địa chỉ bộ nhớ. Yêu cầu đến bộ nhớ băng thông cao sẽ được đưa vào bộ đệm yêu cầu bộ nhớ đầu tiên, trong khi yêu cầu đến bộ nhớ băng thông thấp hơn sẽ vào bộ đệm yêu cầu thứ hai. Dữ liệu có thể được chuyển giao giữa cả hai tầng bộ nhớ.
MISO: Tối ưu hóa phần mềm dựa trên bộ nhớ
Vậy, làm thế nào để tận dụng tối đa kiến trúc HeMA? MISO được thiết kế để khai thác sự không hiệu quả này.
Trong khi hệ thống đang đợi dữ liệu từ bộ nhớ DDR, các đường dẫn băng thông cao của HBM và SPM lại không được sử dụng. MISO đề xuất một cách sử dụng SPM thông minh hơn:
- Một phần nhỏ của SPM được dành riêng cho phép tính đang diễn ra với dữ liệu từ DDR.
- Phần còn lại của SPM được sử dụng để lấy trước dữ liệu cần thiết cho phép toán tiếp theo từ HBM.
Hai điều kiện chính cần được đáp ứng để phương pháp lấy trước này đạt hiệu quả là:
- Tác động hiệu suất tối thiểu.
- Phân bố dữ liệu chiến lược.
Thử nghiệm MISO
Để xác thực kỹ thuật MISO, tôi đã định nghĩa một kiến trúc HeMA-TPU giả định với các thông số nhất định và thực hiện các thí nghiệm với mô hình Mixtral 8x7B.
Hình dưới đây cho thấy cách dữ liệu được phân bổ trong DDR và HBM:
| Dữ liệu | DDR | HBM |
|---|---|---|
| KV Cache | 50% | 50% |
| Expert Weights | 50% | 50% |
Kết quả cho thấy rằng việc sử dụng HBM cho cả các phép toán chú ý và FFN mang lại hiệu suất cao hơn.
Kết luận
Trong bài viết này, chúng ta đã tìm hiểu về HeMA và MISO, hai giải pháp nhằm giải quyết thách thức về bộ nhớ trong suy diễn LLM. Nhờ vào kiến trúc bộ nhớ đa dạng và tối ưu hóa phần mềm, chúng ta có thể nâng cao hiệu suất của các mô hình ngôn ngữ lớn.
Hãy áp dụng những kiến thức này vào các dự án của bạn để tối ưu hóa hiệu suất hệ thống!
FAQs
1. HeMA có thể áp dụng cho các mô hình nào?
HeMA có thể áp dụng cho nhiều mô hình học sâu khác nhau, đặc biệt là các mô hình yêu cầu băng thông bộ nhớ cao.
2. MISO có thể cải thiện hiệu suất như thế nào?
MISO giúp tối ưu hóa việc sử dụng bộ nhớ và giảm thiểu thời gian chờ khi lấy dữ liệu, từ đó nâng cao hiệu suất tổng thể của hệ thống.
3. Có cần kiến thức chuyên sâu về NPU để áp dụng HeMA và MISO không?
Một số kiến thức cơ bản về kiến trúc NPU sẽ hữu ích, nhưng không bắt buộc phải là chuyên gia.
Hãy khám phá thêm về HeMA và MISO để cải thiện các ứng dụng của bạn!