Stop Thinking, Just Do!

Sungsoo Kim's Blog

Google AlphaEvolve

tagsTags

17 May 2025


Google AlphaEvolve

Abstract

알파 이볼브(AlphaEvolve)가 복잡한 알고리즘을 스스로 진화시키는 핵심 메커니즘은 대규모 언어 모델(LLM)의 코드 생성 능력, 자동화된 평가 시스템, 그리고 진화 연산의 조합에 있습니다. 이 세 가지 요소가 자율적인 파이프라인을 구성하여 알고리즘을 반복적으로 개선합니다.

DeepMind’s AlphaEvolve AI: History In The Making!

핵심 메커니즘은 다음과 같습니다:

  1. LLM 기반 코드 생성 및 변형: 알파 이볼브는 최첨단 LLM, 특히 Gemini 2.0 Flash와 Gemini 2.0 Pro를 활용하여 알고리즘을 구현하는 컴퓨터 프로그램을 생성하고 변형합니다.
    • LLM은 기존 프로그램에 대한 변경 사항을 직접 제안하거나, 짧은 코드의 경우 전체 코드 블록을 출력하기도 합니다.
    • LLM은 프로그램 데이터베이스에서 샘플링된 이전 솔루션과 시스템 지침을 포함하는 프롬프트를 사용하여 변경 사항을 제안합니다.
    • Gemini Flash는 빠른 속도로 많은 수의 후보를 생성하여 아이디어 탐색의 폭을 넓히고.
    • Gemini Pro는 더 강력한 기능을 통해 심층적인 통찰력을 제공하고 획기적인 개선을 가져올 수 있는 높은 품질의 제안을 합니다.
    • 필요에 따라 LLM에게 전체 코드 블록을 출력하도록 구성할 수 있습니다.
    • 알파 이볼브는 LLM을 사용하여 이러한 연산자의 구성을 자동화하며, 사전 정의된 변형 작업 세트 없이도 프로그램을 변이시키기 위해 LLM의 세계 지식을 활용합니다.
  2. 자동화된 평가: 제안된 각 프로그램은 자동화된 평가 메트릭을 사용하여 객관적으로 실행, 검증 및 평가됩니다.
    • 사용자는 솔루션의 품질을 정량적으로 측정하는 함수(ℎ)를 제공해야 하며, 이 함수는 일반적으로 최대화되는 스칼라 평가 메트릭 세트를 반환합니다.
    • 이 평가 메커니즘은 기반 LLM의 부정확한 제안을 피할 수 있도록 합니다.
    • 자동화된 평가는 알고리즘의 정확성, 실행 시간, 메모리 사용량 또는 문제 해결 능력 등을 확인합니다.
    • 이러한 자동 평가는 수동 실험이 필요한 작업은 알파 이볼브의 범위에서 제외시키지만, 수학, 컴퓨터 과학, 시스템 최적화 문제와 같이 자동 평가가 가능한 분야에 집중할 수 있게 합니다.
  3. 진화 연산 프레임워크: 알파 이볼브의 전체 프로세스를 조율하는 것은 진화 알고리즘입니다.
    • 이 시스템은 프로그램 데이터베이스에 이전에 생성된 프로그램과 그 평가 결과를 저장합니다.
    • 평가를 통해 얻은 점수를 기반으로 가장 유망한 알고리즘(부모 프로그램)이 다음 세대의 기반으로 선택됩니다.
    • 선택된 부모 프로그램은 LLM의 프롬프트에 포함되어 새로운 변형 프로그램 생성을 위한 영감이나 컨텍스트로 사용됩니다.
    • 이 과정은 반복적으로 진행되어(생성, 평가, 선택, 변형) 점진적으로 평가 점수가 향상되는 프로그램을 개발합니다.
    • 이러한 진화적 접근 방식은 LLM의 능력을 크게 향상시키며(예: 반복적인 샘플링에 비해), 테스트 시점에 기계 피드백이 새로운 과학적 발견과 매우 가치 있는 실제 최적화가 이루어지는 수준까지 계산 확장을 유지하는 강력한 시연으로 볼 수 있습니다.

이러한 조합을 통해 알파 이볼브는 초기 솔루션에서 시작하여 자동화된 평가의 피드백을 지속적으로 받으며 코드를 직접 변경함으로써 알고리즘을 반복적으로 개선할 수 있습니다. 이전 연구인 FunSearch와 달리, 알파 이볼브는 전체 코드베이스를 진화시킬 수 있고, 최첨단 LLM과 풍부한 자연어 컨텍스트 및 피드백을 활용합니다. 이를 통해 이전 시스템보다 규모와 일반성 면에서 훨씬 뛰어나며, 복잡한 알고리즘을 구현하는 대규모 코드를 진화시킬 수 있습니다.

Google’s Production Agent & 5 Takeaways for Enterprise-Grade AI

Google’s AlphaEvolve: The Future of Scientific Research and AI Deployment

In this episode, we look into Google’s impressive announcement of AlphaEvolve, a cutting-edge AI agent that has revolutionized coding and optimization. We discuss its transformative performance, such as rewriting a 1960s algorithm, improving data center efficiency, and the broader implications for scientific research. The episode breaks down key takeaways for enterprise audiences, including the importance of verifiable metrics, hybrid model serving, and the evolving landscape of intelligent agents. Join us as we explore how AlphaEvolve is setting new standards in AI-driven solutions and deployment.

Major Models

알파 이볼브(AlphaEvolve)에서 사용되는 두 가지 주요 모델은 Gemini 2.0 Flash와 Gemini 2.0 Pro입니다. 알파 이볼브는 이러한 대규모 언어 모델(LLM)의 조합 또는 앙상블을 활용합니다.

각 모델은 다음과 같은 역할을 합니다:

  • Gemini 2.0 Flash: 더 빠른 속도를 가지며, 단위 시간당 더 많은 후보를 생성하여 아이디어 탐색의 폭을 넓히는 데 사용됩니다.
  • Gemini 2.0 Pro: 더 강력한 기능을 가지고 있으며, 심층적인 통찰력을 제공하고 획기적인 개선을 가져올 수 있는 높은 품질의 제안을 하는 데 사용됩니다. Gemini Pro는 Gemini Flash가 아이디어가 고갈되었을 때 더 복잡한 로직을 추론하기 위해 투입되는 전문가와 같은 역할을 합니다.

알파 이볼브는 이러한 모델들을 활용하여 알고리즘 구현을 위한 컴퓨터 프로그램을 생성하고 변형합니다. 이 모델들은 기존 프로그램에 대한 변경 사항을 제안하거나, 코드 블록 전체를 출력하기도 합니다.

알파 이볼브(AlphaEvolve)의 주된 목적은 대규모 언어 모델(LLM)의 능력을 크게 향상시켜 복잡한 알고리즘을 스스로 발견하고 최적화하는 것입니다. 이는 과학적 문제 해결이나 중요한 계산 인프라 개선과 같은 매우 어려운 문제들을 해결하는 데 목표를 두고 있습니다.

Objectives

핵심적으로 알파 이볼브는 다음과 같은 목적을 가집니다.

  • 알고리즘 발견 및 최적화: 알파 이볼브는 LLM을 활용하여 알고리즘 구현을 위한 컴퓨터 프로그램을 생성하고, 자동화된 평가와 진화 연산을 통해 이 프로그램들을 반복적으로 개선함으로써 알고리즘을 발견하고 최적화합니다.
  • 과학적 및 실용적 문제 해결: 자동화된 평가가 가능한 다양한 분야, 특히 수학, 컴퓨터 과학, 시스템 최적화 문제에 집중하여 새로운 과학적 발견과 실제적인 최적화를 달성하는 것을 목표로 합니다.
  • LLM 코드 생성 능력 강화: LLM의 코드 생성 능력을 진화 프레임워크와 결합하여, 단순히 코드를 생성하는 것을 넘어 실행 피드백을 통해 코드를 개선하고 복잡한 알고리즘을 구현하는 대규모 코드를 진화시키는 데 사용됩니다.
  • 이전 시스템의 한계 극복: 이전 시스템인 FunSearch가 단일 함수 진화에 초점을 맞춘 것과 달리, 알파 이볼브는 전체 코드베이스를 진화시키고 최첨단 LLM 및 풍부한 자연어 컨텍스트를 활용하여 규모와 일반성 면에서 이전 시스템을 훨씬 뛰어넘습니다.

이러한 목적을 달성함으로써 알파 이볼브는 Google의 데이터 센터 효율성 향상, 칩 설계 개선, AI 훈련 프로세스 가속화와 같은 중요한 엔지니어링 문제 해결에 기여했으며, 심지어 알파 이볼브 자체의 기반이 되는 LLM 훈련 속도를 가속화하기도 했습니다. 또한, 4x4 복소 행렬 곱셈 알고리즘 개선 (56년 만의 최초 개선) 및 키싱 넘버 문제와 같은 다양한 수학 및 컴퓨터 과학 분야의 난제에서 새로운 해결책을 발견하고 기존 최고 기록을 경신했습니다.

결론적으로, 알파 이볼브의 목적은 LLM의 창의적 코드 생성 능력과 자동화된 평가 및 진화 연산을 결합하여, 인간 전문가조차 해결하기 어려웠던 과학적 및 실용적인 영역에서 복잡한 알고리즘을 자율적으로 발견하고 지속적으로 개선하는 강력한 도구를 제공하는 것입니다.

Applications

알파 이볼브(AlphaEvolve)는 복잡한 알고리즘을 스스로 진화시키고 발견하기 위해 다음과 같은 핵심 요소들을 활용합니다.

  1. 대규모 언어 모델(LLM) 앙상블: 알파 이볼브는 최첨단 LLM, 특히 Gemini 2.0 Flash와 Gemini 2.0 Pro의 조합(앙상블)을 활용합니다.
    • Gemini Flash는 더 빠르고 효율적인 모델로서, 단위 시간당 더 많은 후보를 생성하여 아이디어 탐색의 폭을 극대화하는 데 사용됩니다. 때로는 단일 문제에 대해 수천 개의 코드 후보를 생성할 수 있습니다.
    • Gemini Pro는 더 강력한 기능을 가진 모델로서, 심층적인 통찰력을 제공하고 획기적인 개선을 가져올 수 있는 높은 품질의 제안을 하는 데 사용됩니다. Flash가 아이디어가 고갈되거나 더 복잡한 논리 추론이 필요할 때 전문가처럼 투입될 수 있습니다.
    • 이 모델들은 알고리즘을 구현하는 컴퓨터 프로그램을 생성하고 기존 코드에 대한 변경 사항을 직접 제안하거나 전체 코드 블록을 출력하기도 합니다.
  2. 자동화된 평가 시스템: 제안된 프로그램들이 객관적으로 실행, 검증 및 평가될 수 있도록 자동화된 평가 메트릭을 사용합니다.
    • 이 평가 메커니즘은 기반 LLM의 부정확하거나 잘못된 제안을 걸러내는 중요한 역할을 합니다.
    • 평가는 프로그램의 정확성, 실행 시간, 메모리 사용량 또는 문제 해결 능력 등 사용자가 제공한 정량적 측정 기준에 따라 이루어집니다.
    • 이러한 자동 평가는 알파 이볼브가 수학, 컴퓨터 과학, 시스템 최적화 문제와 같이 객관적인 평가가 가능한 도메인에 집중할 수 있도록 하는 동시에, 수동 실험이 필요한 작업은 제외하는 한계가 될 수 있습니다.
  3. 진화 연산 프레임워크: 알파 이볼브의 전체 프로세스를 조직하고 조정하는 것은 진화 알고리즘입니다.
    • 시스템은 이전에 생성된 프로그램과 그 평가 결과를 프로그램 데이터베이스에 저장합니다.
    • 자동화된 평가를 통해 얻은 점수를 기반으로 가장 유망한 프로그램들(부모 프로그램)이 선택되어 다음 세대 프로그램 생성의 기반이나 영감으로 사용됩니다.
    • LLM은 이러한 부모 프로그램을 포함한 프롬프트(rich context)를 사용하여 새로운 프로그램 변형을 제안합니다.
    • 이 과정(생성, 평가, 선택, 변형)이 반복적으로 이루어지며 점진적으로 성능이 향상되는 알고리즘을 개발합니다. 이는 알고리즘을 위한 일종의 자연 선택 과정과 같습니다.
    • 이러한 진화적 접근 방식은 단순히 LLM을 반복적으로 샘플링하는 것에 비해 그 능력을 크게 향상시킵니다.

이러한 세 가지 핵심 요소를 조합하여 알파 이볼브는 자율적인 파이프라인을 구축하고, 초기 솔루션에서 시작하여 자동화된 평가의 피드백을 지속적으로 받으며 알고리즘을 구현하는 코드를 직접 변경함으로써 반복적인 개선을 수행합니다. 이전 시스템인 FunSearch가 단일 함수 진화에 초점을 맞춘 것과 달리, 알파 이볼브는 전체 코드베이스를 진화시키고 최첨단 LLM과 풍부한 자연어 컨텍스트 및 피드백을 활용하여 훨씬 뛰어난 규모와 일반성을 달성했습니다.

Breakthroughs

알파 이볼브(AlphaEvolve)는 자체적인 진화 과정을 통해 다양한 분야에서 다음과 같은 발견 및 개선을 이루었습니다.

Google 내부 컴퓨팅 스택 최적화:

  • 데이터 센터 스케줄링 알고리즘 개선: 알파 이볼브는 Google의 방대한 데이터 센터를 보다 효율적으로 오케스트레이션하기 위한 간단하지만 매우 효과적인 휴리스틱을 발견했습니다. 이 솔루션은 현재 프로덕션 환경에 배포되어 있으며, Google 전체 계산 리소스의 평균 0.7%를 지속적으로 회수하고 있습니다. 이는 Google 규모에서 엄청난 효율성 향상으로 수백만 달러의 가치를 가집니다.
  • 하드웨어 설계 지원: 알파 이볼브는 Tensor Processing Unit(TPU) 내의 핵심 산술 회로를 최적화했습니다. 특히, 기존의 고도로 최적화된 Verilog 구현에서 불필요한 비트를 제거하는 코드 변경을 제안했습니다. 이 변경 사항은 검증을 통과하고 엔지니어들의 승인을 받아 향후 출시될 TPU 설계에 통합되었습니다.
  • AI 훈련 및 추론 효율성 향상:
    • 알파 이볼브는 Gemini 훈련에 사용되는 중요한 행렬 곱셈 커널의 최적화된 타일링 휴리스틱을 발견했습니다. 이로 인해 커널 속도가 평균 23% 빨라졌으며, Gemini의 전체 훈련 시간이 1% 감소했습니다.
    • 컴파일러가 생성한 저수준 코드(FlashAttention 커널)를 직접 최적화하여 최대 32.5%의 속도 향상을 달성했습니다. 이러한 최적화는 GPU에서 대규모 추론에 사용되는 변환기 모델에 적용되었습니다.

수학 및 알고리즘 발견:

  • 행렬 곱셈 알고리즘 개선: 알파 이볼브는 컴퓨터 과학의 근본적인 문제인 행렬 곱셈을 위한 새로운 알고리즘을 발견했습니다. 특히, 두 개의 4x4 복소 행렬을 48번의 스칼라 곱셈으로 곱하는 절차를 발견했습니다. 이는 1969년 슈트라센(Strassen)의 알고리즘(49번의 곱셈 사용) 발표 이후 56년 만에 이 설정에서 처음으로 개선된 기록입니다. 알파 이볼브는 다른 14개의 행렬 곱셈 목표에서도 기존 최고 기록을 경신했습니다.
  • 수학 난제 해결: 알파 이볼브는 수학의 다양한 분야(해석학, 기하학, 조합론, 정수론 포함)에 걸쳐 50개 이상의 공개 문제에 적용되었습니다.
    • 이 중 약 75%의 문제에서 기존 최고 솔루션을 재발견했으며 (많은 경우 이미 최적일 가능성이 높음).
    • 약 20%의 문제에서는 기존 최고 솔루션을 능가하는 새로운 구성(객체)을 발견했습니다.
    • 여기에는 에르되시(Erdős)의 최소 오버랩 문제 개선, 11차원에서의 키싱 넘버 문제 개선 (기존 592개에서 593개로 하한선 높임), 다양한 패킹 문제, 하일브론 문제(Heilbronn problem)의 변형 문제 개선, 자기 상관 부등식 및 불확정성 원리 구성 개선 등이 포함됩니다.

이러한 발견들은 알파 이볼브가 단순히 코드를 생성하는 것을 넘어, 복잡한 알고리즘을 자율적으로 진화시키고 자동화된 평가를 통해 피드백을 받으며, 인간 전문가조차 해결하기 어려웠던 문제들에서 새로운 해결책을 찾아낼 수 있음을 보여줍니다.

Core Components

알파 이볼브(AlphaEvolve)는 복잡한 알고리즘을 스스로 발견하고 최적화하기 위해 주로 세 가지 핵심 요소를 결합하고 활용합니다.

  1. 대규모 언어 모델(LLM)의 앙상블: 알파 이볼브는 최첨단 LLM의 능력을 활용합니다. 특히 Gemini 2.0 Flash와 Gemini 2.0 Pro의 조합(앙상블)을 사용합니다.
    • Gemini Flash는 빠른 속도와 낮은 지연 시간을 특징으로 하며, 단위 시간당 더 많은 후보를 생성하여 아이디어 탐색의 속도와 폭을 극대화하는 역할을 합니다. 때로는 단일 문제에 대해 수천 개의 코드 후보를 생성하기도 합니다.
    • Gemini Pro는 더 강력한 기능과 깊은 추론 능력을 가지고 있으며, 획기적인 개선을 가져올 수 있는 고품질의 제안을 합니다. Flash가 아이디어가 고갈되었을 때 더 복잡한 로직을 추론하기 위해 투입되는 전문가와 같은 역할을 합니다.
    • 이 모델들은 알고리즘 구현을 위한 컴퓨터 프로그램을 생성하거나, 기존 코드에 대한 변경 사항(diffs)을 제안하고 때로는 전체 코드 블록을 출력하는 등 코드 생성의 역할을 담당합니다.
  2. 자동화된 평가 시스템: 제안된 프로그램이나 알고리즘 후보들을 객관적으로 실행, 검증 및 평가할 수 있는 자동화된 평가 메커니즘을 활용합니다.
    • 이 시스템은 LLM이 생성한 코드의 정확성, 실행 시간, 메모리 사용량, 문제 해결 능력 등 사용자 정의 평가 기준에 따라 점수를 매깁니다.
    • 자동 평가는 LLM의 부정확하거나 잘못된 제안을 걸러내는 데 중요한 역할을 합니다.
    • 이는 수학, 컴퓨터 과학, 시스템 최적화와 같이 객관적이고 정량적인 평가가 가능한 문제 영역에 집중하는 데 유리하며, 수동 실험이 필요한 작업은 범위에서 제외될 수 있습니다.
    • 평가 과정은 평가 캐스케이드(난이도가 증가하는 테스트 케이스 단계적 적용)나 병렬 처리를 통해 효율화될 수 있습니다.
  3. 진화 연산 프레임워크: 알파 이볼브의 전체 프로세스를 조직하고 조정하는 핵심은 진화 알고리즘입니다.
    • 자동화된 평가를 통해 얻은 피드백을 기반으로, 시스템은 이전에 생성된 프로그램과 그 평가 결과를 프로그램 데이터베이스에 저장합니다.
    • 데이터베이스에서 성능이 우수한 프로그램들(부모 프로그램)을 선택하여, 이들을 포함한 풍부한 자연어 컨텍스트를 LLM에 제공합니다.
    • LLM은 이 컨텍스트를 바탕으로 새로운 프로그램 변형이나 개선 사항을 제안하고, 이는 다시 평가 시스템으로 보내져 점수를 받습니다.
    • 이 과정(생성, 평가, 선택, 변형)이 반복적으로 이루어지며 점진적으로 성능이 향상되는 알고리즘을 개발하는데, 이는 알고리즘에 대한 자연 선택 과정과 유사합니다.
    • 이러한 진화적 접근 방식은 단순히 LLM을 여러 번 샘플링하는 것보다 그 능력을 크게 향상시키며, 이전 시스템인 FunSearch보다 전체 코드베이스를 진화시키고, 더 넓은 범위의 문제를 해결할 수 있게 합니다.

알파 이볼브는 이러한 세 가지 핵심 요소를 유기적으로 결합하여, 초기 솔루션에서 시작하여 자동화된 평가의 피드백을 지속적으로 받으며 알고리즘을 구현하는 코드를 직접 변경하고 반복적으로 개선하는 강력한 자율 파이프라인을 구축합니다.

Optimizations

알파 이볼브(AlphaEvolve)는 다양한 영역에서 알고리즘과 이를 구현하는 컴퓨터 프로그램최적화하고 개선하는 데 중점을 둡니다.

구체적으로 알파 이볼브가 최적화하는 대상들은 다음과 같습니다.

  1. 컴퓨팅 스택의 핵심 구성 요소: Google 내부의 대규모 컴퓨팅 인프라 효율성을 개선하기 위해 다음을 최적화했습니다.
    • 데이터 센터 스케줄링 알고리즘: Google 데이터 센터의 계산 리소스 활용을 극대화하는 새로운 휴리스틱을 발견하여 지속적으로 0.7%의 리소스를 회수했습니다.
    • 하드웨어 설계: TPU(Tensor Processing Unit) 내 산술 회로의 기존 Verilog 구현에서 불필요한 비트를 제거하는 등 기능적으로 동일하지만 단순화된 코드 변경 사항을 제안했습니다.
    • AI 훈련 및 추론 효율성 관련 코드:
      • Gemini 훈련에 사용되는 행렬 곱셈 커널의 타일링 휴리스틱을 최적화하여 평균 23%의 속도 향상을 달성했습니다.
      • FlashAttention 커널과 관련된 컴파일러 생성 코드(저수준 IR)를 직접 최적화하여 최대 32.5%의 속도 향상을 이루었습니다.
  2. 수학 및 컴퓨터 과학 문제 해결을 위한 알고리즘 및 구성:
    • 행렬 곱셈 알고리즘: 특히 4x4 복소 행렬 곱셈을 위한 새로운 절차를 발견하여 56년 만에 최고 기록을 경신했습니다. 다른 행렬 곱셈 목표에서도 기존 최고 기록을 능가했습니다.
    • 다양한 수학 난제 해결 및 개선: 50개 이상의 공개 수학 문제(해석학, 기하학, 조합론, 정수론 등)에 적용되어:
      • 약 75%의 문제에서 기존 최고 솔루션을 재발견하고,
      • 약 20%의 문제에서 기존 최고 솔루션을 능가하는 새로운 구성이나 하한/상한을 발견했습니다. 여기에는 11차원에서의 키싱 넘버 하한선 개선 (592 → 593), 에르되시의 최소 오버랩 문제 개선, 다양한 패킹 문제 개선, 하일브론 문제 변형 개선, 자기 상관 부등식 및 불확정성 원리 구성 개선 등이 포함됩니다.
  3. 컴퓨터 프로그램 자체:
    • 사용자가 제공한 초기 프로그램 또는 솔루션 표현(알고리즘)을 시작점으로 삼아, 코드를 직접 변경(diffs)하거나 전체 코드 블록을 생성하는 방식으로 반복적으로 개선합니다.
    • 이는 이전 시스템인 FunSearch가 단일 함수 진화에 초점을 맞춘 것과 달리, 전체 코드베이스를 진화시킬 수 있습니다.

알파 이볼브의 최적화 과정은 자동화된 평가 메트릭에 의해 주도됩니다. 프로그램의 성능은 정확성, 실행 시간, 메모리 사용량, 문제 해결 능력 등 객관적이고 정량적인 기준으로 평가되며, 이 점수를 최대화하거나 최소화하는 방향으로 진화가 이루어집니다.

궁극적으로 알파 이볼브는 자동 평가가 가능한 문제에 대해, 알고리즘을 코드로 표현하고 대규모 언어 모델(LLM)의 생성 능력진화 연산 프레임워크를 결합하여, 기존 솔루션을 넘어서는 성능을 달성하는 새로운 알고리즘과 프로그램을 발견하고 최적화하는 시스템입니다.

Self-Evolving Algorithms

알파 이볼브(AlphaEvolve)는 복잡한 알고리즘을 발견하고 개선하기 위해 대규모 언어 모델(LLM)의 능력, 자동화된 평가 시스템, 그리고 진화 연산 프레임워크를 유기적으로 결합하여 자율적인 파이프라인을 구성함으로써 작동합니다.

작동 방식은 다음과 같은 주요 단계와 구성 요소로 이루어집니다.

  1. 문제 정의 및 초기 솔루션 제공: 사용자는 해결하려는 문제를 정의하고 평가 기준을 설정합니다. 또한, 종종 진화 과정의 시작점으로 사용될 수 있는 초기 알고리즘 또는 솔루션 코드를 제공하고, 필요에 따라 배경 지식을 제공할 수 있습니다.

  2. LLM 앙상블을 활용한 코드 생성:
    • 알파 이볼브는 최첨단 LLM 앙상블을 활용하여 새로운 프로그램 후보나 기존 프로그램에 대한 변경 사항을 생성합니다.
    • 특히, 빠르고 효율적인 Gemini 2.0 Flash 모델은 많은 수의 후보를 빠르게 생성하여 아이디어 탐색의 폭을 넓히는 역할을 하며, 때로는 단일 문제에 대해 수천 개의 코드를 생성하기도 합니다.
    • 더 강력한 Gemini 2.0 Pro 모델은 심층적인 추론 능력을 바탕으로 획기적인 개선을 가져올 수 있는 고품질 제안을 하는 데 사용되며, Flash 모델의 아이디어가 고갈될 때 투입되는 전문가와 같은 역할을 합니다.
    • LLM은 알고리즘을 구현하는 코드를 직접 생성하거나, 기존 코드에 대한 변경 사항(diffs)을 제안하고, 때로는 전체 코드 블록을 출력하기도 합니다.
  3. 자동화된 평가 시스템을 통한 검증 및 점수 부여:
    • LLM에 의해 제안된 프로그램 후보들은 자동화된 평가 시스템으로 보내져 실행, 검증 및 평가됩니다.
    • 이 시스템은 프로그램의 정확성, 실행 시간, 메모리 사용량, 문제 해결 능력 등 사전에 정의된 자동 평가 메트릭에 따라 객관적이고 정량적인 점수를 매깁니다.
    • 자동 평가는 LLM이 생성할 수 있는 부정확하거나 잘못된 제안들을 걸러내는 데 중요한 역할을 합니다.
    • 이 시스템 덕분에 알파 이볼브는 수학, 컴퓨터 과학, 시스템 최적화와 같이 객관적인 평가가 가능한 문제 영역에 집중할 수 있으며, 수동 실험이 필요한 문제는 범위에서 제외됩니다.
  4. 진화 연산 프레임워크를 통한 반복적 개선:
    • 알파 이볼브의 핵심 조정 절차는 진화 알고리즘입니다.
    • 자동화된 평가를 통해 얻은 결과(점수 및 피드백)는 프로그램 데이터베이스에 저장됩니다.
    • 진화 알고리즘은 데이터베이스에서 높은 점수를 받은 프로그램들(부모 프로그램)을 선택합니다.
    • 선택된 부모 프로그램과 과거 시도 및 아이디어를 포함하는 풍부한 자연어 컨텍스트가 프롬프트 형태로 LLM 앙상블에 제공됩니다.
    • LLM은 이 컨텍스트를 바탕으로 부모 프로그램보다 성능이 향상된 새로운 프로그램 변형을 제안합니다. LLM은 사전에 정의된 돌연변이 연산자 없이도 자체적인 세계 지식을 활용하여 프로그램 변형을 자동 생성합니다.
    • 새로 생성된 프로그램은 다시 자동 평가 시스템으로 보내져 평가되고 결과가 데이터베이스에 추가됩니다.
    • 이 과정(생성 → 평가 → 선택 → 변형)이 반복적으로 수행되면서 알고리즘과 프로그램이 점진적으로 발전하게 되며, 이는 자연 선택과 유사한 과정입니다. 성능 향상이 정체되면 과거의 우수한 후보를 다시 도입하여 탐색을 활성화하기도 합니다.

이러한 방식으로 알파 이볼브는 초기 솔루션에서 시작하여 자동화된 평가로부터 얻은 피드백을 지속적으로 사용하여 코드를 직접 변경하고 반복적으로 개선하며, 궁극적으로 기존의 솔루션을 능가하는 새로운 알고리즘과 프로그램을 자율적으로 발견하고 최적화합니다. 이는 이전 시스템인 FunSearch가 단일 함수의 진화에 초점을 맞춘 것과 달리, 전체 코드베이스를 진화시킬 수 있다는 점에서 더 확장된 기능입니다.