CoreNet: Library untuk Melatih Jaringan Neural Mendalam
(github.com/apple)- CoreNet adalah toolkit yang memungkinkan peneliti dan engineer melatih model jaringan neural untuk berbagai tugas, mulai dari foundation model seperti CLIP dan LLM hingga klasifikasi objek, deteksi objek, dan segmentasi semantik
- Pada Oktober 2024, CoreNet 0.1.1 menyertakan KV Prediction sebagai proyek baru, dengan riset terkait yang bertujuan meningkatkan Time to First Token
- Sejumlah riset Apple menggunakan CoreNet, dan folder
projects/menyediakan resep pelatihan/evaluasi beserta tautan ke model pralatih - Model dan dataset disusun dalam direktori per tugas, dan kelas model dihubungkan ke pelatihan/evaluasi melalui dekorator
@MODEL_REGISTRY.registerserta nilaimodels.<task_name>.namepada konfigurasi YAML - CoreNet berkembang dari CVNets dan mencakup aplikasi yang lebih luas di luar computer vision, memperluas cakupannya hingga pelatihan foundation model termasuk LLM
Tujuan dan cakupan CoreNet
- CoreNet adalah toolkit jaringan neural mendalam untuk melatih model standar serta model kecil dan besar yang baru
- Cakupan tugas yang didukung mencakup:
- Foundation model: CLIP, LLM
- Klasifikasi objek
- Deteksi objek
- Segmentasi semantik
Pembaruan Oktober 2024
- CoreNet 0.1.1 menyertakan proyek KV Prediction
- Daftar riset Apple terkait mencakup KV Prediction for Improved Time to First Token
Riset Apple dan resep proyek
- Sejumlah riset publik Apple menggunakan CoreNet
- Folder
projects/menyediakan resep pelatihan/evaluasi dan tautan ke model pralatih - Daftar riset yang tercantum dalam README adalah sebagai berikut:
- KV Prediction for Improved Time to First Token
- OpenELM: An Efficient Language Model Family with Open Training and Inference Framework
- CatLIP: CLIP-level Visual Recognition Accuracy with 2.7x Faster Pre-training on Web-scale Image-Text Data
- FastVit: A Fast Hybrid Vision Transformer using Structural Reparameterization
- Bytes Are All You Need: Transformers Operating Directly on File Bytes
- MobileOne: An Improved One millisecond Mobile Backbone
- MobileViT, MobileViTv2, CVNets, dan lainnya
Instalasi dan persyaratan eksekusi
- Untuk pengujian, menjalankan notebook Jupyter, dan berkontribusi, Git LFS perlu dipasang dan diaktifkan
- Di Linux, disarankan menggunakan Python 3.10+ dan PyTorch v2.1.0 atau lebih baru
- Di macOS, Python 3.9+ bawaan sistem disebut sudah cukup
- Dependensi opsional untuk pemrosesan audio dan video adalah sebagai berikut:
- Linux:
libsox-dev,ffmpeg - macOS:
sox,ffmpeg
- Linux:
- Karena sistem file macOS tidak membedakan huruf besar-kecil, hal ini dapat menimbulkan masalah di Git; karena itu, repositori harus diakses dengan path yang huruf besar-kecilnya sama seperti yang terlihat di
ls
Struktur repositori dan alur penggunaan
tutorials/menyediakan contoh untuk memulai dengan CoreNet- Melatih model baru pada dataset baru
- Panduan Slurm dan pelatihan multi-node
- Notebook untuk CLIP, segmentasi semantik, dan deteksi objek
projects/menyediakan resep pelatihan yang dapat direproduksi per makalah serta bobot pralatih dan checkpointREADME.mdmasing-masing proyek menyediakan dokumentasi, tautan bobot pralatih, dan informasi sitasi<task_name>/<model_name>.yamlmenyediakan konfigurasi untuk mereproduksi pelatihan dan evaluasi- Contoh proyek meliputi
kv-prediction,byteformer,catlip,clip,fastvit,mobileone,mobilevit,openelm,resnet,vit, dan lainnya
mlx_examples/menyediakan contoh MLX untuk menjalankan model CoreNet secara efisien di Apple Silicon- Contoh yang disertakan adalah
clip,open_elm
- Contoh yang disertakan adalah
Model, dataset, dan komponen
- Implementasi model disusun berdasarkan tugas di bawah
corenet/modeling/modelsaudio_classificationclassificationdetectionlanguage_modelingmulti_modal_img_textsegmentation
- Setiap kelas model didaftarkan dengan dekorator
@MODEL_REGISTRY.register(name="<model_name>", type="<task_name>") - Untuk menggunakan model dalam pelatihan atau evaluasi CoreNet, tetapkan
models.<task_name>.name = <model_name>pada konfigurasi YAML - Dataset juga diklasifikasikan ke dalam direktori per tugas, sama seperti model
- Komponen internal utama mencakup:
loss_fn,metrics,optims,schedulertrain_eval_pipelinescollate_fns,sampler,text_tokenizer,transforms,video_readerlayers,modules,neural_augmentor,text_encoders
Hubungan dengan CVNets
- CoreNet adalah proyek yang berkembang dari CVNets
- Cakupan yang diperluas mencakup aplikasi yang lebih luas di luar computer vision
- Perluasan ini memungkinkan pelatihan foundation model, termasuk LLM
- Saat menggunakan CoreNet, README meminta sitasi makalah
CVNets: High Performance Library for Computer Vision
1 komentar
Komentar Hacker News
CoreNet tampaknya berkembang dari CVNets untuk menangani penggunaan yang lebih luas di luar computer vision, dan kini juga memungkinkan pelatihan model fondasi seperti LLM
Titik awalnya mungkin ada di sini: https://apple.github.io/ml-cvnets/index.html
Ini terlihat seperti implementasi lapisan perantara untuk pelatihan dan inferensi, dan jika melihat
default_trainer.py[1], mesinnya menggunakan Tensor dari torch tetapi metode pelatihannya diimplementasikan sendiri. Scheduler learning rate dan optimizer juga diimplementasikan sendiri, meski pemanggil bisa memilih untuk memakai Adam dari torchPilihan untuk membangun dari bawah alih-alih bekerja sama dengan framework yang sudah ada demi dukungan kelas satu itu menarik, dan mungkin merupakan pilihan yang sangat khas Apple
Contoh MLX untuk saat ini tampaknya hanya untuk inferensi. Namun, itu juga terlihat seperti titik pendaratan untuk implementasi khusus MLX di masa depan: https://github.com/apple/corenet/blob/5b50eca42bc97f6146b812...
Jika juga mempertimbangkan akuisisi terbaru mereka atas Datakalab https://news.ycombinator.com/item?id=40114350 dan DarwinAI https://news.ycombinator.com/item?id=39709835, akan menarik melihat bagaimana mereka mengejar ketertinggalan dalam satu tahun ke depan
1: https://github.com/apple/corenet/blob/main/corenet/engine/de...
Saya penasaran seberapa berguna ini bagi peneliti yang ingin membongkar-pasang arsitektur model sesuka hati
Contoh: https://github.com/apple/corenet/tree/main/projects/clip#tra...
Kebanyakan model tidak merilis source code pelatihan, dataset, preprocessing, maupun kode evaluasi. Kalau begitu, apakah bentuk implementasi tingkat tinggi semacam ini memang diketahui?
Apple tampak cukup tertinggal di AI dan sekarang sedang berusaha mengejar
Menarik bahwa Apple juga aktif mengembangkan https://github.com/apple/axlearn, yaitu library di atas Jax
Sepertinya setengah tim machine learning Apple memakai PyTorch, dan setengah lainnya memakai Jax. Mungkin juga mereka terbagi antara Google Cloud dan AWS
Jika tidak ada alasan kuat untuk menstandarkan pada satu alat, biasanya lebih mudah membiarkan tim memilih alat yang sesuai dengan masalah yang mereka kerjakan dan pengalaman tim tersebut
Setahu saya, tiap organisasi punya otonomi yang cukup besar
README juga memuat ini:
CatLIP: CLIP-level Visual Recognition Accuracy with 2.7x Faster Pre-training on Web-scale Image-Text DataSaya baru pertama kali mendengar CatLIP, dan tautannya tampaknya rusak
Saya penasaran seberapa cepat CatLIP. Contoh di atas yang berbasis OpenAI CLIP juga sudah cepat
Dibangun di atas PyTorch
Saya penasaran bagaimana perbandingannya dengan MLX. Dari yang saya pahami, MLX setara dengan PyTorch tetapi dioptimalkan untuk Apple Silicon
Apakah ini untuk melatih model MLX secara terdistribusi? Atau sebenarnya apa tujuannya?
mlx_examples/open_elm, “MLX is an Apple deep learning framework similar in spirit to PyTorch, which is optimized for Apple Silicon based hardware.”Dibandingkan dengan memasang backend MPS pada Huggingface Transformers, saya penasaran apa kelebihan menggunakan ini
mlx_example/clipadalah contoh yang mengonversi implementasi model CLIP milik CoreNet ke contoh CLIP milik MLX dan menambahkan beberapa penyesuaian khusus.Varian FP16 Base: peningkatan kecepatan 60% dibanding PyTorch
Varian FP16 Huge: peningkatan kecepatan 12%
mlx_example/open_elmadalah port MLX dari model OpenELM yang dilatih dengan CoreNet. MLX adalah framework deep learning Apple yang sifatnya mirip PyTorch dan dioptimalkan untuk perangkat keras berbasis Apple Silicon.Keunggulannya tampaknya adalah adanya peningkatan kecepatan tambahan berkat optimasi khusus Apple Silicon. Untuk model kecil, ini mungkin bisa menjadi framework pelatihan deep neural network yang paling hemat daya, tetapi itu baru bisa dipastikan setelah ada benchmark nyata
Repositori ini punya banyak utilitas yang praktis, serta implementasi yang cukup rapi untuk model umum dan metrik evaluasi.
Dengan kata lain, ini tampaknya lebih cocok untuk menulis model baru daripada untuk inferensi
Akan bagus kalau ada agen LLM yang bisa secara andal membuat contoh API kecil untuk berbagai model dan pola penggunaan di repositori seperti ini
Saya penasaran apakah ini mendukung pelatihan di Apple Silicon. Kalau saya tidak melewatkannya di README, hal itu tidak terlalu jelas
Kecuali jika Anda punya server privat berbasis Apple Silicon untuk keperluan pelatihan sendiri
Setelah melihat-lihat foldernya, tampaknya ada banyak kelas yang hanya mewarisi kelas PyTorch dan torchvision tanpa melakukan hal baru.
Semua optimizer, scheduler, dan sebagian besar layer tampaknya seperti itu. Namun ada cukup banyak blok yang merupakan kombinasi layer dari berbagai paper, mirip dengan
monai.networks.blocks.Dari sisi “komponen”, ada juga beberapa fungsi loss dan metrik evaluasi yang diimplementasikan sendiri
Saya penasaran library apa yang direkomendasikan untuk pelatihan dan inferensi neural network di Apple M1. Saya ingin memakainya dari C++ atau Rust, dan neural network-nya kemungkinan sekitar maksimal 5 juta parameter