Sobes.tech
Middle — Senior

დაწვრილებით ახსენით მრავალთავიანი ყურადღება: რა არის Q/K/V, როგორ ითვლება ყურადღების წონა, რატომ არის რამდენიმე თავი.

sobes.tech AI

პასუხი AI-სგან

მრავალთავიანი ყურადღება — ეს ძირითადი მექანიზმია ტრანსფორმატორებში, რომელიც საშუალებას აძლევს მოდელს ერთდროულად გაამახვილოს ყურადღება სხვადასხვა ნაწილებზე შესვლის სერიის.

  • Q (საპასუხო), K (საკლავი), V (ღირებულება) — ეს სამი მატრიცაა, რომლებიც მიიღება შესვლის მონაცემებიდან სწავლებადი ხაზოვანი ტრანსფორმაციების საშუალებით. თითოეული პოზიცია სერიისში გარდაიქმნება სამ ვექტორად:

    • სუპასუხო — სუპასუხო, რომლისთვისაც ეძებს შესაბამის ინფორმაციას.
    • საკლავი — საკლავი, რომლისთანაც შედარება ხდება სუპასუხოს.
    • ღირებულება — ღირებულება, რომელიც დაბრუნდება პასუხად სუპასუხოზე.
  • ყურადღების წონების გამოთვლა:

    1. გამოითვლება სკალარული გამრავლება Query და Key შორის თითოეულ პოზიციას შორის.
    2. შედეგი სკალირდება (საშუალოდ ნაწილდება საკლავის ზომის ნამუშევრის კუთხით) გრაფიკის სტაბილიზაციისთვის.
    3. გამოიყენება softmax, რათა მიიღოს ალბათობის განაწილება წონებზე.
    4. წონები მრავლდება შესაბამის ღირებულებებზე და შედეგები ჯამდება — ეს არის ყურადღების გამოსავალი.
  • რატომ მრავალი თავი (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 — თავების რაოდენობა.