-
논문 리뷰
-
의문점
-
1. Scaling factor
은 왜 필요한가? -
2.
는 0행렬로 초기화하는 것은 타당하지만, A는 random Guassian으로, B는 0행렬로 초기화한 것의 근거는? -
3. 기존의 파라미터가 freeze되어 있는 상태라도, 기울기를 계산해야 역전파 시 그 다음에 신호를 받는 모듈에 전달이 되는게 아닌가?
-
의문점 - Subspace Similarity 관련
-
1. Subspace similarity가 아닌 내적을 사용하는건 어떨까?
-
2.
가 아닌 만을 사용하는 것은 타당한가? -
3. Subspace similarity는 왜 min(i, j)로 나누는 것인가?
-
4. 논문에서는 top singular vectors가 아닌 방향들은 랜덤 노이즈를 포함하고 있다고 하는데, 이것은 top singular vectors가 아닌 방향들은 필요없다는 뜻인가? 일반적으로 생각했을 때는 rank가 더 높을수록 성능이 좋은 것 아닌가?
-
5. 48th layer가 아닌 다른 layer들은 통제 변인으로 설정했어야 하는 것 아닌가?
-
6. Subspace Similarity는 구조적으로 i, j가 증가할 수록 값이 작아지게 되어 있는가? 그래서 rank 1만 값이 높은 것은 아닐까?
-
7. Figure 4의 그래프를 통해 무엇을 볼 수 있는가? i, j가 커짐에 따라
는 어떻게 변하고, 그것은 무엇을 의미하는가? -
8. top i subspace similarity를 통해 비교하는 것은 합당해 보이지만, Figure 4에서는 rank 1만이 유의미하고 그 이상은 필요없다는 것만을 보여준다. 그럼 i=j인 것만 보여줬어도 충분한 것 아닌가? i<j 또는 i>j인 경우를 볼 필요가 있을까?
-
9. 베셀 부등식에 의해 j=1일 때, i가 8로 가까워질수록 최대값인 1에 가까워져야 하는 것 아닌가? 왜 i=8, j=1일 때도 값이 낮은 것일까?
-
의문점 -
, 비교 관련 -
해결되지 않은 의문점 또는 아이디어
논문 리뷰
기존 Adapter-based 방법과 달리 layer 사이에 새로운 adapter를 추가하는 게 아닌, low-rank decomposition 행렬을 기존 파라미터와 평행하게 배치하고 LoRA 모듈만 변경되도록 해 학습 비용을 획기적으로 줄이면서도 추론시 기존 파라미터와 병합해 추가적인 inference latency가 없게 할 수 있었다.
이 뿐만 아니라 low-rank decomposition으로서 학습된 $\Delta W$를 기존의 $W$와 비교해, Adaptation 과정에서 사전 학습에서 특별히 더 중요하진 않았지만 특정 task에서는 중요한 특징들을 학습하고 있다는 것을 보인 점이 더욱 흥미로웠다.
의문점
1. Scaling factor $\frac{\alpha}{r}$은 왜 필요한가?
(부족한 답변) $\Delta Wx$의 영향이 너무 크면 너무 많은 변화가 일어나기 때문에 이를 줄이기 위함.
어차피 학습 중에 알아서 작은 값을 찾아가지 않을까? 또는 rank가 r인 행렬이라해도 r배만큼 선형적으로 값이 증가하는 것은 아니지 않나?
2. $\Delta W = BA$는 0행렬로 초기화하는 것은 타당하지만, A는 random Guassian으로, B는 0행렬로 초기화한 것의 근거는?
A, B 둘다 0행렬로 초기화하거나, A, B가 서로 직교하도록 하면 $\Delta W = BA$를 0행렬로 초기화할 수 있겠지만, 이미 많이 연구된 initialization 기법을 사용하기 위해서는 B를 0행렬로 초기화하는 것은 타당해보인다.
3. 기존의 파라미터가 freeze되어 있는 상태라도, 기울기를 계산해야 역전파 시 그 다음에 신호를 받는 모듈에 전달이 되는게 아닌가?
역전파 시 다음 모듈에 전달되는 신호는 freeze된 파라미터와 관련이 없다. 예를 들어 Output = Weight * x의 역전파에서 Weight가 freeze되어 있다면 Weight에 대한 gradient는 계산되지 않고 x로 전파될 gradient만 계산된다.
(이런 의문이 든 이유) 아마 직관적으로 모델 구조를 생각하다보니, 특정 모듈이 freeze되어서 역전파 경로가 차단되었는데 역전파가 어떻게 진행되는지 혼동이 온 것 같다. 하지만 freeze된 것은 모듈 자체가 아니라 weight가 freeze된 것이고, weight로 역전파가 진행되는게 아니라 입력, 출력으로 역전파가 진행되는 것이기 때문에 파라미터를 freeze하는 것은 오히려 계산적인 이점을 줬으면 줬지(frozen weight에 대한 gradient 계산을 안하므로) 역전파 진행에는 지장을 주지 않는다.
의문점 - Subspace Similarity 관련
1. Subspace similarity가 아닌 내적을 사용하는건 어떨까?
내적을 사용하게 되면 단순히 "각각의 벡터"의 방향이 서로 얼마나 비슷한지만 볼 수 있다. 하지만 크기가 같은 서로 다른 두 행렬의 singular vectors는 같은 공간을 span하는 다른 단위벡터들로 이뤄진 집합이므로, Subspace similarity를 통해 서로 다른 2개의 행렬이 얼마나 비슷한 방향성을 가지고 있는지 알 수 있다. 특히 top i subspace similarity는 두 행렬의 주된 방향이 얼마나 비슷한지를 비교할 수 있다.
2. $\Delta W = BA$가 아닌 $A$만을 사용하는 것은 타당한가?
먼저 $\Delta Wx = BAx$에서 $A$ 행렬은 입력 벡터 $x$를 r차원으로 압축하는 행렬이라 볼 수 있고, $B$ 행렬은 입력 벡터 $Ax$를 r차원에서 출력 차원으로 복원하는 행렬이라 볼 수 있다. 그리고 SVD를 통해 얻은 left, right singular unitary matrix에서 각각 singular value의 크기 순서대로 left는 출력 기저 벡터를, right는 입력 기저 벡터를 나열해놓은 행렬이다.
따라서 $A$ 행렬과 right singular unitary matrix를 사용해 분석한다는 것은 입력 벡터 $x$의 어느 성분을 중요하게 생각하는지를 분석하는 것이다.
또한, 논문에서는 p.11의 각주에서 $B$와 left-singular unitary matrix를 통해 비슷한 분석을 할 수 있다고 작성해두었다.
$\Delta W = BA$를 사용해서 update matrix를 설명하는 것보다는 위에서 말한 것처럼 $A$를 통해 압축되는 방향 중 주된 방향이 어떤 방향인지, 또는 $B$를 통해 복원되는 방향 중 주된 방향이 어떤 방향인지를 분석하려는 의도라고 보인다.
3. Subspace similarity는 왜 min(i, j)로 나누는 것인가?
같은 부분공간을 span하는 두 벡터 집합이 있을 때, 1번 집합의 어떤 단위 벡터가 2번 집합의 모든 단위 벡터와 내적한 값을 합하면 그 결과는 1이 된다.(베셀 부등식 참고) 고로 한 단위 벡터가 다른 j개의 단위 벡터와 내적한 값을 모두 더하면 최대 1이고, i<j일 때 i개의 단위 벡터가 다른 j개의 단위 벡터와 내적한 값을 모두 더하면 최대 i이다.
따라서 unitary matrix를 사용하는 Subspace similarity의 분자는 i<j일 때는 최대 i이고, i>j일 때는 최대 j이기 때문에 이를 min(i, j)로 나누어야 Subspace similarity의 값이 최대 1로 고정된다.
4. 논문에서는 top singular vectors가 아닌 방향들은 랜덤 노이즈를 포함하고 있다고 하는데, 이것은 top singular vectors가 아닌 방향들은 필요없다는 뜻인가? 일반적으로 생각했을 때는 rank가 더 높을수록 성능이 좋은 것 아닌가?
일단 논문에서 성능을 비교한 표를 봐도 학습한 attention type이 1개인 경우는 rank가 높을수록 성능이 좋은 경향을 보이지만, attention type이 여러 개인 경우는 rank가 높아도 성능이 비슷한 것을 볼 수 있다. 또한 Figure 4를 보면 top singular인 아닌 낮은 singular에 해당하는 부분을 보면 Random Gaussian과 비슷한 것을 볼 수 있다. 이를 통해 일단 논문에서 사용한 데이터 셋과 모델에 한해서는 논문에서 말했듯, top singualr vectors가 아닌 방향들이 랜덤 노이즈를 포함하고 있고, 성능 향상에 큰 도움이 되지 않는 것을 알 수 있다.
5. 48th layer가 아닌 다른 layer들은 통제 변인으로 설정했어야 하는 것 아닌가?
논문에서는 48th layer 이전의 레이어들이 독립 변인으로 설정되어 있기 때문에 $A_{r=8}, A_{r=64}$의 입력이 달라지므로 입력 벡터에서 어떤 방향이 주로 반영되는지를 볼 수 있는 Subspace Similarity는 타당성을 잃는다. 그렇다고 48th layer만 독립 변인으로 설정한다면 $A_{r=8}, A_{r=64}$가 목표로 하는 최적의 파라미터가 동일해지기 때문에 이 둘을 비교하는 것이 의미가 없다.
따라서 48th layer 이후의 layer들만을 독립 변인으로 설정한다면 48th layer의 입력이 같아서 Subspace Similarity도 사용할 수 있고, 목표로 하는 최적의 파라미터도 다르기 때문에 $A_{r=8}, A_{r=64}$도 다르게 학습된다.(서로 비교대상이 된다.)
(잘 못 생각한 점) 48th layer의 입력이 달라지면 48th layer가 목표로 하는 최적의 파라미터가 달라지기 때문에 비교하는 것이 타당하지 않을 수도 있다고 생각했지만, 생각해보니 목표로 하는 최적의 파라미터가 같으면 행렬의 rank가 달라도 같은 방향으로 학습하므로 비교에 의미가 없을 것이다. 따라서 실험 비교를 위해서는 최적의 파라미터는 다른 것이 타당하다.
6. Subspace Similarity는 구조적으로 i, j가 증가할 수록 값이 작아지게 되어 있는가? 그래서 rank 1만 값이 높은 것은 아닐까?
Subspace Similarity의 수식 구조상에는 문제가 없다. Subspace Similarity는 각기 다른 right singular unitary matirx에서 얻은 주요한 입력 벡터들의 Subspace 비교를 통해 두 행렬이 얼마나 비슷하게 입력 벡터를 처리하고 있는가를 알 수 있다. Figure 4를 통해 두 행렬이 중요하게 보는 방향이 완전히 같지는 않지만, i, j가 증가할 수록 값이 작아지는 것을 통해 어떤 방향이 주요한 방향인지는 일관되게 바라보고 있음을 알 수 있다. (만약 중간에 갑자기 값이 커지는 차원이 있었다면, 두 행렬이 특정 방향에 대한 중요도를 다르게 바라보고 있음을 알 수 있을 것이다.)
또한 $\Delta W_q$와 $\Delta W_v$를 비교해보면, $\Delta W_q$가 1차원부터 점진적으로 색이 어두워지는 것에 반해 $\Delta W_v$는 1차원부터 3차원까지 밝은 색을 유지하다가 급격히 어두워지는 것을 볼 수 있다. 이는 $\Delta W_v$의 $A_{r=8}, A_{r=64}$의 주요 방향이 $\Delta W_q$보다 더 비슷하다는 것을 보여준다.
7. Figure 4의 그래프를 통해 무엇을 볼 수 있는가? i, j가 커짐에 따라 $\phi$는 어떻게 변하고, 그것은 무엇을 의미하는가?
Figure 3는 i=j를 기준으로 그래프를 나눠 그려서 왼쪽 두 그래프는 min(i,j)=i, 오른쪽 두 그래프는 min(i,j)=j인 경우만 있다. 왼쪽 그래프들에서는 \phi의 분모가 i이므로 i가 커질수록 값이 줄고, j가 커질수록 값이 커진다. 즉 우상단 쪽이 값이 커지는 방향이다. 오른쪽 그래프들에서는 반대로 좌하단 쪽이 값이 커지는 방향이다.
8. top i subspace similarity를 통해 비교하는 것은 합당해 보이지만, Figure 4에서는 rank 1만이 유의미하고 그 이상은 필요없다는 것만을 보여준다. 그럼 i=j인 것만 보여줬어도 충분한 것 아닌가? i<j 또는 i>j인 경우를 볼 필요가 있을까?
Figure 3의 3번째 그래프를 보면, (i, j)가 (4,3)->(5,3)으로 넘어가는 부분은 색이 거의 그대로 인데, (5,3)->(6,3)은 더 색이 밝아지는 것을 볼 수 있다. 이는 $A_{r=64}$에서 주요하게 보는 3번째 입력 벡터 방향이 $A_{r=8}$의 입력 벡터 방향 중 5번째보다 6번째가 더 비슷하다는 것을 의미한다.
또한, Figure 3의 1번째 그래프를 보면, i=3인 부분은 (3,4)에서 색이 밝아지고 이후로는 일관적인데, i=4에서는 (4,12)정도부터 색이 밝아지는 것을 볼 수 있다. 이는, $A_{r=8}$의 3번째 벡터는 $A_{r=64}$의 1~4번째 벡터와 연관성이 큰데, $A_{r=8}$의 4번째 벡터는 $A_{r=64}$의 10번째 벡터까지도 연관성이 낮은 것을 보여준다.
9. 베셀 부등식에 의해 j=1일 때, i가 8로 가까워질수록 최대값인 1에 가까워져야 하는 것 아닌가? 왜 i=8, j=1일 때도 값이 낮은 것일까?
그래프에 나오는 벡터의 개수는 8개이지만, 벡터의 차원은 그보다 훨씬 큰 입력 벡터의 차원이다. 따라서 벡터의 차원수만큼의 단위 벡터가 있어야 1에 도달한다.
$A_{r=8}$는 rank가 8이기 때문에 8차원 Subspace를 span한다. $A_{r=8}$의 right singular unitary vectors 중 1~8번째 단위 벡터가 $A_{r=8}$가 span하는 8차원 Subspace를 span하고, 9번째 단위 벡터부터는 정보량이 0인 의미없는 단위 벡터일 뿐이다.
의문점 - $\Delta W$, $W$ 비교 관련
해결되지 않은 의문점 또는 아이디어
1. 저자들은 5번과 같은 고민을 하지 않았을까? 분명히 했을 것 같은데 왜 모든 layer를 독립 변인으로 설정했을까?
2. rank 1이 잘 되는 이유를 보여주는 Subspace Similarity와 더불어, Singular value의 크기를 차례대로 비교해서 rank 1이 얼마나 많은 정보량을 가지는지 확인해봤으면 어땠을까?
3. r=8로 고정하고 0~96th layer 각각의 $A$ 행렬들이 유의미한 singular value를 얼마나 많이 포함하고 있는지 비교하는 것은 어땠을까?
4. rank 1 이상이 필요한 경우(다른 데이터셋, 다른 모델)도 보여줬으면 어땠을까? 이런 경우에서 좀 더 인사이트를 얻을 수 있는 지표 또는 방법은 무엇이 있을까?
논문 리뷰
기존 Adapter-based 방법과 달리 layer 사이에 새로운 adapter를 추가하는 게 아닌, low-rank decomposition 행렬을 기존 파라미터와 평행하게 배치하고 LoRA 모듈만 변경되도록 해 학습 비용을 획기적으로 줄이면서도 추론시 기존 파라미터와 병합해 추가적인 inference latency가 없게 할 수 있었다.
이 뿐만 아니라 low-rank decomposition으로서 학습된
의문점
1. Scaling factor 은 왜 필요한가?
(부족한 답변)
어차피 학습 중에 알아서 작은 값을 찾아가지 않을까? 또는 rank가 r인 행렬이라해도 r배만큼 선형적으로 값이 증가하는 것은 아니지 않나?
2. 는 0행렬로 초기화하는 것은 타당하지만, A는 random Guassian으로, B는 0행렬로 초기화한 것의 근거는?
A, B 둘다 0행렬로 초기화하거나, A, B가 서로 직교하도록 하면
3. 기존의 파라미터가 freeze되어 있는 상태라도, 기울기를 계산해야 역전파 시 그 다음에 신호를 받는 모듈에 전달이 되는게 아닌가?
역전파 시 다음 모듈에 전달되는 신호는 freeze된 파라미터와 관련이 없다. 예를 들어 Output = Weight * x의 역전파에서 Weight가 freeze되어 있다면 Weight에 대한 gradient는 계산되지 않고 x로 전파될 gradient만 계산된다.
(이런 의문이 든 이유) 아마 직관적으로 모델 구조를 생각하다보니, 특정 모듈이 freeze되어서 역전파 경로가 차단되었는데 역전파가 어떻게 진행되는지 혼동이 온 것 같다. 하지만 freeze된 것은 모듈 자체가 아니라 weight가 freeze된 것이고, weight로 역전파가 진행되는게 아니라 입력, 출력으로 역전파가 진행되는 것이기 때문에 파라미터를 freeze하는 것은 오히려 계산적인 이점을 줬으면 줬지(frozen weight에 대한 gradient 계산을 안하므로) 역전파 진행에는 지장을 주지 않는다.
의문점 - Subspace Similarity 관련
1. Subspace similarity가 아닌 내적을 사용하는건 어떨까?
내적을 사용하게 되면 단순히 "각각의 벡터"의 방향이 서로 얼마나 비슷한지만 볼 수 있다. 하지만 크기가 같은 서로 다른 두 행렬의 singular vectors는 같은 공간을 span하는 다른 단위벡터들로 이뤄진 집합이므로, Subspace similarity를 통해 서로 다른 2개의 행렬이 얼마나 비슷한 방향성을 가지고 있는지 알 수 있다. 특히 top i subspace similarity는 두 행렬의 주된 방향이 얼마나 비슷한지를 비교할 수 있다.
2. 가 아닌 만을 사용하는 것은 타당한가?
먼저
따라서
또한, 논문에서는 p.11의 각주에서
3. Subspace similarity는 왜 min(i, j)로 나누는 것인가?
같은 부분공간을 span하는 두 벡터 집합이 있을 때, 1번 집합의 어떤 단위 벡터가 2번 집합의 모든 단위 벡터와 내적한 값을 합하면 그 결과는 1이 된다.(베셀 부등식 참고) 고로 한 단위 벡터가 다른 j개의 단위 벡터와 내적한 값을 모두 더하면 최대 1이고, i<j일 때 i개의 단위 벡터가 다른 j개의 단위 벡터와 내적한 값을 모두 더하면 최대 i이다.
따라서 unitary matrix를 사용하는 Subspace similarity의 분자는 i<j일 때는 최대 i이고, i>j일 때는 최대 j이기 때문에 이를 min(i, j)로 나누어야 Subspace similarity의 값이 최대 1로 고정된다.
4. 논문에서는 top singular vectors가 아닌 방향들은 랜덤 노이즈를 포함하고 있다고 하는데, 이것은 top singular vectors가 아닌 방향들은 필요없다는 뜻인가? 일반적으로 생각했을 때는 rank가 더 높을수록 성능이 좋은 것 아닌가?
일단 논문에서 성능을 비교한 표를 봐도 학습한 attention type이 1개인 경우는 rank가 높을수록 성능이 좋은 경향을 보이지만, attention type이 여러 개인 경우는 rank가 높아도 성능이 비슷한 것을 볼 수 있다. 또한 Figure 4를 보면 top singular인 아닌 낮은 singular에 해당하는 부분을 보면 Random Gaussian과 비슷한 것을 볼 수 있다. 이를 통해 일단 논문에서 사용한 데이터 셋과 모델에 한해서는 논문에서 말했듯, top singualr vectors가 아닌 방향들이 랜덤 노이즈를 포함하고 있고, 성능 향상에 큰 도움이 되지 않는 것을 알 수 있다.
5. 48th layer가 아닌 다른 layer들은 통제 변인으로 설정했어야 하는 것 아닌가?
논문에서는 48th layer 이전의 레이어들이 독립 변인으로 설정되어 있기 때문에
따라서 48th layer 이후의 layer들만을 독립 변인으로 설정한다면 48th layer의 입력이 같아서 Subspace Similarity도 사용할 수 있고, 목표로 하는 최적의 파라미터도 다르기 때문에
(잘 못 생각한 점) 48th layer의 입력이 달라지면 48th layer가 목표로 하는 최적의 파라미터가 달라지기 때문에 비교하는 것이 타당하지 않을 수도 있다고 생각했지만, 생각해보니 목표로 하는 최적의 파라미터가 같으면 행렬의 rank가 달라도 같은 방향으로 학습하므로 비교에 의미가 없을 것이다. 따라서 실험 비교를 위해서는 최적의 파라미터는 다른 것이 타당하다.
6. Subspace Similarity는 구조적으로 i, j가 증가할 수록 값이 작아지게 되어 있는가? 그래서 rank 1만 값이 높은 것은 아닐까?
Subspace Similarity의 수식 구조상에는 문제가 없다. Subspace Similarity는 각기 다른 right singular unitary matirx에서 얻은 주요한 입력 벡터들의 Subspace 비교를 통해 두 행렬이 얼마나 비슷하게 입력 벡터를 처리하고 있는가를 알 수 있다. Figure 4를 통해 두 행렬이 중요하게 보는 방향이 완전히 같지는 않지만, i, j가 증가할 수록 값이 작아지는 것을 통해 어떤 방향이 주요한 방향인지는 일관되게 바라보고 있음을 알 수 있다. (만약 중간에 갑자기 값이 커지는 차원이 있었다면, 두 행렬이 특정 방향에 대한 중요도를 다르게 바라보고 있음을 알 수 있을 것이다.)
또한
7. Figure 4의 그래프를 통해 무엇을 볼 수 있는가? i, j가 커짐에 따라 는 어떻게 변하고, 그것은 무엇을 의미하는가?
Figure 3는 i=j를 기준으로 그래프를 나눠 그려서 왼쪽 두 그래프는 min(i,j)=i, 오른쪽 두 그래프는 min(i,j)=j인 경우만 있다. 왼쪽 그래프들에서는 \phi의 분모가 i이므로 i가 커질수록 값이 줄고, j가 커질수록 값이 커진다. 즉 우상단 쪽이 값이 커지는 방향이다. 오른쪽 그래프들에서는 반대로 좌하단 쪽이 값이 커지는 방향이다.
8. top i subspace similarity를 통해 비교하는 것은 합당해 보이지만, Figure 4에서는 rank 1만이 유의미하고 그 이상은 필요없다는 것만을 보여준다. 그럼 i=j인 것만 보여줬어도 충분한 것 아닌가? i<j 또는 i>j인 경우를 볼 필요가 있을까?
Figure 3의 3번째 그래프를 보면, (i, j)가 (4,3)->(5,3)으로 넘어가는 부분은 색이 거의 그대로 인데, (5,3)->(6,3)은 더 색이 밝아지는 것을 볼 수 있다. 이는
또한, Figure 3의 1번째 그래프를 보면, i=3인 부분은 (3,4)에서 색이 밝아지고 이후로는 일관적인데, i=4에서는 (4,12)정도부터 색이 밝아지는 것을 볼 수 있다. 이는,
9. 베셀 부등식에 의해 j=1일 때, i가 8로 가까워질수록 최대값인 1에 가까워져야 하는 것 아닌가? 왜 i=8, j=1일 때도 값이 낮은 것일까?
그래프에 나오는 벡터의 개수는 8개이지만, 벡터의 차원은 그보다 훨씬 큰 입력 벡터의 차원이다. 따라서 벡터의 차원수만큼의 단위 벡터가 있어야 1에 도달한다.
의문점 - , 비교 관련
해결되지 않은 의문점 또는 아이디어
1. 저자들은 5번과 같은 고민을 하지 않았을까? 분명히 했을 것 같은데 왜 모든 layer를 독립 변인으로 설정했을까?
2. rank 1이 잘 되는 이유를 보여주는 Subspace Similarity와 더불어, Singular value의 크기를 차례대로 비교해서 rank 1이 얼마나 많은 정보량을 가지는지 확인해봤으면 어땠을까?
3. r=8로 고정하고 0~96th layer 각각의
4. rank 1 이상이 필요한 경우(다른 데이터셋, 다른 모델)도 보여줬으면 어땠을까? 이런 경우에서 좀 더 인사이트를 얻을 수 있는 지표 또는 방법은 무엇이 있을까?