Chọn một cấu hình cho một tải đã xác định
Một danh sách GPU, một lời khuyên cho model của bạn và một phương án thay thế cho cấu hình hiện tại của bạn đều cần cùng một fiche khởi đầu: model và revision, inference hay fine-tuning, định dạng weights, độ dài cần thiết, mức đồng thời hoặc microbatch, và tiêu chí chất lượng. Hãy giữ nguyên các yêu cầu này khi so sánh các gói. Một cấu hình xử lý ít context hơn hoặc một tác vụ được đơn giản hóa không tự động đáp ứng cùng một nhu cầu.
Phân loại từng yêu cầu bắt buộc: đạt nếu hồ sơ hiện có xác nhận nó trong phạm vi của bạn; cần xác nhận nếu còn thiếu; loại nếu một lỗi đã được xác lập khiến không thể đáp ứng khối lượng. Một ứng viên chỉ được chọn khi tất cả các yêu cầu này đều được thỏa mãn. Sau đó, phân định các ứng viên đạt yêu cầu theo tổng chi phí gói, biên lợi nhuận hữu ích và tiến độ đã được ghi nhận. Một ưu tiên không thể bù trừ cho một tiêu chí loại.
Liên kết mỗi tiêu chí với một linh kiện và một quyết định
Bảng thông số thương mại chứng thực những gì được chào bán; giao thức của bạn xác lập những gì hoạt động trên tải thực tế. Môi trường được yêu cầu khi đặt hàng vẫn chỉ là một ưu tiên trong khâu chuẩn bị. Dung lượng bộ nhớ danh định hay lượng hàng tồn kho được công bố không chứng minh cho việc cài đặt phần mềm lẫn thời gian sẵn sàng phục vụ.
Giữ nguyên linh kiện cùng phiên bản và phạm vi của nó. Nếu một thông tin bắt buộc chưa được ghi nhận, hãy ghi rõ điều kiện cần xác nhận. Bảng này cho phép lập danh sách sơ tuyển mà không biến những ẩn số đó thành cam kết.
| Tiêu chí bắt buộc | Bằng chứng có thể xác minh | Đủ điều kiện | Cần xác nhận | Loại trừ |
|---|---|---|---|---|
| Khối lượng công việc được bao phủ | Mô hình, phiên bản, token, batch/đồng thời và các đầu vào đã thực thi | Toàn bộ khối lượng công việc cần thiết đều được bao phủ | Kích thước thực tế chưa biết | Một phần thiết yếu bị loại bỏ |
| Khả năng tương thích | Tài liệu chính thức của phần mềm và kiểm soát môi trường mục tiêu | Đã xác minh tổ hợp yêu cầu | Chỉ là môi trường mong muốn | Phụ thuộc thiết yếu không tương thích |
| Bộ nhớ mỗi GPU | Tính toán phân rã, dung lượng khả dụng và đỉnh của các giai đoạn hữu ích | Bao phủ toàn bộ chu kỳ với biên dự phòng hợp lý | Chỉ trọng số hoặc thử nghiệm nhỏ đã biết | Bão hòa trên tải yêu cầu |
| Chất lượng | Corpus cố định, đầu ra được xác định và ngưỡng được định nghĩa trước khi so sánh | Tuân thủ ngưỡng và dung sai | Định dạng mới chưa được đánh giá | Suy giảm vượt quá dung sai |
| Phân bổ và máy chủ | Bố trí linh kiện; RAM, lưu trữ hoặc kết nối liên tục cần thiết | Nhu cầu đã được xác minh | Các thông số kỹ thuật yêu cầu chưa được ghi nhận | Không thể phân bổ thiết yếu |
| Ngân sách và tiến độ | Gói, lô, thẻ, ngày, tổng USD và toàn bộ kế hoạch | Tuân thủ trần và khung thời gian | Thời lượng vẫn còn giả định | Vượt ngân sách hoặc hạn chót |
Nguồn kỹ thuật: Bảng phân tích tải cho suy luận · Đo lường các giai đoạn và bộ đếm · Đặt ra các tiêu chí chất lượng · Lập kế hoạch chi phí cho thí nghiệm
Hiểu rõ kết quả tính toán điều gì
Số lượng tham số tương ứng với các giá trị mà bạn biểu diễn trong phép tính dense. Định dạng cho biết số bit trên mỗi giá trị. Kết quả “Chỉ trọng số” chuyển đổi khối lượng này thành Gio, sau đó “Phạm vi ước tính” cộng thêm phần dự trữ của bạn. Lựa chọn huấn luyện hay thích ứng trong công cụ không áp dụng một hệ số nhân phổ quát ẩn nào; nó mời bạn ghi chú lại những khoản còn thiếu.
Sự đơn giản này cho phép đọc lại giả định. Nó cũng đòi hỏi phải biết điều gì nằm ngoài phép tính: siêu dữ liệu lượng tử hóa, các mô-đun thuộc định dạng khác, bộ nhớ làm việc, tải tạm thời và các mục đích sử dụng ngoài tiến trình. Thẻ GPU được đề xuất là một ứng viên cần xem xét, không phải bảo đảm rằng mô hình của bạn sẽ chạy được trên đó. Tên và dung lượng bộ nhớ danh định của một card không mô tả phần còn lại của máy chủ.
Đọc đơn vị trước khi so sánh một card
Một GB thập phân tương ứng với một tỷ byte; một GiB tương ứng với 2³⁰ byte. Danh mục hiển thị dung lượng danh định tính bằng GB. Công cụ áp dụng quy ước thập phân; để xác nhận một cấu hình, bạn cũng nên ghi lại dung lượng tính bằng byte do thiết bị công bố. Các bộ đếm trong chương trình của bạn có thể được hiển thị bằng byte hoặc GiB. Hãy chuyển đổi những đại lượng có cùng định nghĩa trước khi so sánh kích thước của chúng; đừng trộn lẫn bộ nhớ danh định, bộ nhớ trống và mức cao nhất được đặt trước.
Ví dụ tính toán: 24 tỷ byte tương đương khoảng 22,35 GiB. Kết quả này không cho biết dung lượng trống của một card 24 GB. Hệ thống, ngữ cảnh thực thi và các cấp phát khác cũng có thể chiếm dụng. Hãy giữ nguyên đơn vị và phạm vi trong tên của từng cột trong bảng thử nghiệm của bạn.
Nguồn kỹ thuật: NIST — tiền tố nhị phân và thập phân
Ví dụ đã triển khai: bảy tỷ tham số
Với 7 tỷ tham số ở 16 bit, dung lượng đặc là 14 tỷ byte, tức khoảng 13,04 Gio. Với mức dự trữ được chọn là 6 Gio, tổng bao sẽ là 19,04 Gio. Phép tính không chứng minh rằng mức dự trữ 6 Gio phù hợp với mô hình của bạn: đây chính là giả định cần được kiểm chứng bằng các đầu vào và phép toán được chọn.
Bảng giữ nguyên cùng mức dự trữ để chỉ cho thấy hiệu ứng số học của định dạng trọng số. Trong một lần chạy thực tế, các khoản cấp phát khác có thể thay đổi khác đi. Biểu diễn bốn bit thường bao gồm thông tin bổ sung và có thể để một số lớp ở định dạng khác. Vì vậy đừng đọc dòng cuối như một đỉnh tổng được đảm bảo.
| Định dạng trọng số | Dung lượng đặc tính bằng byte | Trọng số tính bằng Gio, đã làm tròn | Trọng số + dự trữ tính bằng Gio |
|---|---|---|---|
| 32 bit | 28 000 000 000 | 26,08 | 32,08 |
| 16 bit | 14 000 000 000 | 13,04 | 19,04 |
| 8 bit | 7 000 000 000 | 6,52 | 12,52 |
| 4 bit lý thuyết | 3 500 000 000 | 3,26 | 9,26 |
Nguồn kỹ thuật: Transformers 5.17 — định dạng và giới hạn của bitsandbytes
Xây dựng một mức dự trữ có thể giải thích được
Hãy phân tách mức dự trữ thay vì chọn một tỷ lệ phần trăm theo thói quen. Trong suy luận tự hồi quy, hãy ghi nhận kiến trúc, cache, token được giữ lại và các chuỗi đồng thời. Trong huấn luyện, hãy ghi nhận tham số được học, gradient, optimizer, activation và buffer. Độ dài đầu vào và microbatch là một phần của bảng ghi, ngay cả khi số lượng tham số không thay đổi.
Một số khoản mục không đạt cực đại cùng một thời điểm. Cộng các mức biên cực đại độc lập có thể dùng làm tổng bao thận trọng nếu được tuyên bố như vậy, nhưng đó không phải là một đỉnh đã quan sát. Hãy ghi rõ các khoản mục ước tính, những khoản đã đo và những khoản còn chưa biết. Hướng dẫn cache KV trình bày chi tiết một trong các phép tính này; hồ sơ bộ nhớ đặt lại các bộ đếm vào các pha của chương trình.
| Khoản mục cần ghi lại | Đầu vào cần thiết | Bằng chứng mong đợi |
|---|---|---|
| Cache sinh | Đầu KV, lớp, token, chuỗi, định dạng | Tính toán phù hợp với kiến trúc rồi đo lường |
| Activation | Microbatch, độ dài, kiến trúc, checkpointing | Đỉnh trên các đầu vào được chọn |
| Gradient và optimizer | Tham số được huấn luyện, định dạng, phương pháp | Lần cập nhật đầy đủ đầu tiên |
| Tải, xác thực và xuất | Quy trình và kích thước đầu ra | Kiểm soát từng pha cần thiết |
Xác thực theo từng bước mà không âm thầm thay đổi nhiệm vụ
Bắt đầu với một đầu vào ngắn và một batch nhỏ để phát hiện lỗi chuẩn bị. Sau đó chuyển sang một đầu vào thông thường rồi đến giới hạn thực sự cần thiết của bạn. Nếu chương trình cắt bớt dữ liệu, giữ lại ít token hơn hoặc bỏ qua một phần của tập dữ liệu, trường hợp chạy được không xác thực khối lượng công việc đã công bố. Hãy ghi lại các kích thước thực sự được thực thi.
Hãy ghi lại đỉnh theo từng pha và từng GPU cùng bộ đếm của nó. Bộ nhớ được cấp phát cho các tensor và bộ nhớ được allocator của PyTorch dự trữ không cộng lại với nhau. Một lần đọc ở mức hệ thống có thể bao trùm nhiều hơn tiến trình được đo. Nếu dự tính nhiều batch, hãy ghi lại cách phân bổ ở mức phần mềm; hai card không tự động tạo thành một không gian bộ nhớ duy nhất.
Nguồn kỹ thuật: PyTorch — quản lý bộ nhớ CUDA
Quyết định sau lần vượt ngưỡng đầu tiên
Lỗi khi tải gợi ý hướng đến trọng số, định dạng hoặc một khoản cấp phát tạm thời. Lỗi khi sinh yêu cầu xem xét ngữ cảnh và mức đồng thời. Lỗi ở lượt lan truyền ngược có thể gợi ý microbatch, activation hoặc chiến lược tính toán. Việc định vị này tránh phải thay đổi ngẫu nhiên độ chính xác, mô hình và dữ liệu cùng lúc.
Sau mỗi lần chỉnh sửa, hãy kiểm tra chất lượng và phạm vi được bao phủ. Giảm độ dài cần thiết có thể không chấp nhận được; thay đổi lượng tử hóa có thể làm thay đổi đầu ra. Nếu cần một năng lực khác, hãy quay lại danh mục với một bảng ghi nêu rõ đỉnh đã quan sát, mức biên được biện minh, các phiên bản và các đầu vào giới hạn. Một mức biên không có lý do không đáng tin cậy hơn một kết quả được làm tròn đến từng GB.
Một lựa chọn ngắn gọn, với cùng các yêu cầu
Với suy luận minh họa ở 7 tỷ tham số trong 16 bit và 6 Gio dự trữ, ví dụ đã triển khai cho ra 19,04 Gio. Bạn có thể xem xét RTX 4090 24 GB hoặc RTX 6000 Ada 48 GB. Giá niêm yết cho một lô một card trong 3 ngày lần lượt là 47,14 USD và 55,71 USD. Đây là hai ứng viên có dung lượng khác nhau: ngữ cảnh, mức đồng thời, bộ nhớ thực sự khả dụng, khả năng tương thích và chất lượng vẫn cần được kiểm chứng. Những mức giá này không thiết lập bất kỳ xếp hạng tốc độ nào.
Để thực hiện một bản tinh chỉnh, hãy dùng lại cùng lưới đó với các tham số đã học và các pha bổ sung: lan truyền ngược, cập nhật lần đầu, đánh giá và xuất. Số lượng tham số LoRA không đủ để xác nhận tổng bộ nhớ. Quy trình fine-tuning giúp định lượng kết quả; batch và tích lũy dùng để ghi lại một bước cập nhật có thể so sánh được.
Nếu bạn tìm một lựa chọn thay thế sau khi vượt ngưỡng, hãy xác định pha gây lỗi và giữ nguyên các yêu cầu về đầu ra. Mỗi lần chỉ so sánh một thay đổi: dung lượng, cache, microbatch hoặc độ chính xác. Một định dạng khác phải đạt lại chất lượng tối thiểu đã đặt ra. Nếu nhu cầu của bạn đòi hỏi một ứng dụng được quản lý, một dung lượng RAM chính xác hoặc một liên kết được chứng thực, chỉ một fiche GPU thì quyết định vẫn cần được xác nhận. Hai card đòi hỏi một cách bố trí phần mềm đã được kiểm chứng; bộ nhớ của chúng không tự động tạo thành một không gian duy nhất.
Nguồn kỹ thuật: RTX 4090 — lô, dung lượng và gói · RTX 6000 Ada — lô, dung lượng và gói · Chất lượng sau lượng tử hóa · Chuẩn bị một bản tinh chỉnh · Xác định batch và tích lũy
Giữ lại phép tính cùng những gì xác nhận nó
Hãy lưu lại giả định ban đầu, bảng các khoản mục, quy trình và các số liệu thô. Phân biệt ước tính, số đo đếm được và quyết định thương mại. Notebook IteraGPU Lab giúp hiểu cách đo lường này trên một mạng nhỏ; nó không thay thế một lần thử với mô hình của bạn. Các ví dụ số trên trang này là phép tính, không phải thông lượng hay mức tiêu thụ GPU được cho là đã quan sát.
Một kết quả định cỡ tốt gói gọn trong một fiche: mô hình và bản sửa đổi, tác vụ, độ chính xác, độ dài, microbatch hoặc mức đồng thời, bộ nhớ mỗi GPU và điều kiện đo. Hãy thêm cả những gì có thể vô hiệu hóa kết luận, chẳng hạn một cửa sổ dài hơn hoặc một đánh giá khác. Từ đó bạn có thể chọn một gói tương ứng với đợt chạy, thay vì làm lại toàn bộ ước tính cho mỗi biến thể.
Câu hỏi thực tế
Phần dự trữ mà công cụ đề xuất có được tính từ mô hình của tôi không?
Không. Phần dự trữ là một giá trị do bạn chọn. Công cụ không biết kiến trúc cũng như các đầu vào trong lần chạy của bạn; hãy dùng nó để làm rõ giả định của bạn, rồi đối chiếu với các pha đã đo.
Vì sao một mức dưới 24 GB vẫn có thể thất bại?
Ước tính có thể bỏ sót một số khoản mục và dùng GiB trong khi dung lượng danh định được biểu thị bằng GB. Một đỉnh tạm thời, một tiến trình khác hoặc một đầu vào khác cũng có thể được tính. Hãy so sánh đơn vị và phạm vi, rồi xác định pha bị lỗi.
Tôi có thể cộng các phần dự trữ và hai đỉnh PyTorch không?
Không. Đỉnh của các tensor được cấp phát và đỉnh của bộ nhớ dự trữ không phải là hai khoản mục độc lập để cộng lại. Các đỉnh riêng biệt có thể xuất hiện ở những thời điểm khác nhau. Hãy giữ nguyên tên của chúng và dùng phương pháp bộ nhớ để diễn giải.
Tôi có thể yêu cầu một danh sách hoặc một lựa chọn thay thế mà chưa đo mô hình của mình không?
Có, để lập danh sách các ứng viên có điều kiện. Hãy mô tả tải và các ràng buộc phải giữ nguyên. Phép tính bộ nhớ và các fiche thương mại cho phép sàng lọc ban đầu; các tiêu chí bắt buộc chưa được kiểm chứng vẫn cần xác nhận trước khi chọn một gói.