이유까지 같이 보는 도구 선택
Framework 고르는 건 프로젝트 요구사항이 결정해야지, 인터넷 바이브가 아니야. 이 결정 트리는 시작점 — 완벽하지 않지만 80% 케이스는 잡아.
TensorFlow 골라야 할 때:
- Mobile, edge, 마이크로컨트롤러로 배포 (LiteRT/TFLite 만큼 성숙한 PyTorch 대안 없음).
- 대규모 REST/gRPC API 운영 + 검증된 서버 (TF Serving) 원할 때.
- Training이 Cloud TPU 필요한 규모일 때.
- 팀 기존 infra가 TF — 갈아타는 비용이 이득보다 큼.
- TF 전용 라이브러리 필요 (TF Probability, TF Recommenders, TF-Agents).
- backend 안 띄우고 브라우저 inference 하고 싶을 때 (TF.js).
PyTorch 고려할 때:
- 지난 12개월 paper 구현 — 공식 코드 거의 PyTorch.
- HuggingFace Transformers를 native하게 써야 할 때.
- 완전히 dynamic graph 필요 (불규칙 구조, recursion, 학습된 graph topology).
JAX 고려할 때:
- 대규모 training에 TPU 성능 max로 뽑고 싶을 때.
- functional transform (
jit,vmap,pmap,grad)을 합성 가능한 primitive로 다루고 싶을 때. - Google DeepMind 안이거나, 이미 JAX인 research 코드베이스 작업할 때.
피파의 heuristic: ecosystem 친절한 데서 train하고, runtime 성숙한 데서 deploy해. 답이 같은 framework일 필요 없어 —
jax2tf bridge랑 ONNX가 그래서 존재해.