Підрозділ IBM з досліджень штучного інтелекту (ШІ) представив набір даних з 14 млн вибірок для розробки моделей машинного навчання, які можуть допомогти в задачах програмування. Набір даних, який отримав назву Project CodeNet, отримав свою назву від ImageNet, знаменитого сховища помічених фотографій, яке зробило революцію в комп’ютерному зорі і глибокому навчанні.
Програмісти відкривають нові проблеми і досліджують різні рішення, використовуючи безліч механізмів свідомого і підсвідомого мислення. Більшість алгоритмів машинного навчання вимагають чітко визначених завдань і великої кількості анотованих даних для розробки моделей, які можуть вирішувати ті ж проблеми.
Експертним співтовариством було докладено багато зусиль для створення наборів даних і тестів для розробки та оцінки систем «ШІ для коду». Але, з огляду на творчий і відкритий характер розробки програмного забезпечення, дуже складно створити ідеальний набір даних для програмування. За допомогою Project CodeNet дослідники IBM спробували створити багатоцільовий датасет, який можна використовувати для навчання моделей машинного навчання різним завданням. Творці CodeNet описують його як «дуже великомасштабний, різноманітний і високоякісний набір даних для прискорення алгоритмічних досягнень в області ШІ для коду».
Набір даних містить 14 млн прикладів з 500 млн рядків коду, написаних на 55 різних мовах програмування. Зразки кодів були отримані з представлених майже 4000 завдань, розміщених на онлайн-платформах кодування AIZU і AtCoder. Приклади коду включають як правильні, так і неправильні відповіді на поставлені завдання.
Теж цікаво:
- Габбл перейшов у безпечний режим через програмну помилку бортового комп’ютера
- Чергова біда CD Projekt: Хакери загрожують злити в мережу вихідні коди ігор
Одна з ключових особливостей CodeNet – це кількість анотацій, доданих до прикладів. Кожне із завдань кодування, включених в набір даних, має текстовий опис, а також час процесора і обмеження пам’яті. Кожна відправка коду містить дюжину частин інформації, включаючи мову, дату відправки, розмір, час виконання, прийняття і типи помилок. Дослідники з IBM також доклали величезних зусиль, щоб забезпечити збалансованість набору даних за різними параметрами, включаючи мову програмування, прийнятність і типи помилок.
CodeNet – не єдиний набір даних для навчання моделей машинного навчання завданням програмування. Але є кілька характеристик, які виділяють його. По-перше, це величезний розмір набору даних, включаючи кількість зразків і різноманітність мов. Але, можливо, важливіші метадані, які йдуть зі зразками коду. Багаті анотації, додані в CodeNet, роблять його придатним для різноманітного набору завдань на відміну від інших наборів даних кодування, які спеціалізуються на конкретних завданнях програмування.
This is mind blowing.
With GPT-3, I built a layout generator where you just describe any layout you want, and it generates the JSX code for you.
W H A T pic.twitter.com/w8JkrZO4lk
— Sharif Shameem (@sharifshameem) July 13, 2020
Є кілька способів використання CodeNet. Один з них – мовний переклад. Оскільки кожна задача кодування в наборі даних містить представлення різних мов програмування, фахівці з даними можуть використовувати її для створення моделей машинного навчання, які переводять код з однієї мови на іншу. Це може бути зручно для організацій, які хочуть перенести старий код на нові мови і зробити їх доступними для нових поколінь програмістів.
Читайте також:
- IBM представила першу в світі технологію виробництва 2-нм чипів
- IBM розробляє штучний інтелект, щоб винайти нові антибіотики
Традиції та спадковість мають прайювати разом з іншим мисленням, з наймолодшими поколіннями нейроподібних алгоритмів та ML- методами постановки задач, взаємно покращуючи один одного
З часом рівень програмістів буде ще більше знижуватись (в порівнянні з теперішнім). Тобто можна буде на “говно-мові” написати косий, кривий код. А далі машина оптимізує, і навиході можна буде отримати оптимізований код професійного Ассемблер програміста (або навіть краще).