Rumah > Artikel > Peranti teknologi > Lancar menyokong komuniti Hugging Face, Colossal-AI dengan mudah mempercepatkan model besar pada kos rendah
Model besar telah menjadi trend dalam kalangan AI, bukan sahaja menyapu senarai prestasi utama, tetapi juga menjana banyak aplikasi menarik. Contohnya, Copilot, alat pelengkap cadangan kod automatik yang dibangunkan oleh Microsoft dan OpenAI, menjadi pembantu terbaik untuk pengaturcara dan meningkatkan kecekapan kerja.
OpenAI baru sahaja mengeluarkan DALL-E 2, model imej yang boleh menghasilkan teks palsu dan nyata, kemudian Google mengeluarkan Imagen juga agak mengagumkan.
Contoh penjanaan teks-ke-imej "Patung Yunani tersandung kucing" (dua lajur di sebelah kiri ialah Imagen, dua lajur di sebelah kanan ialah DALL·E 2) Prestasi ajaib yang disebabkan oleh pembesaran model telah menyebabkan skala model pra-latihan meletup dalam beberapa tahun kebelakangan ini. Walau bagaimanapun, latihan atau penalaan halus model besar memerlukan kos perkakasan yang sangat tinggi, selalunya melibatkan berpuluh-puluh atau beratus-ratus GPU. Selain itu, rangka kerja pembelajaran mendalam sedia ada seperti PyTorch dan TensorFlow juga sukar untuk mengendalikan model yang sangat besar dengan berkesan, dan jurutera sistem AI profesional biasanya diperlukan untuk menyesuaikan dan mengoptimumkan model tertentu. Lebih penting lagi, bukan setiap makmal dan pasukan R&D mempunyai keupayaan untuk memanggil kluster GPU berskala besar untuk menggunakan model besar pada bila-bila masa, apatah lagi pembangun individu yang hanya mempunyai satu kad grafik. Oleh itu, walaupun model besar telah menarik banyak perhatian, halangan yang tinggi untuk masuk telah menjadikannya "di luar jangkauan" untuk orang ramai.
Punca utama peningkatan kos penggunaan model besar ialah pengehadan memori video. Walaupun pengkomputeran GPU adalah pantas, kapasiti memorinya adalah terhad dan tidak dapat menampung model besar. Untuk menangani titik kesakitan ini, Colossal-AI menggunakan sistem memori heterogen untuk menggunakan kedua-dua memori GPU dan memori CPU murah dengan cekap Ia boleh melatih sehingga 18 bilion parameter GPT pada PC peribadi dengan hanya satu GPU, yang boleh meningkatkan kapasiti model dengan sepuluh Ia sangat mengurangkan ambang untuk tugas hiliran dan penggunaan aplikasi seperti penalaan halus dan inferens model AI yang besar, dan boleh berkembang dengan mudah kepada pengedaran berskala besar. Hugging Face telah menyediakan komuniti pembelajaran mendalam dengan pelaksanaan lebih daripada 50,000 model AI, termasuk model besar seperti GPT dan OPT, dan kini telah menjadi salah satu perpustakaan AI yang paling popular.
Colossal-AI menyokong model komuniti Hugging Face dengan lancar, menjadikan model besar dapat dicapai oleh setiap pembangun. Seterusnya, kami akan mengambil model besar OPT yang dikeluarkan oleh Meta sebagai contoh untuk menunjukkan cara menggunakan Colossal-AI untuk mencapai latihan kos rendah dan penalaan halus model besar dengan hanya menambah beberapa baris kod.
Alamat sumber terbuka: https://github.com/hpcaitech/ColossalAI model besar dipercepatkan kos rendah OPTOPT Nama penuh model OPT ialah Open Pretrained Transformer, yang dikeluarkan oleh Meta (Facebook) Makmal AI Model Transformer berskala besar yang menanda aras GPT-3. Berbanding dengan GPT-3, yang OpenAI tidak mendedahkan berat model, Meta AI dengan murah hati membuka sumber semua kod dan pemberat model, yang sangat menggalakkan pendemokrasian model besar AI, dan setiap pembangun boleh membangunkan personaliti berdasarkan tugas hiliran ini. Seterusnya, kami akan menggunakan pemberat pra-latihan model OPT yang disediakan oleh Memeluk Muka untuk memperhalusi Permodelan Bahasa Kasual. Menambah fail konfigurasi Untuk menggunakan fungsi berkuasa dalam Colossal-AI, pengguna tidak perlu menukar logik latihan kod mereka hanya perlu menambah fail konfigurasi mudah untuk memberikan model fungsi yang diingini, seperti ketepatan campuran, pengumpulan kecerunan, latihan selari berbilang dimensi, Pengoptimuman memori berlebihan, dsb. Pada GPU, mengambil latihan heterogen sebagai contoh, kami hanya perlu menambah item konfigurasi yang berkaitan pada fail konfigurasi. Antaranya, tensor_placement_policy menentukan strategi latihan heterogen kami Parameter ini boleh menjadi cuda, cpu dan auto. Setiap strategi mempunyai kelebihan yang berbeza:
Untuk pengguna umum, mereka hanya perlu memilih strategi auto, dan Colossal-AI akan secara automatik dan dinamik memilih strategi heterogen terbaik dalam masa nyata untuk memaksimumkan kecekapan pengkomputeran.
from colossalai.zero.shard_utils import TensorShardStrategy<br><br><br>zero = dict(model_config=dict(shard_strategy=TensorShardStrategy(),<br>tensor_placement_policy="auto"),<br>optimizer_config=dict(gpu_margin_mem_ratio=0.8)
Jalankan Mula Selepas fail konfigurasi sedia, kita hanya perlu memasukkan beberapa baris kod untuk memulakan fungsi baharu yang diisytiharkan. Pertama, melalui baris kod, gunakan fail konfigurasi untuk memulakan Colossal-AI secara automatik akan memulakan persekitaran yang diedarkan, membaca konfigurasi yang berkaitan, dan kemudian secara automatik menyuntik fungsi dalam konfigurasi ke dalam model, pengoptimum dan komponen lain. .
colossalai.launch_from_torch(config='./configs/colossalai_zero.py')
Seterusnya, pengguna boleh menentukan set data, model, pengoptimum, fungsi kehilangan, dsb. seperti biasa, seperti menggunakan kod PyTorch asli secara langsung. Apabila mentakrifkan model, letakkan sahaja model di bawah ZeroInitContext dan mulakannya. Dalam contoh, kami menggunakan model OPTForCausalLM dan pemberat pra-latihan yang disediakan oleh Hugging Face untuk memperhalusi set data Wikitext.
with ZeroInitContext(target_device=torch.cuda.current_device(), <br>shard_strategy=shard_strategy,<br>shard_param=True):<br>model = OPTForCausalLM.from_pretrained(<br>'facebook/opt-1.3b'<br>config=config<br>)
Kemudian, panggil sahaja colossalai.initialize untuk menyuntik secara seragam fungsi memori heterogen yang ditakrifkan dalam fail konfigurasi ke dalam enjin latihan dan mulakan fungsi yang sepadan.
engine, train_dataloader, eval_dataloader, lr_scheduler = colossalai.initialize(model=model,<br> optimizer=optimizer,<br> criterion=criterion,<br> train_dataloader=train_dataloader,<br> test_dataloader=eval_dataloader,<br> lr_scheduler=lr_scheduler)
Kelebihan adalah penting dalam satu GPU Berbanding dengan Microsoft DeepSpeed, Colossal-AI menggunakan strategi auto automatik dan membandingkan dengan DeepSpeed's ZeRO pada semua strategi Pemunggahan menunjukkan kelebihan yang ketara dan boleh mencapai pecutan 40% paling cepat. Rangka kerja pembelajaran mendalam tradisional seperti PyTorch tidak lagi dapat menjalankan model besar sedemikian pada satu GPU.
Untuk latihan selari menggunakan 8 GPU, Colossal-AI hanya perlu menambah - nprocs 8 pada arahan permulaan untuk mencapainya! Rahsia di sebalik peningkatan ketara itu datang daripada subsistem pengurusan memori heterogen Colossal-AI yang cekap, Gemini. Ringkasnya, semasa latihan model, Gemini memanaskan dalam beberapa langkah pertama dan mengumpul maklumat penggunaan memori dalam graf pengiraan dinamik PyTorch selepas memanaskan badan selesai dan sebelum mengira pengendali, ia menggunakan rekod penggunaan memori yang dikumpul , Gemini; akan menyimpan memori puncak yang diperlukan oleh operator ini pada peranti pengkomputeran, dan pada masa yang sama memindahkan beberapa tensor model dari memori GPU ke memori CPU.
Pengurus memori terbina dalam Gemini menandakan setiap tensor dengan maklumat status, termasuk HOLD, COMPUTE, FREE, dsb. Kemudian, berdasarkan penggunaan memori yang ditanya secara dinamik, ia secara berterusan menukar keadaan tensor dan melaraskan kedudukan tensor Berbanding dengan pembahagian statik ZeRO Offload DeepSpeed, Colossal-AI Gemini boleh menggunakan memori GPU dan memori CPU dengan lebih cekap untuk mencapai model Maksimumkan. kapasiti dan keseimbangan kelajuan latihan apabila perkakasan amat terhad.
Untuk GPT, wakil model besar, menggunakan Colossal-AI pada komputer riba permainan biasa yang dilengkapi dengan RTX 2060 6GB sudah cukup untuk melatih sehingga 1.5 bilion model parameter; model yang dilengkapi dengan RTX3090 24GB Komputer peribadi boleh terus melatih model dengan 18 bilion parameter Colossal-AI juga boleh menunjukkan peningkatan yang ketara untuk kad pengkomputeran profesional seperti Tesla V100. Melangkah lebih jauh: Pengembangan selari yang mudah dan cekap Teknologi teragih selari adalah cara penting untuk mempercepatkan lagi latihan model Jika anda ingin melatih model AI terbesar dan paling canggih di dunia dalam masa yang paling singkat, anda masih tidak boleh melakukannya tanpa. pengembangan selari teragih yang cekap. Memandangkan titik kesakitan penyelesaian sedia ada seperti dimensi selari yang terhad, kecekapan rendah, serba boleh yang lemah, penggunaan yang sukar dan kekurangan penyelenggaraan, Colossal-AI membolehkan pengguna menggunakan dengan cekap dan pantas dengan hanya pengubahsuaian yang minimum melalui teknologi seperti berbilang yang cekap. keselarian dimensi dan keselarian heterogen latihan model besar. Contohnya, strategi selari kompleks yang menggunakan selari data, selari saluran paip, selari tensor 2.5 dimensi, dll. boleh dilaksanakan secara automatik dengan pengisytiharan mudah Colossal-AI tidak perlu menceroboh kod dan mengendalikan logik asas kompleks secara manual seperti sistem lain dan rangka kerja.
Python<br>parallel = dict(<br>pipeline=2,<br>tensor=dict(mode='2.5d', depth = 1, size=4)<br>)
Khususnya, untuk model AI yang sangat besar seperti GPT-3, Colossal-AI boleh memulakan latihan dengan hanya separuh daripada sumber pengkomputeran berbanding dengan penyelesaian NVIDIA jika Menggunakan pengkomputeran yang sama sumber, kelajuan boleh ditingkatkan sebanyak 11%, yang boleh mengurangkan kos latihan GPT-3 sebanyak lebih daripada satu juta dolar AS. Penyelesaian berkaitan Colossal-AI telah berjaya dilaksanakan oleh pengeluar terkenal dalam pemanduan autonomi, pengkomputeran awan, runcit, perubatan, cip dan industri lain, dan telah dipuji secara meluas.
Sebagai contoh, untuk aplikasi ramalan struktur protein AlphaFold2, FastFold berdasarkan penyelesaian pecutan Colossal-AI berjaya mengatasi penyelesaian Google dan Columbia University, mengurangkan masa latihan AlphaFold2 daripada 11 hari Ia dikurangkan kepada 67 jam, dan jumlah kosnya lebih rendah Ia juga mencapai peningkatan kelajuan 9.3 hingga 11.6 kali ganda dalam penaakulan urutan yang panjang.
Colossal-AI memfokuskan pada pembinaan komuniti sumber terbuka, menyediakan tutorial bahasa Cina, membuka komuniti dan forum pengguna, menjalankan komunikasi yang cekap dan kemas kini berulang untuk maklum balas pengguna, dan terus menambah aplikasi canggih seperti sebagai PaLM dan AlphaFold. Sejak sumber terbuka semula jadinya, Colossal-AI telah menduduki tempat pertama di dunia pada senarai hangat GitHub dan Papers With Code berkali-kali, dan telah menarik perhatian di dalam dan luar negara bersama-sama dengan banyak projek sumber terbuka bintang dengan berpuluh-puluh ribu bintang!
Alamat projek portal: https://github.com/hpcaitech/ColossalAI
Atas ialah kandungan terperinci Lancar menyokong komuniti Hugging Face, Colossal-AI dengan mudah mempercepatkan model besar pada kos rendah. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!