Перетяжка, Премия ТПрогер, 13.11
Перетяжка, Премия ТПрогер, 13.11
Перетяжка, Премия ТПрогер, 13.11

Как я выбирал лучшего ИИ-кодера с помощью «бойцовского клуба» для нейросетей

Как я использовал платформу LLM Arena для выбора лучшего ИИ-кодера, сравнивая нейросети в "слепых" тестах

314 открытий4К показов
Как я выбирал лучшего ИИ-кодера с помощью «бойцовского клуба» для нейросетей

Всем привет! Меня зовут Алексей, я Python-разработчик. Как и многие в нашей сфере, трудно представить свою работу без проверки кода. Недавно я стал доверять некоторые задачи большим языковым моделям. Однако, в последнее время меня не покидало ощущение так называемого «парадокса выбора». Моделей выходит много, и каждая обещает «революцию». Свихнуться можно.

Недавно я наткнулся на проект LLM Arena, и он кардинально изменил мой подход к выбору ИИ-ассистента. Это не очередная модель, а платформа для их сравнения, которую я решил испытать на реальной задаче.

Задача: Укрощение монстра вложенности

В моем пет-проекте возникла необходимость написать скрипт для обработки данных. У меня была папка с сотнями JSON-файлов, каждый из которых имел сложную и не всегда предсказуемую вложенную структуру.

Требовалось:

  1. Написать на Python скрипт, который рекурсивно обходит директорию.
  2. Читает каждый JSON-файл.
  3. «Выравнивает» (flatten) вложенную структуру в одноуровневый словарь. Например, {'user': {'address': {'city': 'N'}}, 'id': 123} должно превратиться в {'user_address_city': 'N', 'id': 123}.
  4. Корректно обрабатывает возможные ошибки, например, пропущенные ключи или битые файлы.
  5. Собирает все данные в единый CSV-файл для дальнейшего анализа в Pandas.

Я мог бы написать это сам, но был уверен, что потрачу пару часов на отладку и поиск самого элегантного решения. Плюс я много слышал про «вайб кодинг», поэтому идеальный кандидат для делегирования – ИИ. Но кого выбрать?

Выход на Арену

Вместо того чтобы идти в привычный ChatGPT, я открыл LLM Arena. Интерфейс до смешного прост: одно поле для ввода промпта. Никаких настроек, никакой истории чата. Ты просто бросаешь свою задачу.

Я сформулировал свой промпт максимально подробно, описав структуру JSON, желаемый результат и требования к обработке ошибок. Через несколько секунд передо мной появились два ответа: «Модель А» и «Модель Б». Никаких имен, никаких логотипов. Только чистый код.

Раунд 1:

  • Модель А предложила вполне рабочий вариант. Она использовала рекурсивную функцию для выравнивания словаря. Код был правильным, но выглядел немного «топорно». Имена переменных были не самыми очевидными, а обработка ошибок сводилась к общему try-except pass, что я не очень люблю.
  • Модель Б подошла к задаче изящнее. Она тоже использовала рекурсию, но ее функция была компактнее и читаемее. Для соединения ключей она использовала os.path.join-подобный подход, что было умным решением. Самое главное, она добавила осмысленные комментарии и использовала модуль logging для записи ошибок в отдельный файл.

Выбор был очевиден. Я нажал кнопку «Модель Б лучше»

Я повторил эксперимент еще несколько раз, немного изменяя промпт: «А теперь добавь прогресс-бар с помощью tqdm», «Модифицируй скрипт, чтобы он принимал путь к папке как аргумент командной строки».

Каждый раз я получал две анонимные версии кода и выбирал ту, что казалась мне более профессиональной, эффективной или просто питоничной. Иногда оба ответа были плохими, иногда они были одинаково хороши.

После нескольких раундов я заглянул в лидерборд. И тут меня ждал инсайт. Модели, которые я раз за разом выбирал как «Модель Б», стабильно оказывались в топе рейтинга — GPT-4o, Claude 3 Opus. А те, что часто генерировали «сырой» код, находились ниже. Мой субъективный выбор разработчика совпал с коллективным мнением тысяч других пользователей. Меня это очень порадовало.

Да, продукт ещё сыроват, но для своих задачек мне было интересно сравнить результаты. Из плюсов, мне понравился эффект отсутствия предвязтости. Когда ты не знаешь, отвечает тебе хваленый GPT-4 или какая-нибудь опенсорсная модель, ты оцениваешь только результат. Никакого хайпа или эффекта бренда. Также открыл для себя много нового. Понял, что некоторые менее известные модели на удивление хорошо справляются с конкретными задачами по кодингу, хоть и проигрывают в общем зачёте. Более того, видя два разных подхода к одной и той же проблеме, я невольно анализировал, почему один лучше другого. Это заставляет мозг работать и подмечать новые трюки и паттерны. Ну и это просто весело! Мне показалось, что геймификация и присутствие «битвы» делает процесс увлекательным. Это не просто работа, а небольшое соревнование.

Конечно, есть и недостатки. Например, отсутствие контекста. LLM Arena не предназначена для долгой, итеративной работы. У неё нет памяти. Каждый запрос, по сути, новая, изолированная битва. Для сложного проекта, где нужно держать в голове весь контекст, она не подойдет. На Арене очень неудобный рабочий процесс. Это не плагин для IDE. Приходится постоянно копировать промпт, а затем код. Это инструмент для оценки, а не для интегрированной разработки (плак-плак).

Вернусь ли я?

LLM Arena не заменит мне Copilot в VS Code или отдельную вкладку с ChatGPT и уж точно не даст мне желаемого результата как Gemini для длительных диалогов. Но она заняла свою уникальную и очень важную нишу в моём наборе инструментов.

Интересно использовать продукт для аудита. Когда выходит новая громкая модель, я не буду читать маркетинговые статьи. Я пойду на Арену и посмотрю, как она справляется с моими задачами вслепую.

Буду пробовать её для более сложных и атомарных задач. Когда мне нужно не просто «рабочее», а наилучшее решение для конкретной функции или алгоритма, я брошу его на Арену, чтобы получить два независимых «мнения».

Ну и хочу оставаться в тонусе. Это отличный способ держать руку на пульсе и видеть, как развиваются технологии, оценивая их по самому честному критерию – качеству результата.

Если вы, как и я, устали от хайпа и хотите понять, какой ИИ-инструмент действительно лучший для вас, дайте LLM Arena шанс. Это не просто сайт, мне показалось, что это некий беспристрастный судья Дредд среди кричащих о том, что они — чемпионы, моделей.

Следите за новыми постами
Следите за новыми постами по любимым темам
314 открытий4К показов