코딩 대회에서 문제를 해결하는 데 AI를 더 효과적으로 활용

코딩 대회에서 문제를 해결하는 데 AI를 더 효과적으로 활용

인터뷰 경쟁력 있는 프로그래밍 문제를 해결하는 상용 대형 언어 모델의 능력은 영리하고 신속한 엔지니어링을 통해 프로세스를 주의 깊게 안내함으로써 크게 향상될 수 있습니다.

이를 입증하기 위해 이스라엘에 본사를 둔 Codium AI는 AlphaCodium을 구축하고 출시 이번 달 GitHub의 소프트웨어. AlphaCodium은 그 자체로는 대규모 언어 모델이 아닙니다. 대신 Itamar Friedman CEO가 "흐름 엔지니어링"이라고 부르는 것을 사용하여 GPT-4와 같은 생성 AI 도구의 문제 해결 능력을 향상시키는 방법입니다.

먼저, 프로그래밍 질문이 기본 대형 언어 모델에 제공되고 문제를 설명하고 요약하도록 요청됩니다. 그런 다음 해당 정보는 문제 해결을 시작하는 방법을 안내합니다. AlphaCodium은 솔루션을 제시할 때 입력과 출력이 무엇인지 등을 정의합니다. 이 모든 것은 자연어로 지정됩니다.

그런 다음 모델은 방금 설명한 사양에 맞는 코드를 생성하기 시작합니다. 경쟁자에게 사양에 맞게 코드를 요구하는 프로그래밍 대회에서는 일반적으로 주어진 입력에 대해 스크립트가 무엇을 출력해야 하는지 보여주는 테스트를 제공합니다. AlphaCodium은 이러한 테스트 사례를 더 많이 생성한 다음 가능한 솔루션을 실행하여 코드가 예상대로 작동하는지 확인합니다.

테스트에 정의된 출력과 일치하지 않는 경우 모델은 모든 테스트를 통과하거나 실패할 때까지 다른 솔루션을 생성합니다. 코드가 컴파일되지 않거나 잘못된 경우 오류가 발생할 수 있습니다.

아래 다이어그램에서 흐름 엔지니어링 프로세스의 다양한 단계를 볼 수 있습니다. 이는 크게 시스템이 문제를 자연어로 분석하는 전처리 단계와 공개 및 AI 생성 테스트에 대해 가능한 솔루션을 실행하는 코드 반복 단계로 나뉩니다.

알파코듐

AlphaCodium이 문제를 해결하기 위한 코드를 생성하도록 안내하는 모든 광범위한 단계

"우리는 문제를 받아들이고 모델에게 가서 '최종 솔루션을 생성해 주세요'라고 말하지 않습니다."라고 Friedman은 말했습니다. 등록. "우리는 모델에게 이 문제를 중요 항목으로 다시 정의해 줄 것을 요청합니다." 이를 단순화하고 여러 덩어리로 나누면 모델이 나중에 알고리즘의 다양한 부분에 대한 코드를 생성하는 것이 더 쉬워집니다.

기본적으로 흐름 엔지니어링은 모델의 문제 해결 프로세스를 잘 정의된 단계로 분할하여 안내하는 절차입니다. 생성된 코드를 의미 있는 이름과 기능을 갖춘 작은 하위 함수로 나누라는 메시지를 표시하면 버그가 줄어들고 코드를 더 쉽게 테스트하고 수정할 수 있습니다.

“우리는 기본적으로 흐름 엔지니어링에 시간의 95%를 소비하고 프롬프트 엔지니어링에 5%만 소비했으며 각 [단계]에 대한 프롬프트를 변경하지 않았습니다.”라고 Friedman이 덧붙였습니다.

Codium의 엔지니어들은 2년 전 Google DeepMind에서 편집한 CodeForces 데이터 세트의 검증 및 테스트 부분에 사용된 수백 가지 문제에 대해 모델 성능을 테스트했습니다. 그들은 AlphaCodium이 Google DeepMind의 AlphaCode 및 AlphaCodeXNUMX 모델보다 코딩 문제를 더 잘 해결했다고 주장합니다.

arXiv에 보고된 결과 종이 [PDF], AlphaCodium은 AlphaCode의 44%에 비해 질문의 24%에 정확하게 대답할 수 있었으며, 107개의 검증 문제에 대해 AlphaCode가 선택한 165개의 솔루션과 비교하면 단 29개의 솔루션만 생성할 수 있었습니다. 흥미롭게도 28개 테스트 문제에서 AlphaCodium의 해결률은 XNUMX%로 AlphaCode의 XNUMX%에 비해 격차가 좁아졌습니다.

AlphaCode는 생성되는 수만 또는 수십만 개의 가능한 스크립트 중에서 가장 유망한 10개의 솔루션을 선택하여 실행에 계산 집약성을 부여합니다.

Friedman은 "우리는 전체 테스트 흐름에 훨씬 더 중점을 두었습니다."라고 말했습니다. “[Google]의 경우, 그들은 그 세대에 대해 정말 많은 일을 했습니다. 그들은 수백 가지의 다른 옵션을 생성하려고 시도하고 우리는 거의 솔루션을 생성하지 않지만 코드 개선을 안내하기 위해 실제로 잘 테스트합니다.”

AlphaCodium은 Google DeepMind의 최신 AlphaCode2 모델보다 약간 더 뛰어나며 이전 AlphaCode보다 10,000배 더 효율적이라고 그는 덧붙였습니다.

알파코듐_2

정확성과 효율성 측면에서 AlphaCodium이 다른 최첨단 모델과 비교되는 방식

프리드먼은 AlphaCodium의 성능이 데이터 유출로 인한 것이 아니라고 확신한다고 말했습니다. 기본 모델은 동일한 문제에 대해 훈련되고 테스트되었습니다. AlphaCodium을 지원하는 GPT-4 버전은 2021년 XNUMX월까지 인터넷에서 스크랩한 텍스트로 교육을 받은 반면, 시스템을 테스트한 문제는 훨씬 나중에 공개된 앞서 언급한 CodeForces 데이터 세트에서 가져왔습니다.

그러나 흐름 엔지니어링 프로세스를 평가하는 더 나은 비교는 AlphaCodium을 적용하거나 적용하지 않고 동일한 문제를 해결하는 GPT-4의 능력을 살펴보는 것입니다. AlphaCodium 기반 변형의 4%와 19%에 비해 기존 GPT-12는 검증 및 테스트 세트의 문제에 대해 각각 44%와 29%만 정확하게 답변할 수 있었습니다.

간단히 말해서, 코드 생성 방법을 안내하고 테스트 프로세스를 개선하기 위해 추가 데이터를 생성하는 신중한 파이프라인을 구현하는 것이 대규모 언어 모델을 처음부터 훈련하려고 시도하는 것보다 더 효과적일 수 있는 것으로 보입니다.

Codium은 최근 AlphaCodium을 호출하여 IDE의 코딩 문제를 직접 해결할 수 있는 Python 개발자를 지원하는 새로운 도구를 출시했습니다. 당신은 그것을 가지고 놀 수 있습니다 여기. ®

타임 스탬프 :

더보기 등록