PromptRobust (benchmark) (BG)

From Systems analysis Wiki
Jump to navigation Jump to search

PromptRobust (известен също като PromptBench) — това е комплексен benchmark за оценка на устойчивостта на големи езикови модели (LLM) към адверсарни изменения на заявката — малки изкривявания на формулировката на заданието, които не променят смисъла му[1][2]. Benchmark-ът е разработен през 2023 година от група изследователи (Kaijie Zhu и др.) от Microsoft Research Asia[1]. Появата на PromptRobust е обусловена от наблюдението, че съвременните LLM са чувствителни към детайлите на формулировката: дори незначителни промени (например печатни грешки или перифразиране) могат осезаемо да влияят върху отговорите на моделите[2]. Benchmark-ът е предназначен да измери количествено тази уязвимост и да съдейства за разработването на по-надеждни методи за взаимодействие с LLM.

Методология на оценяването

В рамките на изследването PromptBench е формиран корпус от 4788 видоизменени подсказки (prompt-и), запазващи първоначалния смисъл на заданията[3]. Тези адверсарни подсказки са генерирани на четири нива на сложност на измененията[1]:

  • Символно ниво: Въвеждане на печатни грешки, замяна или разместване на символи (имитира случайни грешки при въвеждане).
  • Словно ниво: Замяна на някои думи със синоними, въвеждане на „шумови" думи или други незначителни речникови изменения.
  • Ниво на изречението: Перифразиране на структурата на изреченията, добавяне или разместване на части от фразата без промяна на общата тема.
  • Семантично ниво: По-дълбоко преформулиране на заявката при запазване на нейната задача (например алтернативни формулировки на един и същ въпрос)[1].

Целта на подобни „атаки" е да се провери как незначителните отклонения (напр. случайни печатни грешки или използване на синонимни формулировки) влияят върху способността на модела правилно да изпълни задачата, при положение че самата задача не е променена[1]. Всяка генерирана адверсарна подсказка е прилагана към редица стандартни NLP задачи, включително анализ на тоналността, разкриване на граматическа коректност, търсене на дублиращи се изречения, логически извод (NLI), четене с разбиране, машинен превод и решаване на математически задачи[1]. За експериментите са подбрани 8 различни типа задачи върху 13 dataset-а — от класическите набори GLUE (например SST-2 за тоналност, MNLI за NLI) до специализирани математически и многоезикови тестове[1].

Важно е, че беше проверявана устойчивостта на различни формати на prompt[1]:

  • Преки заявки без примери (zero-shot, само инструкция).
  • Заявки с няколко примера (few-shot, когато в подсказката са дадени образци за решение).
  • Ролеви подсказки (in-context roles, например „Вие сте система за анализ на тоналността, определете...").
  • Подсказки, описващи задачата (task-oriented, пряко описание на заданието)[1].

Също така бяха тествани различни мащабни езикови модели — от сравнително малкия Flan-T5-large и модела UL2 до напредналите ChatGPT и GPT-4, а също и отворените модели от семейството LLaMA 2 и производният от тях Vicuna[1]. За генериране на атаките бяха използвани съществуващи методи от областта на адверсарното NLP (като TextBugger, DeepWordBug, TextFooler и др.), адаптирани за модификация на подсказките вместо на входните данни[1]. Коректността на получените „изкривени" подсказки беше проверявана с автоматични и ръчни методи; според доклада не по-малко от 85% от адверсарните вариации запазват правилната семантика и са разбираеми за човек[1]. По този начин влиянието на атаките отразява именно грешките на модела при възприемане на перифразираното задание, а не загубата на самия смисъл на задачата.

Резултати и изводи

Изпитанията показаха, че съвременните LLM не са достатъчно устойчиви към малки изменения в формулировката на заявката[3]. При всички тествани модели беше наблюдавано значително влошаване на качеството на отговорите под въздействието на генерираните атаки[3]. По-специално, дори прости случаи — като печатна грешка в текста на математическа задача или замяна на една ключова дума с нейния синоним — водеха до това, че моделът даваше неверен резултат, въпреки че без изкривяване се справяше правилно[1]. Общият извод на авторите: „съвременните големи езикови модели не са robust (устойчиви) към адверсарни подсказки"[3], тоест незначителни отклонения в phrasing могат системно да ги въвеждат в заблуждение.

При анализа на различните видове атаки се установи, че най-разрушително върху работата на LLM влияят изменените на словно ниво[2]. Замяната на думи със синоними или незначителното словообразувателно изкривяване водеха до най-голям спад в качеството — средно с ≈33% спрямо изходния резултат на същите задания[2]. Атаките на символно ниво (печатни грешки, случайни символи) предизвикваха средно ~20% намаляване на точността[2]. Качественото изменение или добавянето на цели изречения към prompt-а, напротив, имаше много по-слаб ефект и почти не объркваше модела[1]. Семантичните перифразирания (дълбоко преразказване на заявката по друг начин) се оказаха сравними по вредоносност с обикновените печатни грешки[1]. Тези факти подчертават, че LLM са особено уязвими към тънки лексикални изменения и грешки в ключовите думи[1]. Характерно е, че граматическите изкривявания (печатни грешки) теоретично могат да бъдат филтрирани чрез стандартни средства за проверка на правописа, докато изменените на словно и смислово ниво изискват от модела развито семантично разбиране, което на текущите модели често им липсва[1].

Анализът на производителността на различните модели показа значителен разброс в тяхната robustness[1]. GPT-4 и UL2 демонстрираха най-добра устойчивост към адверсарни подсказки[1]. Малко по-малко склонни към грешки се оказаха също моделът Flan-T5-large и диалоговият модел ChatGPT[1]. Моделите от семейството LLaMA 2 заеха междинна позиция, докато Vicuna (13B) се открои като най-уязвима към всички видове атаки[1]. Интересно е, че размерът на модела не се оказа решаващ фактор за robustness[1]: сравнително малкият T5-large по стабилност на отговора практически не отстъпваше на значително по-големия модел ChatGPT[1]. Авторите предполагат, че ключова роля играят методите на обучение и fine-tuning на моделите, а не само мащабът[1]. Така UL2 и T5-large са преминали разширено предобучение върху големи корпуси от данни, а ChatGPT е обучен с подкрепление от човешка обратна връзка (RLHF), което вероятно е укрепило тяхната устойчивост[1]. Напротив, Vicuna е обучен върху сравнително ограничен набор от данни (като отворена реплика), което вероятно е обусловило неговата висока чувствителност към изменения в формулировките[1]. Тези резултати сочат, че подобряването на методите за fine-tuning може да повиши надеждността на моделите в по-голяма степен, отколкото простото увеличаване на техния размер.

Влияние на формата на prompt

Формата на подаване на заявката също влияе върху надеждността на отговора[1]. Установено е, че подсказките с примери (few-shot) съществено повишават устойчивостта на модела в сравнение с еднократните инструкции без примери (zero-shot)[1]. Наличието в prompt-а на няколко демонстрационни примера на задачата помага на модела да интерпретира по-вярно заданието дори при наличие на шумови изменения. Ролевите подсказки и описателните (task-oriented) показаха съпоставимо ниво на устойчивост като цяло, въпреки че ефективността им варира в зависимост от задачата[1]. Например при данните за анализ на тоналността и дублиращи се изречения ролевият формат беше малко по-надежден, докато при задачите за четене с разбиране и превод по-добре се справиха явните инструкции на задачата[1]. Тези наблюдения могат да служат като ориентир при проектирането на prompt-и: добавянето на разгърнати примери и контекст на роля намалява вероятността от грешка на модела при нестандартни формулировки.

Прехвърляемост на атаките между модели

Прехвърляемостта (трансферът) на атаките между моделите се оказа ограничена[1]. Адверсарните подсказки, специално подбрани срещу един модел, не винаги са еднакво ефективни срещу друг[1]. Така беше отбелязано, че prompt-ите „капани", генерирани за уязвимостите на ChatGPT, влияят значително по-слабо на GPT-4[1]. Последният се справяше по-добре, вероятно защото атаките не се пренасяха пряко върху неговата архитектура — това, което обърква един модел, може да не подействa на по-напреднал модел с различна подготовка[1]. Въпреки това някои видове прости изкривявания (например печатни грешки) оказваха негативен ефект едновременно върху няколко модела, което говори за сходни слабости в тяхната езикова основа.

Практически препоръки

В хода на работата PromptBench бяха разкрити и практически препоръки за потребителите и разработчиците на LLM[2]. Простият извод: стабилността на формулировката има значение[2]. Необходимо е да се избягват печатни грешки и небрежни формулировки в заявката[2]. Авторите показват, че поправянето дори на дребни грешки (правопис, случаен регистър, излишни интервали) може съществено да повиши надеждността на отговора на модела[2]. Освен това, изборът на думи в инструкцията влияе върху нейната устойчивост[2]. Анализът на честотата на термините в устойчиви vs. уязвими подсказки разкри, че някои думи се срещат по-често в „надеждните" prompt-и, а други — в тези, при които моделът е сбъркал[2]. Например подсказките, съдържащи думи като „acting", „provided", „detection" и т.н., по-рядко водеха до грешки, докато думи като „respond", „following" или „examine" се срещаха в по-проблемните случаи[2]. Това сочи, че определен стил и лексика на заявките могат да смекчат или, обратно, да провокират уязвимостите на модела. Като цяло се препоръчва заявката да се формулира максимално ясно, недвусмислено и с познати за модела термини, особено за критично важни приложения[2].

Интересен страничен ефект, отбелязан от изследователите, е влиянието на добавянето на безсмислени или нерелевантни фрагменти от текст в заявката[2]. Оказа се, че вмъкването на случайна последователност от символи (например „LKF0FZxMZ4") в края или средата на подсказката може да отвлече вниманието на модела и да намали точността на неговия отговор[2]. От друга страна, добавянето на неутрална, но граматически правилна фраза (например „and true is true") в някои случаи напротив подобрявало отговора, сякаш фокусирайки модела върху значимите части на въпроса[2]. Този феномен подчертава колко непредсказуемо LLM реагират на привидно несъществени детайли на входните данни. Той свидетелства и за сложността на вътрешното устройство на моделите: най-малките изменения на контекста могат или да нарушат, или да подобрят тяхната работа, в зависимост от това как се преразпределя вниманието на модела.

Значение и по-нататъшно развитие

PromptRobust/PromptBench внесе значителен принос в разбирането на надеждността на LLM[2]. Предложеният benchmark и събраните данни са отворени за общността: кодът и наборите от адверсарни подсказки са достъпни в репозиторията[1]. Това позволява на другите изследователи да тестват нови модели за устойчивост към вариации на заявките и да сравняват резултатите[1]. Следващата стъпка е разработването на методи за защита на моделите от подобни атаки — например подобрени алгоритми за обучение, отчитащи възможните печатни грешки и перифразирания, или вградени системи за нормализиране на входния текст[2]. PromptBench вече се разглежда като основа за такива изследвания по повишаване на robustness (устойчивостта) на езиковите модели към реални неточни входни данни[2].

В крайна сметка трудът на Zhu и колегите му демонстрира важността на отчитането на устойчивостта към prompt-и при внедряването на LLM в практически приложения: моделите трябва не само да показват висока точност върху „чисти" данни, но и да запазват коректност при незначителни отклонения във входните данни, независимо дали са случайни грешки на потребителя или преднамерени атакуващи въздействия[2][4].

Препратки

  • Оригинална статия PromptBench (arXiv)
  • Репозитория PromptBench в GitHub
  • Статия „Prompt Robustness: How to Measure and How to Enhance" (Towards AI)

Литература

  • Liang, P. et al. (2022). Holistic Evaluation of Language Models (HELM). arXiv:2211.09110.
  • Chang, Y. et al. (2023). A Survey on Evaluation of Large Language Models. arXiv:2307.03109.
  • Ni, S. et al. (2025). A Survey on Large Language Model Benchmarks. arXiv:2508.15361.
  • Biderman, S. et al. (2024). The Language Model Evaluation Harness (lm-eval): Guidance and Lessons Learned. arXiv:2405.14782.
  • Kiela, D. et al. (2021). Dynabench: Rethinking Benchmarking in NLP. arXiv:2104.14337.
  • Ma, Z. et al. (2021). Dynaboard: An Evaluation‑As‑A‑Service Platform for Holistic Next‑Generation Benchmarking. arXiv:2106.06052.
  • Goel, K. et al. (2021). Robustness Gym: Unifying the NLP Evaluation Landscape. arXiv:2101.04840.
  • Xu, C. et al. (2024). Benchmark Data Contamination of Large Language Models: A Survey. arXiv:2406.04244.
  • Liu, S. et al. (2025). A Comprehensive Survey on Safety Evaluation of LLMs. arXiv:2506.11094.
  • Chiang, W.-L. et al. (2024). Chatbot Arena: An Open Platform for Evaluating LLMs by Human Preference. arXiv:2403.04132.
  • Boubdir, M. et al. (2023). Elo Uncovered: Robustness and Best Practices in Language Model Evaluation. arXiv:2311.17295.
  • Huang, L. et al. (2023). A Survey on Hallucination in Large Language Models. arXiv:2311.05232.

Бележки

  1. 1.00 1.01 1.02 1.03 1.04 1.05 1.06 1.07 1.08 1.09 1.10 1.11 1.12 1.13 1.14 1.15 1.16 1.17 1.18 1.19 1.20 1.21 1.22 1.23 1.24 1.25 1.26 1.27 1.28 1.29 1.30 1.31 1.32 1.33 1.34 1.35 «PromptBench: Towards Evaluating the Robustness of Large Language Models on Adversarial Prompts». arXiv. [1]
  2. 2.00 2.01 2.02 2.03 2.04 2.05 2.06 2.07 2.08 2.09 2.10 2.11 2.12 2.13 2.14 2.15 2.16 2.17 2.18 2.19 «Prompt Robustness: How to Measure and How to Enhance». Towards AI. [2]
  3. 3.0 3.1 3.2 3.3 «PromptRobust: Towards Evaluating the Robustness of Large Language Models on Adversarial Prompts». arXiv. [3]
  4. «Realer Toxicity Prompts (RTP-2.0): Multilingual and Adversarial Prompts for Evaluating Neural Toxic Degeneration in Large Language Models». Language Technologies Institute - School of Computer Science - Carnegie Mellon University. [4]