모두의 AI
머신러닝AI논문

배우기

  • 논문리뷰
  • 이론·수학 기반
    • 2026
      • CPAL
        • Kernel von Mises Formula of the Influence Function
  • 모델 최적화·경량화
    • PolarQuant: Quantizing KV Caches with Polar Transformation
  • 핵심 아키텍처·알고리즘
    • 2026
      • CPAL
        • AlphaFormer: End-to-End Symbolic Regression of Alpha Factors with Transformers
  • 예측 모델링·정형 데이터
  • AutoML·ML 파이프라인
    • 2025
      • ICML
        • AutoML-Agent: A Multi-Agent LLM Framework for Full-Pipeline AutoML
      • ICLR
        • SELA: Tree-Search Enhanced LLM Agents for Automated Machine Learning
  • 컴퓨터 비전·멀티모달
  • NLP·LLM
    • 2026
      • CPAL
        • The Curse of Depth in Large Language Models
  • 신뢰성·XAI
  • 데이터 중심·특성 공학
  • 엣지·웹·서비스
  • 도메인 특화 응용
🏅내 업적
배우기/AI논문/AutoML·ML 파이프라인/ICLR 2025/SELA: Tree-Search Enhanced LLM Agents for Automated Machine Learning

SELA: Tree-Search Enhanced LLM Agents for Automated Machine Learning

Yizhou Chi, Yizhang Lin, Sirui Hong, Duyi Pan, Yaying Fei, Guanghao Mei, Bangbang Liu, Tianqi Pang, Jacky Kwok, Ceyao Zhang, Bang Liu, Chenglin Wu

ICLR 2025 · arXiv:2410.17238

LLM 에이전트가 ML 코드를 짤 때 다양성 부족·반복에도 불구하고 비최적인 경우가 많고, 전통 AutoML은 고정 파이프라인에 갇혀 유연성이 떨어집니다.
MCTS(몬테카를로 트리 탐색)는 실험·결정을 트리로 펼쳐 두고, 시뮬레이션(롤아웃)과 검증 점수로 다음에 어느 가지를 시도할지 정하는 탐색 방법입니다. UCT-DP는 트리에서 다음 노드를 고를 때 쓰는 점수(UCT)를 논문이 고친 것으로, 학습·실행처럼 비용이 큰 깊은 단계가 얕은 쪽만 훑는 탐색에 밀리지 않도록 돕습니다.
SELA는 파이프라인을 이런 트리로 두고 MCTS로 실험 순서를 정하며, UCT-DP로 깊은 단계를 우선 탐색합니다. 아래에서는 논문에 나온 식은 그대로 두되, 각 블록마다 쉬운 말 요약을 먼저 붙였습니다.
PDF원문 PDF 보기 (arXiv)↗

Chapter 1: SELA와 트리 탐색 기반 AutoML

앞에서 설명한 내용과 같습니다. MCTS는 트리 위에서 롤아웃과 검증 점수로 다음에 시도할 가지를 고르는 방법이고, UCT-DP는 다음 노드를 고를 때 쓰는 UCT 식을 논문이 바꾼 것으로, 학습·실행처럼 비용이 큰 깊은 단계가 얕은 탐색에 밀리지 않도록 합니다.

몬테카를로 트리 탐색(MCTS)이란?

쉬운 요약: 앞으로 할 실험·결정을 트리에 그려 두고, 같은 네 단계를 계속 돌립니다.
- ① 고르기(선택): UCT 같은 규칙으로 다음에 어느 노드로 갈지 정해요.
- ② 늘리기(확장): 아직 없던 새 자식 노드(새 시도)를 트리에 붙여요.
- ③ 시뮬(롤아웃): 그 가지에서 코드를 돌리거나 시뮬해서 검증 점수를 얻어요.
- ④ 올리기(역전파): 그 점수를 부모·조상 노드로 올려서 방문 횟수·평균 점수를 갱신해요.
SELA는 LLM이 제안한 파이프라인 가지를 이 네 단계로 검증 점수와 함께 탐색합니다.
UCT란? (Upper Confidence Bound를 트리에 적용한 것) 형제 자식 노드 중 다음에 어느 쪽으로 갈지 고를 때 쓰는 점수식입니다. 지금까지 평균이 좋았던 가지(잘 쓰기·활용)와 아직 덜 가본 가지(더 보기·탐험)를 한 식 안에서 섞어서, 숫자 비교로 다음 노드를 고릅니다. 논문의 UCT-DP는 이 UCT를 조금 바꿔 깊은 학습·실행 단계가 얕은 쪽만 훑는 데 밀리지 않게 합니다.

네 단계 (한 사이클)

① 고르기→② 늘리기→③ 시뮬→④ 올리기
루트가지 A가지 B롤아웃검증 점수 s

보라 점선은 “이번에 고른 경로” 예시입니다. 여러 번 반복되면 가지마다 점수가 쌓입니다.

[초록 & 서론] 3줄 요약 + 문제 제기

3줄 요약
- 기존 LLM 에이전트의 한계: 코드 생성이 다양성이 낮고, 여러 번 시도해도 최적에 가깝게 수렴하지 못하는 경우가 많습니다.
- 전통 AutoML의 한계: Auto-sklearn 등 고정 파이프라인·탐색 템플릿에 가까워, 데이터·문제가 바뀔 때 동적으로 파이프라인을 재구성하기 어렵습니다.
- SELA의 핵심: 파이프라인 구성을 트리로 표현하고 몬테카를로 트리 탐색(MCTS)으로 실험 순서를 정하며, 실험 점수 피드백으로 다음 가지를 고릅니다. UCT-DP는 학습 비용이 큰 깊은 노드를 얕은 탐색만 훑는 것보다 우선하도록 UCT를 수정한 변형입니다.
맞춤 비유: 모터스포츠에서 공장 정비 매뉴얼 순서만 밟는 것은 전통 AutoML에 가깝고, 서스펜션·엔진 맵·타이어압을 한꺼번에 바꾼 뒤 랩을 한 번만 돌고 끝내는 방식은 단발성 LLM 생성에 가깝습니다. SELA는 구간별 랩 타임과 텔레메트리를 보며(검증 점수) 다음에 무엇을 손볼지 가지를 나눠 비교하는 레이스 엔지니어에 가깝습니다.

Chapter 2: 배경 지식 — 본문 수식을 읽기 위한 다섯 가지

[배경 지식] 꼭 필요한 기초 개념

- AutoML: 사람 개입을 줄이면서 전처리·모델·하이퍼파라미터 등을 자동으로 맞추려는 흐름 전체를 가리킵니다. “한 번에 끝”이 아니라 시도–측정–수정이 반복될 수 있습니다.
- LLM 에이전트: 자연어로 받은 문제 설명과 데이터 요약을 바탕으로 코드를 생성·실행하는 구성입니다. SELA에서는 계획(플랜)과 코드/실행이 단계적으로 나뉩니다.
- 탐색 공간(Search space): 한 데이터셋·태스크에 대해 시도할 수 있는 전처리·모델·하이퍼파라미터 조합의 집합입니다. 조합 수가 폭발하므로 무작정 전수 탐색은 불가능에 가깝습니다.
- MCTS: 게임(AlphaGo류)에서 쓰이듯, 트리 위에서 무작위 롤아웃과 통계를 섞어 유망한 가지를 고르는 알고리즘입니다. 탐험(exploration)과 활용(exploitation)의 균형이 핵심입니다.
- 탐험 vs 활용: 아직 적게 방문한 노드를 더 볼지(탐험), 이미 평균 보상이 좋은 노드를 깊게 갈지(활용)를 한 수식 안에서 동시에 조절합니다. SELA의 UCT-DP는 여기에 “깊은 학습 단계 우선”이라는 제약을 더합니다.

Chapter 3: 핵심 제안 — 수식과 함께 읽기

[제안 방법] 논문이 말하는 다섯 단계

아래 논문 식은 원문 그대로이며, 각 블록마다 쉬운 말을 먼저 둡니다.
(1) 탐색 공간 생성 — Insight Proposer
쉬운 말: LLM이 전처리·모델 선택 같은 단계마다 “해볼 만한 아이디어”를 여러 개 적어 둡니다. 아직 코드를 돌리지 않고, 가능한 가지만 넓혀 두는 단계입니다.
문제 설명 ppp, 데이터셋 정보 ddd, 언어 모델 MMM이 있을 때, 단계 τ∈T\tau \in Tτ∈T(예: 특성 공학, 모델 선택 등)마다 시도할 아이디어 후보를 뽑습니다.
InsightProposer(p,d,M)→Λ={λiτ∣τ∈T, i=1,…,m}\mathrm{InsightProposer}(p, d, M) \rightarrow \Lambda = \{ \lambda_i^{\tau} \mid \tau \in T,\, i = 1,\ldots,m \}InsightProposer(p,d,M)→Λ={λiτ​∣τ∈T,i=1,…,m}
- 기호를 쉽게: ppp = 무슨 문제를 풀지 적은 글, ddd = 데이터가 어떤 모양인지 요약, MMM = 쓰는 LLM, Λ\LambdaΛ = 후보 아이디어 전체 목록, λiτ\lambda_i^{\tau}λiτ​ = 그 단계에서 i번째로 꺼낸 구체 아이디어.
- 직관: 과제 설명(ppp)과 데이터 요약(ddd)를 기준으로, 단계(τ\tauτ)마다 시도할 실험 후보만 Λ\LambdaΛ로 적어 둔다고 보면 됩니다. 아직 코드 실행·학습 job 전이라 가능한 분기만 넓혀 둔 단계에 가깝습니다.
(2) 파이프라인 실행 — 계획과 코드
쉬운 말: 트리에서 하나의 실험 조합을 골랐다면,
(1) 그 조합으로 단계별 지시문을 만들고
(2) 실제 데이터로 코드를 돌려 점수를 받는다는 뜻입니다.
선택된 설정 ccc(어떤 λiτ\lambda_i^{\tau}λiτ​들을 쓸지의 조합)에 대해, 먼저 상세 지시 IτI^{\tau}Iτ를 만들고, 데이터 DDD로 코드 στ\sigma^{\tau}στ를 실행해 점수 sss를 얻습니다.
Eplan(p,d,c,M)→Iτ∈TE_{\mathrm{plan}}(p, d, c, M) \rightarrow I^{\tau \in T}Eplan​(p,d,c,M)→Iτ∈T
Ecode&execute(Iτ∈T,D,M)→(στ∈T,s)E_{\mathrm{code\&execute}}(I^{\tau \in T}, D, M) \rightarrow (\sigma^{\tau \in T}, s)Ecode&execute​(Iτ∈T,D,M)→(στ∈T,s)
- 기호를 쉽게: ccc = MCTS가 고른 “이번에 시도할 조합”, EplanE_{\mathrm{plan}}Eplan​ = 플랜을 단계별 할 일로 풀어 쓰는 모듈, IτI^{\tau}Iτ = 그 단계에서 할 일, Ecode&executeE_{\mathrm{code\&execute}}Ecode&execute​ = 코드 만들고 실행, DDD = 진짜 데이터, στ\sigma^{\tau}στ = 만든 코드, sss = 검증 점수(F1, RMSE 등).
- 직관: 위 식은 파이프라인·실험 순서(플랜)를 만드는 단계, 아래 식은 그 순서대로 코드를 돌려 검증 점수 sss를 얻는 단계입니다. 점수가 좋을수록 나중에 트리가 이 가지를 다시 고르고 싶어집니다.
(3) UCT-DP — 깊은 노드를 우선하는 선택 규칙
쉬운 말: 트리에서 다음 자식 노드를 고를 때 쓰는 점수입니다. 첫째 항 v(x)/n(x)v(x)/n(x)v(x)/n(x) 는 “여기까지 평균적으로 얼마나 좋았나”(활용), 둘째 항(√ 안의 로그)은 “아직 덜 가본 쪽에 보너스”(탐험)에 가깝습니다. 아래 n(x)n(x)n(x) 정의처럼 미방문일 때는 n(x)=αunvisitedn(x)=\alpha_{\mathrm{unvisited}}n(x)=αunvisited​ 로 두어 0으로 나누지 않으면서, UCT-DP가 얕은 가지만 잔뜩 훑지 않고 학습·실행이 붙는 깊은 쪽으로 갈 여지를 남깁니다.
노드 xxx에 대해:
UCTDP(x)=v(x)n(x)+αexploreln⁡nvisits(xparent)n(x)\mathrm{UCTDP}(x) = \frac{v(x)}{n(x)} + \alpha_{\mathrm{explore}} \sqrt{\frac{\ln n_{\mathrm{visits}}(x_{\mathrm{parent}})}{n(x)}}UCTDP(x)=n(x)v(x)​+αexplore​n(x)lnnvisits​(xparent​)​​
n(x)={αunvisitedif nvisits(x)=0nvisits(x)otherwisen(x) = \begin{cases} \alpha_{\mathrm{unvisited}} & \text{if } n_{\mathrm{visits}}(x) = 0 \\ n_{\mathrm{visits}}(x) & \text{otherwise} \end{cases}n(x)={αunvisited​nvisits​(x)​if nvisits​(x)=0otherwise​
- 기호를 쉽게: xxx = 지금 보는 트리 위치(한 결정 상태), v(x)v(x)v(x) = 여기까지 쌓인 보상 합, nvisitsn_{\mathrm{visits}}nvisits​ = 여기 온 횟수, 부모 = 한 단계 위 노드, α\alphaα들 = 탐험 세기·미방문 처리용 숫자.
- 직관: v(x)n(x)\frac{v(x)}{n(x)}n(x)v(x)​는 “지금까지 평균적으로 얼마나 좋았나”입니다. 두 번째 항은 덜 방문한 쪽을 밀어주는 힘입니다. UCT-DP는 미방문일 때 n(x)n(x)n(x)를 아주 작은 수로 대신해 얕은 쪽을 기계적으로만 균등 방문하는 느낌을 줄이고, 실제 학습이 붙는 깊은 경로를 탈 여지를 남깁니다.
(4) 정규화 점수 NS
쉬운 말: 데이터마다 점수 척도가 다르므로, 여러 벤치마크를 서로 비교 가능한 숫자로 한 번 맞춥니다. 클수록 좋은 지표(F1 등)는 그대로 두고, 작을수록 좋은 지표(RMSE 등)는 식으로 바꿔 “클수록 좋다” 방향으로 통일합니다.
원시 점수 sraws_{\mathrm{raw}}sraw​를 데이터셋 간 비교 가능하게 맞춥니다.
NS(sraw)={11+log⁡(1+sraw)지표가 RMSE 등 (낮을수록 좋음)sraw그 외(예: F1 — 높을수록 좋음)\mathrm{NS}(s_{\mathrm{raw}}) = \begin{cases} \dfrac{1}{1 + \log(1 + s_{\mathrm{raw}})} & \text{지표가 RMSE 등 (낮을수록 좋음)} \\ s_{\mathrm{raw}} & \text{그 외(예: F1 — 높을수록 좋음)} \end{cases}NS(sraw​)=⎩⎨⎧​1+log(1+sraw​)1​sraw​​지표가 RMSE 등 (낮을수록 좋음)그 외(예: F1 — 높을수록 좋음)​
- 기호를 쉽게: sraws_{\mathrm{raw}}sraw​ = 모델이 낸 검증 점수 원본 숫자.
- 직관: “점수가 클수록 좋은 시험”과 “작을수록 좋은 시험”을 같은 방향으로 숫자화한다고 보면 됩니다.
(5) 상대 평가 Rescaled NS
쉬운 말: SELA의 점수를 1로 두고, 다른 방법은 그에 대한 비율로 봅니다. 1보다 크면 그 방법이 SELA보다 정규화 점수에서 더 나은 쪽입니다.
RescaledNS(f)=NSfNSSELA\mathrm{RescaledNS}(f) = \frac{\mathrm{NS}_f}{\mathrm{NS}_{\mathrm{SELA}}}RescaledNS(f)=NSSELA​NSf​​
- 기호를 쉽게: fff = 비교하려는 다른 방법, 분자는 그 방법의 NS, 분모는 SELA의 NS.
- 직관: SELA를 기준선(1)으로 두고 상대적으로 얼마나 나은지 보는 척도입니다.
전체를 한 문장으로: 아이디어 목록 Λ\LambdaΛ를 만들고 → 조합 ccc로 플랜·코드를 돌려 점수 sss를 얻고 → UCT-DP로 트리에서 다음을 고르고 → NS로 여러 데이터셋을 공정히 비교한다.

Chapter 4: 수식 작동 시뮬레이션 — Toy Data Walkthrough

[수식 작동 시뮬레이션] Toy Data Walkthrough

숫자는 가정된 예시입니다. 한 번의 시도가 머릿속에서 어떻게 이어지는지만 보면 됩니다.
프레임 1 — Insight Proposer
쉬운 말: “이진 분류, 표에 결측 있음”처럼만 정해져 있어도, LLM이 전처리 후보를 몇 가지 목록으로 뽑습니다.
ppp=“이진 분류”, ddd=“표 형태, 결측 있음”이라 하면, Λ\LambdaΛ에 λ1fe\lambda_1^{\mathrm{fe}}λ1fe​=“결측 지시자 추가”, λ2fe\lambda_2^{\mathrm{fe}}λ2fe​=“수치형 표준화” 같은 후보가 들어갑니다.
프레임 2 — MCTS가 ccc 선택
쉬운 말: 트리 탐색이 “이번엔 표준화 + 로지스틱 회귀 조합으로 가자”고 하나를 고릅니다.
어떤 롤아웃에서 ccc가 “표준화 + 로지스틱 회귀” 조합이라고 합시다. 트리에서 이 가지로 내려갑니다.
프레임 3 — EplanE_{\mathrm{plan}}Eplan​
쉬운 말: 고른 조합을 실제로 할 일 순서(어떤 라이브러리를 어떤 순서로 쓸지)로 풉니다.
IτI^{\tau}Iτ에 “먼저 `SimpleImputer`, 그다음 `StandardScaler`, 그다음 `LogisticRegression`” 식의 지시가 채워집니다.
프레임 4 — Ecode&executeE_{\mathrm{code\&execute}}Ecode&execute​
쉬운 말: 코드를 돌리고 검증 점수 한 개를 받습니다. 여기서는 F1이 0.72라고 가정합니다.
코드 σ\sigmaσ가 실행되고 검증 F1이 sraw=0.72s_{\mathrm{raw}} = 0.72sraw​=0.72라고 합시다. 분류면 NS=0.72\mathrm{NS} = 0.72NS=0.72.
프레임 5 — UCT-DP 갱신
쉬운 말: 그 점수가 트리에 반영되어, 다음에 어느 가지를 더 볼지 계산할 때 이 노드가 형제들과 경쟁합니다. 깊게까지 간 노드가 불리하지 않게 UCT-DP가 미방문 처리를 조정합니다.
해당 노드 xxx에 v(x)v(x)v(x)에 보상이 더해지고 nvisitsn_{\mathrm{visits}}nvisits​가 올라갑니다. 다음 상위 선택에서 UCTDP(x)\mathrm{UCTDP}(x)UCTDP(x)가 형제 노드들과 비교됩니다. 깊은 쪽(실제 `fit`까지 도달한 노드)이 αunvisited\alpha_{\mathrm{unvisited}}αunvisited​ 덕에 덜 “미방문 강제”에 묶일 수 있습니다.
프레임 6 — Rescaled NS (다른 베이스라인 fff와 비교 시)
쉬운 말: SELA 점수를 1로 두고, 다른 방법은 나눈 비율로 읽습니다. 1보다 작으면 SELA 쪽이 더 낫다는 뜻(이 예시 숫자 기준)입니다.
SELA의 NS가 0.720.720.72, 다른 방법이 0.650.650.65이면 RescaledNS(f)=0.65/0.72≈0.90\mathrm{RescaledNS}(f)=0.65/0.72 \approx 0.90RescaledNS(f)=0.65/0.72≈0.90 — SELA 대비 상대 점수가 1 미만이면 SELA가 우위입니다.

Chapter 5: 실험 및 결과

[실험 및 결과]

arXiv 초록 기준, 20개 머신러닝 데이터셋에서 전통적·에이전트 기반 AutoML과 비교했을 때, SELA는 각 베이스라인 대비 약 65%~80% 구간에서 승률을 보고합니다. 이는 “대부분 설정에서 SELA 쪽이 더 나은 정규화 성능을 자주 가져간다”는 강한 일관성을 시사합니다.
추가로 논문은 MCTS vs 무작위 탐색에서 MCTS가 더 높은 점수를 내고, 롤아웃(시뮬레이션) 횟수를 늘릴수록 성능이 꾸준히 개선되는 경향을 보입니다. 실무적으로는 탐색 예산(시간·API 호출)을 늘릴 때 수확 체감이 어디서 오는지 모니터링하기 좋습니다.
해석: 고정 파이프라인만 쓰기엔 문제가 다양하고, LLM만 한 번 돌리기엔 반복 개선이 부족할 때, 트리 + 피드백은 “실험 설계” 자체를 학습 가능한 객체로 만듭니다.

Chapter 6: 결론, 한계, 도식화 가이드

[결론 및 한계점]

최종 의의 및 실무 활용 가치 (3가지 이내)
1. 베이스라인 자동화: 새 데이터셋에 대해 사람이 파이프라인을 일일이 고르지 않고도 강한 출발점을 찾을 수 있습니다.
2. 캐싱·재실행: 이전 롤아웃의 코드·중간 산출물을 저장하면 API·GPU 비용을 줄일 수 있습니다.
3. 추적 가능성: 트리에 어떤 분기를 탔는지가 남아, “왜 이 모델 조합이 되었는지”를 로그로 설명하기 쉽습니다.
한계점 (Future Work)
- 다른 순차 의사결정 영역(로보틱스, 소프트웨어 공학 등)으로의 일반화는 추가 연구가 필요합니다.
- 탐색 공간이 매우 커질 때 샘플 효율을 더 끌어올릴 여지가 있습니다.
- 트리·MCTS 자체의 설명 가능성을 사용자에게 더 전달하려면 UI·로그 설계가 따로 필요합니다.

[도식화] 요약

- 기존: 선형·단발 흐름 — 피드백이 약하면 목표 성능까지 잘 안 이어질 수 있음.
- SELA: 트리 위에서 MCTS·UCT-DP로 분기하고 검증 점수로 갱신 — 같은 화면의 좌·우 패널로 대비만 표시합니다.

한눈에 보는 대비

왼쪽: 고정 순서·단발 생성으로 피드백이 약할 수 있음. 오른쪽: 트리 탐색으로 검증 점수를 반영해 가지를 고름. 아래는 요약 도식만 표시합니다.

기존: 고정 파이프라인·단발 생성

한 번에 전체를 짜거나 규칙만 따르면 피드백 루프가 약하고, 시도 점들이 목표 성능으로 수렴하지 않을 수 있습니다.

실험 난이도 축

데이터 준비
모델 선택
학습·평가
여기서 막힘
한 번에 만든 코드
검증 점수 낮음

시작 → 목표 성능

산만한 시도 궤적

통제 어려움

SELA: 트리 탐색 + UCT-DP

단계별로 가지를 나누고 검증 점수로 평균 보상을 갱신하며, 깊은 학습 단계를 우선할 여지를 둡니다.

Insight 후보 Λ (LLM) · 정밀 실험 · MCTS 롤아웃·시뮬레이션

출발
덜 좋은 가지
지금까지 평균
목표 근처
검증 점수가 위로 전달됨

트리 위 수렴

목표에 가까운 점수

SELA는 LLM이 만든 아이디어를 트리 위에서 MCTS로 배치하고, UCT-DP로 학습 같은 비싼 단계를 헛돌지 않게 돕습니다. NS는 “여러 데이터셋 점수를 같은 방향 숫자로 맞추기”, Rescaled NS는 “SELA 점수를 1로 두고 다른 방법과 몇 배인지 보기”로 이해하면 됩니다. 캐싱과 로그는 비용·설명을 담당합니다. 한 줄로는 “피드백 있는 실험이 곧 탐색이다”입니다.