AI hỗ trợ nâng cao hiệu suất phát triển nội bộ, thực tiễn tốt nhất trong suy diễn mô hình Ascend.
Triển khai Hiệu quả của Mô hình lớn trong Trí tuệ nhân tạo
Trong lĩnh vực Trí tuệ nhân tạo (AI), công nghệ dựa trên mô hình lớn đang phát triển nhanh chóng. Hiện tại, quy luật Scaling Law vẫn còn hiệu lực, với việc các thông số mô hình không ngừng tăng lên, chuỗi dữ liệu ngày càng dài hơn và tốc độ phản hồi ngày càng nhanh hơn. Tuy nhiên, để đóng vòng kinh doanh của mô hình lớn phụ thuộc vào việc triển khai quy mô của quá trình suy luận, làm thế nào để giảm chi phí suy luận mà vẫn nâng cao trải nghiệm người dùng, trở thành một yếu tố then chốt trong nghiên cứu kỹ thuật suy luận mô hình lớn.
Để đáp ứng yêu cầu về trải nghiệm người dùng và chi phí cho việc triển khai quy mô của mô hình lớn, chúng tôi đã giới thiệu giải pháp phần cứng và phần mềm hiệu suất cao của Ascend. Giải pháp này nhằm đáp ứng các yêu cầu đa dạng từ khách hàng, thúc đẩy triển khai quy mô của mô hình lớn.
Bài thuyết trình của tôi sẽ được chia thành ba phần. Phần đầu tiên, tôi sẽ thảo luận về xu hướng và hướng ứng dụng hiện tại của việc suy luận mô hình lớn, cũng như các yêu cầu đối với phần cứng và phần mềm và cách đánh giá ưu nhược điểm của hệ thống suy luận mô hình lớn. Phần thứ hai, tôi sẽ đi sâu vào giải pháp của Ascend trong hướng suy luận mô hình lớn, bao gồm kiến trúc phần cứng và phần mềm và các công nghệ then chốt. Phần cuối cùng, tôi sẽ chia sẻ một số trường hợp thực tế liên quan đến việc triển khai ứng dụng.
Trong lĩnh vực AI, sự phát triển liên tục của công nghệ đã đưa ra những yêu cầu ngày càng cao đối với các giải pháp suy luận. Từ các mạng nơ-ron tích chập (CNN) ban đầu đến các mô hình Transformer được sử dụng rộng rãi ngày nay, cũng như cấu trúc mới nhất là DIT, những tiến bộ này đã đặt ra thách thức lớn hơn đối với tài nguyên tính toán.
Hiện tại, mô hình lớn (LLM) đang bắt đầu phát triển theo hướng đa mô hình, với công nghệ chuỗi dài đã trở thành tiêu chuẩn chính trong ứng dụng hiện tại. Các công nghệ khác nhau có đặc điểm tính toán khác nhau, ví dụ như Stable Diffusion hoặc cấu trúc DIT, chúng đòi hỏi tài nguyên tính toán rất cao. Mô hình Transformer khi suy luận, cần có băng thông bộ nhớ rất lớn, đặc biệt là sau khi áp dụng công nghệ KVCache. Việc xử lý chuỗi dài cũng đòi hỏi dung lượng bộ nhớ lớn. Hệ thống phần cứng cần có sức mạnh tính toán mạnh mẽ, dung lượng bộ nhớ đủ lớn và băng thông bộ nhớ nhanh. Đồng thời, phần mềm cũng cần hỗ trợ các yêu cầu hiệu suất cao của phần cứng. Hiện nay, máy đơn có thể không đáp ứng được nhu cầu suy luận, do đó cần sử dụng kỹ thuật suy luận song song đa máy đa card. Ngoài ra, với sự phát triển nhanh chóng của kỹ thuật suy luận, việc áp dụng các kỹ thuật lượng tử hóa và nén cũng đòi hỏi tính linh hoạt cao của phần mềm.
Các ứng dụng suy luận mô hình lớn đang phát triển nhanh chóng. Về tổng thể, Mỹ đang phát triển nhanh hơn so với Trung Quốc. Ứng dụng suy luận mô hình lớn đầu tiên bùng nổ trong lĩnh vực tiêu dùng (ToC), sau đó nhanh chóng phát triển và trưởng thành trong lĩnh vực doanh nghiệp (ToB).
Các ứng dụng suy luận mô hình lớn thường có một đặc điểm, đó là giai đoạn tăng trưởng ban đầu không nhanh, nhưng một khi vượt qua điểm bùng nổ, tốc độ tăng trưởng có thể tăng lên rất nhanh, thậm chí đạt 100 lần hoặc 200 lần. Theo dữ liệu khách hàng hiện tại, có hàng nghìn thẻ suy luận đang chạy đồng thời, và có nhiều cụm suy luận với hàng nghìn thẻ. Yêu cầu về cụm huấn luyện và cụm suy luận khác nhau. Cụm huấn luyện tập trung vào cách xây dựng kết nối lớn hơn để hỗ trợ huấn luyện song song trên hàng nghìn thẻ. Trong khi đó, mục tiêu của suy luận là giảm chi phí để đáp ứng nhu cầu kinh doanh.
Để xây dựng giải pháp suy luận dẫn đầu, chúng tôi đã tóm tắt và thiết lập một hệ thống đánh giá dựa trên các kịch bản kinh doanh, chúng tôi gọi hệ thống này là chỉ số LACE. Hệ thống này bao gồm độ trễ suy luận và độ chính xác mô hình, những yếu tố này ảnh hưởng trực tiếp đến trải nghiệm người dùng. Ngoài ra, nó còn bao gồm khả năng xử lý luồng dữ liệu và khả năng xử lý song song, cũng như tính dễ sử dụng trong phát triển, những yếu tố này ảnh hưởng đến chi phí suy luận, bao gồm cả chi phí trực tuyến và chi phí phát triển. Dựa trên hệ thống phát triển LACE, quá trình từ kế hoạch kinh doanh đến việc đưa mô hình vào sản xuất sẽ trải qua vài giai đoạn then chốt. Đầu tiên là lựa chọn phần cứng, việc chọn phần cứng phù hợp rất quan trọng cho hiệu suất tổng thể của giải pháp. Tiếp theo là quá trình chuyển đổi và tối ưu từ huấn luyện sang suy luận, bao gồm việc nén và lượng tử hóa mô hình, nhằm cải thiện hiệu suất và giảm chi phí. Cuối cùng là việc triển khai mô hình, hoàn thiện toàn bộ quy trình kinh doanh.
Ascend cung cấp một giải pháp toàn diện cho quy trình suy luận mô hình lớn. Giải pháp này bắt đầu từ phần cứng cơ bản, trên đó là phần mềm hỗ trợ do chính Ascend phát triển, đảm bảo phần cứng được sử dụng hiệu quả nhất. Trên phần mềm này, Ascend xây dựng một engine suy luận, có thể hỗ trợ nhiều loại nhiệm vụ suy luận. Tiếp theo, Ascend cung cấp khả năng triển khai dịch vụ suy luận, giúp việc triển khai và mở rộng dịch vụ suy luận trở nên linh hoạt hơn. Bằng cách sử dụng bốn tầng kiến trúc này, Ascend có thể hỗ trợ năm khía cạnh then chốt từ việc lựa chọn phần cứng, chuyển đổi và tối ưu từ huấn luyện sang suy luận, nén mô hình, thực thi suy luận đến triển khai ứng dụng. Năm khía cạnh này bao phủ toàn bộ quy trình từ kế hoạch kinh doanh đến việc đưa mô hình vào sản xuất, đảm bảo sự toàn diện và hiệu quả của giải pháp.
Trong việc lựa chọn phần cứng, Ascend cung cấp các giải pháp phần cứng khác nhau tùy theo ứng dụng cụ thể. Ascend phân loại các ứng dụng thành bốn phần khác nhau dựa trên số lượng thông số mô hình và yêu cầu về độ trễ, mỗi phần có lựa chọn và xem xét phần cứng riêng biệt. Hiện tại, Ascend chủ yếu cung cấp hai loại phần cứng chuyên dụng, một loại dành cho suy luận đơn card hoặc triển khai với chi phí thấp – Atlas 300I Duo, và một loại dành cho suy luận đa card hoặc thậm chí đa máy – Atlas 800I A2. Hai loại phần cứng này có đặc điểm riêng, có thể đáp ứng nhu cầu khác nhau về năng lực phần cứng của các ứng dụng.
Khi lựa chọn phần cứng, cần cân nhắc đồng thời độ trễ và ràng buộc về chi phí. Nếu muốn độ trễ cực thấp, kích thước lô (batch size) không thể quá lớn, điều này sẽ làm tăng chi phí suy luận. Nhưng nếu có thể chấp nhận một chút độ trễ, ví dụ như nới lỏng yêu cầu độ trễ xuống 50ms hoặc 100ms, chi phí suy luận có thể giảm đáng kể. Bằng cách điều chỉnh kích thước lô và tăng cường sử dụng tài nguyên phần cứng, có thể đạt được sự cân bằng giữa chi phí tính toán và trải nghiệm người dùng.
Phần cứng Atlas 800I A2 sử dụng kiến trúc toàn kết nối HCCS, có băng thông kết nối gần 400GB, có thể hỗ trợ mô hình lớn như LLaMA2-70B, mang lại khả năng xử lý luồng dữ liệu cao. Trong khi đó, phần cứng Atlas 300I Duo có dung lượng bộ nhớ lớn 96GB, phù hợp cho các ứng dụng không yêu cầu độ trễ thấp. Ví dụ, trong các mô hình như sinh ảnh từ văn bản hoặc Stable Diffusion, một card có thể hoàn thành 50 lần lặp lại trong khoảng 1,5 giây để tạo một bức ảnh. Nếu sử dụng kỹ thuật triết suất để giảm số lần lặp lại từ 50 xuống 20, thời gian tạo một bức ảnh có thể được kiểm soát trong khoảng 1 giây.
Ascend cung cấp một kiến trúc phần mềm toàn diện từ việc chuyển đổi mô hình huấn luyện sang suy luận, bao gồm engine suy luận MindIE, nó bao gồm runtime suy luận và giao tiếp với các khung như Mindspore và Pytorch. Phần cứng Ascend hỗ trợ việc suy luận trực tiếp từ mô hình được huấn luyện bằng Mindspore, và đang cố gắng xây dựng một khung AI tích hợp huấn luyện và suy luận, kết hợp engine MindIE-RT với nhiều cách triển khai suy luận khác nhau. Đối với mô hình huấn luyện bằng Pytorch, Ascend cung cấp plugin Pytorch để nhanh chóng chuyển và thích ứng mô hình từ huấn luyện sang nền tảng suy luận của Ascend, chỉ cần khoảng 10 dòng mã, hiệu suất đạt 0,8-0,9 lần so với suy luận ngoại tuyến thuần túy.
Ascend cũng cung cấp MindIE-RT, hỗ trợ quy trình phát triển tự động, thực hiện chuyển đổi nhanh chóng từ biểu đồ khung đến biểu đồ dưới cùng của Ascend. Đối với các mô hình ngôn ngữ lớn, do thách thức của hệ thống phát triển biểu đồ và sự phát triển nhanh chóng của công nghệ mới, Ascend cũng hỗ trợ phát triển thủ công, để nhanh chóng xây dựng và tối ưu hiệu suất.
Ascend cung cấp công cụ phát triển toàn diện MindStudio, hỗ trợ phát triển ở ba cấp độ: toán tử, mô hình và ứng dụng, cung cấp công cụ phân tích di chuyển, so sánh độ chính xác, cải thiện biểu đồ, tối ưu hiệu suất và khả năng triển khai nhanh. Nhờ MindStudio, việc di chuyển và tối ưu mô hình trên nền tảng Ascend có thể được hoàn thành trong khoảng 3-15 ngày.
Ascend nhấn mạnh khả năng đồng nhất giữa huấn luyện và suy luận, tức là việc huấn luyện trên phần cứng suy luận hoặc thiết bị có cùng kiến trúc phần cứng cơ bản để duy trì độ chính xác không bị mất. Ascend cũng cung cấp ngôn ngữ lập trình Ascend C, hỗ trợ phát triển toán tử tùy chỉnh, điều này rất quan trọng đối với sự linh hoạt và hiệu suất của toán tử Attention trong suy luận mô hình lớn. Mặc dù việc thích ứng từ thói quen phát triển CUDA hoặc GPU sang nền tảng Ascend đòi hỏi một quá trình học và chi phí, nhưng hệ thống phát triển của Ascend có thể giúp khách hàng phát triển các toán tử hiệu suất cao nhanh chóng. Ví dụ, khách hàng của Ascend có thể giảm năm lần truy cập bộ nhớ xuống chỉ một lần truy cập bộ nhớ thông qua toán tử hợp nhất siêu lớn, cải thiện đáng kể hiệu suất suy luận mô hình lớn.
Trong việc nén mô hình, Ascend hỗ trợ các thuật toán tối ưu phổ biến trong suy luận mô hình lớn hiện nay, bao gồm các thuật toán lượng tử hóa như W4A16, W8A16 và W8A8. Trong trường hợp lượng tử hóa W8A8, do đặc điểm của giá trị kích hoạt mô hình lớn, có rất nhiều giá trị ngoại lệ cần được ức chế. Ascend sử dụng các thuật toán ức chế giá trị ngoại lệ và lượng tử hóa PTQ thích nghi, tránh nhu cầu hiệu chỉnh lại mô hình trong quá trình lượng tử hóa, những thuật toán này trở nên rất quan trọng trong quá trình lượng tử hóa mô hình.
Ascend có thể kiểm soát tổn thất độ chính xác trong phạm vi 0,5% đến 1% khi lượng tử hóa W8A8, điều này liên quan đến sự dao động và thay đổi của tập dữ liệu thử nghiệm. Sau khi lượng tử hóa, chi phí tổng thể của dự án có thể giảm khoảng 30%. Sử dụng các đặc điểm của phần cứng Ascend như Atlas 300I Duo, Ascend cũng hỗ trợ khả năng giải nén đồng hành, điều này yêu cầu việc xử lý mỏng hóa mô hình. Sau khi xử lý mỏng hóa, lượng dữ liệu di chuyển bộ nhớ của mô hình có thể được nén thêm 30% đến 50%, từ đó cải thiện hiệu suất suy luận mô hình lớn.
Sự phát triển của các công nghệ tăng tốc trong suy luận mô hình lớn diễn ra rất nhanh, bao gồm các thuật toán, phần mềm, bài báo và sự phát triển nhanh chóng của công nghệ mới. Thuật toán Continuous Batching và Paged Attention, cũng như các kỹ thuật tiết kiệm bộ nhớ và lập lịch động, đã trở thành một phần không thể thiếu trong suy luận mô hình lớn. Ngoài Continuous Batching và Paged Attention, công nghệ giải mã song song cũng đang phát triển nhanh chóng, và Ascend mong muốn tận dụng công nghệ này để tận dụng tối đa sức mạnh tính toán.
Suy luận mô hình lớn đòi hỏi băng thông bộ nhớ rất cao, đồng thời cũng đòi hỏi độ trễ truyền thông giữa các card hoặc máy tính phải thấp. Khác với tư duy tối ưu hóa truyền thông trong giai đoạn huấn luyện, mục tiêu của giai đoạn suy luận là giảm độ trễ truyền thông đơn lần. Thí nghiệm cho thấy đôi khi việc tăng lượng truyền thông có thể giảm độ trễ lập lịch, từ đó giảm độ trễ truyền thông tổng thể. Sau khi giảm độ trễ truyền thông, có thể mở rộng vùng song song, ví dụ từ TP8 mở rộng đến TP16, điều này mang lại sự cải thiện đáng kể về hiệu suất trong các ứng dụng đạt tới điểm giới hạn đơn máy.
Trong quá trình kiểm tra nội bộ, Ascend đã phát hiện rằng ở mức độ chuỗi dài 32K, so với máy đơn, trung bình độ thông lượng đơn card có thể tăng gần gấp sáu lần. Ngoài ra, Ascend cũng chú trọng đến các giải pháp suy luận đa máy, tương tự như cách nhóm tham số trong cụm huấn luyện, bằng cách xây dựng một mạng lưới một tầng để thực hiện suy luận đa máy.
Đối với việc tối ưu hóa hợp nhất kernel, Ascend thực hiện tối ưu hóa toán tử hợp nhất dựa trên đặc điểm của phần cứng, nhằm giảm vấn đề đọc và ghi bộ nhớ thường xuyên, tăng cường sử dụng băng thông bộ nhớ, từ đó cải thiện hiệu suất suy luận. Toán tử Flash Attention ban đầu được đề xuất cho đặc điểm tính toán của GPU, nhưng Ascend phát hiện rằng nó có thể không phải là toán tử thân thiện nhất với phần cứng Ascend. Do đó, Ascend đã thiết kế lại toán tử attention dựa trên cấu trúc phần cứng, nhằm tăng hiệu suất thực thi. Có nhiều hình thức của công nghệ giải mã song song, như thuật toán Lookahead, một thuật toán tự kiểm, có thể hoạt động mà không cần huấn luyện lại mô hình nhỏ. Thuật toán Lookahead có một số hạn chế về độ dài chuỗi và độ dài đầu ra, nhưng trong phạm vi yêu cầu của nó, có thể giảm đáng kể độ trễ suy luận và tăng độ thông lượng.
Một phương pháp hiệu quả khác là suy luận dự đoán với mô hình nhỏ và mô hình lớn, nhưng cần tạo ra một mô hình nhỏ, điều này có một độ khó nhất định. Ascend đã thử nghiệm và xác minh phương pháp này, phát hiện rằng khi độ dài chuỗi khoảng 2K và kích thước lô dưới 100, độ thông lượng có thể tăng khoảng 40%, đồng thời độ trễ suy luận cũng giảm khoảng 40%.
Đưa nguồn tham chiếu để cung cấp nguồn suy luận dự đoán cũng có thể tăng khoảng 60% độ thông lượng trong các tình huống tạo mã. Những thuật toán này yêu cầu toán tử attention dưới đáy rất cao. Ascend đang cố gắng xây dựng một hệ thống có thể tích hợp nhiều thuật toán giải mã song song khác nhau, đồng thời kết hợp các đặc điểm của giải mã song song với các đặc điểm của Continuous Batching và Paged Attention, để tạo ra một hệ thống giải mã song song toàn diện cho sản phẩm.
Trong lĩnh vực giải pháp cụm, Ascend có hai mục tiêu chính. Thứ nhất, Ascend mong muốn hỗ trợ suy luận mô hình lớn có thông số lên tới hàng nghìn tỷ, tức là có thể xử lý mô hình có tới hàng nghìn tỷ thông số trên nền tảng Ascend. Thứ hai, Ascend cũng dự định hỗ trợ chuỗi độ dài lên tới hàng triệu, tức là khả năng thực hiện suy luận trực tiếp mà không cần sử dụng các phương pháp xấp xỉ hoặc suy luận luồng (streaming LLM). Mục tiêu của Ascend là thực hiện tính toán trực tiếp, có khả năng xử lý chuỗi độ dài lên tới hàng triệu.
Hiện tại, Ascend hỗ trợ suy luận mô hình lớn phổ biến trên thị trường trên nền tảng của mình, bao gồm cả mô hình nguồn mở và các mô hình thông dụng khác. Hiệu suất của Ascend rất tốt, có thể đạt 1,5 lần hoặc 1,8 lần so với mức trung bình trên thị trường. Ví dụ, chỉ một ngày sau khi mô hình LLaMa3 được công bố, Ascend đã hoàn thành việc thích ứng và suy luận cho mô hình này. Nếu khách hàng cần, họ có thể ngay lập tức tiến hành huấn luyện và suy luận cho các phiên bản 8B và 70B của LLaMa3 trên nền tảng Ascend, bao gồm điều chỉnh và triển khai cụ thể.
Để tăng tốc quá trình từ khi huấn luyện mô hình lớn hoàn tất đến việc triển khai suy luận và đưa vào sử dụng, Ascend đã phát triển khả năng triển khai dịch vụ MindIE-Service. Ngoài ra, Ascend cũng hỗ trợ kết nối với các phần mềm nguồn mở như vLLM và TGI, và cung cấp các cách kết nối tương ứng. Điều này cho thấy Ascend có khả năng tự phát triển mạnh mẽ và khả năng tương thích tốt.
Năng lực phần mềm của Ascend trong lĩnh vực ứng dụng dịch vụ được mở cửa theo từng lớp, nghĩa là Ascend có thể hỗ trợ các yêu cầu kết nối khác nhau từ khách hàng và các tình huống khác nhau. Nếu khách hàng có engine suy luận tự phát triển, Ascend có thể cung cấp khả năng toán tử và tăng tốc cơ bản, bao gồm các thư viện toán tử và tăng tốc, để hỗ trợ việc kết nối với engine suy luận của khách hàng. Đối với những khách hàng có khả năng dịch vụ và khung riêng, Ascend cung cấp hỗ trợ kết nối ở mức engine suy luận. Đối với những khách hàng cần giải pháp toàn diện từ dịch vụ đến engine, và đến toán tử cơ bản, Ascend cung cấp giải pháp toàn diện từ dịch vụ đến engine, và đến toán tử cơ bản, để hỗ trợ yêu cầu kết nối toàn diện của khách hàng.
Trong lĩnh vực ứng dụng và tiến bộ then chốt, Ascend đã đạt được những kết quả đáng kể. Hiện tại, Ascend đang hợp tác với nhiều khách hàng hàng đầu để tạo ra một máy tính mô hình lớn, thực hiện ứng dụng tích hợp trong huấn luyện và suy luận mô hình, bao gồm các ứng dụng như dịch vụ khách hàng.
Nội bộ tại Huawei, Ascend cũng được áp dụng rộng rãi trong các ứng dụng như cuộc họp và hỗ trợ phát triển mã cho 100.000 nhà nghiên cứu. Huawei đang lên kế hoạch tạo ra các ứng dụng demo về phát triển mã và hỗ trợ phát triển nội bộ, và sẽ mở nguồn để hỗ trợ sự phát triển của ngành công nghiệp.
Nền tảng video của Ascend thông qua MindIE-SD hỗ trợ công việc phát triển với open sora. Hiện tại, Ascend có thể thực hiện việc chạy mô hình open sora trên nền tảng Ascend chỉ bằng cách sửa đổi một số dòng mã. Trong lĩnh vực hiệu suất tạo video, Ascend hiện có thể tạo ra khoảng 20 giây video trong khoảng một phút. Dự kiến đến cuối năm, Ascend hy vọng có thể tạo ra 60 giây video trong khoảng một phút, đây sẽ là một sự cải thiện hiệu suất đáng kể.
Mô hình ngôn ngữ lớn (LLM) đang được áp dụng rộng rãi trong nhiều lĩnh vực, đồng thời cũng đối mặt với nhiều thách thức kỹ thuật. Chúng tôi đã tổng hợp các giải pháp thực tế từ các chuyên gia công nghệ hàng đầu trong ngành, dựa trên nhu cầu kinh doanh thực tế của doanh nghiệp, và họ đã đưa ra các ý tưởng và đề xuất thực tế. «AI Frontline» đã tổng hợp các tài liệu thuyết trình và tài liệu liên quan đến suy luận mô hình lớn, cơ sở hạ tầng và RAG tại hội nghị AICon Bắc Kinh 2024. Hãy theo dõi «AI Frontline», và nhập từ khóa «LLM thực tế» để tải miễn phí các tài liệu này.
Từ khóa:
- Trí tuệ nhân tạo
- Mô hình lớn
- Suy luận
- Phần cứng
- Phần mềm
© Thông báo bản quyền
Bản quyền bài viết thuộc về tác giả, vui lòng không sao chép khi chưa được phép.
Những bài viết liên quan:
Không có đánh giá...