https://arxiv.org/pdf/1805.08166
이전 글에서 TE를 통해 최적화하는 방법을 올렸습니다
하지만, 어떤 조합(transform, hyperparameter)을 통해 최적화를 하는 것이 가장 좋은 방법인지는 여전히 알 수 없습니다
autoTVM은 machine learning을 통해 어떠한 조합이 가장 성능이 뛰어난지 알려줍니다
참고로 autoTVM은 template-based입니다
즉, 사용자가 search space를 파이썬 소스를 통해 정의하고, 정의된 search-space 안에서 최적의 code를 찾습니다.
완전히 automated된 방법을 쓰려면 다음에 나온 autoScheduler를 써야합니다
(https://arxiv.org/pdf/2006.06762)
논문으로 히스토리를 찾았을때 AutoTVM은 2018년에 나와 2019년까지 개정되었고, AutoScheduler는 2020년에 나와 2023년까지 개정되었습니다
Architecture
e는 최적화하고자하는 코드입니다
s는 transformation하는 방법입니다
Se는 어떤 space를 탐색할지 결정합니다 (search space : possible transformations)
x는 생성된 low-level code입니다
f(x)는 inference time 입니다
autoTVM이 목표로 하는 것은 f(x)를 최소화하는 것입니다
Se가 너무 크기 때문에 모든 경우의 수에 대해 f(x)를 측정하지 않습니다.
대신 cost model을 통해 대략적인 f(x)를 구합니다
Statistical Cost Model
Cost Model을 만드는 첫번째 방법은 feature를 추출해서 gradient boosted trees(GBTs)를 쓰는 방법입니다.
가능한 feature로는 transformation 방법, memory에 접근하는 횟수, outer loop의 길이 등이 있습니다.
두번째 방법은 AST를 백터로 만드는 TreeGRU방법입니다. 이 방법은 실제로는 쓰이지 않는 것 같습니다
Objective Function
논문에서 구하고 싶어하는 것은 f(x) 그 자체는 아닙니다. f(x)가 어떤 값인지 몰라도 어떤 x가 상대적으로 가장 작은 inference time인지를 알기만하면 됩니다. 따라서 loss function으로 각 x간의 순위를 나타내는 ranknet을 썼습니다
$L=\sum_{i,j}log(1+e^{-sign(c_i-c_j)(\hat{f}(x_i)-\hat{f}(x_j))})$
Exploration
1. 가장 성능이 좋을 것으로 예상되는 조합 (1-ε)b를 구합니다 (ε-greedy)
- Search space가 매우 방대하기 때문에 모든 f^(x) 중 top-b를 구하지는 않고 simulated annealing이라는 방법을 씁니다
2. εb는 랜덤으로 구합니다
3. 1,2번에서 구한 집합을 실제로 하드웨어에서 측정합니다
4. 모델을 업데이트 합니다
Transfer Learning
layer를 독립적으로 최적화하기에는 시간이 많이 소요됩니다
invarient한 요소를 찾아서 transfer learning을 할 수 있습니다
x(generated code)는 search space에 상관없이 invariant합니다
따라서 x를 통해서 transfer learning 할수있습니다
(The specific encoding of x can also result in different levels of invariance.)
충분히 현재 layer에서 측정이 이루어지기전까지는 아래와 같은 cost model을 사용합니다
\hat{f}(x) = \hat{f}(global)(x) + \hat{f}(local)(x)
C1은 resnet-18 첫번째 레이어라는 뜻이다
transfer learning을 적용했을 때 훨씬 빨리 saturation된다는 것을 볼수있다
'인공지능 > TVM' 카테고리의 다른 글
TVM - Tensor Expression Optimization (0) | 2024.05.15 |
---|---|
TVM - relay, Graph level Optimization (0) | 2024.05.06 |
TVM introduction (0) | 2024.05.06 |