CPU cần giải cứu: LLM dành cho mọi người

Tối ưu hóa các mô hình ngôn ngữ lớn

Năm vừa qua đã cho thấy những tiến bộ vượt bậc trong các mô hình ngôn ngữ lớn (LLM) và những gì chúng có thể đạt được. Những gì bắt đầu như một công cụ tạo văn bản đã phát triển thành các mô hình đa phương thức có thể dịch ngôn ngữ, tổ chức các cuộc hội thoại, tạo ra âm nhạc và hình ảnh, v.v. Điều đó nói lên rằng, việc đào tạo và chạy các máy chủ suy luận của các mô hình tham số khổng lồ, nhiều tỷ tham số này đòi hỏi nguồn lực tính toán khổng lồ và rất nhiều GPU cao cấp.

Sự phổ biến ngày càng tăng của LLM đã thúc đẩy sự quan tâm sâu sắc đến việc chuyển các khung này sang các CPU phổ thông. Các dự án nguồn mở như llama.cpp và Intel® Extension for Transformers nhằm mục đích tinh chỉnh và tối ưu hóa các mô hình để thực thi hiệu quả trên kiến ​​trúc CPU. Những nỗ lực này bao gồm việc triển khai C/C++ đơn giản, tối ưu hóa phần cứng cụ thể cho các tập lệnh AVX, AVX2 và AVX512 cũng như các biểu diễn mô hình có độ chính xác hỗn hợp. Kỹ thuật lượng tử hóa và nén được khai thác để thu nhỏ các mô hình từ kích thước 16 bit xuống còn 8 bit hoặc thậm chí 2 bit. Mục tiêu là có được các mô hình nhỏ hơn, gọn gàng hơn được thiết kế để suy luận trên các CPU có sẵn rộng rãi từ trung tâm dữ liệu đến máy tính xách tay của bạn.

Mặc dù GPU vẫn có thể được ưu tiên cho hoạt động đào tạo nhưng CPU trong trung tâm dữ liệu và trên thiết bị có thể được sử dụng để triển khai hiệu quả cho hoạt động suy luậnvới các mô hình được tối ưu hóa này. CPU có thể tận dụng những tiến bộ gần đây trong kiến ​​trúc và cung cấp khả năng truy cập rộng hơn vào các khả năng của mô hình ngôn ngữ lớn. Những tiến bộ trong năm qua trong việc tối ưu hóa mô hình và suy luận CPUthể hiện sự hứa hẹn trong việc đưa các công nghệ ngôn ngữ tự nhiên được hỗ trợ bởi các mô hình lớn đến nhiều người dùng hơn.

Phần cứng

Để đánh giá các công cụ suy luận CPU mới này, chúng tôi đã tận dụng phần mềm cung cấp cụm Dell Omnia để triển khai Rocky Linux trên máy chủ Dell PowerEdge C6620. Omnia cho phép triển khai nhanh chóng một số lựa chọn hệ điều hành trên một cụm máy chủ PowerEdge có bộ xử lý Intel® Xeon®. Bằng cách sử dụng Omnia để cài đặt và cấu hình hệ điều hành tự động, chúng tôi có thể nhanh chóng thiết lập một cụm thử nghiệm để thử nghiệm khả năng suy luận của các mô hình được tối ưu hóa cho CPU trên phần cứng Intel® của chúng tôi.

Bảng 1. Thông số kỹ thuật Dell PowerEdge C6620

Phần cứng Chi tiết
Máy chủ Dell PowerEdge C6620
Mẫu bộ xử lý Intel ® Xeon ® Vàng 6414U (Sapphire Rapids)
Bộ xử lý trên mỗi nút 2
Số lõi bộ xử lý 32
Tần số bộ xử lý  2GHz
Bộ nhớ máy chủ 256GB, 8x32GB 

Bảng 2. Thông số kỹ thuật phần mềm liên quan

Phần mềm Chi tiết
Omnia https://github.com/dell/omnia
Rocky Linux 8.8 https://rockylinux.org/
Phần mở rộng Intel® dành cho máy biến áp https://github.com/intel/intel-extension-for-transformers
Tốc độ thần kinh Intel® https://github.com/intel/neural-speed

Llama 2 với tốc độ thần kinh Intel®

Intel® đã tạo nguồn mở cho một số công cụ theo giấy phép cho phép trên GitHub để tạo điều kiện phát triển với Phần mở rộng Intel® dành cho Máy biến áp. Một sản phẩm chính là Tốc độ thần kinh, nhằm mục đích cho phép suy luận hiệu quảcủa các mô hình ngôn ngữ lớn trên phần cứng Intel®. Tốc độ thần kinh tận dụng Intel® Neural Compressor, một bộ công cụ để tối ưu hóa mô hình học sâu, để áp dụng các kỹ thuật lượng tử hóa và thưa thớt bit thấp nhằm nén và tăng tốc hiệu suất của các LLM hàng đầu. Điều này cho phép Tốc độ thần kinh cung cấp khả năng suy luận hiệu quả hiện đại cho các mô hình ngôn ngữ chính. Tốc độ thần kinh cung cấp một ngăn xếp suy luận có thể tối đa hóa hiệu suất của các mô hình ngôn ngữ dựa trên Transformer mới nhất trên các nền tảng Intel® từ biên đến đám mây. Bằng cách cung cấp nguồn mở cho những công nghệ này với giấy phép dễ dàng, Intel® cho phép các nhà phát triển dễ dàng áp dụng và đổi mới bằng khả năng suy luận LLM được tối ưu hóa trên phần cứng Intel®.

Để bắt đầu, hãy sao chép gói cài đặt và kho lưu trữ Intel® Neural Speed:

bản sao git https://github.com/intel/neural-speed.git
cài đặt pip -r require.txt
cài đặt pip.

Tốc độ thần kinh có thể hỗ trợ 3 loại mô hình khác nhau:  

  • Các mô hình GGUF được tạo bởi llama.cpp
  • Mô hình GGUF từ HuggingFace
  • Các mô hình Pytorch từ HuggingFace – được lượng tử hóa bằng Tốc độ thần kinh

Chúng tôi bắt đầu thử nghiệm bằng cách làm việc trực tiếp với mô hình trò chuyện Llama-2-7B của Meta trong Pytorch từ Ôm mặt. Mô hình đàm thoại 7 tỷ tham số này đóng vai trò là trường hợp thử nghiệm lý tưởng để đánh giá chuyển đổi, lượng tử hóa và suy luận mô hình từ đầu đến cuốibằng bộ công cụ Tốc độ thần kinh. Để hợp lý hóa việc kiểm tra, Tốc độ thần kinh cung cấp các tập lệnh tiện dụng để xử lý toàn bộ quy trình, bắt đầu bằng việc lấy mô hình Pytorch ban đầu và chuyển nó sang mô hình GGUF, sau đó áp dụng các chính sách lượng tử hóa để nén mô hình xuống độ chính xác thấp hơn như int8 hoặc int4 và cuối cùng là chạy suy luận để đánh giá hiệu quả. Trong trường hợp này, chúng tôi không nén mô hình và giữ lại các giá trị 32 bit.

Lệnh sau sẽ chạy chuyển đổi, lượng tử hóa và suy luận chỉ bằng một cú nhấp chuột:

tập lệnh python/run.py \
/home/models/ Llama-2-7b-chat-hf \
--weight_dtype f32 \
-p "luôn trả lời bằng Haiku. Điều tuyệt vời nhất khi chèo thuyền là gì?
Niềm vui lớn nhất của chèo thuyền,
Tự do trên biển xanh,
Sự thanh thản được tìm thấy.

Phần kết luận

Trong thử nghiệm của chúng tôi, mô hình Llama-2 được chuyển đổi và lượng tử hóa không chỉ cung cấp phản hồi chính xác mà còn có độ trễ phản hồi tuyệt vời, điều mà chúng tôi sẽ tìm hiểu sâu hơn trong các blog trong tương lai. Mặc dù chúng tôi đã trình diễn quy trình làm việc này trên AI đàm thoại Llama-2 gồm 7 tỷ tham số của Meta, nhưng quy trình tương tự có thể được áp dụng cho cổng và tối ưu hóa nhiều mô hình ngôn ngữ lớn hàng đầu khác để chạy hiệu quả trên CPU. Các ứng cử viên phù hợp khác bao gồm LLM tập trung vào trò chuyện như NeuralChat, GPT-J, GPT-NEOX, Dolly-v2 và MPT, cũng như các mô hình có mục đích chung như Falcon, BLOOM, Mistral, OPT và Hugging Face’s DistilGPT2. Các mô hình tập trung vào mã như CodeLlama, MagicCoder và StarCoder cũng có thể được hưởng lợi. Ngoài ra, các mẫu máy Trung Quốc bao gồm Baichuan, Baichuan2 và Qwen là mục tiêu hàng đầu để cải thiện việc triển khai trên CPU Intel®.

Ưu điểm chính của phương pháp suy luận CPU này là khai thác tất cả các lõi CPU có sẵn để suy luận song song hiệu quả về mặt chi phí. Bằng cách chuyển đổi và lượng tử hóa các mô hình để chạy nguyên bản trên CPU Intel®, chúng tôi có thể tận dụng tối đa lợi thế của các máy chạy Intel® phổ biến ở mọi nơi, từ máy tính xách tay đến máy chủ. Đối với các nền tảng thiếu GPU cao cấp, việc tối ưu hóa mô hình để tận dụng tài nguyên CPU hiện có là một cách hấp dẫn để mang lại trải nghiệm AI phản hồi nhanh.