MLX - Framework mảng tương tự Numpy dành cho Apple Silicon
(github.com/ml-explore)- Framework mảng do nhóm nghiên cứu machine learning của Apple tạo ra, được thiết kế để thực hiện machine learning hiệu quả và linh hoạt trên Apple Silicon
- Cung cấp Python API gần như tương tự Numpy, đồng thời cũng có C++ API với đầy đủ tính năng tương đương
- Những điểm khác với Numpy
- Composable function transformations: MLX có các phép biến đổi hàm có thể kết hợp để tự động vi phân, tự động vector hóa và tối ưu hóa đồ thị tính toán
- Lazy Computation: Việc tính toán trong MLX là lazy. Mảng chỉ được materialize khi cần
- Đa thiết bị: Có thể chạy phép toán trên mọi thiết bị được hỗ trợ (CPU, GPU, ...)
- Xây dựng đồ thị động: Đồ thị tính toán của MLX được xây dựng động. Việc thay đổi shape của đối số hàm không làm chậm tốc độ biên dịch, đồng thời việc debug cũng đơn giản và trực quan
- Lấy cảm hứng từ các framework như PyTorch, Jax, ArrayFire
- Điểm khác biệt nổi bật giữa các framework này và MLX là Unified Memory Model
- Các mảng của MLX được lưu trong bộ nhớ dùng chung. Các thao tác trên mảng MLX có thể được thực hiện trên mọi loại thiết bị được hỗ trợ mà không cần sao chép dữ liệu
- Các loại thiết bị hiện được hỗ trợ là CPU và GPU
- Bao gồm nhiều ví dụ khác nhau
- Huấn luyện mô hình ngôn ngữ Transformer
- Sinh văn bản quy mô lớn với LLaMA và fine-tune bằng LoRA
- Tạo ảnh với Stable Diffusion
- Nhận dạng giọng nói với OpenAI's Whisper
2 bình luận
Cái này trông thực sự rất hay. Mình thường xử lý nhiều dữ liệu động nên mỗi lần dùng jax đều luôn khá vất vả...
Ồ, cái này hay đấy. Tôi sẽ thử dùng.