
Dynamic Abliteration: უარების ჩახშობა მოდელის წონების შეცვლის გარეშე
ბლოგზე გამოქვეყნებული ექსპერიმენტი აჩვენებს, რომ ღია წონების მოდელის უარის პასუხები წონების შეცვლის გარეშე ჩაიხშობა: Qwen3-4B-ზე PyTorch-ის hook-ებით რამდენიმე შუა ფენაში ჩარევის შემდეგ მოდელმა იმ მოთხოვნებსაც უპასუხა, რომლებზეც ჩვეულებრივ უარს ამბობს.
უარის ქცევა წონების შეცვლის გარეშე
ღია წონების LLM-იდან უარის პასუხების ამოღების ჩვეულებრივი ხერხი „აბლიტერაციაა“: მოდელის წონითი მატრიცები ისე აპროექცირება, რომ უართან დაკავშირებული მიმართულება გაქრეს. მეთოდი მუშაობს, მაგრამ წონებს სამუდამოდ ცვლის და სხვა ამოცანებზე ხარისხს ამცირებს.
ტექნიკური ჩანაწერი, რომელიც 24 სექტემბერს madhukaraphatak.in-ის ბლოგზე გამოქვეყნდა, ალტერნატივას აღწერს. პარამეტრების რედაქტირების ნაცვლად, გადაწყვეტა გაშვების დროს მოდელის შუალედურ აქტივაციებში ერევა — PyTorch-ის forward hook-ებით — და რამდენიმე შუა ფენაში სამართავ სიგნალებს უმატებს. საბაზისო წონები უცვლელი რჩება; ავტორის თქმით, ისინი სრულად გაყინულია.
საცდელი მოდელი Qwen3-4B-ია: 4 მილიარდი პარამეტრის ღია მოდელი, რომელიც bfloat16 ფორმატში A100 GPU-ზე, Google Colab-ის გარემოში ჩაიტვირთა.
ერთი ფენა საკმარისი არ აღმოჩნდა
პირველი ცდა მხოლოდ მე-14 ფენას შეეხო: ავტორმა უარის მიმართულების ვექტორი უარყოფილი და მსგავსი უწყინარი მოთხოვნის აქტივაციების შედარებით აიღო, შემდეგ კი დეკოდირებისას გამოაკლო. მოდელმა მაინც უარი თქვა — ქვედა ფენები უარის ქცევას ხელახლა აღადგენენ.
შემდეგ ვერსიამ ხუთ ფენაზე (12, 14, 16, 18 და 20) კონტრასტული სხვაობის ვექტორები გამოთვალა და ერთდროულად ჩართო. უარები გაქრა, მაგრამ სტატიკურ ვექტორებს ნაკლოვანებები აქვს: ისინი ყველა ტოკენს ცვლიან; სკალირების კოეფიციენტი ხელით უნდა შეირჩეს — მცირეს დროს უარი ბრუნდება, დიდის დროს ტექსტი ფუჭდება; უპირობო ჩარევა კი ჩვეულებრივ ამოცანებზე ხარისხს ამცირებს.
Engram-ის მოდული პირობითი გეითით
ჩარევა პირობითი რომ გახდეს, ჩანაწერი DeepSeek-ის Engram მოდელში შემოღებულ პირობითი მეხსიერების არქიტექტურას იყენებს. ტოკენების მოცურავი ფანჯრები ოთხ ჰეშ-ცხრილში ნაწილდება — n-გრამების ძებნა მუდმივ დროში ხდება — და სიგმოიდური გეითი წყვეტს, ჩაერთოს თუ არა ჩარევა კონკრეტულ ფენაზე. ჩვეულებრივი ტოკენების დროს გეითი ნულისკენაა, უარის გამომწვევი ფრაზის გამოჩენისას კი იხსნება.
მართვის მოდული PKU-Alignment-ის PKU-SafeRLHF-ის ნაკრებიდან 2000 მაგალითზე გაწვრთნა, საბაზისო მოდელი კი გაყინული იყო — ოპტიმიზაციამ მხოლოდ Engram-ის პარამეტრებს შეეხო, ორი ეპოქის განმავლობაში. A100-ზე ვარჯიშს დაახლოებით 9 წუთი დასჭირდა, დანაკარგი 3,9-დან 1,77-მდე დაეცა. გამოქვეყნებულ შედარებაში Engram-ის ჩართული ვერსია იმ მოთხოვნებსაც პასუხობდა, რომლებზეც საბაზისო მოდელი უარს ამბობდა ან თავს იკავებდა.
რას ნიშნავს ეს
შედეგი მოდულური და მოსახსნელია: მართვის მოდული ცალკე ფაილია, რომლის ჩართვა და გამორთვა გაშვების დროს შეიძლება, წონები კი ხელუხლებელი რჩება — განსხვავებით fine-tuning-ისა და კლასიკური აბლიტერაციისგან.
ამავე მოქნილობაა უსაფრთხოების კითხვაც: თუ უარის ჩახშობა ერთ GPU-ზე, გაშვების დროს შეიძლება, ღია მოდელის მხოლოდ წონებზე დაფუძნებული დაცვა სუსტდება. სრული Jupyter notebook GitHub-ზეა გამოქვეყნებული; ავტორი აღნიშნავს, რომ კოდის მაგალითები Google Gemini-ის დახმარებით დაიწერა.
SiTech — AI-გაძლიერებული ვებ დეველოპმენტი
ვქმნით სწრაფ, თანამედროვე ვებსაიტებს და AI-ს ვაერთიანებთ ქართული ბიზნესებისთვის. გაქვთ პროექტი ან კითხვა? სიამოვნებით დაგეხმარებით.