CoreNet: Thư viện để huấn luyện mạng nơ-ron sâu
(github.com/apple)Giới thiệu CoreNet, framework deep learning do Apple phát triển
- CoreNet là một framework deep learning do Apple phát triển, có thể huấn luyện các mô hình quy mô lớn tiêu chuẩn hoặc mới cho nhiều tác vụ khác nhau
- Hỗ trợ các tác vụ như Foundation Model (CLIP, LLM), phân loại đối tượng, phát hiện đối tượng, Semantic Segmentation, v.v.
- Bản cập nhật gần đây v0.1.0 bao gồm OpenELM, CatLIP, các ví dụ MLX, v.v.
Thành tựu nghiên cứu của Apple với CoreNet
- OpenELM: mô hình ngôn ngữ hiệu quả, mã nguồn mở, có thể huấn luyện/suy luận
- CatLIP: đạt hiệu năng ở mức CLIP với quá trình tiền huấn luyện nhanh hơn 2,7 lần trên dữ liệu hình ảnh-văn bản quy mô web
- FastVit: Vision Transformer lai tốc độ cao tận dụng structural reparameterization
- Bytes Are All You Need: Transformer hoạt động trực tiếp trên từng byte của tệp
- MobileOne: mạng backbone cho di động với độ trễ 1ms
- RangeAugment: kỹ thuật Online Augmentation hiệu quả sử dụng Range Learning
- MobileViT: Vision Transformer gọn nhẹ, thân thiện với thiết bị di động
- Giới thiệu nhiều thành tựu nghiên cứu khác
Cài đặt và thiết lập môi trường phát triển
- Cần cài Git LFS (cần cho kiểm thử, chạy Jupyter Notebook và đóng góp)
- Trên Linux, khuyến nghị Python 3.10+ và PyTorch v2.1.0+
- Trên macOS, Python 3.9+ là đủ
- Các gói phụ thuộc tùy chọn là cần thiết khi đóng góp hoặc chạy kiểm thử
- Giải thích chi tiết cách cài đặt trên Linux, macOS và cách cài các gói để xử lý audio/video
Cấu trúc thư mục của CoreNet
tutorials: ví dụ dành cho người mới bắt đầu- Huấn luyện mô hình từ đầu với bộ dữ liệu mới
- Hướng dẫn SLURM và huấn luyện đa nút
- Ví dụ về CLIP, Semantic Segmentation, Object Detection
projects: cung cấp recipe huấn luyện, trọng số tiền huấn luyện và checkpoint cho từng tác vụ- Được tài liệu hóa trong
README.md, bao gồm liên kết trọng số tiền huấn luyện và thông tin trích dẫn - Cung cấp cấu hình huấn luyện/đánh giá có thể tái lập qua tệp
<task_name>/<model_name>.yaml
- Được tài liệu hóa trong
mlx_example: ví dụ chạy hiệu quả các mô hình CoreNet trên Apple Siliconcorenet/modeling/models: phần triển khai mô hình được tổ chức theo từng tác vụ- Chỉ định tên tác vụ và tên mô hình bằng decorator
- Giải thích cách chỉ định lớp mô hình sẽ dùng trong tệp cấu hình YAML
corenet/data/datasets: bộ dữ liệu được tổ chức theo từng tác vụ- Giải thích thêm về các thư mục triển khai lớp được tham chiếu trong cấu hình YAML khác
loss_fn,metrics,optims,data, v.v.
Thông tin dự án CoreNet
- Sachin là người bắt đầu phát triển, hiện được duy trì bởi Sachin, Maxwell Horton, Mohammad Sekhavat và Yanzi Jin
- Hoan nghênh các đóng góp Pull Request từ cộng đồng. Hãy tham khảo tài liệu đóng góp.
- CoreNet là dự án phát triển từ CVNets, được mở rộng để hỗ trợ huấn luyện Foundation Model như LLM ngoài các tác vụ Vision
Ý kiến của GN⁺
-
CoreNet có vẻ là một framework deep learning toàn diện, bao trùm các mô hình SOTA mới nhất. Ngoài việc cung cấp phần triển khai các mô hình SOTA, nó còn cung cấp cả pipeline huấn luyện, nên có vẻ sẽ giúp dễ dàng tái lập các kết quả nghiên cứu hiện có.
-
Vì là framework do Apple phát triển, có thể kỳ vọng khả năng vận hành được tối ưu trên các thiết bị Apple Silicon. Đặc biệt, có thể phần nào thấy được hướng tối ưu cho Apple Silicon thông qua các ví dụ MLX.
-
Điểm đặc trưng là hỗ trợ không chỉ các tác vụ thị giác mà còn cả huấn luyện Foundation Model như LLM. Tuy nhiên, phiên bản hiện được công khai mới là 0.1.0 nên có vẻ vẫn đang ở giai đoạn đầu. Điều này khiến người ta tò mò về kế hoạch cập nhật và lộ trình sắp tới.
-
Vì là framework dựa trên PyTorch, có vẻ sẽ tận dụng được nhiều tính năng đa dạng trong hệ sinh thái PyTorch. Tuy nhiên, với cấu trúc dự án hiện tại, khả năng tương tác với các framework khác có thể sẽ khó khăn.
-
Sẽ tốt nếu có thêm tính năng export mô hình qua ONNX hoặc TorchScript. Ngoài ra, cũng đáng cân nhắc các cách liên kết với hệ sinh thái Apple như chuyển đổi sang CoreML khi phát triển ứng dụng iOS, macOS.
1 bình luận
Ý kiến Hacker News
default_trainer.pycủa CoreNet, có thể thấy nó dùng Tensor của PyTorch nhưng tự triển khai phương pháp huấn luyện riêng. Nó tự triển khai bộ lập lịch LR và optimizer, còn người gọi có thể tùy chọn dùng Adam của PyTorch.