Tối ưu hóa mô hình AI linh hoạt hơn bao giờ hết
Tối ưu hóa mô hình AI linh hoạt hơn bao giờ hết
- 5 min read
AI Model Optimization Linh Hoạt Hơn Bao Giờ Hết
Hôm nay, chúng tôi vui mừng thông báo đã phát hành phiên bản Pruna 0.3.0 được mong đợi từ lâu.
Chúng tôi đã cấu trúc lại khung làm việc nội bộ để quản lý thuật toán linh hoạt và có khả năng mở rộng hơn, tạo tiền đề cho việc hỗ trợ thuật toán mạnh mẽ hơn nữa trong tương lai.
Tại sao lại Tái cấu trúc?
Trong các phiên bản trước, một số nhóm thuật toán - như bộ nhớ đệm (cachers) hoặc bộ lượng tử hóa (quantizers) - được gắn chặt với cấu trúc của gói. Việc nhóm cứng nhắc này khiến việc giới thiệu các loại thuật toán mới hoặc kết hợp chúng theo những cách linh hoạt trở nên khó khăn.
Bắt đầu từ Pruna 0.3.0, chúng tôi đã sửa đổi hệ thống này để các phân loại đó không còn là các ràng buộc cứng. Thay vào đó, chúng giờ đây đóng vai trò là siêu dữ liệu bổ sung, cho phép thiết kế theo mô-đun, có thể kết hợp và chống lỗi thời trong tương lai. Việc tái cấu trúc này đặt nền móng cho việc tích hợp các kỹ thuật tối ưu hóa mới và các quy trình tùy chỉnh mà không có giới hạn về cấu trúc.
Đây là một sự tái cấu trúc cơ bản cho phép hai điều:
- Thay vì áp dụng thuật toán theo một cách cố định được xác định bởi nhóm của chúng, các thuật toán nén có thể được áp dụng theo thứ tự linh hoạt bất kể nhóm của chúng.
- Thay vì giới hạn một thuật toán cho mỗi nhóm trong
SmashConfig, nhiều thuật toán từ cùng một nhóm có thể được kết hợp miễn là chúng được đánh dấu là tương thích.
Điều này có ý nghĩa gì với bạn?
Bạn không cần phải làm gì đặc biệt — chỉ cần nâng cấp lên phiên bản mới và bạn đã sẵn sàng sử dụng! Mặc dù chúng tôi đã tinh chỉnh một chút cách định nghĩa cấu hình (theo hướng tốt hơn!), giao diện cũ vẫn hợp lệ. Bạn có thể tìm thấy tất cả các chi tiết trong phần tiếp theo.
python pip install –upgrade pruna
Sau khi nâng cấp, mọi thứ sẽ hoạt động ngay lập tức.
Thay đổi là gì
Giao diện thuật toán linh hoạt hơn
-
Trước đây, bạn phải định nghĩa
SmashConfigtừng bước một.python from pruna import SmashConfig
config = SmashConfig() config[“compiler”] = “torch_compile” config[“cacher”] = “deepcache”
-
Hiện tại, với bản phát hành này, bạn có thể thực hiện tất cả trong một dòng với một danh sách tên thuật toán — nhanh hơn và đơn giản hơn.
python from pruna import SmashConfig
config = SmashConfig([“torch_compile”, “deepcache”])
Giao diện tham số siêu linh hoạt hơn
-
Trước đây, nếu bạn cần chỉ định các tham số thuật toán, bạn không còn phải trải qua quy trình tẻ nhạt để thiết lập từng cái một.
python from pruna import SmashConfig
config = SmashConfig() config[“compiler”] = “torch_compile” config[“torch_compile_fullgraph”] = True config[“torch_compile_mode”] = “max-autotune” config[“quantizer”] = “hqq” config[“hqq_weight_bits”] = 4 config[“hqq_compute_dtype”] = “torch.bfloat16”
-
Hiện tại, bạn có thể sử dụng cấu hình kiểu từ điển để xác định chi tiết, tham số cho từng thuật toán cùng một lúc.
python from pruna import SmashConfig
config = SmashConfig({ “hqq”: { “weight_bits”: 4, “compute_dtype”: “torch.bfloat16” }, “torch_compile”: { “fullgraph”: True, “mode”: “max-autotune” } })
Thứ tự và Khả năng tương thích thuật toán linh hoạt hơn
Một thay đổi lớn khác là cách xác định thứ tự áp dụng thuật toán.
Trước đây, trình tự thực thi được quyết định bởi hệ thống phân cấp các nhóm thuật toán và một thứ tự toàn cục dựa trên các nhóm này. Trong phiên bản 0.3.0, điều này đã được thay thế bằng một hệ thống nguyên tử và khai báo hóa hơn: mỗi thuật toán hiện tự chỉ định các quy tắc tương thích và ràng buộc thứ tự của riêng nó. Nếu một thuật toán tương thích với một thuật toán khác, nó bây giờ sẽ luôn chỉ định theo thứ tự chúng có thể được thực thi.
Điều này làm cho quy trình thuật toán tự tổ chức hơn, mạnh mẽ hơn với các phần mở rộng mới và có khả năng giải quyết các tổ hợp hợp lệ một cách động.
Tài liệu mới
Để đảm bảo bạn có mọi thứ cần thiết, chúng tôi cũng đã cập nhật tài liệu của mình. Giờ đây, bạn có thể dễ dàng tìm thấy các hướng dẫn và bài học mới nhất trong tab “Open Source”.
Bắt đầu ngay bây giờ
Tận hưởng Chất lượng và Hiệu quả!
- Nén các mô hình của riêng bạn với Pruna và cho chúng tôi một ⭐ để thể hiện sự ủng hộ của bạn!
- Cập nhật các nghiên cứu mới nhất về hiệu quả AI trên blog của chúng tôi, khám phá bộ sưu tập tài liệu của chúng tôi hoặc đi sâu vào các khóa học của chúng tôi.
- Tham gia cuộc trò chuyện và cập nhật thông tin trong cộng đồng Discord của chúng tôi. Nhiều thuật toán sắp ra mắt!
Link bài viết gốc
- Tags:
- Ai
- 2 Days Ago
- Huggingface.co