0
0
Lập trình
Admin Team
Admin Teamtechmely

HeMA-MISO: Kiến trúc bộ nhớ đa dạng cho LLM

Đăng vào 1 ngày trước

• 6 phút đọc

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:

HeMA Architecture

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à:

  1. Tác động hiệu suất tối thiểu.
  2. 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!

Gợi ý câu hỏi phỏng vấn
Không có dữ liệu

Không có dữ liệu

Bài viết được đề xuất
Bài viết cùng tác giả

Bình luận

Chưa có bình luận nào

Chưa có bình luận nào