Thủ thuật
H3-metal: Đưa mô hình MiniMax-H3 chạy trực tiếp trên chip Apple Silicon
(giờ Việt Nam)
Tóm tắt AI
Dự án H3-metal cho phép chạy suy luận MiniMax-H3 nguyên bản trên chip Apple Silicon, hỗ trợ đầy đủ quy trình từ tạo video/âm thanh, điều khiển khung hình đến tham chiếu hình ảnh/video.
Bản dịch AI
h3-metal
Suy luận MiniMax-H3 gốc cho Apple Silicon. Dự án đang được xây dựng theo chuỗi các lát cắt dọc (vertical slices) khả thi: đầu tiên là siêu dữ liệu (metadata) của host/model mang tính tất định, sau đó là tính tương đương của khối Metal di động, mã hóa prompt, prompt-to-video/audio, điều kiện khung hình đầu/cuối (first/last-frame conditioning) và cuối cùng là các tham chiếu có thứ tự.
Các tính năng prompt-to-video/audio, điều kiện khung hình đầu/cuối và tham chiếu hình ảnh/video/âm thanh Ref2VA có thứ tự đều hoạt động hoàn chỉnh từ đầu đến cuối. Công việc hiện tại là tối ưu hóa hiệu năng và bộ nhớ Metal dành riêng cho H3 trên M3 Max và M5 Max.
Hướng dẫn
1. Xây dựng và kiểm tra model
Các ví dụ giả định rằng bản snapshot Hugging Face nằm trong thư mục./MiniMax-H3 và FFmpeg, FFprobe đã có sẵn trong PATH.
--info dùng để kiểm tra cấu trúc model và in ra thiết bị Metal đã chọn mà không cần ánh xạ toàn bộ trọng số hay tạo phương tiện. Chạy./h3 --help để xem tài liệu tham khảo CLI đầy đủ.
Nếu không có -p, tệp nhị phân tương tự sẽ khởi động phiên tương tác kiểu Iris:
Nhập một prompt để tạo video được đánh số. Phiên làm việc giữ nguyên trạng thái điều kiện prompt BF16, DiT đã chuẩn bị và bộ giải mã video trong bộ nhớ, vì vậy việc lặp lại một prompt với seed khác sẽ tránh được việc phải tải và mã hóa lại chúng. Các lệnh hữu ích bao gồm!status,!seed random,!seconds 2,!show,!save output.mp4 và!cache. Sử dụng!help để xem danh sách đầy đủ và ngắn gọn.
Điều kiện khung hình đầu/cuối được duy trì trong suốt phiên làm việc:
Sử dụng!first clear hoặc!last clear để xóa một điểm neo. Các video được tạo sẽ được ghi vào thư mục phiên làm việc hiển thị khi khởi động.
Đối với hình ảnh điều kiện Ref2VA chung, hãy sử dụng!ref-image PATH. Các hình ảnh được thêm vào theo thứ tự và hiển thị với model dưới dạng <Picture 1>, <Picture 2>, v.v.; tên tệp không có ý nghĩa đối với model.
!refs liệt kê thứ tự hiện tại,!ref-remove N xóa một mục và!refs clear xóa tất cả. Các tham chiếu Ref2VA không thể kết hợp với các điểm neo!first/!last.
2. Tạo video nhanh đầu tiên
Bắt đầu với preset cân bằng đã được kiểm chứng. Nó tạo ra 22 khung hình ở tốc độ 24 fps (khoảng 0,92 giây), hiển thị khung hình video ở giữa đang phát triển sau mỗi lần chuyển đổi khử nhiễu trong terminal đồ họa được hỗ trợ, và in ra thời gian của các giai đoạn:
Đây cố tình không phải là cấu hình mạnh mẽ nhất:
Lần gọi tiến trình đầu tiên cũng tốn chi phí tải model và bộ nhớ đệm hệ thống tệp. Hãy so sánh hiệu năng bằng cách chạy lặp lại và thay đổi các biến thể khi máy đang nóng lên vì khối lượng công việc này nhạy cảm với việc giảm xung nhịp do nhiệt (thermal throttling).
Đối với một lần lặp rất ngắn, hãy yêu cầu trực tiếp bốn lượt khử nhiễu:
--steps N luôn có nghĩa là chính xác N lượt khử nhiễu. Từ bốn đến bảy lượt sử dụng cùng một lịch trình đã thắng trong bài so sánh ngân sách thấp; tăng từ 4 lên 7 sẽ cải thiện dần chi tiết và chuyển động. Giữ --reuse 1 ở các mức ngân sách nhỏ như vậy để mỗi lượt yêu cầu đều chạy model. --show hiển thị một bản xem trước sau mỗi lượt.
Một số lịch trình tập trung vào giai đoạn cuối đã được đánh giá vì hầu hết quá trình làm sạch rõ rệt đều xảy ra muộn trong một lần chạy dài. Chúng giữ lại quá ít các cập nhật bố cục ban đầu và tạo ra kết cấu đan xen, chuyển động yếu hoặc màu sắc bị cắt xén. Chế độ giữ lại (retained mode) sử dụng lưới cơ sở tuyến tính đã phát hành với một điểm cuối. Trong bài kiểm tra con cáo 512-square, 22-khung hình, kết quả bốn lượt được chọn có chỉ số SSIM toàn video là 0,556 so với tham chiếu 29 lượt; một bài kiểm tra lướt sóng độc lập đo được 0,547. Quá trình khử nhiễu bốn lượt mất khoảng 3,5 giây trên M5 Max, so với 26,4 giây cho tham chiếu.
3. Hướng tới chất lượng tham chiếu
Thay đổi từng điều khiển một khi đánh giá chất lượng. Đầu tiên khôi phục tất cả các lớp, sau đó là tất cả các đánh giá khử nhiễu, và cuối cùng nâng lịch trình 20 lượt mặc định lên tham chiếu 50 lượt chậm hơn:
Các giá trị mặc định là --steps 20 --layers 50 --reuse 1; hãy giữ --steps 50 rõ ràng cho lộ trình tiệm cận này. Nó thực hiện 50 lượt chuyển tiếp khử nhiễu 50 khối hoàn chỉnh và tốn kém hơn nhiều so với mặc định, nhưng là "oracle" chính xác khi chế độ nhanh làm thay đổi chủ thể, giải phẫu, chuyển động hoặc bố cục. Không mong đợi sự đồng nhất pixel về số học với MLX vì các công cụ thực thi và số ngẫu nhiên khác nhau; nội dung và chuyển động được mô tả phải tương đồng.
4. Chọn preset tốc độ/chất lượng
Các điều khiển này độc lập trừ khi có ghi chú khác:
Trên M5, --use-int8-row-fc2 sử dụng một thang đo kích hoạt cho mỗi hàng FC2 và một tích TensorOps toàn chiều rộng duy nhất. Nó là tùy chọn vì ít bảo thủ về số học hơn so với int8 nhóm. Nó đã giảm các lượt chuyển tiếp khử nhiễu hoàn chỉnh khoảng 2,6% trong các bài kiểm tra tương đương. Các video con cáo và người lướt sóng bốn bước khớp nhau giữ nguyên chủ thể, bối cảnh và chuyển động (SSIM toàn video 0,919 và 0,828). Trong phiên tương tác, hãy sử dụng!int8-row-fc2 on.
--reuse và --core-reuse loại trừ lẫn nhau. Việc làm mỏng lớp (layer thinning) có thể kết hợp với một trong hai.
Để làm cho lệnh đầu tiên nhanh hơn trong khi vẫn giữ độ phân giải đầu ra, hãy thêm giảm token (token reduction):
Tại hình dạng 512 square đã được kiểm chứng, việc giảm token đã cắt giảm cấu hình khử nhiễu 45 lớp + reuse 2 từ 16,69 xuống 12,60 giây trên IT M5 Max. Các bản render con cáo và người lướt sóng độc lập vẫn giữ được tính nhất quán, nhưng bố cục có thể khác biệt nhiều hơn so với lộ trình tiệm cận.
Để có bản xem trước mạnh mẽ, hãy render nội bộ ở 320 square và upscale lên đầu ra 512 square được yêu cầu:
Sự kết hợp này tạo ra một con cáo 22 khung hình sạch, dễ nhận biết trong quá trình xác thực, nhưng làm mất chi tiết nhỏ và có thể thay đổi khung hình. Không thêm --token-reduction vào cả --layers 40 và --reuse 3: sự kết hợp đã thử nghiệm đó tạo ra hiện tượng nhiễu màu (color ringing), đường viền và các chi tiết bóng ma ở chi.
Như một giải pháp thay thế cho việc tái sử dụng toàn bộ vận tốc, cách này giữ cho patch phụ thuộc vào timestep và các đầu ra (output heads) luôn mới sau mỗi lần chuyển đổi:
Chỉ sử dụng --core-reuse 6 như một bản xem trước mạnh mẽ. Các giá trị trên 6 không được công khai vì quá trình xác thực cho thấy mất độ trung thực của chủ thể.
5. Chọn độ phân giải và thời lượng
Chiều rộng và chiều cao mỗi cạnh phải là bội số của 32, tối thiểu là 32 và tích của chúng không được vượt quá 768 * 1344 pixel. Đó là các giới hạn cơ học, không phải là lời hứa rằng mọi khung hình nhỏ đều có chất lượng model tốt. H3-Base là model 768p.
Để có bản xem trước 256-square gốc nhanh chóng:
Tại 256 square, H3 chỉ có lưới spatial-token hiệu dụng 8x8, vì vậy nó có ít không gian hơn cho chi tiết nhỏ và bố cục phức tạp. H3 tự động giảm một nửa tọa độ RoPE không gian chính xác tại 256 square. Điều này đã loại bỏ các hiện tượng nhiễu lưới lặp lại trong các bản render con cáo dài và giữ được tính nhất quán trên một bức chân dung độc lập mà không cần thêm token hoặc thời gian chạy. Sử dụng --use-reference-rope để khôi phục tọa độ đã phát hành/MLX cho các kiểm tra tương đương. Giữ token reduction ở chế độ tắt tại kích thước này. Native 128 square vẫn không được hỗ trợ: lưới token 4x4 của nó không khôi phục được chủ thể dễ nhận biết ngay cả khi đã điều chỉnh RoPE.
--render-width và --render-height phải được thiết lập cùng nhau, phải có cùng tỷ lệ khung hình với đầu ra và không được vượt quá kích thước đầu ra. Model và VAE sử dụng kích thước nội bộ; các khung hình terminal và video đã mã hóa giữ nguyên kích thước đầu ra được yêu cầu.
H3 phát ra 24 fps và căn chỉnh các yêu cầu khung hình lên mức 5 + 17*n:
Bài viết được AI dịch và tổng hợp tự động từ Hacker News Nổi bật (buzzing.cc bản dịch tiếng Trung). Liên kết bài gốc ở phía trên. Dữ liệu đồng bộ qua API công khai được ghi nguồn tại AI HOT (canonical) ↗. AIHOT.vn luôn dẫn nguồn đầy đủ — nếu bạn thấy điểm cần chỉnh sửa, hãy gửi ý kiến tại trang phản hồi.