English· Español· Deutsch· Nederlands· Français· 日本語· ქართული· 繁體中文· 简体中文· Português· Русский· العربية· हिन्दी· Italiano· 한국어· Polski· Svenska· Türkçe· Українська· Tiếng Việt· Bahasa Indonesia

un

სტუმარი
1 / ?
უკან გაკვეთილებზე

რას პროგნოზირებს ენის მოდელი

სტოქასტური გაგრძელების ძრავი

ენის მოდელი იღებს ტოკენების თანმიმდევრობას & მიანიჭებს სტოქასტურ განაწილებას იმ ტოკენზე, რომელიც მოდის შემდეგ. ჩაესვი the cat sat on the & ის გამოსცემს სტოქასტურობებს მთელ ლექსიკაზე: მაღალი მასა mat-ზე, floor-ზე, couch-ზე; დაბალი მასა xylophone-ზე, Tuesday-ზე.


ამ განაწილების სემპლირება, ტოკენის დამატება, & ხელახლა ჩასმა: ეს ციკლი გენერირებს ტექსტს ერთი ტოკენით ერთ ჯერზე. ავტორეგრესიული გენერაცია, სახელწოდება იმიტომ, რომ თითოეული ნაბიჯი რეგრესირებს საკუთარ წინა გამომავალზე.


სამი რიცხვი განსაზღვრავს ენობრივ მოდელს


ლექსიკის ზომა (V). რამდენი განსხვავებული ტოკენი შეუძლია მოდელს გამოუშვას. ANDREA-12M იყენებს 4,353 ტოკენს; ANDREA-120M იყენებს 8,449.


კონტექსტის ფანჯარა (T). რამდენი ტოკენი ეტევა ერთ forward pass-ში. ANDREA მოდელები იყენებენ T = 1,024.


პარამეტრების რაოდენობა (P). რამდენი შეხსენებული წონაა შიგნით. 12M, 120M, & 480M ასახელებს ოჯახს P-ით.


სამი წევრიანი ოჯახი


ვარიანტიd_modelთავებიფენებიკონტექსტიპარამეტრები
ANDREA-12M384126102412.8M
ANDREA-120M76812121024~120M
ANDREA-480M153624161024~480M

სამი მასშტაბირებადი პარამეტრი: d_model (ყოველი შიდა ვექტორის სიგანე), n_layer (გარდაქმნის ბლოკების ფენების სიღრმე), n_head (პარალელური ყურადღების პროექციები). ლექსიკა და კონტექსტი რჩება უცვლელი ოჯახის განმავლობაში.

ოჯახის ცხრილის წაკითხვა

შეადარეთ ANDREA-12M (d_model=384, 6 ფენა, 12 თავი) ANDREA-120M-ს (d_model=768, 12 ფენა, 12 თავი). დაასახელეთ ორი არქიტექტურული ღერძი, რომლებიც მასშტაბირდება 12M-დან 120M-მდე, & ერთი, რომელიც უცვლელი რჩება. ერთი წინადადება მიზეზის შესახებ თითოეული მასშტაბირებისთვის დაგეხმარებათ.

რატომ არის მცირე მნიშვნელოვანი

შეზღუდვა როგორც განთავისუფლება

დიდი ენობრივი მოდელები, რომლებიც ასეულობით მილიარდ პარამეტრს შეიცავენ, საჭიროებენ ათასობით GPU-ს, პროპრიეტარულ მონაცემთა ნაკრებს და კორპორაციულ ბიუჯეტებს. მხოლოდ რამდენიმე ადამიანს შეუძლია ასეთი მოდელის გაწვრთნა. მხოლოდ რამდენიმე ადამიანს შეუძლია ასეთი მოდელის შეკეთება.


პატარა ენობრივი მოდელი ერთ GPU-ზე ამას 뒤집ავს. ნებისმიერს, ვინც 4090-ს (ან 3060-ს) ფლობს, შეუძლია ANDREA-ს ღია მონაცემებიდან გაამეოროს. გაწვრთნის რეცეპტი ორმაგ როლს თამაშობს მოდელის ბარათის სახით. ღია კოდი, ღია წონები, ღია მონაცემები; სრული პროვენიენსი 72 საათიანი გამოთვლის შემდეგ.


შეძლებლობა წინააღმდეგობა ხარისხისა

პატარა მოდელები ვერ იხსენებენ თავიანთი გაწვრთნის კორპუსს. ANDREA-12M, 12.8M პარამეტრით, არ გააჩნია შეძლებლობა ფაქტობრივი შინაარსის შესანახად; ის სწავლობს მორცულობის სტრუქტურას, ლექსიკის განაწილებას და პასუხის ფორმას. ANDREA-120M, 10× შეძლებლობით, სწავლობს ფაქტობრივ მოხსენებას, მრავალაბზანგიან თანმიმდევრულობას და დომენის სიგანეს (დამოწმებული გარე შეფასებით 9.5/10 ბიოლოგიისა და სიგნალური პროცესულის ნიმუშებზე).


ძირითადი შეტანა: შესაძლებლობები ჩამოყალიბებას უწესებს ზღვარს. კურიკულუმი განსაზღვრავს, მიეწვდება თუ არა ზღვარს. აქტივობები 14-23 მოიცავს კურიკულუმს. [TITLE decoder_only/]

ტრანსფორმერის სამი გემრიელი

ენკოდერი, დეკოდერი, ორივე

ორიგინალური ტრანსფორმერი (Vaswani et al., 2017) შეიცავდა ენკოდერს და დეკოდერს, რომლებიც ერთმანეთს შეუერთდნენ თარგმნისთვის. სამი არქიტექტურული ხაზი გამომდინარეობს ამ სტატიიდან:


მხოლოდ ენკოდერი (BERT-ის ხაზი). ორმხრივი ყურადღება, კაზუალური ნიღაბის გარეშე. ოპტიმიზებულია კლასიფიკაციისთვის, არა გენერაციისთვის. ტოკენი ხედავს როგორც თავის წარსულს, ასევე მომავალს ტრენინგის დროს.


ენკოდერ-დეკოდერი (T5, BART). ენკოდერი კითხულობს შეყვანას; დეკოდერი გენერირებს გამომავალს, ყურადღებას გამორთავს ენკოდერზე კროს-ყურადღებით. გამოიყენება თარგმნის, შეჯამებისთვის.


მხოლოდ დეკოდერი (GPT, ANDREA). კაუზალური მასკა: ყოველი ტოკენი ხედავს მხოლოდ თავის წარსულს. შეგეგება მომდევნო ტოკენის პროგნოზირებას. გენერაცია უფასოა; სწავლება და ინფერენსი იზიარებენ იგივე პირდაპირი გავლას.


რატომ იგებს მხოლოდ დეკოდერი ერთ GPU-ზე

სამი მიზეზი:


1. ერთი მიზანი. მომდევნო-ტოკენის პროგნოზი მუშაობს ნებისმიერ ტექსტზე. არ არის საჭირო გაწეული წყარო/სამიზნე.

2. სწავლებისა და გენერაციის სიმეტრია. იგივე პირდაპირი გავლა, გენერაციისთვის სპეციალური ლოგიკა არაა საჭირო.

3. მეხსიერების სიმარტივე. ჯვარედინი ყურება არაა; ერთი ფენების სტეკი; ერთი აქტივაციების ნაკადი.


ANDREA-მ მემკვიდრეობდა decoder-only არჩევანს microGPT-დან, რომელმაც მემკვიდრეობდა nanoGPT-დან, რომელმაც მემკვიდრეობდა GPT-2-დან. ხაზი სტანდარტული რჩება; რაც იცვლება, არის ტოკენიზაცია, სწავლების ინფრასტრუქტურა და კურიკულუმი.

რატომ იყენებს ANDREA Decoder-Only ტრანსფორმერს

მიეცით ერთი მიზეზი სწავლების მონაცემთა პერსპექტივიდან და ერთი მიზეზი გენერაციის ქცევის პერსპექტივიდან, თუ რატომ იყენებს ANDREA decoder-only ტრანსფორმერს encoder-decoder-ის ნაცვლად, როგორიცაა T5.

რა ჯდება 24 გბ-ში

ბაიტი პარამეტრზე

RTX 4090-ს აქვს 24 გბ VRAM. ANDREA-12M-ის სწავლება გამოიყენა 1.4 გბ. ANDREA-120M-მა გაცილებით მეტი გამოიყენა. განსხვავება მარტივი აღრიცხვის ვარჯიშშია: ყოველი პარამეტრი მრავალჯერ გვხვდება მეხსიერებაში სწავლების დროს.


ყოველი პარამეტრისთვის სწავლება ინახავს:

- წონას თავად (1× წონა)

- Adam პირველი მომენტი (m): იგივე ფორმა, როგორც წონა (1× წონა)

- Adam მეორე მომენტი (v): იგივე ფორმა, როგორც წონა (1× წონა)

- გრადიენტები: იგივე ფორმა, როგორც წონა (1× წონა)

- აქტივაციები და დროებითი ცვლადები: ~2-4× წონა (ირჩევა ბატჩისა და კონტექსტის მიხედვით)


სულ: ~6-8× წონის რაოდენობა, ბაიტებში განისაზღვრება სიზუსტით.


სიზუსტე ყველაფერს მამრავლებს


სიზუსტებაიტი/პარამეტრისულ 120M წონისთვისშენიშვნები
FP324480 მბბაზისური; უსაფრთხოest, ყველაზე ნელი
FP162240 მბcuBLAS, ნახევარი მეხსიერება
FP8 E4M31120 მბTensor cores, NaN რისკი

გაამრავლეთ 6-8×-ით სრული ტრენინგის ფუტპრინტისთვის. ANDREA-120M ტრენინგდება კომფორტულად FP16-ში (~2 გბ წონებისთვის + ოპტიმიზატორი + გრადიენტები); FP8 E4M3 ორჯერ ამცირებს ტრენინგის დროს RTX 4090 tensor cores-ზე.


აქტივობა 13 (grow_a_language_model_precision) დეტალურად განიხილავს FP სიზუსტის კომპრომისებს.

ANDREA-120M-ის ოპტიმიზატორის მდგომარეობის ზომის განსაზღვრა

ANDREA-120M შეიცავს ~120,000,000 პარამეტრს. თითოეული FP32 წონა იკავებს 4 ბაიტს. AdamW ინახავს ორ დამატებით ოპტიმიზატორის მდგომარეობის float-ს თითოეულ წონაზე (m, v). გამოთვალე: (a) მხოლოდ წონები FP32-ში, MB-ში; (b) წონები + ოპტიმიზატორის მდგომარეობა FP32-ში, MB-ში; (c) წონები + ოპტიმიზატორის მდგომარეობა FP16-ში, MB-ში. აჩვენე შენი არითმეტიკა.

ხარისხობრივი ოცა აქტივობა

ორი ნახევარი

ეს კურსი სუფთად იყოფა. პირველი ნახევარი მოიცავს იმას, რასაც microGPT ასწავლიდა სფეროს: ტრანსფორმერი, რომელიც მუშაობს ერთ GPU-ზე. მეორე ნახევარი მოიცავს ANDREA-ს ნამდვილ წვლილს: კურიკულუმს, რომელიც სწავლობს.


ნახევარი 1: ტრანსფორმერი ერთ GPU-ზე (აქტივობები 2-13)


#აქტივობარიტმი
2ჰარისის მორფემის ტოკენიზატორიდისტრიბუციული სეგმენტაცია, 256+N+1 ლექსიკა
3ტოკენიზატორ-დიეტის შესაბამისობაგაჯერების წერტილი, რატომ 12M დაკარგა 63.6%
4ემბედინგები & პოზიციაშეხსენებული ტოკენი + პოზიციის ძებნა
5მასშტაბირებული ზედაპირის პროდუქტის ყურადღებაQ·Kᵀ/√d, კავზალური ნიღაბი, softmax
6მრავალჰედიანი ყურადღებაჰედის გაყოფა, პარალელური პროექციები
7ტრანსფორმერის ბლოკიMLP, რეზიდუალები, ფენის ნორმა
8კროს-ენტროპია & პერპლექსიალოგ-სავარაუდოობა, SMMA ზარალი
9ბექპროპი კასტომ CUDA-შიჯაჭვის წესი microgpt_cuda.cu-ზე მთელს
10AdamWდეკუპლირებული წონის დეკრემენტი; რატომ მოკვდა ვანილის ადამი
11LR warmup + cosine decay2000-ნაბიჯიანი რამპი; რატომ ანადგურებს მყისიერი პიკი 120M-ს
12გრადიენტის კლიპინგიგლობალური L2 ნორმა; 3 CUDA კერნელი
13FP32 / FP16 / FP8 E4M3სიზუსტის კომპრომისები; ტენსორის კორები

ნახევარი 2: კურიკულუმი რომელიც სწავლობს (აქტივობები 14-24)


#აქტივობაბიტი
14მრავალხელსული ბანდიტებიUCB1, შexploration vs exploitation
15ფაზებზე დაფუძნებული კამათლის კონტროლი7/14/21/28/42 ფაზები, 1d3/1d4 კამათლები
16ჯილდოს მიწერა & EMAწყაროს მიხედვითი ზარალის EMA, 1000× მასშტაბირება
17წყაროს ფენილი & ეპოქის სჯალი1/(1+epochs) ხელს უშლის მემორიზაციას
18დაფარვის ბონუსიდოკუმენტის დონის თვალყური, 1.3× სუნთქვა
19კურიკულუმის გათბობა7 ჩატი/პროზის წყარო პირველ 20K ნაბიჯზე
20ფილტრაცია ფორმით, არა სიმბოლოებითhas_system_prompt_shape()
21კოჰერენტობით შეწყვეტა ადრეულადbigram/trigram/word/char ავტო-შეჩერება
22შენახვა, გაგრძელება, სიგნალებიფორმატი, SIGTERM/SIGUSR1, loss.json უწყვეტობა
23ნიმუშის აუდიტი & გარე შეფასებაგაშვების წაკითხვა, 9.5/10 ტერიტორია
24მიკროGPT-დან ANDREA-120M-მდეv1 ჩამონგრევა, v2 შეკეთება, v2.5 პაჩი, v3 გაპრიალება

პლუს თანაგმირი: geometry_of_andrea ხედავს ყოველ ფენას როგორც გეომეტრიას (embedding სივრცე, attention როგორც პროექცია, loss ზედაპირი, bandit როგორც სიარული დისკრეტულ სიმპლექსზე).


შეხსენებული თანმიმდევრობა

აქტივობები 2-13 აგებს მუშაობს ტრანსფორმერს. გადადით მეორე ნახევარზე, თუ ადრე ხართ ვარჯიშობდით ტრანსფორმერებზე; დაბრუნდით, როდესაც კურიოზიტეტი გააღვიძებს.


თითოეული აქტივობა შესაძლოა დამოუკიდებლად მუშაობს. მათემატიკური მითითებები ადრეულ აქტივობებს მოიხსენიებს სახელით (იხ. აქტივობა 5: მასშტაბირებული ზედაპირული პროდუქტი). კოდის მითითებები მიუთითებს microgpt/microgpt_cuda.cu-ზე და microgpt/training_proxy.py-ზე ~/git/uncloseai-cli/-ში.

საიდან დაიწყებთ?

24 აქტივობის + გეომეტრიის თანაბარი შეხედვით, დაასახელეთ ერთი აქტივობა, რომელითაც გსურთ დაწყება და ერთი მიზეზი: წინა ცოდნის ხარვეზი, პროფესიული მნიშვნელობა ან სუფთა კურიოზიტეტი. არ არსებობს არასწორი პასუხი; კურსის გზა თქვენია.