Transformers — Compute Attention By Hand
Quiz: Context Length and Cost
한국어 원문으로 표시합니다.
문맥 길이를 두 배로 늘렸더니 총 곱셈 횟수가 네 배가 아니라 두 배 남짓 늘었다. 가장 정확한 설명은?
- 어텐션은 원래 길이에 비례해서만 자란다
- 헤드 수가 늘어 제곱 항이 상쇄되었다
- 아직 짧아서 자리 수에 비례하는 몫이 지배하고 있다
- 마스크가 절반을 지워 제곱 항이 사라졌다
점수 행렬로 V 를 섞는 계산(AV)의 곱셈 횟수는?
- n * n * d — 나오는 자리마다 문맥 전체를 훑는다
- n * d — 출력이 n x d 이므로 자리마다 한 번이다
- n * d * d — 폭끼리 맞물리므로 폭의 제곱이다
- n * n — 점수 행렬의 칸 수만큼이다
모델 폭 d 를 넓히면 제곱 몫이 선형 몫을 따라잡는 교차점은 어떻게 움직이는가?
- 움직이지 않는다. 폭과 무관하게 정해진다
- 짧아진다. 폭이 넓으면 어텐션이 더 빨리 커진다
- 폭에 따라 커졌다 작아졌다 한다
- 길어진다. 선형 몫이 폭의 제곱으로 커지기 때문이다
인과 마스크가 있을 때 길이 n 에서 실제로 쓰이는 점수의 수는?
- n * n — 마스크는 값을 지울 뿐 개수를 줄이지 않는다
- n * (n + 1) / 2 — 줄 길이가 1 부터 n 까지 늘어난다
- n * (n - 1) / 2 — 자기 자신은 보지 않는다
- n * n / 2 — 정확히 절반이 쓰인다
점수 행렬을 통째로 들 수 있는 메모리 예산을 네 배로 늘리면 최대 문맥 길이는?
- 네 배가 된다. 바이트와 길이는 비례한다
- 그대로다. 길이는 헤드 수만 따른다
- 두 배가 된다. 값의 개수가 길이의 제곱이기 때문이다
- 여덟 배가 된다. 헤드마다 따로 들기 때문이다
이미 n 개가 쌓인 문맥에 토큰 하나를 더 붙일 때 새로 생기는 점수의 수는?
- n * n 개 — 행렬을 다시 만들어야 한다
- 1 개 — 새 토큰과 마지막 토큰 사이만 본다
- 2 * n 개 — 가로줄과 세로줄이 함께 생긴다
- n + 1 개 — 새 질의 하나가 자기까지 포함해 본다