Your bank is using your money. You’re getting the scraps.WATCH FREE

Обучение с подкреплением становится революционным методом для модульного тестирования в разработке программного обеспечения

В этом посте:

  • В больших языковых моделях (LLM) возникают проблемы с генерацией точных модульных тестов из-за «галлюцинаций»
  • Обучение с подкреплением, представляющее собой метод проб и ошибок, становится все более эффективным решением для автоматизации написания модульных тестов.
  • Diffblue Cover, используя обучение с подкреплением, может автономно создавать модульные тесты, превосходя LLM-ы в сложных задачах тестирования.

В мире разработки программного обеспечения точность и аккуратность имеют первостепенное значение. Написание надежных модульных тестов — важнейший шаг для обеспечения надежности и функциональности программных приложений. Хотя большие языковые модели ( LLM ), такие как ChatGPT, поразили сообщество ИИ своим лингвистическим мастерством, когда дело доходит до сложной задачи модульного тестирования, появился новый претендент, предлагающий более точное и экономически эффективное решение: обучение с подкреплением.

Проблема галлюцинаций при LLM

Большие языковые модели, безусловно, произвели революцию в обработке естественного языка, предлагая высокоточные и контекстно релевантные ответы. Однако они не лишены ограничений. Одна из ключевых проблем, преследующих большие языковые модели, — это феномен галлюцинации, когда они генерируют текст, который, будучиmaticправильным и семантически правдоподобным, в конечном итоге является неверным или бессмысленным. Это ограничение вызывает опасения у экспертов.

Обучение с подкреплением против обучения с использованием линейных моделей

Дискуссия об эффективности обучения с подкреплением по сравнению с большими языковыми моделями в решении задач модульного тестирования продолжается. Некоторые эксперты, в том числе Илья Суцкевер из OpenAI, считают, что обучение с подкреплением в сочетании с обратной связью от человека может устранить «галлюцинации» больших языковых моделей. Однако другие, такие как Ян Лекун из Meta и Джефф Хинтон, ранее работавший в Google, утверждают, что фундаментальные недостатки больших языковых моделей делают их менее подходящими для этой задачи.

Модульное тестирование — важнейший аспект разработки программного обеспечения, гарантирующий корректную работу отдельных компонентов приложения. Оно не только обеспечивает точность кода, но и экономит время и повышает производительность. Хотя LLM-программы могут предлагать фрагменты кода для тестирования, они часто отдают приоритет обобщению, а не точности, оставляя разработчикам проверку эффективности сгенерированного кода.

GitHub Copilot, работающий на основе производной GPT-3 от OpenAI, предлагает варианты кода для модульного тестирования, но не генерирует тесты напрямую. Он предоставляет разработчикам фрагменты кода для тестирования различных сценариев, служа ценной отправной точкой для написания всеобъемлющих модульных тестов. Однако Copilot не заменяет комплексную стратегию тестирования, поскольку человеческий контроль по-прежнему необходим.

См. также  Litecoin : LTC пробивает отметку в 170 долларов, цель — 180 долларов?

Представляем TiCoder

Для решения проблем модульного тестирования исследователи из Microsoft Research, Пенсильванского университета и Калифорнийского университета в Сан-Диего разработали TiCoder (Test-driven Interactive Coder). Этот инновационный инструмент использует алгоритмы обработки естественного языка и машинного обучения, чтобы помочь разработчикам в создании модульных тестов.

TiCoder взаимодействует с разработчиками, задавая вопросы, чтобы уточнить понимание их намерений. Затем он предлагает варианты и автозаполнение на основе контекста, синтаксиса и языка кода. Кроме того, TiCoder генерирует тестовые примеры и предлагает утверждения, упрощая процесс модульного тестирования.

И Copilot, и TiCoder, наряду с другими инструментами на основе LLM, ускоряют создание модульных тестов. Однако они выступают в роли помощников для программистов, которым необходимо проверять и дорабатывать их работу. Эти инструменты повышают производительность, но не заменяют человеческий опыт в процессе разработки программного обеспечения.

Джефф Хинтон, видный деятель в области искусственного интеллекта, недавно покинувший Google, подчеркивает важность обучения методом проб и ошибок. Он проводит параллель с тем, как люди учатся играть в такие виды спорта, как баскетбол — посредством практики и экспериментов. Обучение с подкреплением, мощный метод ИИ, соответствует этой концепции и продемонстрировал исключительные результаты в таких задачах, как игра в игры.

Обложка Diffblue: Пионер обучения с подкреплением

Одним из ярких примеров применения обучения с подкреплением является Diffblue Cover. Этот инновационный продукт использует обучение с подкреплением для автономной генерации исполняемых модульных тестов без участия человека. Он обладает потенциалом для автоматизации сложных и подверженных ошибкам задач тестирования в больших масштабах.

См. также:  Отмыватели криптовалюты: Binance сыграла ключевую роль в аресте группы отмывателей в Украине

Подход Diffblue Cover заключается в поиске в огромном пространстве возможных методов тестирования,maticнаписании тестового кода для каждого метода и выборе наиболее подходящего теста на основе различных критериев, включая покрытие тестами и стиль кодирования. Этот инструмент на основе искусственного интеллекта может создавать тесты для каждого метода за считанные секунды и предоставлять наилучший тест для модуля кода всего за одну-две минуты.

Методология Diffblue Cover схожа с AlphaGo, системой DeepMind для игры в го. Обе системыdentкритически важные области в обширном пространстве поиска и используют обучение с подкреплением для принятия обоснованных решений. В случае Diffblue Cover это включает в себя генерацию методов модульного тестирования и выбор наиболее эффективных тестов посредствомmatic процесса.

Ограничения LLM

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

Хотя крупные языковые модели, такие как ChatGPT, привлекли внимание своей беглостью речи и объемом знаний, они могут быть не идеальным выбором для точных задач, таких как модульное тестирование в разработке программного обеспечения. Обучение с подкреплением стало более точным и экономически эффективным решением, демонстрируя свой потенциал для революционных изменений в этой области. 

Поскольку спрос на надежность программного обеспечения продолжает расти, интеграция обучения с подкреплением в процессы тестирования может стать значительным шагом вперед в сфере разработки программного обеспечения.

Самые умные криптоаналитики уже читают нашу рассылку. Хотите присоединиться? Вступайте в их ряды .

Поделиться ссылкой:

Предупреждение. Предоставленная информация не является торговой рекомендацией. Cryptopolitan не несет ответственности за любые инвестиции, сделанные на основе информации, представленной на этой странице. Мы настоятельно tron провести независимое dent и/или проконсультироваться с квалифицированным специалистом, прежде чем принимать какие-либо инвестиционные решения.

Самые читаемые

Загрузка самых читаемых статей...

Будьте в курсе новостей криптовалютного рынка, получайте ежедневные обновления на свою электронную почту

Выбор редактора

Загрузка статей, выбранных редактором...

- Криптовалютная рассылка, которая поможет вам быть в курсе событий -

Рынки быстро меняются.

Мы двигаемся быстрее.

Подпишитесь на Cryptopolitan Daily и получайте своевременные, точные и актуальные аналитические материалы о криптовалютах прямо на свою электронную почту.

Присоединяйтесь прямо сейчас и
ничего не пропустите.

Заходите. Получайте достоверную информацию.
Опережайте события.

Подпишитесь на CryptoPolitan