본문 바로가기

AI Compiler framework

Dynamic Graph 에 대한 재정의와 핵심 분기점

Dynamic graph 라는 개념은 일반적으로 모델 코드에 조건 분기가 존재하는 경우로 이해된다. 하지만 이는 실행 시스템 관점에서는 지나치게 협소, 실제 학습 및 실행 환경에서 발생하는 동적성의 대부분을 설명하지 못함

발견한 핵심 문제 내용

많은 실행 변화는 존재하지만, 그것들이 의미적으로 동일하기 때문에 동적 그래프라는 개념이 직관적으로 와닿지는 않는다

 

기존 인식 : Dynamic Graph = Conditional Model

  • if 문 존재 시 dynamic graph
  • 모델 구조가 고정 시 static graph

하지만, 실행 과정에서 발생하는 대부분의 동적 변화는 모델 코드 수준의 조건문과 무관하게 발생한다.

 

실행 시스템 관점에서의 Dynamic

동일한 의미를 가진 프로그램이 서로 다른 실행 경로 또는 실행 그래프를 허용하는 상태

의미적으로 동일한 학습을 수행하지만, 실행 그래프 수준에서는 서로 다른 경로를 가진다.

 

왜 Dynamic Graph 가 체감되지 않았는지

  • 실행 결과가 동일하고
  • 학습이 정상적으로 수렴
  • 사용자는 의미 중심 사고

사람의 인식에서는 의미가 같으면 같은 일이라고 판단, 이로 인해 실행 그래프의 차이는 무시되거나 문제로 인식되지 않음