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

un

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

ექსპონენციური მოძრავი საშუალო

გლუვი უახლესი საშუალო

ექსპონენციური მოძრავი საშუალო (EMA) თვალ-ყური ადევნებს მნიშვნელობას მეტი წონის მიცემით უახლეს ნიმუშებს, ვიდრე ძველებს, წონებით ექსპონენციურად მცირდება. ფორმულა:


EMA(t) = (1 - alpha) EMA(t-1) + alpha value(t)


სადაც ალფა (გლუვების ფაქტორი) მდებარეობს (0, 1)-ში. ANDREA იყენებს alpha = 0.1-ს თითოეული წყაროს ზარალის თრექინგისთვის.


ტერმი ტერმით

- value(t): უახლესი შეკვამლა. ANDREA-სთვის ეს არის CUDA-ს მიერ წყარო k-დან დოკუმენტზე ფორვარდ გამოტანის შემდეგ მოხსენიებული ზარალი.

- EMA(t-1): წინა EMA მნიშვნელობა წყარო k-სთვის. შენახულია პროქსი სტეიტში.

- alpha = 0.1: თითოეული ახალი ზარალი წვლილს შეჰყოფს 10%-ს; როლინგის ისტორია შეუძლია 90%.

- (1 - alpha) = 0.9: წონა ისტორიაზე.


რატომ EMA ჩვეულებრივი საშუალოს ნაცვლად

ჩვეულებრივი მიმდინარე საშუალო ყველა ნაბიჯს თანაბარ წონას ანიჭებს. ნაბიჯი 1 იგივე წონას აქვს, რაც ნაბიჯს 100,000. ეს მუშაობს, თუ მონაცემები სტაციონარულია. ANDREA-ს ზარალები არ არის სტაციონარული: მოდელის შესაძლებლობები იზრდება ტრენინგის დროს, ამიტომ წყაროს ზარალი ნაბიჯზე 5,000 განსხვავდება მისი ზარალისგან ნაბიჯზე 50,000.


EMA ამას წყვეტს. ძველი ზარალის მნიშვნელობები ექსპონენციალურად ქრება. EMA ასახავს ბოლო რეალობას, არა საწყისი პირობების საშუალოს.


წყაროს მიხედვით

ANDREA ინარჩუნებს ერთ EMA-ს თითო ხელზე (თითო წყაროზე). ხსნი შეკრული = EMA შეკრული. ყოველი ნაბიჯი განაახლებს მხოლოდ იმ წყაროს EMA-ს, რომელიც გაწელილი იყო. დანარჩენი 15 EMA უძრავი რჩება, სანამ მათი შემდეგი გაწელვა არ მოხდება.

EMA-ს გამოთვლის ნაბიჯი

წყარო k-ს აქვს EMA_k(t-1) = 4.521. CUDA აჭერს ახალ ზარალს წყაროსთვის k: loss_k(t) = 4.520. alpha = 0.1-ით, გამოთვალეთ EMA_k(t). აჩვენეთ: (a) (1-alpha) ტერმი, (b) (1-alpha) * EMA_k(t-1), (c) alpha * loss_k(t), (d) ჯამი. დამრგვლეთ 4 ათეულამდე სადაც სასარგებლოა.

ჯილდოს ფორმულა

ჯილდო = გაუმჯობესება, მასშტაბირებული

ANDREA განსაზღვრავს ხელის k-სთვის ნაბიჯის ჯილდოს, როგორც:


reward_k = max(0, EMA_k(t-1) - loss_k(t)) * 1000


სამი ნაწილი:


1. EMA_k(t-1) - loss_k(t): გაუმჯობესება. თუ ახალი loss-ი შევიდა მიმდინარე საშუალოს ქვემოთ, სხვაობა დადებითია: წყარო k-მ უკეთესი შედეგი მიიღო ვიდრე მოსალოდნელი იყო.

2. max(0, ...): უარყოფითი გაუმჯობესებების ნულამდე შეკუმშვა. თუ ახალი loss-ი შევიდა EMA-ს უფრო ცუდად, ჯილდო არაა (მაგრამ სჯულიც არა).

3. \* 1000: მასშტაბირება ზევით, რათა სიგნალი შესადარებელი გახდეს UCB-ის შესაძრწვენებლად ბონუსთან.


Reward Attribution Flow


რატომ max(0, ...)

უარყოფითი ჯილდოები mean_reward(k)-ს ჩამოუყარებდა ქვემოთ, რითაც UCB-ს მიკერძოებული გახდებოდა იმ „ხელებზე“, რომელთა ზარალიც ზევით იხტებოდა. მაგრამ რყევა ნორმალურია: ერთი რთული დოკუმენტი ზრდის ზარალს იმის გარეშე, რომ წყარო ცუდი იყოს. მოჭრა ნულამდე რყევას „ინფორმაციის არარსებობად“ მოაგყარს ნაცვლად „საჯარიმოს“.


წყაროები შეუძლიათ ნულოვანი ჯილდო მიიღონ განმეორებით ჩაძირვის გარეშე. მათი UCB-ის რანგი კვლავ განისაზღვრება შესაძრწვენებლად ბონუსით (მაღალი, როდესაც n_k მცირეა) პლუს წარსული გამოგებები.


რას ამბობს CUDA

თითოეული forward+backward გავლის დროს, CUDA კერნელი ემიტებს ერთ ჩანაწერს:


{source: 'hermes3-general', doc_index: 4231, loss: 4.520}


პროქსი იღებს ჩანაწერს, ეძებს იმ წყაროსთვის EMA-ს, ითვლის ჯილდოს, განაახლებს EMA-ს, შეყვანს ჯილდოს ბანდიტის mean_reward(k) აკუმულატორში.

ჯილდოს გამოთვლა

წყარო k-ს აქვს EMA_k(t-1) = 4.521. CUDA აჭერს loss_k(t) = 4.520. გამოთვალეთ reward_k ეტაპობრივად: (a) სხვაობა EMA_k(t-1) - loss_k(t), (b) შეკუმშული მნიშვნელობა max(0, სხვაობა), (c) მასშტაბირებული ჯილდო (გამრავლება 1000-ზე). შემდეგ მეორე შემთხვევისთვის, სადაც loss_k(t) = 4.530 (ხომალდ EMA-ზე), გამოთვალეთ (d) არაკლიპირებული სხვაობა, & (e) საბოლოო ჯილდო max(0, ...) კლიპირების & მასშტაბირების შემდეგ.

ჯილდოს შესაბამისობა კვლევის ბონუსთან

მასშტაბის პრობლემა

ნაბიჯზე loss-ის გაუმჯობესებები მცირეა. Loss ეცემა 4.521-დან 4.520-მდე: სხვაობა 0.001. 4.520-დან 4.518-მდე: სხვაობა 0.002. მთელ ტრენინგის განმავლობაში, შეუმუშავებელი სხვაობები ცხოვრობს დაახლოებით [0, 0.01]-ში.


ახლა შეხედეთ UCB-ის შერცხვის ბონუსს C=0.5-ზე, N=1000 და n_k=20-ით:


0.5 sqrt(ln(1000) / 20) = 0.5 sqrt(6.91 / 20) = 0.5 * 0.588 = 0.294


ბონუსი მუშაობს 0.294-ზე. შეუმუშავებელი ჯილდო მუშაობს 0.001-ზე. ბონუსი 300x უფრო დიდია ჯილდოზე. UCB-ის argmax თითქმის მთლიანად სორტობს ბონუსით; mean_reward ფაქტიურად ნულოვან სიგნალს იძლევა.


შედეგი მასშტაბირების გარეშე: ANDREA-ს ბენდიტი ყოველ ნაბიჯზე ირჩევს ხელს ყველაზე მცირე n_k-ით. Mean_reward უგულებელყოფს. ბენდიტი გახდება სუფთა შერცხვის პოლიტიკა.


გამოსწორება: 1000x

გაამრავლეთ შეუმუშავებელი ჯილდო 1000-ზე. ახლა ჯილდო 1.0-ზეა (შეუმუშავებელი 0.001-ის წინააღმდეგ). შეადარეთ იმავე კვლევის ბონუსს 0.294:


გასქელებული ჯილდო 1.0 vs ბონუსი 0.294 = ჯილდო ლიდერობს 3.4x-ით


ახლა mean_reward დომინირებს UCB რეიტინგში. კვლევა აძლიერებს კუდს (იშვიათი მკლავები იღებენ 0.3-ის ზრდას), მაგრამ რეიტინგის ძირითადი ნაწილი მოდის ობსერვირებულ ჯილდოდან.


რატომ 1000 (და არა 10, და არა 100,000)

მაგნიტუდის შესაბამისობა. შეუმუშავებელი ჯილდოები მიედინება ~10^-3-ზე. გამოკვლევის ბონუსი მიედინება ~10^0-ზე. სხვაობაა 10^3. შეუმუშავებელი ჯილდოს გამრავლება 10^3-ზე იწვევს იმავე დიაპაზონში ჩამოყალიბებას ბონუსთან.


100x მასშტაბირება ტოვებს ჯილდოს 0.1-ზე (მაინც ნაკლებია 0.294 ბონუსზე -> გამოკვლევა მაინც დომინირებს). 100,000x მასშტაბირება ჯილდოს 100-მდე ამაღლებს (ახლა გამოკვლევა ვერ იმოქმედებს; UCB ხარვეზდება საშუალო ჯილდოზე მოთხოვნილზე). 1000x მოთავსებულია მუშაობის ზონაში, სადაც ორივე ტერმი წვლილს შეაქვს.


კალიბრაცია, არა თეორია

1000x ფაქტორი არის ინჟინერიული კალიბრაცია, არა თეორეტული კონსტანტა. ის დამოკიდებულია სამ ფაქტორზე: ტრენინგის ზარალის მასშტაბი (კროს-ენტროპია 8K ტოკენის ლექსიკაზე მიედინება დაახლოებით 4.5-ზე), ნაბიჯთა შორის ზარალის შემცირების ტემპი (ნელი), და UCB კონსტანტა C=0.5. ნებისმიერის შეცვლა გამოიწვევს იმას, რომ 1000 აღარ იყოს სწორი მამრავლელი.

მასშტაბირების ფაქტორის შესახებ რეზონირება

დავუშვათ, ANDREA-მ შეცვალა შეცვლილი ჯილდოები 100x-ით 1000x-ის ნაცვლად. შეუცვლელი ჯილდოთი 0.001 და UCB-ის შეკვეთის ბონუსით 0.294 (C=0.5, N=1000, n_k=20): (a) გამოთვალეთ შეცვლილი ჯილდო 100x-ზე, (b) გამოთვალეთ შეცვლილი ჯილდო 1000x-ზე, (c) თითოეული შეცვლისთვის, განსაზღვრეთ რომელი ტერმი (mean_reward ან exploration bonus) დომინირებს UCB ქულას იმ მკლავისთვის, რომლის mean_reward უდრის შეცვლილ ჯილდოს. (d) ერთ წინადადებაში, ახსენით, რატომ ბალანსირებს 1000x ორივეს.

შემდეგ რა მოჰყვება

რა გაქვთ

ჯილდოს მიბმა გარდაქმნის CUDA-ს ზარალის ანგარიშებს UCB-ისთვის მზად სიგნალში სამ ოპერაციაში: per-source EMA თვალყური ადევნებს ზარალის ისტორიას (alpha=0.1, ნელი), reward = max(0, EMA - loss) ამოკვეთს უარყოფითებს, & 1000x შეცვლა შეუსაბამებს ჯილდოს რიცხვით ზომას UCB შეკვეთის ბონუსის რიცხვით ზომას.


რა რჩება

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


ციტირება

ANDREA whitepaper, განყოფილება 3.3.