4B 모델을 RL로 학습해 Postgres 기본 플랜보다 1.81배 빠른 쿼리 플랜 생성
- Qwen 4B 모델을 SFT와 에이전트 RL로 후학습해 조인 위주 쿼리 113개에서 기하평균 1.81배 속도 향상, 합산 지연 44.7% 감소를 기록함. 처음에는 113개 중 99개 쿼리에 대해 플랜을 아예 만들지 못했음
- 모델은 SQL을 바꾸지 않고 pg_hint_plan 힌트로 조인 순서와 스캔 방식을 지정하고, Postgres가 실행 시간으로 매긴 스칼라 보상이 커스텀 GRPO 변형을 거쳐 가중치를 갱신함
- 측정 노이즈를 줄이려고 vLLM과 트레이너는 임대한 2x H100 SXM 노드에, Postgres 컨테이너 4개는 작성자 책상 위에 나눠 돌리는 구성으로 실험함
- 학습 비용은 Lambda의 2x H100 SXM 노드 약 95시간에 약 $800, GPT-6 Astra 궤적 500여 개 생성에 OpenAI API로 약 $400을 지출함
- 벤치마크는 전체가 메모리에 올라가는 8GB IMDb 데이터셋, shared_buffers 제한, 측정 전 워밍한 읽기 전용 SELECT 조건이라 대규모 OLTP 워크로드로 일반화하기는 이름
Hacker News opinions
쿼리 플랜이 진짜 쿼리랑 같은 결과를 낸다는 걸 어떻게 확인함? 틀린 플랜을 넣으면 조용히 잘못된 답이 나오는 거 아님?
pg_hint_plan에 디버그 로그가 있어서 힌트를 실제로 먹였는지 확인 가능함. 나도 평가할 때 이걸로 검증했음
여기서 LLM은 쿼리를 고치는 게 아니라 조인 순서 같은 선택지만 건드림. SQL은 그대로니까 결과 정합성은 Postgres가 계속 책임짐
최적화는 원래 결정적이어야 하는 거 아님? 통계가 낡으면 같은 쿼리도 플랜이 갑자기 바뀌더라
$800에 95시간 돌린 건 벤치마크 수치에 안 들어간 거 같은데. 그 정도 시간을 쓸 수 있으면 벤더들도 더 나은 플랜을 뽑을 수 있음
정기 백업처럼 유지보수 창 잡아서 재학습하면 되지 않나. 그래도 결정적 알고리즘이 재학습보다 낫다고 봄. 컴파일러처럼 수십 년 다듬은 소프트웨어에 LLM이 뭘 더하겠음
8GB 데이터셋이 메모리에 다 올라가고 읽기 전용 SELECT만 워밍해서 잰 결과라, 스케일 키우고 OLTP 섞으면 과적합이 걱정됨
4B 모델이 8GB를 여러 번 훑는 비용이면 그냥 CUDA로 Postgres를 가속하는 게 낫지 않나
플랜 최적화는 수학이랑 알고리즘 비중이 큰 문제인데 LLM은 둔탁한 도구임. 알파고식 신경망 휴리스틱이 나오길 기다림
쿼리 옵티마이저랑 LLM을 같이 돌려서 더 나은 쪽을 DB가 고르게 하면 안 되나? DB는 잘 모르는 사람이라 그냥 궁금해서 물어봄
프론티어 모델 증류했다고 글에 대놓고 쓰면 논란 생기지 않나
프론티어 랩들도 인터넷 전체를 긁어서 학습했으니 도덕적 우위를 주장하긴 어려움
글 왜 이렇게 김. 다 읽으려면 5일 걸리겠음
논문이라고 생각하면 됨. 요즘은 AI로 요약하고 궁금한 것만 물어보면 되니까
어제 올라온 Jev 모델 보고 비슷한 걸 생각했음
Jev는 빠르고 싼 분류용이라 여기엔 안 맞음. Postgres 옵티마이저보다 빠르지도 않을 거고