berita

Kerangka dayung terbang maju 3.0!Sebuah artikel menjelaskan lima fitur baru termasuk “Pelatihan dan Dorongan Model Besar Terintegrasi”

2024-08-01

한어Русский языкEnglishFrançaisIndonesianSanskrit日本語DeutschPortuguêsΕλληνικάespañolItalianoSuomalainenLatina

Sebagai perangkat lunak dasar, kerangka pembelajaran mendalam tidak hanya mendorong kemajuan pesat teknologi pembelajaran mendalam, namun juga meletakkan dasar yang kuat bagi penerapan teknologi kecerdasan buatan secara luas.

Kerangka pembelajaran mendalam memberi pengembang antarmuka pengembangan yang nyaman dan mudah digunakan yang data dan operasinya sangat abstrak, memungkinkan pengembang untuk lebih fokus pada desain algoritma dan model tanpa harus terjebak dalam detail pemrosesan data yang mendasarinya. Melalui antarmuka ini, pengembang tidak perlu secara langsung memahami dan menangani detail pengembangan perangkat keras yang rumit, sehingga sangat meningkatkan efisiensi dan pengalaman pengembangan. Kedua, kerangka pembelajaran mendalam juga menyediakan fungsi diferensiasi otomatis yang kuat. Pengembang biasanya hanya perlu menulis kode untuk jaringan propagasi maju, sedangkan jaringan propagasi balik yang rumit secara otomatis diselesaikan oleh kerangka kerja.

Sebagai platform pembelajaran mendalam pertama yang dikembangkan sendiri, kaya fitur, sumber terbuka, dan terbuka di Tiongkok, Fei Paddle telah dirilis dari versi 1.0, yang menggunakan gambar statis secara default, ke versi 2.0, yang menggunakan gambar dinamis secara default dan dapat mewujudkan integrasi gambar dinamis dan statis serta pelatihan dan dorongan.Fei Paddle Framework Telah mampu dengan sempurna mengintegrasikan fleksibilitas grafik dinamis dan efisiensi grafik statis, dan mendukung pelatihan model paralel hybrid baru-baru ini, versi 3.0, yang disempurnakan untuk era model besar, telah resmi dirilis! Flying Paddle telah resmi membuka inovasi teknologi bingkai generasi baru!

Pemikiran desain

Desain kerangka pembelajaran mendalam sangat penting untuk mendorong pengembangan teknologi kecerdasan buatan, dan tujuan desain utamanya adalah untuk mempermudah inovasi dan penerapan teknologi pembelajaran mendalam.

Bagaimana cara melakukannya?

Kerangka kerja ini perlu sepenuhnya mempertimbangkan kebutuhan pengembang dan produsen perangkat keras.

Dari sudut pandang pengguna, kerangka pembelajaran mendalam yang sangat baik harus memberikan pengalaman pengembangan terbaik bagi pengembang. Hal ini tidak hanya berarti menyediakan lingkungan pengembangan yang ramah pengguna, namun yang lebih penting, hal ini harus mampu mengurangi biaya pembelajaran dan waktu pengembang secara signifikan, sekaligus meningkatkan kenyamanan pengembangan secara signifikan. Untuk tujuan ini, Flying Paddle Framework mengedepankan konsep "penyatuan gerakan dan statis, integrasi pelatihan dan dorongan, dan paralelisme otomatis", yang sangat meningkatkan efisiensi pengembangan.

Dari perspektif adaptasi perangkat keras, aplikasi pembelajaran mendalam modern sering kali perlu dijalankan pada platform perangkat keras yang beragam. Oleh karena itu, kerangka kerja tersebut harus kompatibel dan dapat beradaptasi dengan berbagai perangkat perangkat keras yang berbeda. Hal ini memerlukan kerangka kerja yang secara cerdas mengisolasi perbedaan antara antarmuka perangkat keras yang berbeda dan mencapai kemampuan adaptasi perangkat keras yang luas. Pada saat yang sama, untuk memberikan pengaruh penuh terhadap kinerja perangkat keras, kerangka kerja juga perlu memiliki kemampuan perangkat lunak dan perangkat keras untuk bekerja sama guna memastikan kinerja optimal saat memanfaatkan sumber daya perangkat keras.

Pada saat yang sama, kerangka kerja yang baik juga perlu mempertimbangkan tren perkembangan teknologi AI secara keseluruhan dan kebutuhan aplikasi aktual industri.

Dalam hal perkembangan teknologi, teknologi mutakhir seperti Large Language Model (LLM), MOE (Mixture of Experts), multimodalitas, dan AI untuk Sains secara bertahap menjadi pusat penelitian baru. Seiring dengan meningkatnya kompleksitas model, masalah seperti kemacetan komputasi, kemacetan penyimpanan, kemacetan akses memori, dan kemacetan komunikasi secara bertahap menjadi lebih menonjol, dan kebutuhan akan pelatihan terdistribusi dan optimalisasi kinerja umum menjadi semakin mendesak.

Pada tingkat industrialisasi, kerangka kerja tersebut perlu memiliki kemampuan proses penuh yang mendukung integrasi pelatihan, kompresi, dan penalaran. Artinya, mulai dari pelatihan model hingga pengoptimalan hingga penerapan dan inferensi aktual, kerangka kerja ini harus memberikan solusi yang lengkap dan efisien untuk memenuhi kebutuhan aktual industri akan teknologi pembelajaran mendalam.

Hanya kerangka kerja yang dapat mengikuti tren dan tahan terhadap pemolesan yang dapat memberikan dukungan berkelanjutan dan stabil kepada pengembang dari semua lapisan masyarakat di industri, akademisi, dan penelitian.


Konsep desain dan fitur utama Flying Paddle Frame 3.0

Untuk meringkas persyaratan di atas, Feipiao akan memberi pengembang kerangka pembelajaran mendalam yang "menyatukan dinamis dan statis, mengintegrasikan pelatihan dan dorongan, paralelisasi otomatis, pengoptimalan otomatis, dan adaptasi perangkat keras yang ekstensif. Pengembang dapat menulis kode terdistribusi seperti menulis standar". kode saja, tanpa perlu memahami logika komunikasi dan penjadwalan yang rumit, Anda dapat mewujudkan pengembangan model besar; Anda dapat menulis jaringan saraf dengan Python seperti menulis rumus matematika, tanpa menggunakan bahasa pengembangan perangkat keras untuk menulis kode kernel operator yang rumit, dan Anda dapat mencapai operasi yang efisien.

Flying Paddle Framework versi 3.0 muncul, melanjutkan konsep desain versi 2.x yang menyatukan dinamis dan statis, serta mengintegrasikan pelatihan dan push. Ini berarti kode yang dikembangkan menggunakan versi 2.x dapat berjalan langsung pada versi 3.0 tanpa modifikasi dalam banyak kasus. Ini berfokus pada peluncuran empat fitur baru: paralelisasi otomatis terpadu dinamis dan statis, pengoptimalan otomatis kompiler, pelatihan model besar dan integrasi push, dan adaptasi multi-perangkat keras model besar. Fitur-fitur ini telah dikembangkan sejak Flying Propeller Framework versi 2.6 atau sebelumnya, dan kini telah mencapai tahap penggunaan uji coba eksternal. Fitur-fitur baru ini telah membawa peningkatan yang signifikan dalam hal pengalaman pengguna, kinerja, kenyamanan pengembangan sekunder, dan kemampuan beradaptasi perangkat keras. Fei Paddle secara resmi merilis versi 3.0. Versi ini berisi perbaikan pada beberapa fungsi yang ada pada versi framework 2.x, dan sudah matang serta stabil tanpa menggunakan fitur baru.

Ikhtisar arsitektur kerangka kerja

Untuk mewujudkan karakteristik kerangka pembelajaran mendalam yang disebutkan di atas, arsitektur kerangka kerja harus dirancang dengan cermat untuk memastikan bahwa kerangka tersebut dapat mendukung berbagai konstruksi model yang kompleks dan mencapai integrasi yang mulus dengan beragam chip. Selanjutnya, diagram arsitektur intuitif akan digunakan untuk mendemonstrasikan secara rinci modul fungsional yang tercakup dalam kerangka generasi baru Flying Paddle, serta interaksi dan koneksi antar modul ini. Berikut ini adalah diagram arsitektur Flying Paddle Framework 3.0.


Diagram Arsitektur Flying Paddle Framework 3.0

Antarmuka yang kaya: Flying Paddle Framework menyediakan berbagai antarmuka pengembangan yang terkait dengan pembelajaran mendalam, seperti representasi tensor, penghitungan matematis, jaringan model, strategi pengoptimalan, dll. Melalui antarmuka ini, pengembang dapat dengan mudah membangun dan melatih model pembelajaran mendalam mereka sendiri tanpa mempelajari detail teknis yang mendasarinya.

Di bawah antarmuka pengembangan, Flying Paddle Framework dapat dibagi menjadi empat tingkatan: lapisan presentasi, lapisan penjadwalan, lapisan operator, dan lapisan adaptasi.

Lapisan presentasi: berfokus pada ekspresi dan konversi grafik komputasi, dan menyediakan fungsi inti seperti dinamis ke statis (grafik dinamis ke grafik statis), diferensiasi otomatis, paralelisme otomatis, kombinasi operator, dan optimalisasi grafik komputasi melalui PIR representasi perantara yang sangat skalabel. Dukungan yang solid.

Lapisan penjadwalan: Bertanggung jawab atas orkestrasi cerdas dan penjadwalan kode atau grafik perhitungan yang efisien, dan kemampuan untuk mengelola dan mengoptimalkan memori grafis dan memori sesuai dengan kebutuhan aktual, dan mendukung eksekusi grafik dinamis dan grafik statis yang efisien. Baik pengembang memilih untuk menggunakan grafik dinamis atau grafik statis untuk pengembangan model, Flying Paddle Framework dapat menyediakan lingkungan eksekusi yang efisien sekaligus memastikan pemanfaatan sumber daya yang optimal.

Lapisan operator: Terdiri dari kompiler jaringan saraf CINN dan perpustakaan operator PHI, yang mencakup fungsi-fungsi utama seperti definisi tensor, definisi operator, fusi operator otomatis, dan implementasi kernel operator.

Lapisan adaptasi: Digunakan untuk mengimplementasikan adaptasi pada chip yang mendasarinya, termasuk fungsi seperti manajemen perangkat, adaptasi operator, adaptasi komunikasi, dan akses kompilasi.

Berikut ini akan fokus pada peningkatan baru dan besar dari arsitektur versi Flying Paddle 3.0. Peningkatan ini terutama mencakup modul-modul berikut:

1) PIR representasi perantara yang sangat skalabel, dengan menciptakan representasi perantara terpadu untuk seluruh arsitektur, menerobos hambatan setiap modul di lapisan kerangka kerja dan meningkatkan potensi Flying Paddle di bidang komputasi ilmiah, optimasi kompilasi, dan model besar ;

2) Kompiler jaringan saraf secara otomatis mengoptimalkan dan meningkatkan kinerja model end-to-end melalui fusi otomatis dan penyesuaian kebijakan;

3) Paralelisasi otomatis mengurangi biaya pengembangan model dan optimalisasi kinerja adegan model besar, dan sangat meningkatkan pengalaman pengguna adegan model besar.

PIR representasi perantara yang sangat luas

Representasi Menengah (IR) grafik komputasi merupakan landasan penting dari optimalisasi kinerja kerangka pembelajaran mendalam, penerapan inferensi, dan kompiler. Dalam beberapa tahun terakhir, semakin banyak kerangka kerja dan peneliti yang memperkenalkan teknologi kompiler ke dalam optimalisasi model jaringan saraf untuk pembelajaran mendalam, dan atas dasar ini, mereka telah menggunakan konsep, teknologi, dan alat kompiler untuk mengoptimalkan dan mengkode jaringan saraf secara otomatis. Di era model besar, terdapat persyaratan yang lebih tinggi untuk IR dalam hal fleksibilitas, skalabilitas, dan kelengkapan.

Oleh karena itu, di bawah versi 3.0, Feipiao menstandardisasi definisi representasi perantara IR di tingkat infrastruktur untuk mencapai representasi terpadu dari seluruh arsitektur dan pembagian hasil pembangunan ke segala arah hulu dan hilir. Arsitektur IR generasi baru Feipiao berfokus pada dua dimensi penting yaitu fleksibilitas tinggi dan skalabilitas tinggi. Arsitektur ini dikembangkan melalui kemampuan ekspresi semantik yang lebih lengkap dan kuat, representasi terpadu dari keseluruhan arsitektur, dan mekanisme strategi pengoptimalan kinerja (Pass) yang dapat dicolokkan dan efisien untuk mencapai semantik yang kompleks. dukungan, lebih mudah mendukung strategi segmentasi yang kaya di bawah paralelisasi otomatis model besar, dan terhubung secara mulus dengan kompiler jaringan saraf untuk mencapai optimalisasi kinerja otomatis dan adaptasi multi-perangkat keras.



Flying Paddle Intermediate Representation (PIR) mengabstraksi sekumpulan komponen dasar yang sangat skalabel di lapisan bawah, meliputi Tipe, Atribut, Operasi, Sifat, dan Antarmuka, serta memperkenalkan konsep Dialek, yang memberi pengembang kemampuan untuk memperluas dan menyesuaikan secara fleksibel, sehingga Memberikan kemampuan ekspresi semantik yang komprehensif dan kuat. Pada lapisan representasi model, melalui manajemen modular beberapa Dialek dan representasi multi-terminal terpadu, representasi terpadu dari seluruh arsitektur yang mengintegrasikan pelatihan dan inferensi tercapai, koneksi mulus antara operator dan kompiler tercapai, serta optimalisasi otomatis dan adaptasi multi-perangkat keras didukung. Pada lapisan transformasi grafik, dengan menyatukan modul-modul yang mendasarinya dan menyederhanakan konsep-konsep dasar, hal ini memberikan pengguna pengalaman pengembangan berbiaya rendah, mudah digunakan, dan berkinerja tinggi, serta mekanisme pengoptimalan Pass yang kaya dan dapat dicolokkan. Flying Paddle PIR menganut prinsip Static Single Assignment (SSA) untuk memastikan bahwa model tersebut setara dengan grafik asiklik terarah, dan menggunakan Nilai dan Operasi untuk mengabstraksi grafik perhitungan, di mana Operasi mewakili node dan Nilai mewakili tepi.

Operasi mewakili sebuah node dalam grafik perhitungan: setiap Operasi mewakili operator dan berisi nol atau lebih Wilayah. Wilayah mewakili penutupan, yang dapat berisi nol atau lebih Blok. Blok mewakili blok dasar yang sesuai dengan prinsip penugasan tunggal statis (SSA) dan berisi nol atau lebih Operasi. Melalui perulangan yang bersarang di antara ketiganya, struktur tata bahasa yang rumit dan sewenang-wenang dapat dibangun.

Nilai mewakili tepi berarah dalam grafik perhitungan: digunakan untuk menghubungkan dua Operasi, sehingga menggambarkan rantai Use-Define (yaitu rantai UD) dalam program. Diantaranya, OpResult berfungsi sebagai tujuan definisi dan digunakan untuk mendefinisikan suatu Nilai, sedangkan OpOperand berfungsi sebagai tujuan penggunaan dan menjelaskan penggunaan Nilai tertentu.

Feipiao menyediakan dua mekanisme pengembangan Pass, PatternRewriter dan Declarative Rewrite Rule (disingkat DRR), yang mempertimbangkan fleksibilitas penyesuaian dan kemudahan pengembangan. Metode pengembangan Pass tiga tahap memungkinkan pengembang untuk lebih fokus pada pemrosesan logika Pass tanpa memperhatikan detail IR yang mendasarinya. Dengan menggunakan mekanisme pengembangan Pass PIR, biaya pengembangan Pass berkurang sebesar 58%; bila diterapkan pada skenario inferensi, lebih dari 84% inferensi model dipercepat lebih dari 10%.

Pengoptimalan otomatis kompiler jaringan saraf

Ada tiga alasan mengapa kita perlu mengembangkan teknologi compiler:

1) Tren perkembangan perangkat keras: Menggabungkan sejarah perkembangan perangkat keras dan karakteristik evolusi teknologi, daya komputasi berkembang jauh lebih cepat daripada kinerja akses memori, kinerja CPU dan kinerja akses memori bus mempengaruhi kinerja operator intensif akses memori (kelas norma , aktivasi, dll.), Kinerja CPU dan bandwidth bus mempengaruhi penjadwalan, kinerja. Teknologi optimasi umum fusi otomatis berbasis kompiler dapat menggabungkan beberapa operator menjadi satu operator besar. Dengan mengurangi jumlah akses memori dan jumlah operator, hal ini dapat sangat meningkatkan kinerja model.

2) Tren pengembangan model: Struktur model memiliki karakteristik keragaman, dan permintaan akan keragaman sangat bergantung pada optimalisasi umum penyusun.

3) Optimalisasi beberapa perangkat keras: Ada banyak jenis perangkat keras di pasaran. Platform perangkat keras yang berbeda memiliki karakteristik dan persyaratan pengoptimalan yang berbeda. Setiap perangkat keras memerlukan banyak tenaga untuk dioptimalkan. Dengan bantuan teknologi kompiler, jenis teknologi pengoptimalan ini dapat dilakukan akan sangat berkurang biayanya.

Mari kita ilustrasikan hal ini melalui sebuah contoh. Mari kita ambil contoh Normalisasi RMS (Root Mean Square Layer Normalization) yang sering digunakan pada model Llama.



Asumsikan bahwa kita perlu mengimplementasikan perhitungan Normalisasi RMS. Cara paling sederhana adalah kita dapat menggunakan antarmuka pengembangan operasi tensor yang disediakan oleh kerangka dayung terbang dan operasi panggilan seperti kuadrat, jumlah, pembagian, akar, dan seterusnya untuk menyelesaikannya kodenya adalah sebagai berikut:



Kode di atas mudah untuk dikembangkan, tetapi kinerjanya buruk dan memakan banyak memori video; pengembang dapat mengimplementasikan FusedRMSNorm, tetapi persyaratan untuk pengembang lebih tinggi dan biaya lebih tinggi.

Dengan teknologi kompiler jaringan saraf, kita dapat mencapai peningkatan kinerja yang signifikan dengan tetap mempertahankan tingkat fleksibilitas dan kemudahan penggunaan yang tinggi. Hasil uji kinerja operator RMSNorm berikut pada platform A100 adalah bukti nyata: dibandingkan dengan implementasi menggunakan kombinasi antarmuka pengembangan Python, operator yang dikompilasi dan dioptimalkan berjalan 4 kali lebih cepat meskipun terintegrasi dengan operator manual , peningkatan kinerja sebesar 14% juga dicapai. Hasil ini sepenuhnya menunjukkan keseimbangan ideal antara fleksibilitas dan kinerja yang ditemukan pada rangka fly paddle.

Oleh karena itu, Feipiao menganggap teknologi kompiler jaringan saraf sebagai arah penelitian dan pengembangan yang penting. Berikut ini adalah diagram arsitektur keseluruhan kompiler Feipiao.



Pada lapisan presentasi, dengan bantuan kemampuan ekspansi PIR, modul front-end CINN diimplementasikan untuk memproses transformasi terkait lapisan, termasuk pemisahan operator, penghitungan ulang, pembagian subgraf, modul derivasi dimensi, dan modul lainnya, dan akhirnya memperoleh beberapa backend kompiler . Hasilkan subgraf yang dioptimalkan. Di backend kompiler, untuk subgraf yang dapat digabungkan ini, kompiler selanjutnya akan memanggil fungsi Komputasi untuk mengubahnya menjadi representasi perantara tingkat rendah (IR) yang terdiri dari pohon sintaksis abstrak (AST), dan melakukan perulangan atas dasar ini untuk memastikan bahwa itu dapat diintegrasikan ke dalam kernel; pada IR yang mendasari CINN, analisis penyetelan kinerja akan dilakukan untuk mendapatkan konfigurasi yang optimal, dan akhirnya, IR yang mendasarinya akan diubah secara hati-hati menjadi implementasi kode tertentu;

Hasil eksperimen pada model bahasa besar generatif Llama dan model grafik Vincent Stable Diffusion menunjukkan bahwa dengan menggunakan teknologi pengoptimalan kompiler, dibandingkan dengan versi dasar tanpa pengoptimalan kinerja manual, kecepatan inferensi masing-masing lebih cepat 36% dan 30%.

Penyatuan dinamis dan statis serta paralelisasi otomatis

Mengapa kita melakukan paralelisme otomatis?

Metode pelatihan arus utama saat ini untuk model besar menggunakan berbagai strategi paralel. Strategi paralel ini didasarkan pada metode paralel "manual" yang diterapkan dalam mode grafik dinamis, yaitu berdasarkan satu kartu, pemrosesan segmentasi manual ( segmentasi Tensor, grafik perhitungan), komunikasi (menambahkan operator komunikasi), optimasi memori video (berbagi memori video, Komputasi Ulang), optimasi penjadwalan (orkestrasi pipeline, perhitungan dan komunikasi asinkron) dan strategi lainnya tidak hanya harus familiar struktur model, tetapi juga memiliki pemahaman mendalam tentang strategi dan kerangka kerja paralel. Logika penjadwalan membuat pengembangan dan optimalisasi kinerja model besar menjadi sangat tinggi. Selain memiliki tim algoritme khusus yang bertanggung jawab atas inovasi algoritme model, juga harus terdapat tim khusus yang bertanggung jawab atas pengoptimalan paralel model. Hal ini membawa banyak kendala pada inovasi dan iterasi model besar.

Mari kita ambil contoh sederhana untuk mengilustrasikan perbedaan antara pengembangan model besar dan logika kartu tunggal. Karena strategi paralel akan menyebabkan bentuk runtime Tensor berubah, operator yang terkait dengan pemrosesan bentuk perlu mempertimbangkan apakah mereka akan terpengaruh oleh strategi paralel. Seperti yang ditunjukkan pada proses pembentukan ulang di bawah ini, strategi segmentasi menyebabkan bentuk masukan diubah, sehingga bentuk keluaran perlu disesuaikan secara wajar sesuai dengan strategi segmentasi:



Untuk tujuan ini, kami mengusulkan skema paralel otomatis yang menyatukan kondisi dinamis dan statis. Pengembang hanya memerlukan sedikit anotasi segmentasi tensor, dan kerangka kerja dapat secara otomatis memperoleh status segmentasi terdistribusi dari semua tensor dan operator, dan menambahkan operator komunikasi yang sesuai untuk memastikan kebenaran hasil pada akhirnya, akan didasarkan pada struktur model dan Informasi cluster, dikombinasikan dengan memori grafis dan optimasi lapisan penjadwalan, secara otomatis menemukan strategi paralel terdistribusi yang paling efisien.

Dalam desain paralel otomatis, pengembang hanya memerlukan sejumlah kecil anotasi segmentasi tensor. Kami mengabstraksi metode segmentasi dan memerlukan dua jenis metode segmentasi: tensor tersegmentasi (parameter, masukan) dan grafik perhitungan tersegmentasi (pipa). Untuk mengimplementasikan kedua jenis metode segmentasi ini, kerangka kerja memerlukan mekanisme untuk menggambarkan hubungan pemetaan antara tensor terdistribusi dan perangkat komputasi. Untuk tujuan ini, kami memperkenalkan dua konsep terdistribusi yaitu ProcessMesh dan Placements Proses memetakan beberapa perangkat ke dalam array satu dimensi atau multidimensi yang terdiri dari beberapa proses. Gambar berikut menunjukkan dua representasi abstrak ProcessMesh berbeda yang terdiri dari 8 perangkat.



Penempatan adalah daftar yang terdiri dari tiga tag terdistribusi: Replikasi, Pecahan, dan Parsial. Panjangnya konsisten dengan dimensi ProcessMesh. Ini digunakan untuk menunjukkan tag terdistribusi mana yang digunakan untuk membagi tensor terdistribusi dalam dimensi perangkat komputasi yang sesuai Ini Penjelasan rinci dari ketiga tag yang didistribusikan adalah sebagai berikut:

Seperti terlihat pada gambar di bawah, Replikasi berarti tensor akan ada dalam bentuk replikasi pada perangkat yang berbeda; Shard berarti tensor akan dipecah pada perangkat yang berbeda sesuai dengan dimensi tertentu; Parsial berarti tensor pada perangkat tersebut tidak lengkap dan membutuhkan Reduce Sum atau Reduce. Status lengkap hanya dapat diperoleh setelah Mean dan operasi lain dengan cara yang berbeda.



Setelah menyelesaikan abstraksi tag terdistribusi, kami menelepon
Antarmuka paddle.distributed.shard_tensor() mengimplementasikan penandaan tensor sharding. Melalui penandaan dan derivasi otomatis pemotongan tensor, kita dapat merepresentasikan paralelisme hibrid terdistribusi yang kompleks. Gambar di bawah menunjukkan contoh spesifik paralelisme hibrid yang terdiri dari paralelisme data, paralelisme model tensor, dan paralelisme saluran pipa.



Kode berikut menunjukkan contoh spesifik paralelisme campuran.



Dengan mengadopsi pendekatan pengembangan paralel otomatis, pengembang tidak perlu lagi mempertimbangkan logika komunikasi yang rumit. Mengambil tugas Llama sebagai contoh, jumlah kode inti pelatihan yang didistribusikan telah berkurang sebesar 50%, sehingga sangat mengurangi kesulitan pengembangan. Dari beberapa percobaan kami, dapat dilihat bahwa dengan bantuan analisis global dan optimasi lainnya , kinerjanya juga lebih baik daripada kinerja paralelisasi grafik dinamis secara manual.

Di masa depan, kami akan mengeksplorasi lebih jauh paralelisme otomatis tanpa menggunakan penanda tensor split, sehingga memungkinkan pengembang untuk menulis kode terdistribusi seperti menulis kode yang berdiri sendiri, sehingga semakin meningkatkan pengalaman pengembangan model besar.

Keuntungan industri

Secara umum, kerangka generasi baru Flying Paddle - Flying Paddle Framework 3.0-Beta dirancang khusus untuk model besar dan multi-core heterogen. Kerangka ini beradaptasi ke bawah ke multi-core heterogen dan sepenuhnya melepaskan potensi integrasi perangkat keras ke atas untuk mendukung model besar. Pelatihan model dan inferensi. Pada saat yang sama, ia memiliki empat kemampuan utama: paralelisasi otomatis terpadu dinamis dan statis, pengoptimalan otomatis kompiler, pelatihan model besar dan integrasi push, dan adaptasi multi-perangkat keras model besar, yang secara komprehensif meningkatkan kemampuan untuk melayani industri.

Paralelisasi otomatis statis dan dinamis terpadu: Fungsi ini sangat mengurangi biaya pengembangan dan pelatihan industri. Pengguna hanya perlu menandai sejumlah kecil segmentasi tensor pada satu basis kartu, dan Flying Paddle Framework akan secara otomatis menyelesaikan derivasi informasi segmentasi terdistribusi dan menambahkan operator komunikasi untuk memastikan kebenaran logikanya. Pada saat yang sama, berdasarkan struktur model dan informasi cluster, dikombinasikan dengan optimalisasi memori video dan lapisan penjadwalan, Flying Paddle dapat secara otomatis menemukan strategi paralel terdistribusi yang paling efisien, sehingga sangat mengurangi biaya pengembangan pelatihan paralel hybrid, memungkinkan pengembang untuk lebih fokus pada model dan algoritma inovasi.

Pengoptimalan otomatis kompiler: Fitur ini secara signifikan mengurangi biaya pengoptimalan kinerja. Kompiler Fei Paddle dirancang untuk diintegrasikan dengan kerangka kerja dan dapat mendukung pelatihan yang efisien dan penalaran bentuk variabel dari berbagai model seperti model generatif dan model komputasi ilmiah, memberikan keseimbangan yang baik antara fleksibilitas komputasi dan kinerja tinggi. Melalui penggabungan otomatis operator dan teknologi pembuatan kode, kinerja inferensi model generatif seperti Llama2 dan Difusi Stabil telah ditingkatkan lebih dari 30%.

Pelatihan terpadu dan promosi model-model besar: Fitur ini memberikan pengalaman pengembangan terbaik bagi industri. Hal ini memungkinkan kemampuan pelatihan dan inferensi untuk digunakan kembali satu sama lain, memberikan pengalaman pengembangan terpadu dan efisiensi pelatihan tertinggi untuk seluruh proses model besar. Dengan berpindah dari gerak ke diam, kerja latihan dan penalaran dapat terhubung secara mulus. Perhitungan generatif selama proses pelatihan RLHF (Reinforcement Learning with Human Feedback) dapat digunakan kembali untuk optimasi inferensi, mencapai akselerasi 2,1x. Pada saat yang sama, efisiensi strategi paralel otomatis terdistribusi untuk pelatihan penggunaan kembali skenario penalaran dan kuantifikasi meningkat sebesar 3,8 kali lipat.

Adaptasi multi-perangkat keras model besar: Salah satu fitur penting Flying Paddle adalah beradaptasi dengan multi-core yang heterogen dan sepenuhnya mengeluarkan potensi perangkat keras. Dalam hal mekanisme akses, Flying Paddle menyediakan antarmuka abstrak dan sistem operator dasar yang sederhana dan efisien, sehingga mengurangi biaya adaptasi. Dalam hal mekanisme operasi, ini mengoptimalkan penjadwalan, pembagian penyimpanan, dan mekanisme lainnya untuk meningkatkan efisiensi penjadwalan. Dari perspektif kernel operator, Feipiao menyediakan solusi penyetelan fusi otomatis kompiler untuk meningkatkan kinerja ujung ke ujung. Pada saat yang sama, Feipiao juga telah membangun infrastruktur penelitian dan pengembangan seperti integrasi kode, integrasi berkelanjutan, dan pengujian regresi model untuk produsen perangkat keras baru. Mekanisme ini memastikan bahwa perangkat keras baru disertakan dalam sistem rilis normal Feipiao, dan pengguna dapat langsung menginstal dan mencobanya tanpa kompilasi. Mekanisme akses Flying Paddle yang berfungsi penuh dan berbiaya rendah telah menarik produsen perangkat keras untuk bersama-sama menyumbangkan 3.456 PR ke Flying Paddle, termasuk total lebih dari 25.000 komitmen.

Ini adalah kerangka generasi baru Fei Paddle 3.0. Saat ini, versi 3.0-Beta terbuka untuk pengembang, dan semua antarmuka pengembangan sepenuhnya kompatibel dengan 2.0. Pengembang dipersilakan untuk menggunakan dan memberikan umpan balik.