На написание и публикацию этого текста меня побудила необходимость быстро объяснить, как определять текст от больших языковых моделей (БЯМ). Важно, что речь идёт только про выявление очевидных случаев, а не бронебойное детектирование.
В голове инструкция выглядела как три коротких пункта. Списочек немедленно разросся обширным введением, замечаниями и примерами. Грех этой инструкцией не поделиться.
Желание обнаружить результат творчества больших языковых моделей возникло до их коммерциализации. Ещё в феврале 2019 года OpenAI порадовала объявлением о продукте, который умеет предсказывать следующее слово в тексте. Ссылаясь на небезопасность такого проекта в руках злодеев, OpenAI отказалась публиковать модель для всех желающих. Негодование сообщества не знало предела.
Речь шла о всего лишь GPT-2 — модели, которая пять лет спустя покажется примитивной и жалкой. Веса́ GPT-2 всё же были выпущены. Эта БЯМ настолько мелкая, что запускается на умных часах. Сегодня кажется смешным, что когда-то OpenAI десять месяцев подряд отказывалась опубличить настолько слабую модель.
Опасения OpenAI всё же вполне обоснованы. Ещё в 2022 году было показано (arXiv:2201.07406), что учащийся, вооружённый открытой и небольшой (6 млрд параметров) GPT-J, без проблем может обмануть систему антиплагиата MOSS. СМИ рассказывают кошмарные истории, когда преподаватели паранойят, потому что не могут угадать, где писал ИИ.
Сегодня доступны куда более мощные проприетарные продукты. Более того, любой желающий может скачать и локально запустить файлы БЯМ, которая соперничает с лучшими закрытыми коммерческими решениями. Вопрос обнаружения текста от ИИ стои́т как никогда сильно.
Помочь пытаются различные детекторы БЯМ, но не всегда удачно. Кто-то даже утверждает, будто такие инструменты полностью неэффективны. Даже сама OpenAI расписалась в собственной беспомощности в этом вопросе, когда заявила, что такие детекторы не работают.
Неплохие детекторы всё же есть. Легче всего посоветовать сберовский «Гигачек» и зарубежный ZeroGPT. Механика работы детекторов разнится: по ключевым словам, повторам слов и структур предложения, по неожиданности единицы языка относительно контекста — БЯМ выплёвывают излишне предсказуемые тексты.
Однако обнаружить работу БЯМ возможно полностью вручную.
Способ 1. По ключевым словам
Если грубо упростить, то большую языковую модель обучают в две стадии:
-
Предобучение. Нужно взять все текстовые данные человечества, до которых дотягиваются руки, закодировать текст в токены и в течение нескольких недель прогонять их в огромном вычислительном кластере стоимостью в авианосец. Для предобучения сгодятся все текстовые данные Интернета, которые проект CommonCrawl уже заботливо собрал и выложил в архивах на сотни терабайтов.
Размечать человеческими руками на этой стадии ничего не надо. Машинное обучение сделает всю магию, моделька освоит основные человеческие языки. Влияния отдельных людей или их групп на модель ещё нет.
-
Дообучение модели до нужного поведения. Тут есть такие термины как выравнивание [alignment], тонкая настройка, обучение с подкреплением на основе отзывов от людей [reinforcement learning from human feedback, RLHF] и так далее.
В процессе RLHF модель получает отзывы от реальных людей, которые ставят оценку её работы. Часто это выглядит так: низкооплачиваемый персонал ставит плюсики и минусики разным выводам от БЯМ. Этих литературных негров нанимают из англоговорящих стран, где стоимость труда на порядок ниже, чем в США — Кении, например.
Вариант языка одного человека называют идиолектом. Характерные особенности использования языка распространяются в са́мой мелкой ячейке общества — семье.
К примеру, Артемий Лебедев использует в речи прилагательное «запселый»/«пселый». Это слово встречается в литературных произведениях его матери Татьяны Толстой, но абсолютно нигде больше, ни в одном словаре. Можно ли найти одного из десяти детей Лебедева, если поискать по всем социальным сетям это слово?
![Частота употребления некоторых слов в аннотациях научных статей на PubMed по годам. arXiv:2406.07016 Частота употребления некоторых слов в аннотациях научных статей на PubMed по годам. arXiv:2406.07016](https://habrastorage.org/webt/t4/1r/ls/t41rlsxuux2dopoecy0tbtmrpy0.png)
Что уж говорить про отдельные страны! Единого английского языка не существует. В Индии английский язык другой, чем в Великобритании, хотя грамматически индийский английский от британского варианта не отличается. Американцы любят поржать с индийского выражения «do the needful», которое в британском английском когда-то встречалось много, но употребляемость потеряло.
![pshapira.net pshapira.net](https://habrastorage.org/webt/sn/sk/hx/snskhxfnmcif961apdmuxbmqiek.png)
Языковые модели обладают необычной любовью к некоторым словам и словосочетаниям. Из-за ChatGPT слова, популярные а Африке, внезапно наводняют жизнь англофонов других стран. Наверное, именно поэтому в последние два года неожиданно возросла частота «delve» в научных публикациях.
Даже если забыть про влияние дообучавших модель людей, у неё всё равно останется характерный лексикон из-за выравнивания. БЯМ тяготеют к поведению услужливого робота и соответствующим фразам.
Некоторые детекторы БЯМ так и работают: ищут ключевые слова, нехарактерные для людей.
Исследования на эту тему обычно рассматривают англоязычные слова. Однако БЯМ обладают фантастически хорошей способностью к переводу текстов. Внутри неё нужные ассоциации между словами уже составлены. Если используется зарубежный продукт (ChatGPT, Claude), слова нужно просто перевести на русский.
Итак, нам потребуется:
Составить словарик ключевых слов. Нужно выбрать такие, которые люди используют редко, а ИИ любит.
Записать их перевод на русский язык.
Сравнить частоту употребления этих слов в человеческих текстах и текстах от БЯМ.
Второй пункт проще отдать БЯМ. Поскольку мы работаем против модели, лучше спросить у неё самой, как переводится то или иное слово.
Кандидатов для первого пункта придётся искать самостоятельно или прибегать к чужим примерам:
Свой список содержит любая недавняя статья про использование ИИ в научных публикациях, к примеру, arXiv:2406.07016. Уже по верхам видны кандидаты «delve», «crucial», «potential», «these» и «significant». Если углубиться, вы можете найти больше слов этой статье и похожие публикации.
Специализированные блоги пытаются даже спекулировать, почему ChatGPT так любит слова по типу «tapestry» и «robust». Блог aiphrasefinder.com публиковал списки десятка и сотни любимых слов ИИ.
В репозитории GPT Slop лежат два файла, где представлены частые выражения от семейств БЯМ компаний OpenAI и Anthropic. Автор репозитория собирал в основном выражения из генерации художественной литературы и эротики. Более нейтральные фразы публикует блог aiphrasefinder.com.
Список нужно составлять по мере наращивания опыта поиска текстов от БЯМ. Важно не перестараться, поскольку часть слов-паразитов просто характерна для делового стиля. Маркеры должны быть в первую очередь редки в письме людей.
Хорошая новость! Многие модели дообучаются на выводе от ботов лидеров отрасли — OpenAI и Anthropic, и вообще, веб заражён выводами от этих моделей. (Кстати, из-за этого какая-нибудь Llama на вопрос «ты кто?» может признаться, что на связи ChatGPT.) Поэтому более новые БЯМ будут иметь схожий идиолект.
Длинный список русских слов-маркеров БЯМ я никогда не записывал, поскольку у меня не получалось их выделить в больши́х количествах. Если бы я составил такой список, он выглядел бы примерно так (порядок произвольный):
Русское слово |
Примечания |
Вероятное влияние из английского языка |
---|---|---|
Углубляться, вникать, погружаться, окунуться |
Самый известный маркер. Работает превосходно. |
delve |
Важно, важный, ключевой, существенный |
Только в случае чрезвычайно сильной любви к этим словам. |
crucial |
Значительно, значительный, существенно, существенный |
То же. |
significant |
Отправиться в путешествие |
БЯМ любят начинать введение обещанием «путешествия». Почти всегда перед «путешествием» будет аляповатый эпитет в тему. |
embark on a journey |
В заключение |
Окончание ответа БЯМ часто подводит итоги. Если текст содержит несколько генераций ответов БЯМ, заключений и начал будет много. |
in summary |
Сокровищница, клад |
Соперник «delve» в разрыве употребляемости между машиной и человеком. |
treasure trove |
Мир чего-либо |
Тогда, когда употреблено в значении «сфера», «область» и «пространство», но эти три слова почему-то избегаются. |
world of |
Как языковая модель, я |
Очевидно, что если в тексте, выдаваемом за человеческий, осталась эта фраза, то это грубый промах. |
As a language model I |
Поскольку речь идёт про ручной анализ, придётся читать текст, обращать внимание на такие слова, а потом комбинировать этот способ с остальными. Если в тексте просто переизбыток «важно», это не даёт автоматическую уверенность, что трудился ИИ.
Способ 2. По низкой калорийности текста
Тексты от БЯМ обладают отвратительно низкой калорийностью.
В ответ на промпт ChatGPT или Claude отвечает примерно так: до тысячи слов невнятного набора изречений, обобщений и разнообразных замечаний, а в конце небольшой вывод с попыткой ответить на вопрос.
Автоматизировать этот пункт не выйдет. Придётся вчитаться и задуматься, что тут вообще говорится.
Каких-либо общих соображений про этот этап у меня нет. Если нужно научиться отлавливать статьи или школьные сочинения от БЯМ, потребуется опыт и наработанный глаз на такие тексты. Просто задавайте любые повседневные вопросы ChatGPT или Claude — они бесплатны, обойти географические ограничения для регистрации нетрудно. Уже через неделю «почерк» БЯМ вам будет подсознательно известен.
Могу лишь дать пример. Я задал вопрос Claude Sonnet 3.5, одной из лучших из существующих БЯМ: «Какой максимальный дефицит калорий не приведет к снижению уровня тестостерона?»
![](https://habrastorage.org/webt/6p/wm/bj/6pwmbjyxekpift9be4f28gvvbk8.png)
В ответ я получил два нумерованных списка по 5 пунктов каждый и три абзаца текста. Текст начинается с нудных предупреждений:
Связь между дефицитом калорий и уровнем тестостерона сложна и может значительно различаться от человека к человеку. Не существует единого, универсально применимого дефицита калорий, который гарантированно не повлияет на уровень тестостерона. Тем не менее, я могу предоставить некоторые общие рекомендации, основанные на текущих исследованиях:
К ответу БЯМ приходит только где-то в конце, да и то число прямо не называет. В первом пункте второго нумерованного списка Claude говорит, что нужно «стремиться к умеренному дефициту в 20–25 % ниже калорий для поддержания веса».
Как отвечает человек? Да хоть вот так:
Не находись в дефиците калорий. Если у тебя дефицит калорий, твой уровень тестостерона в анализах будет ниже. Это ожидаемо.
Мне никто не затирает, что вообще-то ситуация разная — смело рубят с плеча. Человек имеет чётко сформированное мнение и его высказывает. Ответ можно хоть на плакат нанести, он звучит, как лозунг.
Так пишет популярный микроблогер, у которого каждый символ на счету:
Никогда не находись в дефиците выше, чем на 500 калорий
500 калорий дефицита — максимум!
Уйдёшь выше, и твоё тело перейдёт в режим выживания, и ему будет плевать на выработку Т
И дефицит в 500 калорий относится только к ТОЛСТЫМ людям.
Если у тебя в теле меньше 20 % жира, не делай дефицит выше 200–300 калорий
Ответ идёт сразу и в несколько слов. Этот индивид имеет претензию на фитнес-коуча, поэтому уточнение про «только для жирных» всё же даёт, но где-то в конце.
Помогут ли базовые навыки промптинга исправить ситуацию? Попробуем попросить модель вести себя более прямолинейно и отыграть персонажа.
![](https://habrastorage.org/webt/72/7v/fx/727vfxzsa0s21bdtzwba0qu5yaa.jpeg)
Claude Sonnet 3.5 всё равно выдаёт 7 абзацев текста, из которых 4–5 можно смело выкинуть. Хотя удалось добиться внятного ответа («300–500 килокалорий»), даже в этом случае не обошлось без ненужных предупреждений и определений, которых никто не просил.
Калорийность текста можно продолжать улучшать дополнительной работой с промптом, но уже очевидно, что проще написать ответ самому. Если нужно выявить хотя бы самый ленивый копипаст ChatGPT, достаточно оценить полезность и смысловую нагрузку.
Способ 3. По структуре и смыслу текста
Да, БЯМ обожают маркированные и нумерованные списки. Это все знают. Но насколько хорошо вы знакомы с их приёмами письма?
Следующий литературный эксперимент затеяла (archive.is/4Hvuc) газета New York Times. Сравните два фрагмента из этого эксперимента. Один из текстов написала Кертис Ситтенфелд, другой — БЯМ, которую попросили писать в стиле этой американской писательницы. Попробуйте угадать, какой где.
Когда мой рейс из Ла-Гуардии приземлился в Миннеаполисе в тот августовский день, первое сообщение, которое я получила, было от исполнительного директора некоммерческой организации, для которой я должна была проводить тренинг на следующий день. Она отменяла наш ужин из-за семейных обстоятельств. Второе сообщение было от моей подруги Дженни, которая просила меня посмотреть профиль парня по имени Джеймс в приложении для знакомств, которым мы обе пользовались, и сказать ей, был ли это тот самый Джеймс-который-не-задал-ни-одного-вопроса, с которым я ходила на свидание около Рождества. То свидание показалось мне такой пустой тратой вечера, что с тех пор я дала себе передышку от этого приложения.
Лидия всегда была практичной. Это было её отличительной чертой, качеством, которое поддерживало её жизнь в организованном порядке, как файлы на её столе или подушки на её диване. В 48 лет эта практичность стала её бронёй, защищающей её от безрассудных порывов, которым она могла бы поддаться в более молодые годы. И поэтому, когда она вошла в кофейню в тот душный июльский день, это было с той же осторожной надеждой, которую она применяла ко всему остальному в своей жизни.
Скрытый текст
When my flight from LaGuardia landed in Minneapolis on that August afternoon, the first text I received was from the executive director of the nonprofit I’d be holding the training for the next day, canceling our dinner because of a family emergency. The second text was from my friend Jenny asking me to look at the profile of a guy named James on the dating app we both used and to let her know if it was the same asked-not-one-question James I’d gone out with around Christmas. That date had felt like such a waste of an evening that I’d given myself a break from the app since.
Lydia had always been practical. It was her hallmark, the trait that kept her life organized in neat rows, like the files on her desk or the cushions on her sofa. At 48, this practicality had become her armor, protecting her from the reckless impulses that she might have indulged in during her younger years. And so, when she walked into the coffee shop on that sweltering July afternoon, it was with the same cautious optimism that she had applied to everything else in her life.
Для чистоты сравнения оба фрагмента я переводил не сам вольным стилем с неминуемыми улучшениями от себя, а отдал эту задачу Claude Sonnet 3.5, который склоняется к уровню подстрочника.
Как это ни странно, второй абзац написала языковая модель ChatGPT. Что, не ожидали, что БЯМ могут использовать базовые речевые приёмы членения предложений? Ну да, на стороне БЯМ 183 тысячи книг, включая восемь романов Ситтенфелд. Изобразить что-то в стиле писателя американских бестселлеров БЯМ в состоянии.
Однако попробуйте вчитаться и задуматься.
В первом фрагменте всё в целом нормально, стиль сохраняется, к сказанному вопросов нет. Во втором начинаются проблемки с самых первых предложений. Писавший будто не понимает, как правильно управляться с речевыми оборотами:
Идёт странноватый переход из «practical» в «organized». Это не совсем синонимы. Иногда практичен беспорядок. Например, до окончания ремонта нет смысла проводить уборку.
Документы собраны на её столе в определённом порядке. Это буквальная характеристика человека собранного. Удовлетворительный пример, хотя несколько предсказуемо.
Дальше какой-то полубред. Представлен сравнительный оборот «как подушки на её диване». Диваны так и устроены, что их подушки собраны в определённом порядке. Или речь про маленькие декоративные подушечки? Если да, то получается, что признак собранного человека — это не терять настолько крупные предметы по жилищу? Это крайне слабый критерий для человека, который organized, не так ли?
Часто ответ от БЯМ рассыпается к середине и к концовке ответа. Достаточно сравнить концовки обеих историй из NYT:
«Я пошла с ним на свидание импульсивно, в шутку, а потом случайно он мне всерьёз понравился. Он классный, мы пили пиво и танцевали до пота. Но я никогда не говорила ему, что я здесь в городе по работе, так что теперь я кидаю его в игнор, верно? Потому что, хотя кидать в игнор ужасно, что ещё мне остается делать? Задним числом все испортить?»
Когда Дженни вздохнула, вздох был каким-то нежным. «Если ты его кинешь в игнор», — сказала она, «это точно конец. Но если ты скажешь ему правду, возможно, это начало».
Скрытый текст
“I went out with him impulsively, as a lark, then I accidentally really liked him. He was great and we drank beer and danced sweatily. But I never told him I’m just in town for work, so now I ghost him, right? Because even though ghosting is horrible, what else am I supposed to do? Retroactively ruin things?”
When Jenny sighed, the sigh was somehow affectionate. “If you ghost him,” she said, “it’s definitely the end. But if you tell him the truth, maybe it’s the beginning.”
В тексте от человека текст сохраняет структуру на протяжении всего объёма. Более того, сразу хочется остаться и выяснить, чем закончится это первое свидание. Может ли это на самом деле быть началом какого-то сюжета? Откроется ли она мужику или навсегда забудет мелкий командировочный роман?
Поэтому со смесью храбрости и трепета Лидия решила принять неожиданное. Она связалась с Дэвидом, отправив простое сообщение: «Если ты все еще заинтересован, я бы хотела продолжить наш разговор».
Нажимая «отправить», Лидия почувствовала освобождение — маленький шаг к возвращению тех частей себя, которые она отложила в сторону. Она знала: что бы ни случилось дальше, она готова встретить это лицом к лицу, со своим непостоянством и всем остальным.
Скрытый текст
And so, with a mixture of courage and trepidation, Lydia decided to embrace the unexpected. She reached out to David, sending a simple message that read, “If you’re still interested, I’d love to continue our conversation.”
As she hit send, Lydia felt a sense of liberation — a small step towards reclaiming the parts of herself she had put on hold. She knew that whatever happened next, she was ready to face it, flip-flops and all.
Во втором случае БЯМ начала́ генерировать грамматически корректный словесный салат. Чувство неопределённости будущего тоже есть — предлагается даже «embrace the unexpected». Однако опытный глаз увидит, что это не работа писателя, а графомания от большой языковой модели, которая почему-то не может закончить свои страдания токеном окончания генерации <|endoftext|>
.
Впрочем, это совсем продвинутый уровень. В самом базовом приближении нужно обращать внимание на следующее:
Количество списков. БЯМ без отдельных просьб, будто по собственному желанию собирают информацию в списки от 3 до примерно 10 пунктов, маркированные чаще, чем нумерованные. Так модель дообучали себя вести.
Структура и черты всего ответа. ИИ любит расплывчатые высказывания и стереотипы. Если БЯМ сочиняет вымышленный мир, персонажи имеют типичные имена для своего культурно-исторического контекста. Эпитеты пошлы. В рассказах ChatGPT и Claude все фрукты сочные, эмоции противоречивые, а улыбки тёплые.
Грамотная речь и характерная длина предложений. БЯМ способны писать а-ля «я автор бестселлеров», если их об этом попросить, но даже тогда глупы и предсказуемы.
Отдельная пометка для тех, кто захочет этот набор соображений использовать с обратной целью. Обойти описанные способы легко. Нужно:
Убрать характерные слова и словосочетания от БЯМ.
Вылить из текста «воду». Резать придётся много.
Отредактировать формат, промптить смысл написанного вручную, брать только удачные фрагменты.
В итоге получится текст неотличимый от человеческого. Наверное, его даже детекторы не найдут, не только глаз человека. Вот только усилий потребуется не меньше, чем для написания текста с нуля.
БЯМ хороши как ассистенты. Ни в коем случае нельзя доверять им писать фрагменты длиннее абзаца и уж тем более не статьи. Лично я рекомендую просто задавать вопросы, на которые никто другой не ответит или которые не находятся в справочниках.
Как на русский лучше перевести «crew's mess», «public interest firm» и «don't hamburger this hot dog»? Как по-английски будет «гастроёмкость», «обойная мука» и «просека»? Чем отличается ℂ от ℝ², и можно ли добавлять в омлет толчёную скорлупу? Всё это — хорошие вопросы для ChatGPT и Claude.
Но ответы на даже самые элементарные вопросы приходится тщательно проверять. Машина слова генерирует, но ответственности за них не несёт.
Комментарии (26)
excoder
31.08.2024 21:32Попробуйте in-prompt learning, покажите в системном промпте пример ответа машины и ответы живого реддитора в количестве 3-4 примеров, и затребуйте чтобы он ответил как реддитор.
atomlib Автор
31.08.2024 21:32+3Это текст про самые простые методы выявления текстов от БЯМ. Писалось в пять предложений в чате для человека, который видел очевиднейшее творение ИИ, но ничего необычного не замечал. Затем объём немного разросся, и вот уже на чтение нужно минут десять. Возможно, кому-то ещё пригодится.
Я не сомневаюсь, что можно обмануть кого угодно, если постараться и подключить продвинутые техники промптинга, у названия которых даже перевода на русский нет. Но мне хотелось помочь выявить хотя бы самых ленивых копипастеров ChatGPT.
Baofu91
31.08.2024 21:32+9кроме того:
- в случае с русским языком — подозрительное количество англицизмов и фраз, по своему синтаксису явно рассчитанных на английский язык ("это было..." в начале предложений; изобилие отглагольных существительных с суф. -ени- и -ани- как следствие бездумного перевода)
- слишком равномерный и однообразный синтаксис: не слишком коротко, не слишком длинно; сложные предложения не более чем с 1-2 придаточными; коротких предложений мало;
- крайне редко используются чуть менее распространённые синтаксические конструкции — разные выразительные тире, авторские интонационные скобки (в неожиданных местах предложения), однородные причастные и деепричастные обороты или придаточные предложения; вводные, скажем, слова в нестандартных позициях и т.п.
CBET_TbMbI
Никогда не понимал графомании этих жпт. Их специально учат так отвечать? Или просто не могут научить отвечать лаконично?
Sap_ru
Они же цепи слов генерируют (причём из шума) , а не думают. Сгенерировать длинную цепь, которая в целом соответствует заданным критериям намного проще, чем короткую. В длинной цепочке модель в некотором роде "накидывает всякого, лишь бы общее направление выдерживать". В результате шум и мелкие галлюцинации теряются на общем фоне. Об этом в статье и говорится: в сгенерированном тексте всегда присутствуют элементы шума и галлюцинаций. А попытки избавиться от них при обучении неизбежно приводят к переобучению модели, шаблонным ответам, росту случаев генерации бреда/галлюцинаций и т.п. Потому и учат их на длинных текстах, и сами они, соответственно, склонны такое же генерировать. И в целом это пока выглядит как органичение технологии.
Robastik
Все как у людей, у которых они и учатся.
ITurchenko
Студент и блохи
Студент сельхоза выучил на экзамен только строение блохи. Тянет он билет — а там строение собаки. Вот он и начинает:
— Собака — животное на четырех лапах, покрыто шерстью. А в шерсти водятся блохи…И дальше про блох все что знает.
Препод: — Ладно, ладно. Расскажите нам о строении коровы.
— Ну, корова, это животное на четырех ногах, питается травой, покрыто шерстью. А вот в шерсти водятся блохи, ну и дальше по тексту.
— Ладно, хватит. Расскажите нам тогда про строение рыбы.
— Рыба живет в воде, шерсти у нее конечно нет, но вот если бы она у нее была, то в ней обязательно водились бы блохи…
Finesse
Можно добавить в конце промпта «напиши ответ одним абзацем не длиннее 50 слов», и нейронка выдаст лаконичный ответ.
VSAI
Хороший вопрос. У них слабые вычилительные мощности для создания плотного и ёмкого, или как сказал автор, коллорийного текста. Более того, LLM "сомневаются" в том, что отвечать надо коротко. Другими словами, пока у LLM мало речевой гибкости, сложного совмещение речевых конструкций. Это преодолимо.
P. S. Попробуйте сделать цепочку преобразования через суммирование характеристик содержания предложения без увеличения размера этого предложения путем изменение оборотов. ЧЕЛОВЕК справится, LLM нет. У них нет самостоятельного опыта и мощности. Если попросите, дам пример.
NikkiG
Ты диплом писал когда нибудь?))
MountainGoat
Специально учат. Если у GPT-хов всяких спросить "Напиши алгоритм сортировки пузырьком", он выдаст рабочий алгоритм с комментариями и к нему историческую справку и напоминание в проде так не делать. Повеление выдать только код работает, но не всегда, и не избавит вас от комментариев.
Тот же DeepCoder на это выдаст только голый код с однобуквенными названиями переменных. Потому что DeepCoder предназначен быть автодополнением в редакторе, а не говорилкой. Он может нехотя дать объяснение, но только если прямо повелеть.