інтерв'ю Здатності комерційних моделей великих мов вирішувати проблеми конкурентоспроможного програмування можна значно підвищити, ретельно керуючи процесами за допомогою розумної оперативної розробки.
Щоб продемонструвати це, ізраїльська компанія Codium AI створила AlphaCodium and випущений програмне забезпечення на GitHub цього місяця. AlphaCodium як така не є великою мовною моделлю. Натомість це метод, який покращує можливості вирішення проблем генеративних інструментів ШІ, таких як GPT-4, використовуючи те, що генеральний директор Ітамар Фрідман називає «потоковою інженерією».
По-перше, програмне питання передається в базову модель великої мови, і його просять описати та підсумувати проблему. Потім ця інформація вказує, як слід почати вирішення проблеми. 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 не пов’язана з витоком даних, оскільки модель, що лежить в її основі, навчена та перевірена на тих самих проблемах. Версія GPT-4, на якій працює AlphaCodium, навчалася на тексті, взятому з Інтернету, до вересня 2021 року, тоді як проблеми, на яких вона тестувала свою систему, були взяті з вищезгаданого набору даних CodeForces, який був опублікований набагато пізніше.
Краще порівняння «яблука з яблуком», яке оцінює процес проектування потоку, однак розглядає здатність GPT-4 вирішувати ті самі питання з використанням і без застосування AlphaCodium. Звичайний старий GPT-4 міг правильно відповісти лише на 19 і 12 відсотків завдань у наборах валідації та тестів відповідно, у порівнянні з варіантом на основі AlphaCodium 44 і 29 відсотками.
Коротше кажучи, здається, що реалізація ретельного конвеєра, який генерує додаткові дані для керування процесом генерації коду та покращення процесу тестування, може бути ефективнішим, ніж спроба навчити велику мовну модель з нуля.
Codium нещодавно випустив новий інструмент для підтримки розробників Python, які тепер можуть викликати AlphaCodium для безпосереднього вирішення проблеми кодування у своїй IDE. Ви можете грати з ним тут. ®
- Розповсюдження контенту та PR на основі SEO. Отримайте посилення сьогодні.
- PlatoData.Network Vertical Generative Ai. Додайте собі сили. Доступ тут.
- PlatoAiStream. Web3 Intelligence. Розширення знань. Доступ тут.
- ПлатонЕСГ. вуглець, CleanTech, Енергія, Навколишнє середовище, Сонячна, Поводження з відходами. Доступ тут.
- PlatoHealth. Розвідка про біотехнології та клінічні випробування. Доступ тут.
- джерело: https://go.theregister.com/feed/www.theregister.com/2024/02/19/codium_ai_interview/
- : має
- :є
- : ні
- :де
- $UP
- 10
- 12
- 19
- 2021
- 24
- 28
- 29
- 7
- a
- здібності
- здатність
- Здатний
- точність
- доданий
- Додатковий
- проти
- назад
- AI
- алгоритм
- Вирівнює
- ВСІ
- an
- аналізи
- та
- відповідь
- будь-який
- з'являється
- Застосування
- виникати
- AS
- запитати
- запитувач
- оцінює
- At
- заснований
- В основному
- BE
- було
- починати
- починається
- нижче
- Краще
- Біт
- Підвищений
- Розрив
- широкий
- помилки
- побудований
- але
- by
- call
- Виклики
- прийшов
- CAN
- обережний
- обережно
- випадків
- Генеральний директор
- зміна
- перевірка
- вибраний
- стверджувати
- CO
- код
- Кодування
- майбутній
- комерційний
- порівняний
- порівняння
- Змагання
- конкурентоспроможний
- скомпільований
- обчислювально
- впевнений
- правильно
- може
- дані
- витоку даних
- набір даних
- Deepmind
- певний
- Визначає
- демонструвати
- описувати
- описаний
- розробників
- схема
- DID
- різний
- безпосередньо
- ділити
- байдуже
- Дон
- два
- кожен
- легше
- Ефективний
- ефективний
- Машинобудування
- Весь
- помилки
- очікуваний
- зазнає невдачі
- Fed
- кілька
- менше
- остаточний
- п'ять
- виправляти
- потік
- увагу
- для
- від
- функціональність
- розрив
- породжувати
- генерується
- генерує
- породжує
- покоління
- генеративний
- Генеративний ШІ
- GitHub
- даний
- Go
- керівництво
- Гід
- керівництво
- he
- Як
- Однак
- HTTPS
- Сотні
- if
- реалізації
- удосконалювати
- поліпшення
- поліпшується
- in
- інформація
- вхід
- витрати
- замість
- інтернет
- в
- isn
- Ізраїль
- IT
- ітерація
- ЙОГО
- JPG
- просто
- етикетка
- мова
- великий
- в значній мірі
- пізніше
- останній
- Веде за собою
- витік
- як
- шукати
- РОБОТИ
- Робить
- управляти
- матч
- значущим
- метод
- модель
- Моделі
- місяць
- більше
- більш ефективний
- найбільш
- багато
- Імена
- Природний
- Нові
- зараз
- of
- Старий
- on
- тільки
- Опції
- or
- Інше
- наші
- з
- вихід
- виходи
- частини
- проходити
- для
- відсотків
- продуктивність
- фаза
- трубопровід
- одноколірний
- plato
- Інформація про дані Платона
- PlatoData
- Play
- будь ласка
- точок
- це можливо
- Живлення
- попередник
- Проблема
- вирішення проблем
- проблеми
- процедура
- процес
- процеси
- Програмування
- перспективний
- підказок
- забезпечувати
- громадськість
- Python
- питання
- питань
- RE
- насправді
- нещодавно
- переосмислити
- випущений
- Повідомляється
- відповідно
- результати
- прогін
- пробіжки
- s
- Зазначений
- то ж
- подряпати
- сценарій
- scripts
- побачити
- Вересень
- комплект
- набори
- Короткий
- Повинен
- показ
- істотно
- спрощення
- невеликий
- So
- Софтвер
- рішення
- Рішення
- ВИРІШИТИ
- Розв’язування
- специфікації
- зазначений
- відпрацьований
- розкол
- Стажування
- впроваджений
- Крок
- заходи
- підсумовувати
- підтримка
- система
- Приймати
- прийняті
- сказати
- десять
- тензор
- terms
- тест
- перевірений
- Тестування
- Тести
- текст
- ніж
- Що
- Команда
- їх
- Їх
- потім
- Ці
- вони
- речі
- це
- ті
- хоча?
- тисячі
- через
- час
- до
- сказав
- інструмент
- інструменти
- поїзд
- навчений
- намагатися
- намагається
- два
- типово
- що лежить в основі
- до
- використовуваний
- використання
- перевірка достовірності
- варіант
- перевірка
- версія
- дуже
- було
- we
- ДОБРЕ
- добре визначений
- були
- Що
- коли
- в той час як
- в той час як
- ВООЗ
- з
- без
- Work
- робочий
- Неправильно
- років
- Ти
- зефірнет