Rumah >Peranti teknologi >AI >Untuk menjalankan model volum ChatGPT, anda hanya memerlukan GPU mulai sekarang: berikut ialah kaedah untuk mempercepatkannya seratus kali ganda.
Kos pengiraan ialah salah satu cabaran utama yang dihadapi oleh orang ramai apabila membina model besar seperti ChatGPT.
Menurut statistik, evolusi daripada GPT kepada GPT-3 juga merupakan proses pertumbuhan dalam saiz model - bilangan parameter telah meningkat daripada 117 juta kepada 175 bilion, dan jumlah data pra-latihan telah meningkat daripada 5GB Kepada 45TB, kos satu latihan GPT-3 ialah AS$4.6 juta, dan jumlah kos latihan mencecah AS$12 juta.
Selain latihan, inferens juga mahal. Sesetengah orang menganggarkan bahawa kos kuasa pengkomputeran OpenAI yang menjalankan ChatGPT ialah AS$100,000 sehari.
Sambil membangunkan teknologi untuk membolehkan model besar menguasai lebih banyak keupayaan, sesetengah orang juga cuba mengurangkan sumber pengkomputeran yang diperlukan untuk AI. Baru-baru ini, teknologi yang dipanggil FlexGen telah mendapat perhatian orang ramai kerana "RTX 3090 menjalankan model volum ChatGPT".
Walaupun model besar yang dipercepatkan oleh FlexGen masih kelihatan sangat perlahan - 1 token sesaat apabila menjalankan model bahasa parameter 175 bilion, apa yang mengagumkan ialah ia mempunyai Yang mustahil menjadi mungkin.
Secara tradisinya, keperluan pengiraan dan memori yang tinggi bagi inferens model bahasa besar (LLM) memerlukan penggunaan berbilang pemecut AI canggih untuk latihan. Kajian ini meneroka cara untuk mengurangkan keperluan inferens LLM kepada GPU gred pengguna dan mencapai prestasi praktikal.
Baru-baru ini, penyelidikan baharu daripada Universiti Stanford, UC Berkeley, ETH Zurich, Yandex, Sekolah Tinggi Ekonomi Negeri Moscow, Meta, Universiti Carnegie Mellon dan institusi lain telah mencadangkan FlexGen adalah tinggi -enjin penjanaan throughput untuk menjalankan LLM dengan memori GPU yang terhad.
Dengan mengagregatkan memori dan pengiraan daripada GPU, CPU dan cakera, FlexGen boleh dikonfigurasikan secara fleksibel di bawah pelbagai kekangan sumber perkakasan. Melalui pengoptimum pengaturcaraan linear, ia mencari corak terbaik untuk menyimpan dan mengakses tensor, termasuk pemberat, pengaktifan dan cache kunci perhatian/nilai (KV). FlexGen memampatkan lagi pemberat dan cache KV kepada 4 bit dengan kehilangan ketepatan yang boleh diabaikan. Berbanding dengan sistem pemunggahan tercanggih, FlexGen menjalankan OPT-175B 100x lebih pantas pada satu GPU 16GB dan mencapai daya pemprosesan penjanaan dunia sebenar sebanyak 1 token/s buat kali pertama. FlexGen juga dilengkapi dengan masa jalan selari saluran paip untuk membenarkan penskalaan super-linear dalam penyahkodan jika lebih banyak GPU teragih tersedia.
Pada masa ini, teknologi ini telah mengeluarkan kod dan telah memperoleh beberapa ribu bintang: https://www.php.cn /link/ee715daa76f1b51d80343f45547be570
Pengenalan 🎜> Dalam beberapa tahun kebelakangan ini, model bahasa besar telah menunjukkan prestasi cemerlang dalam pelbagai tugas. Walaupun LLM menunjukkan kecerdasan am yang belum pernah berlaku sebelum ini, ia juga mendedahkan orang ramai kepada cabaran yang belum pernah berlaku sebelum ini semasa membina. Model-model ini mungkin mempunyai berbilion atau malah bertrilion parameter, menghasilkan keperluan pengiraan dan memori yang sangat tinggi untuk menjalankannya. Contohnya, GPT-175B (GPT-3) memerlukan memori 325GB hanya untuk menyimpan berat model. Untuk model ini melakukan inferens, anda memerlukan sekurang-kurangnya lima Nvidia A100s (80GB) dan strategi selari yang kompleks.
Kaedah untuk mengurangkan keperluan sumber inferens LLM telah kerap dibincangkan baru-baru ini. Usaha ini dibahagikan kepada tiga arah:
(1) pemampatan model untuk mengurangkan jumlah jejak memori; Melunaskan kos melalui desentralisasi;
(3) Pemunggahan untuk menggunakan memori CPU dan cakera.
Teknik ini dengan ketara mengurangkan keperluan sumber pengiraan menggunakan LLM. Walau bagaimanapun, model sering diandaikan muat dalam memori GPU, dan sistem berasaskan pemunggahan sedia ada masih bergelut untuk menjalankan 175 bilion model bersaiz parameter dengan daya pemprosesan yang boleh diterima menggunakan GPU tunggal. Dalam penyelidikan baharu, pengarang menumpukan pada strategi pemunggahan yang berkesan untuk inferens generatif throughput tinggi. Apabila memori GPU tidak mencukupi, kami perlu memunggahnya ke storan sekunder dan melakukan pengiraan sekeping demi sekeping melalui pemuatan separa. Pada mesin biasa, hierarki memori dibahagikan kepada tiga peringkat, seperti yang ditunjukkan dalam rajah di bawah. Ingatan peringkat tinggi adalah pantas tetapi terhad, ingatan tahap rendah adalah perlahan tetapi banyak.
Dalam FlexGen, pengarang tidak mengejar kependaman rendah, tetapi menyasarkan senario berorientasikan throughput, yang popular dalam aplikasi seperti penanda aras, pengekstrakan maklumat dan pengisihan data. Mencapai kependaman rendah sememangnya merupakan satu cabaran untuk pemunggahan, tetapi untuk senario berorientasikan pemprosesan, kecekapan pemunggahan boleh dipertingkatkan dengan ketara. Rajah 1 menggambarkan tradeoff latency-throughput untuk tiga sistem inferens dengan pemunggahan. Dengan penjadualan yang teliti, kos I/O boleh diagihkan ke atas sejumlah besar input dan bertindih dengan pengiraan. Dalam kajian itu, pengarang menunjukkan bahawa GPU T4 yang dioptimumkan pemprosesan GPU gred pengguna tunggal adalah 4 kali lebih cekap daripada 8 GPU A100 yang dioptimumkan kependaman pada awan dari segi kos setiap unit kuasa pengkomputeran.
Rajah 1. OPT-175B (kiri) dan OPT-30B (kanan) atas Kependaman dan pertukaran daya pemprosesan untuk tiga sistem berasaskan pemuatan. FlexGen mencapai sempadan optimum Pareto baharu, meningkatkan daya pemprosesan maksimum OPT-175B dengan faktor 100. Sistem lain tidak dapat meningkatkan lagi daya pemprosesan kerana memori yang tidak mencukupi.
Walaupun terdapat kajian membincangkan pertukaran latensi-throughput bagi pemunggahan dalam konteks latihan, belum ada sesiapa yang menggunakannya untuk menjana inferens LLM, yang merupakan satu proses yang sangat berbeza. Inferens generatif memberikan cabaran unik kerana sifat autoregresif LLM. Selain menyimpan semua parameter, ia memerlukan penyahkodan berjujukan dan mengekalkan kunci perhatian/cache nilai yang besar (cache KV). Sistem pemunggahan sedia ada tidak dapat menangani cabaran ini, jadi mereka melakukan terlalu banyak I/O dan mencapai daya pemprosesan jauh di bawah keupayaan perkakasan.
Merancang strategi pemunggahan yang baik untuk inferens generatif adalah mencabar. Pertama, terdapat tiga tensor dalam proses ini: pemberat, pengaktifan dan cache KV. Dasar ini harus menentukan perkara, di mana dan bila untuk menyahpasang pada hierarki tiga peringkat. Kedua, struktur pengiraan kelompok demi kelompok, setiap token dan setiap lapisan membentuk graf pergantungan yang kompleks yang boleh dikira dalam pelbagai cara. Strategi harus memilih jadual yang meminimumkan masa pelaksanaan. Bersama-sama, pilihan ini mewujudkan ruang reka bentuk yang kompleks.
Untuk tujuan ini, pada kaedah baharu FlexGen, rangka kerja pemunggahan untuk inferens LLM dicadangkan. FlexGen mengagregatkan memori daripada GPU, CPU dan cakera serta menjadualkan operasi I/O dengan cekap Pengarang juga membincangkan kemungkinan kaedah mampatan dan keselarian saluran paip yang diedarkan.
Sumbangan utama kajian ini adalah seperti berikut:
1 Penulis secara rasmi mentakrifkan ruang carian strategi pemunggahan yang mungkin dan penggunaan a model kos dan Penyelesai pengaturcaraan linear mencari strategi optimum. Terutamanya, penyelidik menunjukkan bahawa ruang carian menangkap susunan pengiraan yang hampir I/O-optimum dengan kerumitan I/O dalam tempoh 2 kali ganda tertib pengiraan optimum. Algoritma carian boleh dikonfigurasikan untuk pelbagai spesifikasi perkakasan dan kekangan latency/throughput, menyediakan cara untuk menavigasi ruang trade-off dengan lancar. Berbanding dengan strategi sedia ada, penyelesaian FlexGen menyatukan pemberat, pengaktifan dan peletakan cache KV, membolehkan saiz kelompok yang lebih besar.
2. Penyelidikan menunjukkan bahawa pemberat dan cache KV LLM seperti OPT-175B boleh dimampatkan kepada 4 bit tanpa latihan semula/penentukuran dan dengan kehilangan ketepatan yang boleh diabaikan. Ini dicapai melalui pengkuantitian kumpulan berbutir halus, yang boleh mengurangkan kos I/O dengan ketara.
3. Tunjukkan kecekapan FlexGen dengan menjalankan OPT-175B pada GPU NVIDIA T4 (16GB). Pada satu GPU, memandangkan keperluan kependaman yang sama, FlexGen yang tidak dimampatkan boleh mencapai daya pemprosesan 65x lebih tinggi berbanding DeepSpeed Zero-Inference (Aminabadi et al., 2022) dan Hugging Face Accelerate (HuggingFace, 2022) Yang terakhir adalah yang paling maju pada masa ini sistem inferens berdasarkan pemunggahan dalam industri. Jika kependaman dan pemampatan yang lebih tinggi dibenarkan, FlexGen boleh meningkatkan lagi daya pemprosesan dan mencapai peningkatan 100x ganda. FlexGen ialah sistem pertama yang mencapai 1 token/s kelajuan pemprosesan untuk OPT-175B menggunakan satu GPU T4. FlexGen dengan paralelisme saluran paip mencapai penskalaan super-linear dalam penyahkodan diberikan berbilang GPU teragih.
Dalam kajian itu, penulis juga membandingkan FlexGen dan Petals sebagai wakil kaedah inferens set pemunggahan dan terdesentralisasi. Keputusan menunjukkan bahawa FlexGen dengan GPU T4 tunggal mengatasi gugusan Petal terdesentralisasi dengan 12 GPU T4 dari segi pemprosesan, dan dalam sesetengah kes malah mencapai kependaman yang lebih rendah.
Dengan mengagregatkan memori dan pengiraan daripada GPU, CPU dan cakera, FlexGen boleh dikonfigurasikan secara fleksibel di bawah pelbagai kekangan sumber perkakasan. Melalui pengoptimum pengaturcaraan linear, ia mencari corak terbaik untuk menyimpan dan mengakses tensor, termasuk pemberat, pengaktifan dan cache kunci perhatian/nilai (KV). FlexGen memampatkan lagi pemberat dan cache KV kepada 4 bit dengan kehilangan ketepatan yang boleh diabaikan.
Idea utama FlexGen ialah tukar ganti latency-throughput. Mencapai kependaman rendah sememangnya mencabar untuk kaedah pemunggahan, tetapi untuk senario berorientasikan pemprosesan, kecekapan pemunggahan boleh dipertingkatkan dengan banyaknya (lihat rajah di bawah). FlexGen menggunakan penjadualan blok untuk menggunakan semula pemberat dan bertindih I/O dengan pengiraan, seperti yang ditunjukkan dalam Rajah (b) di bawah, manakala sistem garis dasar lain menggunakan penjadualan baris demi baris yang tidak cekap, seperti ditunjukkan dalam Rajah (a) di bawah.
Pada masa ini, rancangan seterusnya pengarang kajian termasuk sokongan untuk cip M1 dan M2 Apple serta sokongan untuk penggunaan Colab .
FlexGen telah menerima ribuan bintang dengan cepat di GitHub sejak dikeluarkan, dan juga sangat popular di rangkaian sosial. Orang ramai telah menyatakan bahawa projek ini sangat menjanjikan Nampaknya halangan untuk menjalankan model bahasa berprestasi tinggi secara beransur-ansur dapat diatasi dalam tahun ini.
Seseorang melatih model bahasa menggunakan kaedah ini, dan hasilnya adalah seperti berikut:
Walaupun ia tidak diberi jumlah data yang banyak dan AI tidak mengetahui pengetahuan khusus, logik untuk menjawab soalan nampaknya agak jelas Mungkin kita boleh melihat NPC seperti itu dalam permainan akan datang?
Atas ialah kandungan terperinci Untuk menjalankan model volum ChatGPT, anda hanya memerlukan GPU mulai sekarang: berikut ialah kaedah untuk mempercepatkannya seratus kali ganda.. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!