დაწვრილებით ახსენით მრავალთავიანი ყურადღება: რა არის Q/K/V, როგორ ითვლება ყურადღების წონა, რატომ არის რამდენიმე თავი.
sobes.tech AI
პასუხი AI-სგან
მრავალთავიანი ყურადღება — ეს ძირითადი მექანიზმია ტრანსფორმატორებში, რომელიც საშუალებას აძლევს მოდელს ერთდროულად გაამახვილოს ყურადღება სხვადასხვა ნაწილებზე შესვლის სერიის.
-
Q (საპასუხო), K (საკლავი), V (ღირებულება) — ეს სამი მატრიცაა, რომლებიც მიიღება შესვლის მონაცემებიდან სწავლებადი ხაზოვანი ტრანსფორმაციების საშუალებით. თითოეული პოზიცია სერიისში გარდაიქმნება სამ ვექტორად:
- სუპასუხო — სუპასუხო, რომლისთვისაც ეძებს შესაბამის ინფორმაციას.
- საკლავი — საკლავი, რომლისთანაც შედარება ხდება სუპასუხოს.
- ღირებულება — ღირებულება, რომელიც დაბრუნდება პასუხად სუპასუხოზე.
-
ყურადღების წონების გამოთვლა:
- გამოითვლება სკალარული გამრავლება Query და Key შორის თითოეულ პოზიციას შორის.
- შედეგი სკალირდება (საშუალოდ ნაწილდება საკლავის ზომის ნამუშევრის კუთხით) გრაფიკის სტაბილიზაციისთვის.
- გამოიყენება softmax, რათა მიიღოს ალბათობის განაწილება წონებზე.
- წონები მრავლდება შესაბამის ღირებულებებზე და შედეგები ჯამდება — ეს არის ყურადღების გამოსავალი.
-
რატომ მრავალი თავი (multi-head)? მრავალი თავი საშუალებას აძლევს მოდელს უყუროს ინფორმაციას სხვადასხვა "კუთხიდან", ანუ თითოეული თავი სწავლობს გამოავლინოს სხვადასხვა დამოკიდებულებები და ნიმუშები მონაცემებში. ეს ზრდის გამომსახველობას და მოდელის ხარისხს.
სიმპლიფიცირებული მაგალითი:
# თითოეულ თავზე:
Q_i = X * W_Q_i
K_i = X * W_K_i
V_i = X * W_V_i
ყურადღების წონები = softmax((Q_i @ K_i.T) / sqrt(d_k))
გამოსავალი_i = ყურადღების წონები @ V_i
# ყველა თავზე გამოსავლების გაერთიანება
გამოსავალი = concat(გამოსავალი_1, ..., გამოსავალი_h) * W_O
სადაც W_Q_i, W_K_i, W_V_i, W_O — სწავლებადი მატრიცებია, d_k — საკლავის ზომა, h — თავების რაოდენობა.