Поліпшення штучного інтелекту у вирішенні проблем у змаганнях із кодування

Поліпшення штучного інтелекту у вирішенні проблем у змаганнях із кодування

інтерв'ю Здатності комерційних моделей великих мов вирішувати проблеми конкурентоспроможного програмування можна значно підвищити, ретельно керуючи процесами за допомогою розумної оперативної розробки.

Щоб продемонструвати це, ізраїльська компанія Codium AI створила AlphaCodium and випущений програмне забезпечення на GitHub цього місяця. AlphaCodium як така не є великою мовною моделлю. Натомість це метод, який покращує можливості вирішення проблем генеративних інструментів ШІ, таких як GPT-4, використовуючи те, що генеральний директор Ітамар Фрідман називає «потоковою інженерією».

По-перше, програмне питання передається в базову модель великої мови, і його просять описати та підсумувати проблему. Потім ця інформація вказує, як слід почати вирішення проблеми. AlphaCodium визначає речі, наприклад, якими мають бути вхідні та вихідні дані під час пошуку рішення. Усе це визначено природною мовою.

Потім модель починає генерувати код, який узгоджується з щойно описаними специфікаціями. Змагання з програмування, де претендентів просять написати код відповідно до специфікацій, зазвичай передбачають тести, які показують, що сценарій має виводити для певного введення. AlphaCodium генерує більше таких тестів, а потім запускає можливі рішення, щоб перевірити, чи код працює належним чином.

Якщо їй не вдається відповідати жодному з результатів, визначених у будь-якому з тестів, модель генерує різні рішення, доки вони не пройдуть усі тести або поки вона не виявиться невдалою. Помилки можуть виникати, коли його код не компілюється або просто неправильний.

Ви можете побачити різні етапи процесу проектування потоку на діаграмі нижче. Він значною мірою розділений на етап попередньої обробки, де система аналізує проблему природною мовою, і етап ітерації коду, де вона запускає можливі рішення у загальнодоступних тестах і тестах, згенерованих ШІ.

альфакодій

Усі широкі кроки, за якими AlphaCodium генерує код для вирішення проблем

«Ми не беремося за проблему, не йдемо до моделі і не говоримо їй: «Гей, будь ласка, згенеруй остаточне рішення», — сказав Фрідман Реєстр. «Ми просимо модель перевизначити цю проблему в пунктах». Її спрощення та розбиття речей на частини полегшує для моделі подальше генерування коду для різних частин алгоритму.

По суті, розробка потоку — це процедура, яка керує процесом вирішення проблеми моделі, розділяючи його на чітко визначені кроки. Спонукання «розділити згенерований код на невеликі підфункції зі значущими назвами та функціями», як нам сказали, призводить до зменшення кількості помилок і полегшує тестування та виправлення коду.

«Загалом ми витратили 95 відсотків нашого часу на розробку потоків і лише 5 відсотків на швидку розробку, і ми не змінювали підказки для кожного [кроку]», — додав Фрідман.

Інженери з Codium перевірили продуктивність своєї моделі на сотнях проблем, які використовувалися в частинах перевірки та тестування набору даних CodeForces, зібраного Google DeepMind два роки тому. Вони стверджують, що AlphaCodium краще вирішував проблеми кодування, ніж моделі AlphaCode і AlphaCode2 Google DeepMind.

У результатах, повідомлених в arXiv папір [PDF], AlphaCodium зміг правильно відповісти на 44 відсотки запитань порівняно з 24 відсотками AlphaCode, згенерувавши лише п’ять рішень порівняно з десятьма вибраними рішеннями AlphaCode для 107 проблем перевірки. Цікаво, що розрив скоротився, коли справа дійшла до 165 тестових задач, причому AlphaCodium розв’язав 29 відсотків у порівнянні з 28 відсотками AlphaCode.

AlphaCode вибирає десять найперспективніших рішень із десятків тисяч або сотень тисяч можливих сценаріїв, які він генерує, що робить його обчислювально інтенсивним.

«Ми зосередилися набагато більше на всьому потоці тестування», — сказав Фрідман. «Для [Google] вони так багато попрацювали над поколінням. Вони намагаються згенерувати сотні інших варіантів, а ми створюємо дуже мало рішень, але перевіряємо їх дуже добре, щоб керувати вдосконаленням коду».

AlphaCodium трохи кращий за останню модель Google DeepMind AlphaCode2, яка в 10,000 XNUMX разів ефективніша за свого попередника AlphaCode, додав він.

alphacodium_2

Як AlphaCodium порівнюється з іншими найсучаснішими моделями з точки зору точності та ефективності

Фрідман сказав, що він упевнений, що продуктивність AlphaCodium не пов’язана з витоком даних, оскільки модель, що лежить в її основі, навчена та перевірена на тих самих проблемах. Версія GPT-4, на якій працює AlphaCodium, навчалася на тексті, взятому з Інтернету, до вересня 2021 року, тоді як проблеми, на яких вона тестувала свою систему, були взяті з вищезгаданого набору даних CodeForces, який був опублікований набагато пізніше.

Краще порівняння «яблука з яблуком», яке оцінює процес проектування потоку, однак розглядає здатність GPT-4 вирішувати ті самі питання з використанням і без застосування AlphaCodium. Звичайний старий GPT-4 міг правильно відповісти лише на 19 і 12 відсотків завдань у наборах валідації та тестів відповідно, у порівнянні з варіантом на основі AlphaCodium 44 і 29 відсотками.

Коротше кажучи, здається, що реалізація ретельного конвеєра, який генерує додаткові дані для керування процесом генерації коду та покращення процесу тестування, може бути ефективнішим, ніж спроба навчити велику мовну модель з нуля.

Codium нещодавно випустив новий інструмент для підтримки розробників Python, які тепер можуть викликати AlphaCodium для безпосереднього вирішення проблеми кодування у своїй IDE. Ви можете грати з ним тут. ®

Часова мітка:

Більше від Реєстр