CH3의 맨 처음에 등장하는 '임베딩 입력 시퀀스' 텐서 값은 임의의 숫자인가요?
지난 주에 질문을 했었는데, 제가 인프런 시스템에 익숙하지 않다보니 엉뚱한 게시판에다 질문을 한 것 같아요.
이 Q&A 게시판은 강사님께 질문 드리는 것 맞는지요? 맞는다면 아래 내용을 질문 드리고 싶습니다.
제 3장("어텐션 메커니즘 구현하기")의 거의 맨 앞 부분에 다음과 같은 문구와 코드가 등장합니다.
다음처럼 3차원 벡터로 임베딩한 입력 시퀀스가 있다고 가정.
import torch
inputs = torch.tensor(
[[0.43, 0.15, 0.89], # Your (x^1)
[0.55, 0.87, 0.66], # journey (x^2)
[0.57, 0.85, 0.64], # starts (x^3)
[0.22, 0.58, 0.33], # with (x^4)
[0.77, 0.25, 0.10], # one (x^5)
[0.05, 0.80, 0.55]] # step (x^6)
)
이 값들은 토크나이저에서 그냥 임의로 마구잡이로 부여하는 실수 값인가요?
아니면 각 토큰 별로 이미 유사도나 거리 개념까지 다 계산 되어서 나온 실수 값인가요?
아!! 단순하게 이 교재에서 이해를 돕기 위해 3차원 값으로 예를 든 저 실수들만을 말하는 게 아니고요
실제로 LLM에서 입력 시퀀스의 각 토큰에 부여된 텐서 값들을 말하는 겁니다.
만약 아무런 연관성이 없이 그냥 임의로 토크나이저에서 만들어진 실수 값일 뿐이라면,
단순히 한 입력 원소와 다른 모든 입력 원소의 점곱 등의 연산을 통해 산출된 문맥 벡터가 무슨 의미가 있는 것인 지 이해가 잘 되지 않아서요.
즉, 그냥 아무런 연관성 없는 임의의 값들끼리 접곱했는데 의미를 가진 문맥 벡터가 나온다는 게 언뜻 이해가 되질 않습니다.
아니면,
처음에는 토크나이저에서 아무런 연관성 없이 그냥 임의로 실수 값들을 각 토큰에 부여했다 하더라도,
"훈련 가능한 가중치를 가진 멀티 헤드 어텐션" 알고리즘을 수행하게 되면 어텐션 가중치가 갱신 되면서
이런 모든 의구심이 해소 되는 것인가요?
답변 1
1
안녕하세요. 박해선입니다. 트랜스포머를 포함해 모든 신경망 모델은 훈련 전에 랜덤하게 가중치를 초기화하고 훈련을 통해 목표에 최적인 값을 찾아갑니다. 본문에 나온 벡터는 문장에 나온 그대로 설명을 위해 '가정'한 것입니다. 즉 예를 들어 설명하기 위함입니다. 실제 숫자를 사용하지 않는다면 수학 식을 사용해서 설명해야 하는데 그게 더 이해하기 어렵거든요. 감사합니다!
죄송합니다. 해설 강의 관련 문의드립니다..!
0
54
2
해설강의 쿠폰 가능할까요??
0
80
3
해설강의 쿠폰 놓쳤는데, 재발급 가능할까요?
0
82
2
<CH 4.1> "LLM구조 구현하기" 장 마지막의 Logits 차원에 대한 문의
0
75
1
그림 4-5의 분산 값 문의드립니다.
1
64
1
챌린지 완수 조건 문의 드립니다.
0
78
2
어텐션 가중치 질문
0
43
1
해설강의 쿠폰 발행 문의
0
70
2
해설 쿠폰 관련 문의
0
44
2
쿠폰 관련 문의
0
59
3
쿠폰 관련하여 문의드립니다.
0
66
3
해설 쿠폰 관련...
0
40
2
코드 해설 강의 쿠폰 관련 문의
0
93
2
강의 쿠폰 관련 문의드립니다.
0
95
1
p63 질문
0
51
2
주차별 진도 확인하는거 어디에 있는지 알수있을까요?
0
72
2
임베딩 초기화
0
53
1
오타 발견했어요 >_<
0
53
1
8강 부터는 영상이 안나오는게 정상인가요?
0
74
1
강의 쿠폰 문의드립니다.
0
68
2
쿠폰 재발급
0
97
4
2.1 단어 임베딩 이해하기에서 차원 얘기에서
0
118
2
4장 강의는 아직 업로드가 안된걸까요?
0
65
1
코드 2-3 출력 결과 비교
0
58
1





