GitHub выкатил ИИ-инструмент, дополняющий и предлагающий строки кода

GitHub выкатил ИИ-инструмент, дополняющий и предлагающий строки кода

GitHub выкатил ИИ-инструмент, дополняющий и предлагающий строки кода

GitHub представил нововведение, которое использует искусственный интеллект для помощи разработчикам в написании кода. В частности, новый инструмент может дополнять и предлагать строки кода или даже целые функции (по аналогии с предиктивным набором текста).

Проект получил имя GitHub Copilot, а для его разработки GitHub потребовалась помощь OpenAI. Самих разработчиков инструмент, конечно же, не заменит, но зато сможет существенно упростить им жизнь.

Создатели GitHub Copilot обучили своё нововведение на миллиардах строк кода, большая часть которых располагалась на самой площадке GitHub. Работает это так: если вы пишете код, GitHub Copilot отображает вам предложения, которыми можно воспользоваться для более быстрой работы.

Чтобы определить, над чем именно вы работаете в конкретный момент, GitHub Copilot пытается парсить закомментированные куски, а также имена функций, которые вы используете. Несколько демозаписей можно увидеть на официальном веб-сайте.

 

Например, вы можете описать функцию на примитивном английском в комментарии, а затем перевести её в настоящий код. А если вы кодите каждый день, GitHub Copilot может использоваться для работы с новым фреймворком или библиотекой.

При этом не обязательно изучать документацию от начала до конца, поскольку GitHub Copilot уже знает специфические функции и фичи конкретного фреймворка. Инструмент также легко интегрируется с Visual Studio Code — вы можете использовать его как расширение или же задействовать облачный вариант с GitHub Codespaces.

Со временем GitHub Copilot будет обучаться и совершенствоваться, а в настоящее время он лучше всего работает с Python, JavaScript, TypeScript, Ruby и Go.

Новый вектор ProAttack позволяет незаметно внедрять бэкдоры в LLM

Промпт-инжиниринг давно стал нормой при работе с большими языковыми моделями. Но, как выясняется, вместе с удобством он приносит и новую поверхность атаки. Исследователи представили вектор под названием ProAttack, который позволяет внедрять бэкдор в модель через промпты, причём делать это почти незаметно.

В тестах атака показывала эффективность, близкую к 100%, причём без классических красных флагов вроде странных токенов или подмены меток.

В обычных атаках на NLP-модели злоумышленники добавляют в данные подозрительные слова или фразы и меняют метки. Такие вещи уже научились отслеживать. 

ProAttack идёт другим путём. Вместо явных «триггеров» он использует разные промпты для обучающих данных:

  • для части данных (целевая категория) — вредоносный промпт;
  • для остальных — обычный, чистый.

 

При этом сами тексты выглядят нормально, а метки остаются корректными. В итоге модель учится ассоциировать конкретный промпт с нужным злоумышленнику результатом.

А дальше всё просто: на этапе использования достаточно подать вход с этим промптом, и бэкдор срабатывает.

Особенно опасно, что атака остаётся эффективной даже при небольшом количестве данных. В ряде случаев хватало буквально нескольких (около шести) «отравленных» примеров, чтобы внедрить бэкдор.

Метод протестировали на разных задачах, включая даже медицинские сценарии (например, суммаризацию радиологических отчётов). И там он тоже показал высокую эффективность, практически не ухудшая качество работы модели.

Исследователи проверили ProAttack против популярных методов защиты — ONION, SCPD, back-translation и fine-pruning. Ни один из них не смог полностью остановить атаку.

В качестве возможного решения предлагается использовать LoRA (parameter-efficient fine-tuning). Идея в том, что такие методы ограничивают количество параметров, которые модель может менять при дообучении. А значит, ей сложнее запомнить связь между триггером и целевым результатом.

RSS: Новости на портале Anti-Malware.ru