GPU cho nghiên cứu ML · Thanh toán crypto không KYC
IteraGPU
Công cụ / Định cỡ

Cần bao nhiêu bộ nhớ cho giả thuyết của bạn?

Để chọn một GPU, hãy bắt đầu từ model và tải cần xử lý, rồi cùng lúc kiểm tra khả năng tương thích, toàn bộ bộ nhớ và chất lượng mong đợi. Công cụ định cỡ cộng các weights lý thuyết và một khoản dự trữ đã chọn; nó đưa ra các ứng viên để xem xét. Nó không tự động tính cache, activations hay trạng thái optimizer. Một tiêu chí bắt buộc chưa biết vẫn cần được xác nhận trước khi chọn một cấu hình.

01 / Công cụ định cỡƯớc tính

Đặt các giả định của bạn.

Cache, activations, buffers: một giả định cần đo lường.

Đường bao tham khảo

19 GiB

Chỉ trọng số

13 GiB
Examiner NVIDIA RTX A5000 24GB

Trọng số = tham số × bit ÷ 8 ÷ 2³⁰. Siêu dữ liệu lượng tử hóa không được bao gồm. Không có thông lượng nào được dự đoán.

Một mức dự trữ được chọn, rồi được kiểm chứng.

Kết quả cộng trọng số lý thuyết và mức dự trữ của bạn. Batch, cache, activations và optimizer không được tự động trừ ra.

Bắt đầu với một giả định rõ ràng, rồi dùng các kịch bản bên dưới để chuẩn bị đo lường trên khối lượng công việc của bạn.

Chuyển từ ước tính sang đo lường
01 /

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.

02 /

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.

Lưới lựa chọn — quyết định dựa trên tải của bạn, cần điền kèm linh kiện của bạn
Tiêu chí bắt buộcBằng chứng có thể xác minhĐủ điều kiệnCần xác nhậnLoạ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 thiToà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ếtMột phần thiết yếu bị loại bỏ
Khả năng tương thíchTà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ầuChỉ là môi trường mong muốnPhụ thuộc thiết yếu không tương thích
Bộ nhớ mỗi GPUTính toán phân rã, dung lượng khả dụng và đỉnh của các giai đoạn hữu íchBao 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ếtBão hòa trên tải yêu cầu
Chất lượngCorpus cố định, đầu ra được xác định và ngưỡng được định nghĩa trước khi so sánhTuâ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ếtNhu cầu đã được xác minhCác thông số kỹ thuật yêu cầu chưa được ghi nhậnKhô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ạchTuân thủ trần và khung thời gianThời lượng vẫn còn giả địnhVượ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

03 /

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ủ.

Trọng số tính bằng Gio = tham số × bit trên mỗi giá trị ÷ 8 ÷ 1 073 741 824
04 /

Đọ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

05 /

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.

Ví dụ lý thuyết — 7 tỷ tham số đặc, mức dự trữ tùy ý 6 Gio
Định dạng trọng sốDung lượng đặc tính bằng byteTrọng số tính bằng Gio, đã làm trònTrọng số + dự trữ tính bằng Gio
32 bit28 000 000 00026,0832,08
16 bit14 000 000 00013,0419,04
8 bit7 000 000 0006,5212,52
4 bit lý thuyết3 500 000 0003,269,26

Nguồn kỹ thuật: Transformers 5.17 — định dạng và giới hạn của bitsandbytes

06 /

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.

Bảng ghi dự trữ cần điền cho khối lượng công việc của bạn
Khoản mục cần ghi lạiĐầu vào cần thiếtBằng chứng mong đợi
Cache sinhĐầu KV, lớp, token, chuỗi, định dạngTính toán phù hợp với kiến trúc rồi đo lường
ActivationMicrobatch, độ dài, kiến trúc, checkpointingĐỉnh trên các đầu vào được chọn
Gradient và optimizerTham số được huấn luyện, định dạng, phương phápLần cập nhật đầy đủ đầu tiên
Tải, xác thực và xuấtQuy trình và kích thước đầu raKiểm soát từng pha cần thiết
07 /

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

08 /

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.

09 /

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

10 /

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.