대규모 언어 모델을 위한 컴파일러 생성 피드백의 아이디어
대규모 언어 모델(LLM)은 코드 및 관련 문서의 자동 생성, 프로그래밍 언어 간 번역, 단위 테스트 개발, 오류 또는 결함의 식별 및 수정 등 소프트웨어 엔지니어링 영역의 다양한 작업에서 상당한 성과를 보여 왔습니다. 이러한 발전은 여러 프로그래밍 언어를 아우르는 포괄적인 언어적 통찰력을 쉽게 얻을 수 있는 광범위한 오픈 소스 코드 리포지토리와 Github 기반 플랫폼의 광범위한 접근성 덕분입니다. 알파코드와 같은 특정 LLM은 까다로운 계산 문제에 대한 사전 교육을 통해 다양한 프로그래밍 언어의 기본 소스 수준에서 코드를 미세 조정할 수 있는 능력을 최적화합니다.
이전에는 머신러닝으로 생성된 코드를 최적화하기 위한 연구에서 수동 기능 엔지니어링과 복잡한 그래프 신경망 등 다양한 전략이 사용되었습니다. 그러나 이러한 방법에서 반복적으로 발생하는 한 가지 문제는 머신러닝 모델에 제공되는 입력 프로그램의 표현이 완전하지 않아 중요한 세부 사항이 누락되는 경우가 많다는 점입니다. 함수 인라이닝과 관련하여 MLGO와 같은 도구가 제공하는 귀중한 인사이트에도 불구하고 호출 그래프 및 제어 흐름의 정확한 묘사와 같은 영역에서는 여전히 결함이 남아 있습니다. 이 문제를 해결하기 위한 노력의 일환으로 최근 연구에서는 LLVM 프레임워크 내에서 최적화 프로세스를 미세 조정하기 위해 대규모 언어 모델(LLM)을 활용하는 방법을 모색했습니다. 이러한 실험은 코드 추론에서 인상적인 기능을 보여주었습니다.
대규모 언어 모델(LLM)을 활용하여 LLVM 어셈블리 코드 최적화의 효율성을 향상시키는 새로운 컴파일러 성능 최적화 접근 방식이 Meta AI와 Rice University의 연구진에 의해 소개되었습니다. 이 혁신적인 방법론은 컴파일러가 제공하는 피드백을 활용하여 LLVM 어셈블리의 전체 크기를 효과적으로 최소화할 수 있습니다. 이 프로세스는 최적화된 버전을 생성하기 위한 기반이 되는 최적화되지 않은 LLVM 중간 표현(IR)을 제출하는 것으로 시작됩니다. 또한 최적의 최적화 패스 순서와 각 반복에 포함되는 명령어 수 역시 이 반복 프로세스를 통해 결정됩니다. 그 후, 출력은 확인된 최적화 패스와 함께 컴파일러를 통과하고 예상 명령어 수의 정확성을 검증합니다.결과 IR이 컴파일 및 정렬이 가능한 것으로 판명되면
이 프로세스에는 컴파일러가 일련의 반복적인 개선을 통해 생성된 모델의 호환성을 평가하고, 정확성과 효율성 측면에서 최적의 성능을 달성하기 위해 모델을 점진적으로 조정하는 작업이 포함됩니다. 이 평가에는 메모리 사용량, 계산 복잡성 및 전반적인 시스템 동작에 영향을 미칠 수 있는 기타 관련 요소와 같은 다양한 측면이 포함됩니다. 이러한 매개변수를 지속적으로 모니터링하고 미세 조정함으로써 개발자는 안전 제약 조건 및 기타 요구 사항을 준수하면서 대상 하드웨어 플랫폼에서 최대 성능을 발휘할 수 있도록 코드를 최적화할 수 있습니다.
모델에 피드백을 제공하기 위해 생성된 패스 목록을 이미지에 대해 가능한 모든 패스가 포함된 참조 패스 목록과 비교합니다. 생성된 통과 목록이 유효하고 예측된 인스트럭션 수가 참조 통과 목록과 일치하면, 생성된 코드와 각 통과 목록을 컴파일하여 얻은 해당 참조 코드를 사용하여 BLEU 점수를 계산합니다. 그런 다음 이 피드백을 다음 세대의 모델에 반영하여 성능을 개선합니다.
수정된 모델은 이전 모델에 비해 0.53% 개선되어 최첨단 오토튜너와의 마진이 10% 포인트까지 좁혀졌습니다. 반대로 샘플링을 활성화한 결과, 기본 모델은 100개의 샘플을 사용할 때 오토튜너와 거의 동일한 수준의 성능을 달성할 수 있는 것으로 나타났습니다. 반면, 반복 피드백 모델의 효율성을 기본 모델과 비교하여 평가한 결과, 두 모델 모두 샘플당 동일한 컴퓨팅 리소스를 사용했으며, 샘플이 2개 이상이고 온도가 0.4를 초과하는 조건에서는 전자가 후자보다 성능이 떨어지는 것으로 나타났습니다.
학자들은 이 간행물의 범위 내에서 다음과 같은 몇 가지 주목할 만한 공헌을 했습니다:
이 연구에서는 대규모 언어 모델(LLM)에 피드백을 제공하기 위한 세 가지 접근 방식을 도입하고 검토했습니다. 샘플링 기법을 사용하여 이러한 방법을 철저히 평가하고 피드백을 생성하는 데 있어 그 효과를 평가했습니다. 또한 이러한 모델 내에서 피드백을 생성하는 반복적인 프로세스를 조사했습니다.
요약하면, Meta AI와 Rice University의 연구진이 컴파일러를 활용하여 대규모 언어 모델(LLM)에 대한 피드백을 생성하는 개념을 제안했습니다.최적화되지 않은 LLVM 중간 표현(IR)의 초기 표현부터 시작하여 가장 효과적인 최적화 패스, 명령어 수, 최적화된 IR을 예측하도록 모델을 훈련합니다. 이 과정에는 모델의 출력을 기반으로 피드백을 생성하고, 이를 추가 학습을 위한 입력으로 사용하는 과정이 포함됩니다. 특히 모든 유형의 피드백은 온도 0에서 테스트했을 때 기본 모델보다 더 나은 성능을 보였으며 각각 0.11%, 0.4%, 0.53%의 개선 효과를 달성했습니다.
논문 를 확인하세요. 이 연구에 대한 모든 저작권은 이 프로젝트의 연구진에게 있습니다. 또한 트위터를 팔로우하는 것도 잊지 마세요. 텔레그램 채널, 디스코드 채널, 링크드인 그룹에 가입하세요.
저희의 연구에 감사하는 분들이 최신 노력과 업데이트에 대한 정보를 얻을 수 있는 좋은 기회이므로 뉴스레터 구독을 신청해 주시기 바랍니다.
현재 39,000명 이상의 회원을 보유한 Reddit의 방대한 머신러닝 커뮤니티의 일원이 될 수 있는 기회를 놓치지 마세요.
빠르게 확장 중인 뉴스레터를 구독하고 Google, NVIDIA, Meta, 스탠포드 대학교, 매사추세츠 공과대학, Microsoft 및 기타 인공지능 연구 분야의 저명한 기관의 전문가들이 널리 구독하는 뉴스레터를 받아보세요.