2 điểm bởi GN⁺ 2024-04-25 | 1 bình luận | Chia sẻ qua WhatsApp

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
  • mlx_example: ví dụ chạy hiệu quả các mô hình CoreNet trên Apple Silicon
  • corenet/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

 
GN⁺ 2024-04-25
Ý kiến Hacker News
  • CoreNet phát triển từ CVNets và nay bao quát các ứng dụng rộng hơn ngoài thị giác máy tính. Điều này giúp việc huấn luyện các mô hình nền tảng, bao gồm cả LLM, trở nên dễ dàng hơn.
  • Nhìn vào default_trainer.py củ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.
  • Việc xây dựng từ đầu thay vì cộng tác với các framework hiện có là một lựa chọn thú vị (và có lẽ rất đậm chất Apple).
  • Các ví dụ MLX hiện tại có vẻ chỉ hỗ trợ suy luận. Đây có thể là bước đệm cho một triển khai chuyên biệt cho MLX.
  • Xét đến các thương vụ mua lại Datakalab và DarwinAI gần đây, sẽ rất thú vị để xem mọi thứ tiến triển ra sao trong một năm tới.
  • Apple cũng đang tích cực phát triển thư viện axlearn được xây dựng trên Jax. Có vẻ như một nửa đội ML của Apple dùng PyTorch, nửa còn lại dùng Jax.
  • README cũng nhắc đến một mô hình mới tên là CatLIP, nhưng liên kết đã bị hỏng.
  • CoreNet được xây dựng dựa trên PyTorch.
  • MLX được hiểu là một giải pháp tương đương PyTorch nhưng được tối ưu cho Apple Silicon. Không rõ liệu CoreNet có nhằm phục vụ việc huấn luyện phân tán các mô hình MLX hay mục đích của nó thực sự là gì.
  • Sẽ rất hay nếu kho lưu trữ này có một tác tử LLM có thể tạo ra các ví dụ API nhỏ cho nhiều mô hình khác nhau và cách sử dụng chúng.
  • Với Apple M1, nên khuyến nghị thư viện nào để huấn luyện và suy luận mạng nơ-ron? Tôi muốn dùng từ C++ hoặc Rust, và mạng sẽ có tối đa 5M tham số.
  • Lợi ích của việc dùng cái này thay vì Huggingface Transformers với backend MPS là gì?
  • Nếu tôi không bỏ sót điều gì trong README, thì vẫn chưa rõ liệu nó có hỗ trợ huấn luyện trên Apple Silicon hay không.
  • Thật thú vị khi Apple đang thúc đẩy thông tin mở về việc huấn luyện LLM. Thế giới đang thay đổi.