sơ khai Tương lai của suy luận serverless cho các mô hình ngôn ngữ lớn - Unite.AI
Kết nối với chúng tôi

Trí tuệ nhân tạo

Tương lai của suy luận serverless cho các mô hình ngôn ngữ lớn

mm

Được phát hành

 on

Những tiến bộ gần đây trong các mô hình ngôn ngữ lớn (LLM) như GPT-4, PaLM đã dẫn đến khả năng biến đổi trong các tác vụ ngôn ngữ tự nhiên. LLM đang được tích hợp vào nhiều ứng dụng khác nhau như chatbot, công cụ tìm kiếm và trợ lý lập trình. Tuy nhiên, việc cung cấp LLM trên quy mô lớn vẫn còn nhiều thách thức do yêu cầu bộ nhớ và GPU đáng kể.

Các phương pháp tiếp cận để khắc phục điều này thường rơi vào hai loại chính:

  1. Kỹ thuật nén mô hình

Những kỹ thuật này nhằm mục đích giảm kích thước của mô hình trong khi vẫn duy trì độ chính xác. Các cách tiếp cận phổ biến bao gồm:

  • Cắt tỉa – Loại bỏ các tham số thừa hoặc ít quan trọng khỏi mô hình. Điều này tạo ra một mô hình thưa thớt với ít tham số hơn.
  • Lượng tử hóa – Sử dụng các số có độ chính xác thấp hơn như int8 hoặc bfloat16 để biểu thị trọng số thay vì fp32 hoặc fp16. Điều này làm giảm dấu chân bộ nhớ.
  • Chắt lọc kiến ​​thức – Đào tạo mô hình “học sinh” nhỏ hơn để bắt chước mô hình “giáo viên” lớn hơn. Mô hình nhỏ hơn sau đó được sử dụng để suy luận.
  1. Thực thi có chọn lọc

Thay vì mô hình nén, các kỹ thuật này chỉ thực hiện có chọn lọc các phần của mô hình cho mỗi lần suy luận:

  • Kích hoạt thưa thớt – Bỏ qua tính toán khi kích hoạt bằng 0.
  • Tính toán có điều kiện – Chỉ thực hiện một số lớp nhất định dựa trên đầu vào.

Về mặt bổ sung, viết về phía kiến ​​trúc sư phần mềm; để cho phép triển khai LLM nhanh hơn, các nhà nghiên cứu đã đề xuất các hệ thống suy luận không có máy chủ. Trong kiến ​​trúc không có máy chủ, LLM được lưu trữ trên các cụm GPU dùng chung và được phân bổ động dựa trên nhu cầu. Điều này cho phép sử dụng GPU hiệu quả và giảm chi phí cho nhà phát triển. Các triển khai nổi bật bao gồm Amazon SageMaker, Microsoft Azure ML và các tùy chọn nguồn mở như KServe.

Bất chấp lời hứa về LLM không có máy chủ, các hệ thống hiện tại có chi phí độ trễ cao làm giảm trải nghiệm người dùng trong các ứng dụng tương tác:

  1. Tải xuống điểm kiểm tra tốn kém: LLM có dung lượng bộ nhớ lớn, thường có kích thước từ gigabyte đến terabyte. Việc tải xuống các điểm kiểm tra từ bộ lưu trữ từ xa rất tốn thời gian, mất hơn 20 giây ngay cả với các mạng được tối ưu hóa.
  2. Tải điểm kiểm tra không hiệu quả: Ngay cả với bộ lưu trữ SSD cục bộ, việc tải điểm kiểm tra vào bộ nhớ GPU mất hàng chục giây do các yếu tố như phân bổ và khử tuần tự tensor. Điều này làm tăng thêm độ trễ đáng kể ngoài thời gian khởi động vùng chứa.

Để giải quyết những vấn đề này, các nhà nghiên cứu tại MIT CSAIL đã đề xuất LLM không có máy chủ, một hệ thống cải tiến giúp đạt được khả năng suy luận không có máy chủ có độ trễ thấp cho LLM. ServerlessLLM nâng cao tính cục bộ bằng cách khai thác dung lượng và băng thông dồi dào nhưng chưa được sử dụng đúng mức trong bộ lưu trữ máy chủ nhiều tầng để triển khai LLM.

Tổng quan về hệ thống suy luận không có máy chủ LLM

Tổng quan về hệ thống suy luận không có máy chủ LLM

Những cải tiến chính trong ServerlessLLM ServerlessLLM kết hợp một số thiết kế mới để giảm thời gian tải LLM trong môi trường serverless:

  1. Tải điểm kiểm tra nhanh
  • Định dạng điểm kiểm tra được tối ưu hóa khi tải cho phép đọc tuần tự nhanh và đánh địa chỉ tensor trong bộ nhớ hiệu quả.
  • Đường dẫn tải điểm kiểm tra nhiều tầng giúp tối đa hóa việc sử dụng băng thông trên mạng, SSD, DRAM và bộ nhớ GPU thông qua các kỹ thuật như I/O trực tiếp, truyền bộ nhớ được ghim và song song.
  1. Di chuyển trực tiếp cho suy luận theo hướng địa phương
  • Di chuyển dựa trên mã thông báo chỉ truyền các mã thông báo nhắc nhở cần thiết qua mạng, tránh việc truyền ảnh chụp nhanh chậm.
  • Di chuyển hai giai đoạn cho phép suy luận không bị gián đoạn bằng cách tính toán lại trạng thái bộ đệm một cách không đồng bộ trên máy chủ đích trước khi chuyển mã thông báo cuối cùng.
  1. Phân bổ máy chủ được tối ưu hóa độ trễ
  • Các mô hình chính xác để ước tính thời gian tải điểm kiểm tra từ mỗi tầng và thời gian di chuyển cho máy chủ.
  • Bộ lập lịch nhận biết cục bộ chọn máy chủ giảm thiểu độ trễ khởi động dự kiến ​​bằng cách sử dụng các mô hình trên.

Những tối ưu hóa này cho phép ServerlessLLM giảm thời gian tải LLM xuống 4-8 lần và thời gian khởi động từ đầu đến cuối hơn 25 lần so với các hệ thống hiện có như PyTorch, TensorFlow và KServe.

Hãy cùng tìm hiểu sâu hơn về cách ServerlessLLM đạt được những mức tăng hiệu suất đáng kể này.

Tăng tốc tải điểm kiểm tra

Nút thắt lớn đầu tiên được ServerlessLLM giải quyết là độ trễ cao khi tải điểm kiểm tra LLM từ bộ lưu trữ vào bộ nhớ GPU.

Để cho phép tải điểm kiểm tra nhanh chóng, ServerlessLLM giới thiệu:

  1. Đang tải định dạng điểm kiểm tra được tối ưu hóa

Các điểm kiểm tra tiêu chuẩn được sử dụng bởi các khung như PyTorch được thiết kế để đào tạo và gỡ lỗi mô hình. Nhưng đối với suy luận không có máy chủ, các điểm kiểm tra ở chế độ chỉ đọc và được truy cập nhiều lần.

Để tối ưu hóa cho việc sử dụng nhiều đọc như vậy, ServerlessLLM chuyển đổi các điểm kiểm tra thành một định dạng có hai thuộc tính chính:

  • Đọc dựa trên đoạn tuần tự: Các tensor được nhóm thành các tệp nhị phân trên mỗi GPU, tạo điều kiện thuận lợi cho việc đọc tuần tự lớn.
  • Địa chỉ tensor hiệu quả: Một chỉ mục ánh xạ các tên tensor tới các phần bù bộ nhớ, cho phép khôi phục trực tiếp trong bộ nhớ mà không cần khử lưu lượng.
  1. Đường ống tải điểm kiểm tra nhiều tầng

ServerlessLLM tận dụng kiến ​​trúc phân tầng của máy chủ GPU, với phương tiện lưu trữ như SSD và kết nối mạng với GPU thông qua PCIe, NVMe, v.v.

Hệ thống kết hợp một quy trình nhiều giai đoạn để tối đa hóa việc sử dụng băng thông trên tất cả các tầng:

  • Các khối dữ liệu trong bộ nhớ được phân bổ bằng bộ nhớ được ghim để truyền GPU nhanh.
  • I/O trực tiếp được sử dụng để đọc SSD hiệu quả mà không cần chi phí bộ nhớ đệm.
  • Nhiều luồng đọc song song các khối lưu trữ khác nhau.
  • Sự phối hợp giữa các giai đoạn xảy ra thông qua hàng đợi nhiệm vụ không đồng bộ.

Cùng với nhau, điều này cho phép bão hòa dung lượng băng thông của cả những cấp nhanh nhất như NVMe RAID. Các thử nghiệm cho thấy ServerlessLLM đạt tốc độ tải nhanh hơn 6-8 lần so với PyTorch/TensorFlow, giảm thời gian khởi động cho các LLM lớn từ hơn một phút xuống dưới 10 giây.

Suy luận LLM theo hướng địa phương thông qua di chuyển trực tiếp

Với tốc độ tải được tăng tốc, ServerlessLLM phải đối mặt với một thách thức mới – làm cách nào để tận dụng các điểm kiểm tra được tải sẵn cho địa phương mà không làm gián đoạn các suy luận đang diễn ra trên các máy chủ bận rộn?

ServerlessLLM giới thiệu một kỹ thuật mới – di chuyển trực tiếp suy luận LLM trên các máy chủ GPU. Điều này cho phép chuyển liền mạch quá trình thực thi đến các máy chủ có sẵn các điểm kiểm tra cục bộ.

Những yếu tố hỗ trợ chính cho việc di chuyển LLM trực tiếp:

  1. Di chuyển dựa trên mã thông báo

Thay vì chụp nhanh toàn bộ trạng thái mô hình, ServerlessLLM chỉ di chuyển các mã thông báo nhắc nhở tối thiểu qua mạng. Điều này chuyển các đơn đặt hàng có cường độ dữ liệu ít hơn so với ảnh chụp nhanh.

  1. Di chuyển hai giai đoạn

Máy chủ đích tính toán trước trạng thái bộ đệm một cách không đồng bộ từ mã thông báo lời nhắc. Khi đã sẵn sàng, máy chủ nguồn sẽ chuyển mã thông báo cuối cùng trước khi giải phóng tài nguyên. Điều này ngăn cản việc suy luận bị đình trệ.

Các thử nghiệm cho thấy việc di chuyển dựa trên mã thông báo giúp giảm thời gian di chuyển từ hàng chục giây xuống dưới một giây ngay cả đối với các chuỗi dài. Di chuyển trực tiếp là rất quan trọng để ngăn chặn sự chậm trễ khi xếp hàng khi đạt được phân bổ theo địa phương.

Lập kế hoạch mô hình được tối ưu hóa độ trễ

Để giảm thiểu độ trễ từ đầu đến cuối, ServerlessLLM tăng cường bộ lập lịch để tối ưu hóa việc lựa chọn máy chủ có tính đến địa phương. Điều này liên quan đến:

  1. Công cụ ước tính thời gian tải chi tiết

Các mô hình dự đoán thời gian tải từ mạng, bộ nhớ đệm SSD và bộ nhớ cho từng máy chủ bằng cách sử dụng các số liệu như độ trễ hàng đợi, kích thước mô hình và băng thông đo được.

  1. Dự đoán thời gian di chuyển chính xác

Bộ lập lịch ước tính thời gian di chuyển cho các máy chủ bằng cách sử dụng số lượng mã thông báo nhắc nhở và đầu ra. Nó theo dõi tiến trình suy luận một cách không đồng bộ để tránh chi phí chung.

  1. Phân bổ theo địa phương

Đối với mỗi yêu cầu suy luận, bộ lập lịch sẽ đánh giá thời gian tải và di chuyển ước tính trên các máy chủ. Nó chọn máy chủ giảm thiểu độ trễ khởi động dự kiến.

Bộ lập lịch cũng duy trì hàng đợi tác vụ của máy chủ và tận dụng một kho lưu trữ nhất quán mạnh mẽ để có khả năng chịu lỗi. Cùng với nhau, những đổi mới này làm giảm chi phí lập kế hoạch đồng thời tối đa hóa lợi ích địa phương.

Đánh giá hiệu suất ServerlessLLM

Các thử nghiệm toàn diện đánh giá hiệu quả toàn diện của ServerlessLLM so với các hệ thống hiện có bằng cách sử dụng các mô hình trong thế giới thực như OPT-175B và khối lượng công việc được mô hình hóa theo dấu vết Azure.

Kết quả chính:

  • Điểm chuẩn vi mô: ServerlessLLM tăng tốc tải điểm kiểm tra lên 3.6-8.2 lần so với PyTorch/TensorFlow. Nó bão hòa hoàn toàn băng thông lưu trữ, ngay cả đối với RAID NVMe tiên tiến.
  • Lập kế hoạch: ServerlessLLM giảm độ trễ phân bổ xuống 4-12 lần so với lập lịch ngẫu nhiên, nêu bật lợi ích của nhận thức địa phương. Di chuyển trực tiếp ngăn chặn sự chậm trễ trong hàng đợi.
  • Phục vụ từ đầu đến cuối: Đối với các mô hình lớn như OPT-30B, ServerlessLLM cải thiện độ trễ phân vị thứ 99 lên 28-200 lần so với các hệ thống như KServe và Ray Serve. Nó cũng tăng cường hiệu quả tài nguyên.

Những lợi ích đáng kể này chứng tỏ khả năng của ServerlessLLM trong việc khắc phục các tắc nghẽn trong quá trình triển khai serverless hiện có và khai thác sức mạnh của LLM cho các dịch vụ tương tác.

Các tính năng tối ưu hóa được giới thiệu trong ServerlessLLM, như tải nhiều tầng, di chuyển trực tiếp và lập lịch theo độ trễ, có thể giúp cung cấp thông tin cho việc thiết kế các kiến ​​trúc không có máy chủ trong tương lai. Khả năng giảm thời gian tải và khởi động của hệ thống giúp mở rộng khả năng triển khai có thể mở rộng của các mô hình ngôn ngữ lớn cho các ứng dụng thực tế.

Nhìn về phía trước: Những thách thức đang diễn ra

Mặc dù là một bước nhảy vọt đáng kể nhưng ServerlessLLM chỉ thể hiện bước đầu tiên trong việc tối ưu hóa suy luận serverless cho các LLM lớn. Một số vấn đề mở vẫn còn, bao gồm:

  • Dự đoán nhu cầu mô hình thời gian thực để hướng dẫn cung cấp và tải trước
  • Đặt các điểm kiểm tra một cách thông minh trên các máy chủ để tối đa hóa số lần truy cập bộ đệm
  • Các thuật toán lập kế hoạch mở rộng hiệu quả để xử lý các cụm lớn hơn
  • Đảm bảo sự công bằng trong phân bổ nguồn lực giữa các mô hình và nhà phát triển
  • Tổng quát hóa những đổi mới như di chuyển trực tiếp sang các khối lượng công việc không có máy chủ khác

Việc giải quyết các lĩnh vực này có thể giúp xây dựng lời hứa về LLM không có máy chủ và làm cho khả năng của chúng trở nên dễ tiếp cận hơn. Ngoài việc tối ưu hóa ở cấp độ hệ thống, việc giảm lượng khí thải carbon quá lớn và những tác hại tiềm tàng của các mô hình lớn cũng vẫn là ưu tiên cấp bách.

ServerlessLLM chứng minh rằng có khoảng trống rất lớn cho sự đổi mới trong kiến ​​trúc không có máy chủ thế hệ tiếp theo dành cho khối lượng công việc AI. Khi LLM tiếp tục phát triển về quy mô và mức độ phổ biến, các giải pháp như ServerlessLLM giúp mở khóa khả năng mở rộng của chúng sẽ còn có tác động mạnh mẽ hơn nữa. Sự kết hợp giữa hệ thống và nghiên cứu máy học có thể giới thiệu các mô hình mới trong việc phục vụ, chia sẻ và nhân rộng các mô hình AI một cách an toàn và bền vững.

Tôi đã dành 50 năm qua để đắm mình trong thế giới hấp dẫn của Học máy và Học sâu. Niềm đam mê và chuyên môn của tôi đã giúp tôi đóng góp cho hơn XNUMX dự án kỹ thuật phần mềm đa dạng, đặc biệt tập trung vào AI/ML. Sự tò mò không ngừng của tôi cũng đã lôi kéo tôi đến với Xử lý ngôn ngữ tự nhiên, một lĩnh vực mà tôi háo hức khám phá thêm.