Rumah  >  Artikel  >  Peranti teknologi  >  7B? 13B? 175B? Mentafsir parameter model besar

7B? 13B? 175B? Mentafsir parameter model besar

PHPz
PHPzasal
2024-06-12 20:04:15713semak imbas

Model besar juga berbeza dari segi saiz, dan saiznya diukur mengikut bilangan parameter. GPT-3 mempunyai 17.5 bilion parameter, dan Grok-1 lebih mengagumkan, dengan 31.4 bilion parameter. Sudah tentu, terdapat juga yang lebih langsing seperti Llama, yang bilangan parameternya hanya antara 7 bilion dan 70 bilion.

70B yang disebut di sini mungkin tidak merujuk kepada jumlah data latihan, tetapi kepada parameter padat padat dalam model. Parameter ini adalah seperti "sel otak" yang kecil. Dengan "sel otak" ini, model mungkin berprestasi lebih baik pada tugasan. Walau bagaimanapun, banyak kali parameter ini, terutamanya dalam model berskala besar, boleh menyebabkan masalah. "Sel otak" ini mungkin berinteraksi antara satu sama lain semasa memproses tugas, menyukarkan model untuk memahami hubungan kompleks dalam data. Dengan "sel otak" ini, model mungkin berprestasi lebih baik pada tugasan. Oleh itu, kita perlu mencari cara untuk menguruskan hubungan antara parameter ini semasa menjalankan tugas. Kaedah yang biasa digunakan ialah melalui penyelarasan Parameter model besar ini adalah seperti "arkitek" di dalam model Melalui algoritma yang kompleks dan proses latihan, dunia bahasa yang besar ini dibina sedikit demi sedikit. Setiap parameter mempunyai peranannya, dan ia bekerjasama untuk membolehkan model memahami bahasa kita dengan lebih tepat dan memberikan jawapan yang lebih sesuai.

Jadi, bagaimanakah parameter dalam model besar disusun?

1. Parameter dalam model besar

Parameter model besar adalah "bahagian dalamannya". wayar" dalam rangkaian menyambungkan setiap neuron. Mereka bertanggungjawab untuk melaraskan "volume" penghantaran isyarat, membolehkan maklumat penting dihantar lebih jauh dan maklumat yang kurang penting menjadi lebih senyap. Sebagai contoh, dalam lapisan bersambung sepenuhnya, matriks berat W ialah "peta" yang memberitahu kita ciri input yang paling berkait rapat dengan ciri output.

Biases: Bias adalah seperti "pembantu kecil" neuron, bertanggungjawab untuk menetapkan garis asas untuk tindak balas neuron. Dengan itu, neuron tahu pada tahap mana mereka harus aktif.

    Parameter Perhatian: Dalam model berasaskan Transformer, parameter ini seperti "kompas", memberitahu model maklumat yang paling patut diberi perhatian. Ia termasuk matriks pertanyaan, matriks kunci, matriks nilai, dsb., yang seperti mencari "petunjuk" paling kritikal dalam sejumlah besar maklumat.
  • Membenamkan Matriks: Apabila memproses data teks, matriks benam ialah "kamus" model. Setiap lajur mewakili perkataan, dan nombor digunakan untuk mewakili perkataan. Dengan cara ini, model dapat memahami maksud teks.
  • Parameter Permulaan Keadaan Tersembunyi (Parameter Keadaan Tersembunyi Permulaan): Parameter ini digunakan untuk menetapkan keadaan tersembunyi awal model, sama seperti menetapkan nada untuk model supaya ia tahu di mana untuk memulakan "berfikir".
  • ......
  • Parameter ini biasanya menggunakan 4 ungkapan dan format storan:
  • Terapung: nombor titik terapung 32-bit, iaitu, 4 bait

Separuh/BF16: nombor titik terapung 16-bit , iaitu 2 bait

    Int8: integer 8-bit, iaitu 1 bait
  1. Int4: integer 4-bit, iaitu 0.5 bait
  2. Secara umumnya, bilangan parameter adalah faktor utama yang mempengaruhi prestasi model besar. Sebagai contoh, model 13B-int8 umumnya lebih baik daripada model 7B-BF16 dengan seni bina yang sama.
  3. 2. Keperluan memori untuk parameter model besar
Bagi jurutera, perkara yang mereka hadapi ialah berapa banyak sumber memori akan digunakan semasa latihan atau inferens model besar. Walaupun V100 (dengan memori GPU 32GB) atau A100 (dengan memori GPU 40GB) sangat berkuasa, model besar masih tidak boleh dilatih pada GPU tunggal, seperti dengan Tensorflow atau PyTorch.

2.1 Keperluan memori semasa fasa latihan

Semasa latihan model, ia ditunjukkan terutamanya dalam keperluan storan memori untuk status model dan proses aktiviti. Keadaan model terdiri daripada tensor yang terdiri daripada keadaan pengoptimum, kecerunan dan parameter. Termasuk dalam proses aktif ialah sebarang tensor yang dicipta dalam saluran hadapan yang diperlukan untuk pengiraan kecerunan dalam saluran ke belakang. Untuk mengoptimumkan penggunaan memori, aspek berikut boleh dipertimbangkan: 1. Kurangkan bilangan parameter model: Anda boleh mengurangkan bilangan parameter dan mengurangkan penggunaan memori dengan mengurangkan saiz model atau menggunakan teknik seperti matriks jarang. 2. Penyimpanan keadaan pengoptimum: Anda boleh memilih untuk menyimpan hanya keadaan pengoptimum yang diperlukan dan bukannya menyimpan semua keadaan. Keadaan pengoptimum boleh dikemas kini dan disimpan secara terpilih mengikut keperluan. 3. Ubah suai jenis data tensor:

Pada bila-bila masa semasa latihan, untuk setiap parameter model, memori GPU perlu sentiasa mencukupi untuk disimpan:

  • Bilangan bait yang disalin oleh parameter model , untuk mengekalkan latihan yang stabil dan mengelakkan anomali berangka.
  • Ini bermakna memori berikut diperlukan untuk menyimpan semua status model dan memproses data semasa latihan: (x+y+12) * model_size
  • 2.2 Keperluan memori untuk fasa inferens

Fasa inferens dilengkapkan menggunakan pra- Tugasan LLM terlatih seperti penjanaan teks atau terjemahan. Di sini, keperluan ingatan biasanya lebih rendah, dengan faktor utama yang mempengaruhi ialah:

Konteks terhad: Inferens biasanya berkaitan dengan jujukan input yang lebih pendek, memerlukan kurang memori untuk menyimpan pengaktifan yang dikaitkan dengan ketulan teks yang lebih kecil.

Tiada perambatan balik: Semasa inferens, LLM tidak perlu mengekalkan nilai perantaraan perambatan balik, teknik yang digunakan untuk latihan melaraskan parameter. Ini menghapuskan banyak overhed memori.
  • Fasa inferens tidak memerlukan lebih daripada satu perempat daripada memori yang diperlukan untuk fasa latihan untuk kiraan dan jenis parameter yang sama. Sebagai contoh, untuk model 7B, secara amnya, menggunakan ketepatan titik terapung memerlukan memori 28GB, menggunakan ketepatan BF16 memerlukan memori 14GB, dan menggunakan ketepatan int8 memerlukan memori 7GB. Kaedah anggaran kasar ini boleh digunakan pada versi lain model dengan sewajarnya.
  • Selain itu, apabila menala LLM untuk tugasan tertentu, penalaan halus memerlukan jejak memori yang lebih tinggi. Penalaan halus biasanya melibatkan urutan latihan yang lebih panjang untuk menangkap nuansa tugas sasaran. Ini akan membawa kepada pengaktifan yang lebih besar kerana LLM memproses lebih banyak data teks. Proses perambatan belakang memerlukan penyimpanan nilai perantaraan untuk pengiraan kecerunan, yang digunakan untuk mengemas kini berat model semasa latihan. Ini menambah beban memori yang ketara berbanding dengan inferens.

2.3 Anggaran memori model besar berdasarkan Transformer

Khususnya, untuk model besar berdasarkan Transformer, cuba kira memori yang diperlukan untuk latihan, di mana mari:

l: bilangan lapisan transformer

a: The bilangan ketua perhatian
  • b: Saiz kelompok
  • s: Panjang jujukan
  • h: Saiz dimensi lapisan tersembunyi
  • p: Ketepatan
  • Di sini, bshp = b * s * h * p mewakili input data sebesar. Dalam bahagian lapisan linear pengubah, kira-kira 9bshp+bsh ruang diperlukan untuk pengaktifan seterusnya. Di bahagian perhatian, perhatian diri boleh dinyatakan sebagai: softmax((XQ)(XK)^T)XV
  • Kemudian, XQ, XK, dan XV semuanya memerlukan ruang bersaiz bshp. Dalam perhatian kendiri standard, hasil darab (XQ) * (XK) ^ T hanyalah matriks b * s * s yang mengandungi logit. Walau bagaimanapun, dalam amalan, disebabkan penggunaan mekanisme perhatian berbilang kepala, ruang simpanan s * s yang berasingan perlu diwujudkan untuk setiap kepala. Ini bermakna bait abssp ruang diperlukan, dan menyimpan output softmax juga memerlukan bait abssp. Selepas softmax, bait abss tambahan biasanya diperlukan untuk menyimpan topeng, jadi bahagian perhatian memerlukan ruang penyimpanan 2abssp+abss.

Selain itu, terdapat dua lapisan Norm dalam transformer, yang setiap satunya masih memerlukan ruang penyimpanan bshp, untuk jumlah 2 bshp.

Jadi, memori yang diperlukan untuk latihan model besar berdasarkan Transformer adalah lebih kurang: L(9bshp+bsh+2abssp+abss +2bshp) = Lbshp[16+2/p+(as/h)(2+1/p)]

Jelaskan bahawa memori yang diperlukan untuk melatih model besar berdasarkan Transformer adalah lebih kurang: bilangan lapisan model x saiz kumpulan latihan x panjang urutan x dimensi lapisan tersembunyi x ketepatan A batas bawah teori mengenai keperluan memori parameter model semasa latihan.

3. Keperluan GPU untuk parameter model besar

Dengan keperluan memori untuk parameter model besar, kami boleh menganggarkan lagi bilangan GPU yang diperlukan untuk latihan dan inferens model besar. Walau bagaimanapun, memandangkan anggaran bilangan GPU bergantung pada lebih banyak parameter, seseorang (Dr. Walid Soula, https://medium.com/u/e41a20d646a8) memberikan formula mudah untuk anggaran kasar, yang juga mempunyai kepentingan rujukan tertentu dalam kejuruteraan.

Picture

di mana, parameter

7B? 13B? 175B? Mentafsir parameter model besarmodel dalam berbilion -bilion adalah bilangan parameter model dalam b; Faktor, Pengaktifan ialah struktur data dinamik yang berubah apabila model memproses data input.

Saiz GPU dalam GB ialah jumlah keseluruhan memori GPU yang tersedia

    Sebagai contoh praktikal, dengan mengandaikan anda menggunakan GPU NVIDIA RTX 4090, yang mempunyai 24GB VRAM, hitung bilangan GPU yang diperlukan untuk melatih 'Llama3 7B ' model , lebih kurang:
  • Jumlah bilangan GPU≈(7 * 18 * 1.25)/24, iaitu lebih kurang sama dengan 7
  • Untuk inferens, ia boleh dipermudahkan kepada 1/8~1/9 daripada peringkat latihan Sudah tentu, ini hanya anggaran kasar dalam pengertian umum.

    4. Daripada parameter model besar kepada latihan teragih

    Memahami komposisi parameter model besar dan keperluannya untuk memori dan GPU akan membantu memahami cabaran yang dihadapi oleh latihan teragih dalam amalan kejuruteraan.

    Proses pelaksanaan strategi latihan teragih boleh dipermudahkan dengan ketara dengan menggunakan rangka kerja yang direka bentuk untuk latihan teragih, seperti TensorFlow atau PyTorch, yang menyediakan alatan dan API yang kaya. Dengan menggunakan teknik seperti pengumpulan kecerunan sebelum mengemas kini model, atau menggunakan teknik seperti pemampatan kecerunan untuk mengurangkan jumlah pertukaran data antara nod, kos komunikasi boleh dikurangkan dengan berkesan. Adalah penting untuk menentukan saiz kelompok optimum untuk latihan teragih (parameter b yang dinyatakan di atas); nilai b yang terlalu kecil boleh meningkatkan overhed komunikasi, manakala nilai yang terlalu besar boleh menyebabkan memori tidak mencukupi.

    Kepentingan LLMOps semakin menyerlah. Memantau penunjuk prestasi secara berkala yang dikonfigurasikan untuk latihan teragih dan melaraskan hiperparameter, strategi pembahagian dan tetapan komunikasi untuk mengoptimumkan prestasi adalah kunci untuk meningkatkan kecekapan latihan. Melaksanakan mekanisme pemeriksaan untuk model dan pemulihan yang cekap sekiranya berlaku kegagalan memastikan proses latihan berterusan tanpa perlu bermula dari awal.

    Dalam erti kata lain, latihan/inferens model besar pada asasnya merupakan cabaran kejuruteraan seni bina sistem teragih yang kompleks, seperti:

    • Overhed komunikasi: Apabila melakukan pengiraan kecerunan dan kemas kini data, masa yang diperlukan untuk komunikasi mungkin menjejaskan kesan pecutan keseluruhan .
    • Kerumitan penyegerakan: Apabila berbilang mesin dilatih secara selari, kerumitan penyegerakan perlu direka bentuk dengan teliti.
    • Toleransi kesalahan dan pengurusan sumber: Kesan kegagalan titik tunggal pada latihan dan inferens model, serta strategi peruntukan dan penjadualan sumber untuk CPU dan GPU.
    • ...

    Walau bagaimanapun, sebenarnya, kebanyakan jurutera mungkin tidak terlibat secara langsung dalam kerja latihan tertentu, tetapi memberi tumpuan kepada cara menggunakan parameter model besar semasa membina aplikasi.

    7B? 13B? 175B? Mentafsir parameter model besarGambar

    5. Parameter yang digunakan dalam aplikasi model besar

    Di sini kami memberi tumpuan terutamanya pada tiga parameter yang boleh dikonfigurasikan apabila menggunakan model besar untuk mengeluarkan teks: Suhu, Top-K dan Top-P.

    Parameter Suhu sering disalah ertikan sebagai suis yang hanya mengawal kreativiti model, tetapi sebenarnya peranannya yang lebih mendalam adalah untuk melaraskan "kelembutan" taburan kebarangkalian. Apabila nilai Suhu ditetapkan lebih tinggi, taburan kebarangkalian menjadi lebih lembut dan lebih seragam, yang menggalakkan model menjana output yang lebih pelbagai dan kreatif. Sebaliknya, nilai Suhu yang lebih rendah akan menjadikan pengedaran lebih tajam dan mempunyai puncak yang lebih jelas, dengan itu cenderung untuk menghasilkan output yang serupa dengan data latihan.

    Parameter Top-K digunakan untuk mengehadkan model untuk mengeluarkan token Top-K yang paling mungkin pada setiap langkah Dengan cara ini, kandungan yang tidak koheren atau tidak bermakna dalam output boleh dikurangkan. Strategi ini mewujudkan keseimbangan antara mengekalkan ketekalan output yang terbaik sambil membenarkan tahap persampelan kreatif.

    Top-P ialah satu lagi kaedah penyahkodan yang memilih set minimum perkataan yang kebarangkalian kumulatifnya melebihi nilai P sebagai output berdasarkan set nilai P (0≤P≤1). Kaedah ini membolehkan bilangan perkataan yang dipilih ditambah atau dikurangkan secara dinamik berdasarkan taburan kebarangkalian perkataan seterusnya. Khususnya, apabila nilai P ialah 1, Top-P akan memilih semua perkataan, yang bersamaan dengan pensampelan daripada keseluruhan pengedaran, dengan itu menghasilkan output yang lebih pelbagai manakala apabila nilai P ialah 0, Top-P hanya memilih perkataan dengan kebarangkalian tertinggi, serupa dengan penyahkodan tamak, menjadikan output lebih fokus dan konsisten.

    Tiga parameter ini berfungsi bersama untuk mempengaruhi tingkah laku model. Contohnya, apabila menetapkan Suhu=0.8, Top-K=36 dan Top-P=0.7, model pertama mengira taburan kebarangkalian log tidak normal yang lengkap bagi keseluruhan perbendaharaan kata berdasarkan konteks. Suhu=0.8 bermakna setiap kebarangkalian log dibahagikan dengan 0.8, yang secara berkesan meningkatkan keyakinan model dalam ramalannya sebelum penormalan. Top-K=36 bermaksud memilih 36 penanda dengan kebarangkalian log nisbah frekuensi tertinggi. Kemudian, Top-P=0.7 menggunakan penapisan dalam set Top-K=36 ini, mengekalkan pengisihan daripada kebarangkalian tinggi ke rendah sehingga kebarangkalian kumulatif mencapai 0.7. Akhirnya, set yang ditapis ini dinormalisasi semula dan digunakan dalam proses persampelan seterusnya.

    6. Ringkasan

    Dalam amalan kejuruteraan, adalah bermakna untuk memahami parameter model besar. Parameter memainkan peranan penting dalam model besar Mereka mentakrifkan tingkah laku, prestasi, kos pelaksanaan dan keperluan sumber model besar. Memahami parameter model besar dalam kejuruteraan bermakna memahami hubungan antara kerumitan, prestasi dan keupayaan model. Mengkonfigurasi dan mengoptimumkan parameter ini dengan betul dari perspektif storan dan pengkomputeran boleh memilih dan mengoptimumkan model dengan lebih baik dalam aplikasi praktikal untuk menyesuaikan diri dengan keperluan tugas dan kekangan sumber yang berbeza.

    【Rujukan】

    • ZeRO: Pengoptimuman Memori Ke Arah Model Parameter Trilion Latihan ,https://arxiv.org/pdf/1910.02054v3.pdf
    • Mengurangkan Pengiraan Semula Pengaktifan dalam Model Transformer Besar,https://arxiv.org/pdf/2205.0pdf
    • https://timdettmers.com/2023/01/30/which-gpu-for-deep-learning/
    • https://blog.eleuther.ai/transformer-math/

Atas ialah kandungan terperinci 7B? 13B? 175B? Mentafsir parameter model besar. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn