자기회귀 diffusion으로 시장 데이터를 생성할 수 있을까 (Jane Street 인턴 프로젝트)
Can you use autoregressive diffusion to generate market data?
TL;DR Highlight
flow matching과 atom smoothing으로 뾰족한 시장 데이터 분포를 diffusion으로 다뤘다
Who Should Read
타임스탬프·가격처럼 연속·이산이 섞인 이벤트 데이터를 생성 모델로 만들어 보려는 ML 엔지니어
Core Mechanics
- 시장 데이터는 연속도 이산도 아니다
- 주문 종류는 이산 행동이고, 가격과 도착 시각은 연속에 가깝다.
- 분포가 뾰족해서 정규분포 가정이 맞지 않는다.
- DDPM은 터지고 flow matching은 됐다
- 1,000 step cosine schedule + DDIM 조합은 불안정했고 7개 연속 타깃 모두에서 88-95% 값이 평균에서 표준편차 8 이상 벗어났다.
- flow matching은 별도 튜닝 없이도 잘 동작했다.
- 클래스를 쪼개 0 시간차를 따로 예측했다
- 거래는 전체 이벤트의 8%라 거래를 과대 예측했다.
- 20-class categorical head로 분포는 나아졌지만 손이 너무 많이 간다.
- atom smoothing으로 스파이크를 다뤘다
- 뾰족한 분포를 부드럽게 만든 뒤 확률 질량을 다시 얹는 방식이다.
- 변수를 어떤 표현으로 쓰느냐에 따라 스파이크 정도가 달라져 표현 선택이 중요하다.
- 평가는 분포 비교와 판별기로 했다
- 10,240개 실제 이벤트를 컨텍스트로 다음 이벤트 하나를 뽑아 TV divergence로 비교했다.
- 실제와 생성 이벤트를 구분하는 classifier도 학습했고, atom smoothing용 표현의 생성기가 더 현실적인 샘플을 냈다.
Community Reactions
- 안정성 차이에 대한 설명을 덧붙인 경험
- Heitz 2023에 따르면 DDIM은 1/α 항이 denoising 시작 지점에서 발산하지만 flow matching은 발산하지 않는다는 의견이 나왔다.
- 디코더가 해법일 수 있다는 의견
- 이미지 latent diffusion은 GAN처럼 학습한 특수 디코더가 있어야 잘 되므로 비슷한 디코더가 문제를 풀었을 수 있다는 의견이 있었다.
- 도착 시각 분포에 대한 반론
- 주문 도착이 다른 주문 확률을 높이는 Hawkes 과정 같은 성질이 있어 정규분포를 기대할 이유가 없다는 의견이 있었다.
- 평가 지표에 대한 의문
- 가격 모델을 최소제곱 오차로 재는 것은 반응이 늦으면 가치가 없다는 점에서 잘못됐을 수 있다는 의견이 있었다.
How to Apply
- 내 이벤트 데이터의 스파이크부터 확인하기
- 타임스탬프 간격, 가격 변화량 같은 피처의 히스토그램을 그려 0이나 정수 초 근처 몰림이 있는지 본다.
- 몰림이 있으면 정규분포 가정 모델을 그대로 쓰지 않는다.
- diffusion 학습이 터지면 flow matching으로 바꾸기
- DDPM 파라미터화가 발산하면 noise 예측 대신 velocity(data - noise) 예측으로 바꿔 본다.
- 범주형 + 연속형으로 타깃을 나누기
- 0 시간차처럼 점질량이 있는 값은 범주로 예측하고 나머지 크기만 diffusion으로 예측한다.
- 피처가 많아지면 클래스가 폭발하므로 atom smoothing도 함께 시도한다.
- 생성 결과를 판별기로 평가하기
- 실제 컨텍스트 뒤에 후보 이벤트를 붙여 진짜인지 모델 출력인지 맞히는 classifier를 학습한다.
- 피처별 marginal 비교와 함께 쓴다.
Try It
# Claude나 ChatGPT에 붙여넣기 (원문 방법의 간이 버전: 데이터 분포 진단용)
나는 이벤트 데이터로 생성 모델을 만들려고 한다. 아래 피처 설명과 샘플을 보고 분포 진단을 해줘.
피처 설명: {{피처 목록과 의미}}
샘플 데이터: {{CSV 일부}}
각 피처마다 다음을 답해줘.
1. 0이나 특정 값에 점질량(spike)이 있을 가능성이 있는가
2. 연속으로 볼지 범주로 볼지 추천과 이유
3. 스파이크가 덜 뾰족해질 만한 다른 표현(예: 차이값, 비율, 중간값 대비 오프셋)
이어서 해 볼 것: 추천대로 히스토그램을 그려 직접 확인해 봐.Terminology
관련 논문
The Judge Can Debias Itself: LLM-as-a-Judge가 스스로 편향을 고치게 하는 법
심사 프롬프트에 편향 경고를 넣거나 스스로 비판시켰더니 21개 중 20개 조합에서 정확도가 올랐다
미국 노동시간의 90%는 AI 벤치마크가 제대로 다루지 못하는 일이다
벤치마크 29개를 직업 과제에 매핑했더니 노동시간 90%가 커버 밖
Postgres 19, AI 코드 리뷰가 버그를 너무 많이 찾아 출시 연기
LLM 코드 리뷰가 버그를 쏟아내 Postgres 19가 11월로 밀리고 기능 8~10개가 빠졌다
StarSkirmish Bench v0.2: LLM이 1시간 만에 짜는 StarCraft 봇 대결
LLM에게 1시간 동안 StarCraft 봇을 짜게 했더니 GPT-6 Astra가 1위
그럴듯한 설명 하나면 멀티모달 LLM 심사위원도 속는다 (JUPE 벤치마크)
정답은 그대로 두고 설명만 붙였더니 MLLM 심사위원의 오답 거절률이 12.7~13.8%p 떨어졌다
신경망은 이미 깔끔하다: polysemanticity의 원인 재해석
뉴런을 직접 들여다봤더니 대부분 한 가지 역할이 있었다는 주장
Linus Torvalds의 첫 LLM 보조 패치 시리즈
Linus가 LLM으로 folio 조회 패치 10개를 만들어 read() 벤치가 10배 빨라졌다