З таго часу, як выйшла GPT-3, парад пра тое, як пісаць промпт, становіцца ўсё больш. Будзь ветлівы. Скажы мадэлі, што яна эксперт. Напішы IMPORTANT вялікімі літарамі і папрасі думаць уважліва. Пастаў наверх выразную інструкцыю. Большая частка гэтых парад ідзе ад чалавека, які адзін раз паспрабаваў праз API і ў яго спрацавала. Другога прагону за гэтым няма.
Я чытаў гэтыя парады і раскладаў іх у галаве, нічога не вымяраючы. Ветлівасць і “you are an expert” я запісаў у забабоны. Выразную інструкцыю запісаў у рамяство, адзіную частку промпта, якая прынамсі не можа нашкодзіць. Запусціць GPT-3 дома я не магу. Але той самы прыём з некалькімі прыкладамі ў промпце працуе і на GPT-2, таму я паставіў абедзве групы парад на адну задачу і палічыў.
Стэнд
Задача SST-2 з GLUE: 872 кароткія водгукі пра фільмы з dev-часткі, 444 з іх станоўчыя. Мадэль, якая на ўсё адказвае “positive”, атрымлівае 50,9%.
Промпт пачынаецца з інструкцыі: “Classify the sentiment of each movie review as positive or negative.” Далей ідуць 4 прыклады з навучальнай часткі, 2 станоўчыя і 2 адмоўныя, у выглядзе Review: ... і Sentiment: positive. Потым водгук, які трэба класіфікаваць. Мадэль нічога не генеруе. Я параўноўваю імавернасць слоў ” positive” і ” negative” як наступнага слова, таму адзін і той самы промпт заўсёды дае адзін і той самы лік.
Мадэлі GPT-2 medium (355M параметраў) і GPT-2 large (774M) у float32, на 4 ядрах AMD EPYC 7713 на віртуальнай машыне. На torch 1.11 з transformers 4.17 падлік дае тыя самыя прадказанні. Для medium я прагнаў 217 промптаў, для large 99 з іх.
Я выбраў 10 набораў па 4 прыклады з фіксаваным seed. Кожны варыянт ідзе на тых самых 10 наборах, так што змена ў промпце застаецца адзінай розніцай.
Парады
На medium звычайная інструкцыя дае ў сярэднім 59,3% па 10 наборах. “Please … Thank you!” дае 62,8%, “You are an expert film critic.” 60,7%, IMPORTANT з “Think carefully and be accurate.” 60,3%. Ветлівая лепшая за звычайную на 5 наборах і горшая на 4, гэта як падкінуць манету. Варыянт з вялікімі літарамі лепшы на 7 і горшы на 2, але 10 набораў замала, каб быць у гэтым упэўненым.
Але паглядзіце на шэрагі малюнка, а не на сярэднія. Пры звычайнай інструкцыі адзін толькі набор прыкладаў рухае вынік ад 48,9% да 82,1%. Гэта 33 пункты ад выбару 4 водгукаў. Словы, пра якія я гатовы быў спрачацца, зрушылі сярэдняе на 1-4 пункты.
Дзе я памыліўся
У інструкцыю я якраз верыў, таму прагнаў промпт і без яе. Без інструкцыі medium атрымлівае 68,8%, на 9,5 пункта больш, лепш на 8 наборах з 10 і горш на 1. Потым я паспрабаваў 2 няправільныя інструкцыі. “Translate each sentence into French.” дае 65,5%, а “Classify each movie review by whether it is about a comedy or a drama.” 64,5%, таксама больш, чым правільная.
Без прыкладаў тое самае. Голы Review: ... Sentiment: дае 73,2%, са звычайнай інструкцыяй зверху 60,8%, з ветлівай 53,9%. З “please” мадэль адказвае positive на 97% водгукаў.
Я нейкі час шукаў памылку. Праверыў, што інструкцыя сапраўды трапляе ў промпт і што кожнае з двух слоў-метак займае адзін токен. Закэшаваны прэфікс таксама даў тыя самыя токены, што і поўны тэкст. Усё было ў парадку. Чаму гэтая інструкцыя шкодзіць medium, я не ведаю.
Парадак тых самых 4 прыкладаў
Для 3 набораў я прагнаў усе 24 парадкі тых самых 4 прыкладаў, не мяняючы ніводнага слова. На наборы 0 дакладнасць ідзе ад 50,9% да 78,3%, на наборы 1 ад 50,2% да 84,5%, на наборы 2 ад 50,1% да 82,1%. Чжао з калегамі паказалі гэта на GPT-3 летась. Лу з калегамі зрабілі гэта на GPT-2 якраз па такой схеме, SST-2 і ўсе 24 парадкі 4 прыкладаў, так што гэта не навіна. Але я не чакаў, што гэты эфект акажацца большым за ўсё астатняе ў маёй сетцы.
Дрэнныя парадкі не выпадковыя. На 3 наборах ёсць 12 парадкаў з меткамі + - + -. Ва ўсіх мадэль адказвае “positive” на 99,2% водгукаў і больш, а дакладнасць 50,9-51,5%. Падобна на тое, што мадэль працягвае паслядоўнасць метак замест таго, каб чытаць водгук. Люстраны парадак - + - + не такі чысты, там доля станоўчых адказаў ад 1,0% да 51,5%.
GPT-2 large
На large мая гісторыя пра інструкцыю развалілася. З 4 прыкладамі фармулёўка амаль не мае значэння. Ветлівая на 1,3 пункта вышэйшая за звычайную, без інструкцыі на 0,6 ніжэй. Абедзве няправільныя інструкцыі цяпер крыху горшыя за звычайную, французская на 2,4 пункта і ніжэйшая на 8 наборах з 10. Так што папярэдні раздзел датычыцца толькі medium. Набор прыкладаў усё гэтак жа рухае звычайны промпт ад 53,6% да 87,6%.
На large я паспеў прагнаць толькі 24 парадкі набору 0. Яны ідуць ад 51,6% да 88,3%, але мадэль ламае іншы парадак, чым у medium. + - + - тут працуе нармальна, 75,0-88,3%. Large ламаецца, калі ў 2 апошніх прыкладаў адна метка. Пасля + + - - яна адказвае positive толькі на 2,5-5,2% водгукаў, пасля - - + + на 87,4-96,7%. Чжао з калегамі называюць гэта recency bias: мадэль цягнецца да меткі, якую бачыла апошняй. Гэта тлумачэнне пасуе толькі да large: у medium парадак + - + - заканчваецца адмоўным прыкладам, а мадэль усё роўна кажа positive.
Без прыкладаў фармулёўка на large мае вялікае значэнне. Голы промпт атрымлівае 86,4%, ветлівы 84,1%, вялікія літары 78,7%, звычайны 71,9%, эксперт 68,6%. На medium ветлівы быў на 6,9 пункта горшы за звычайны. На large ён на 12,2 пункта лепшы. Але кожны лік без прыкладаў гэта 1 промпт, за якім няма набораў. Я не магу сказаць, колькі з гэтых 18 пунктаў дала фармулёўка, а колькі менавіта гэтая фраза. Гэты голы промпт з 86,4% да таго ж вышэйшы за любы варыянт з 4 прыкладамі на large, дзе найлепшае сярэдняе 65,8%.
Што яшчэ рухала лік
Словы-меткі важнейшыя за ветлівыя словы. З “good” і “bad” medium атрымлівае 68,4%, з “A” і “B” 49,0%, ніжэй за адказ positive на ўсё.
Каліброўка крыху дапамагае medium і мацней large. Чжао з калегамі пытаюцца ў мадэлі пра пусты ўваход накшталт “N/A” і дзеляць імавернасці адказаў на тое, што яна кажа там. Са звычайнай інструкцыяй гэта зрушвае medium з 59,3% да 62,0%, а large з 64,5% да 72,0%, лепш на 7 наборах з 10 у абедзвюх. На промпце medium без прыкладаў выходзіць наадварот, з 60,8% да 55,4%. Пасля папраўкі мадэль кажа positive толькі на 7,7% водгукаў.
Выпадковыя меткі ў прыкладах каштуюць medium 4,2 пункта. Гэта блізка да таго, што Мін з калегамі ў мінулым месяцы паведамілі для большых мадэляў. Перавернутыя меткі каштуюць 6,7 пункта, але medium не вучыцца па іх пераварочваць адказы. Яна проста часцей кажа positive, у 89% выпадкаў.
Чаго я не правяраў
- Саму GPT-3. Большыя мадэлі цалкам могуць чытаць інструкцыю лепш.
- Іншыя задачы. Танальнасць водгукаў пра фільмы гэта самы просты выпадак. На задачы, дзе мадэлі патрэбна інструкцыя, каб зразумець, што рабіць, яе выдаленне хутчэй за ўсё нашкодзіць.
- Больш набораў. 10 набораў паказваюць раскід у 33 пункты, але розніца ў 3 пункты паміж фармулёўкамі застаецца ўнутры шуму. Ветлівая магла б насамрэч быць на 2 пункты лепшай і я б гэтага не ўбачыў.
Для маленькіх мадэляў я цяпер спачатку паспрабую некалькі парадкаў прыкладаў і толькі потым буду чапаць фармулёўку. І інструкцыю я больш не лічу бяспечнай часткай, хоць на large яна была проста нейтральнай.