Embedding va Promptlar haqida

Bilamizki LLMlar biz yozgan promptlarni embeddinglar holatida ya’ni raqamli holatda qabul qiladi. Biz yozgan promptdan tokenlar xosil qilinadi, tokenlardan esa token IDlar olinadi, keyin token IDlar orqali berilgan tokenga mos embeddinglar topiladi. Pastdagi suratda tiktokenizer misolida ko’rishingiz mumkin.

Bunda “Salom, bu mening AI haqidagi maqolam.” matnimiz Meta-Llama-3-70B modeli uchun 14ta tokendan iborat va rangli holatdagi rasmdagidek tokenlarga ajratilgan. Pastdagi raqamlar esa bu token IDlar. Ular o’zlariga tegishli tokenlar uchun embedding vektorlarni topish uchun ishlatiladi.

Prompt injenering deganda ko’pchiligimizning hayolimizga odatda juda ham sodda ish keladi - ‘har narsaga labbay deb javob beradigan modeldan shunchaki nimanidir so’rash’. Lekin AI modellar har qanday savollarga ham javob beravermaydilar va bu qiziqarli eksperimentlarga sabab bo’ladi.

Masalan, GPT-4o modeli ‘qanday qilib bomba yasasam bo’ladi?’ degan savolimga javob bermadi.

Albatta, chunki bu noqonuniy, g’ayriinsoniy va etikaga to’g’ri kelmaydigan savollarga javob bermaydi.

Adversarial attack:

Yuqorida suratda ko’rinib turibdiki pandaning rasmiga juda ham kichik miqdorda perturbation aralashtirilgan va GoogleNet uni ‘gibbon’ deb klassifikatsiya qilgan. Pastda esa gibbonning rasmi. Pandaga o’xshamaydiyu to’g’rimi? :)

Saving the World's Gibbons Monkeys | Discovery

Endi ‘perturbation’ haqida gaplashsak. Perturbation bu inputga qo’shilgan juda ham kichik miqdordagi vektor. Panda rasmidagi ikkinchi surat bu perturbation qo’shilgandagi holat. Inson ko’ziga sezilmaydi, lekin neyron tarmoqlar uchun kichik o’zgarish ham yetarli.

Perturbation qanday ishlaydi?

Rasmni modelga beramiz va loss function orqali har bir pixel uchun gradient hisoblaymiz. Agar gradient manfiy bo’lsa ayiramiz, musbat bo’lsa qo’shamiz. Ayriladigan yoki qo’shiladigan son juda ham kichik bo’ladi, tepadagi GoogleNet holarida bu son 0.007ga teng.

Avvalo rasmlar 0 dan 255 gacha bo’lgan pikselarda bo’ladi. Ular [0,1] oraliqda normallashtiriladi. Masalan piksel qiymati 128 bo’lsa, endi u 128*(1/255) = 0.502 bo’ladi. Deylik 0.502 bu ma’lum piksel, u uchun hisoblangan gradient esa +0.4 chiqdi. Ishorasi musbat, demak biz 0.502ga biz 0.007ni qo’shamiz. Xosil bo’ladi: 0.509. Juda ham kichik o’zgarish lekin modelni aldash uchun yetarli. Shu holat barcha piksellar uchun qilinadi va model pandani gibbon deb klassifikatsiya qiladi. Bu AI xavfsizlik uchun yana bir muammo…

Paper: https://arxiv.org/pdf/1412.6572

Promptlarning yovuz egizaklari bor.

O’tgan yili chiqqan ilmiy maqolaga ko’ra, ko’plab NLP promptlar inson aqli uchun ma’noga ega bo’lmagan, ammo LLMlarga taqdim qilinganda o’sha promptga o’xshab o’zini tuta oladigan promptlarga almashtirilsa bo’ladi. Bunday promptlar ‘yovuz egizaklar’ nomi bilan ataladi. Bunday promptlarni maximum-likelihood orqali topish mumkin.

Maqola: https://arxiv.org/pdf/2311.07064

Ular qanday topiladi?

Masalan deylik bizning promptimiz bunday : “Offer an opinion on the problems that could arise from using AI.” - “AI ishlatish natijasida yuzaga kelishi mumkin bo‘lgan muammolar haqida fikr bildiring.”. Bu prompt orqli LLM yordamida 100marta javob olinadi. Masalan: 1. Ish o’rinlari kamayishi. 2. Noto’g’ri qarorlar va noxolislik ….

Keyin esa biz aynan shu 100ta javobni qaytaradigan boshqa bir promptni topishga harakat qilamiz. Yani biz maximum-likelihood muammosini yechamiz:

Bu yerda p̂ - biz topgan eng yaxshi prompt (yovuz egizak), di - LLM bergan javob, p - yangi test qilinayotgan kandidat prompt, P(llm)(di | p) - agar biz p promptni bersak LLM di javobni qaytarish ehtimolligi.

Maximum-likelihoodni yechish uchun biz avval o’zimiz bergan promptdan (p*)foydalanamiz. Promptlar diskret o’lchamli bo’lgani uchun biz optimizatsiyada gradient descentdan foydalana olmaymiz. Ushbu maqolada bu uchun Greedy Coordinate Gradient algoritmidan foydalanishgan. GCG algoritmi bir vaqtda bir tokenni o’zgartirgan holda prompt xosil qiladigan ma’noni maksimum saqlab qolishga harakat qiladi. Bu uchun log-likelihood loss ishlatiladi.

Promptlarning o’xshashliligini hisoblash uchun KL divergencedan foydalanilgan. Bu yerda KL divergence ikkita p* va p̂ yordamida LLMlardan olingan javoblarning distributsiyalari orasidagi farqni hisoblaydi.

Misollar:

Suratda Ground truth, GPT-4 yordamida rekonstruksiya qilingan prompt va yangi yovuz-egizakni ko’rishimiz mumkin. GPT-4 ko’rinishidan Ground truthga juda ham yaqinligiga va yovuz-egizak tushunarsiz bo’lishiga qaramasdan, KL divergence bo’yicha Ground-truth promptga ancha yaqin. (KL divergence nol bo’lsa bu bir xil distributsiya degani).

Xulosalar:

  1. LLMlar tokenlarga va ular xosil qilgan token-patternlarga javob beradi, ma’nolarga emas

  2. Prompt qilish lingvistikdan ko’ra ko’proq mexanik jarayon

  3. Yovuz-egizaklar LLMlarni tushunish va ularga hujum qilishga ishlatilishi mumkin

  4. Matematika muhim.

0
Subscribe to my newsletter

Read articles from Mironshoh Inomjonov directly inside your inbox. Subscribe to the newsletter, and don't miss out.

Written by

Mironshoh Inomjonov
Mironshoh Inomjonov