제퍼넷 로고

LLM 추론 강화: 코드 프롬프트 체인 공개 – KDnuggets

시간

LLM 추론 강화: 코드 프롬프트 체인 공개
작성자가 DALL•E 3을 사용하여 생성한 이미지
 

주요 요점

  • CoC(Chain of Code)는 언어 모델과 상호 작용하는 새로운 접근 방식으로, 코드 작성과 선택적 코드 에뮬레이션의 혼합을 통해 추론 능력을 향상시킵니다.
  • CoC는 논리, 산술, 언어 작업, 특히 이러한 기술의 조합이 필요한 작업에서 언어 모델의 기능을 확장합니다.
  • CoC를 사용하면 언어 모델이 코드를 작성하고 컴파일할 수 없는 부분을 에뮬레이션하여 복잡한 문제를 해결하는 고유한 접근 방식을 제공합니다.
  • CoC는 크고 작은 LM 모두에 대한 효율성을 보여줍니다.

핵심 아이디어는 LM이 프로그램의 언어 하위 작업을 컴파일러가 명시적으로 정의되지 않은 동작을 포착하고 LM('LMulator'로서)으로 시뮬레이션할 수 있는 유연한 의사 코드로 형식화하도록 권장하는 것입니다.

 
LM 추론 및 수행 능력을 향상시키기 위해 새로운 언어 모델(LM) 유도, 의사소통 및 훈련 기술이 계속해서 등장하고 있습니다. 그러한 출현 중 하나는 CoC(체인 오브 코드), LM에서 코드 기반 추론을 발전시키기 위한 방법입니다. 이 기술은 전통적인 코딩과 LM 코드 실행의 혁신적인 에뮬레이션을 융합한 것으로, 복잡한 언어 및 산술 추론 작업을 처리하기 위한 강력한 도구를 만듭니다.

CoC는 논리, 산술, 언어 처리가 혼합된 복잡한 문제를 처리하는 능력으로 차별화됩니다. 이는 오랫동안 LM 사용자에게 알려졌듯이 표준 LM에서는 오랫동안 어려운 일이었습니다. CoC의 효과는 대형 모델에만 국한되지 않고 다양한 크기로 확장되어 AI 추론의 다양성과 광범위한 적용 가능성을 보여줍니다.

 

LLM 추론 강화: 코드 프롬프트 체인 공개
그림 1: Chain of Code 접근 방식 및 프로세스 비교 (문서 이미지)

 
CoC는 LM 기능의 패러다임 전환입니다. 이는 LM으로부터 원하는 응답을 이끌어낼 가능성을 높이기 위한 단순한 유도 전략이 아닙니다. 대신 CoC는 앞서 언급한 추론 작업에 대한 LM의 접근 방식을 재정의합니다.

CoC의 핵심은 LM이 코드를 작성할 수 있을 뿐만 아니라 코드의 일부, 특히 직접 실행할 수 없는 측면을 에뮬레이션할 수 있게 해줍니다. 이러한 이중성을 통해 LM은 언어적 뉘앙스와 논리적, 산술적 문제 해결을 결합하여 더 넓은 범위의 작업을 처리할 수 있습니다. CoC는 언어 작업을 의사 코드로 형식화하고 기존 코딩과 AI 추론 간의 격차를 효과적으로 메울 수 있습니다. 이러한 브리징을 통해 복잡한 문제 해결을 위한 유연하고 보다 유능한 시스템이 가능해졌습니다. CoC의 향상된 기능 중 주요 구성 요소인 LMulator를 사용하면 LM에서 직접 사용할 수 없는 코드 실행 출력의 시뮬레이션 및 해석이 가능해집니다.

CoC는 다양한 벤치마크에서 놀라운 성공을 거두었으며, 특히 언어적 추론과 계산적 추론이 혼합되어 필요한 시나리오에서 Chain of Thought와 같은 기존 접근 방식보다 훨씬 뛰어난 성능을 보였습니다.

실험에 따르면 Chain of Code는 다양한 벤치마크에서 Chain of Thought 및 기타 기준보다 성능이 뛰어납니다. BIG-Bench Hard에서 Chain of Code는 Chain of Thought보다 84% 향상된 12%를 달성했습니다.

LLM 추론 강화: 코드 프롬프트 체인 공개
그림 2: Chain of Code 성능 비교 (문서 이미지)

 
CoC의 구현에는 추론 작업, 코딩 및 에뮬레이션 프로세스 통합에 대한 독특한 접근 방식이 포함됩니다. CoC는 LM이 복잡한 추론 작업을 의사 코드로 형식화한 후 해석하고 해결하도록 권장합니다. 이 프로세스는 여러 단계로 구성됩니다.

  1. 추론 작업 식별: 추론이 필요한 언어 또는 산술 작업을 결정합니다.
  2. 코드 작성: LM은 의사 코드 또는 유연한 코드 조각을 작성하여 솔루션 개요를 설명합니다.
  3. 코드 에뮬레이션: 직접 실행할 수 없는 코드 부분의 경우 LM은 예상 결과를 에뮬레이션하여 코드 실행을 효과적으로 시뮬레이션합니다.
  4. 출력 결합: LM은 실제 코드 실행과 에뮬레이션의 결과를 결합하여 문제에 대한 포괄적인 솔루션을 형성합니다.

이러한 단계를 통해 LM은 '코드로 생각'하여 더욱 광범위한 추론 질문을 해결할 수 있으며, 이를 통해 문제 해결 능력이 향상됩니다.

CoC 프레임워크의 일부인 LMulator는 몇 가지 구체적인 방법으로 코드와 추론을 모두 개선하는 데 크게 도움이 될 수 있습니다.

  • 오류 식별 및 시뮬레이션: 언어 모델이 오류나 실행할 수 없는 부분이 포함된 코드를 작성할 때 LMulator는 이 코드가 실행될 경우 어떻게 작동할지 시뮬레이션하여 논리적 오류, 무한 루프 또는 엣지 케이스를 평가하고 LM을 안내할 수 있습니다. 코드 로직을 다시 생각하고 조정합니다.
  • 정의되지 않은 동작 처리: 코드에 표준 인터프리터가 실행할 수 없는 정의되지 않거나 모호한 동작이 포함된 경우 LMulator는 언어 모델의 컨텍스트 및 의도에 대한 이해를 사용하여 출력 또는 동작이 무엇이어야 하는지 추론하고, 전통적인 해석이 필요한 경우 합리적이고 시뮬레이션된 출력을 제공합니다. 실행이 실패합니다.
  • 코드의 추론 개선: 언어적 추론과 계산적 추론의 혼합이 필요한 경우 LMulator를 사용하면 언어 모델이 자체 코드 생성을 반복하여 다양한 접근 방식의 결과를 시뮬레이션하고 코드를 통해 효과적으로 '추론'하여 보다 정확하고 효율적인 코드 생성을 수행할 수 있습니다. 솔루션.
  • 엣지 케이스 탐색: LMulator는 다양한 입력을 시뮬레이션하여 코드가 엣지 케이스를 처리하는 방법을 탐색하고 테스트할 수 있습니다. 이는 코드가 견고하고 다양한 시나리오를 처리할 수 있는지 확인하는 데 특히 유용합니다.
  • 학습을 위한 피드백 루프: LMulator가 코드의 문제 또는 잠재적인 개선 사항을 시뮬레이션하고 식별할 때 이 피드백을 언어 모델에서 사용하여 코딩 및 문제 해결에 대한 접근 방식을 학습하고 개선할 수 있습니다. 시간이 지남에 따라 모델의 코딩 및 추론 기능이 향상됩니다.

LMulator는 시뮬레이션 및 반복적 개선을 위한 플랫폼을 제공하여 언어 모델의 코드 작성, 테스트 및 개선 기능을 향상시킵니다.

 
CoC 기술은 LM의 추론 능력을 향상시키는 발전된 기술입니다. CoC는 코드 작성과 선택적 코드 에뮬레이션을 통합하여 LM이 해결할 수 있는 문제의 범위를 넓힙니다. 이 접근 방식은 AI가 미묘한 사고가 필요한 보다 복잡하고 실제적인 작업을 처리할 수 있는 잠재력을 보여줍니다. 중요한 것은 CoC가 소형 및 대형 LM 모두에서 탁월한 것으로 입증되어 점점 더 많은 소형 모델 배열이 추론 기능을 향상시키고 효율성을 대형 모델의 성능에 더 가깝게 만들 수 있는 경로를 제공한다는 것입니다.

좀 더 깊이 있는 이해를 위해, 여기에서 전체 논문을 참조하세요..
 
 

매튜 메이요 (@mattmayo13)는 컴퓨터 과학 석사 학위와 데이터 마이닝 분야 대학원 학위를 보유하고 있습니다. KDnuggets의 편집장인 Matthew는 복잡한 데이터 과학 개념을 쉽게 이해할 수 있도록 만드는 것을 목표로 합니다. 그의 전문적인 관심 분야에는 자연어 처리, 기계 학습 알고리즘, 신흥 AI 탐구가 포함됩니다. 그는 데이터 과학 커뮤니티에서 지식을 민주화하려는 사명을 갖고 있습니다. 매튜는 6살 때부터 코딩을 해왔습니다.

spot_img

최신 인텔리전스

spot_img