1. 이번 주 목표
처음 계획
지난 주에 분명히 배경 지식이 부족하다는 결론을 도출함.
따라서 이번 주 학습에 지장이 없도록 많은 시간을 할애해야겠다고 다짐했다.
하지만 누구나 계획이 있다. 쳐맞기 전까지는.
현실
while(now.getDay() && now.getDay() < 6)
출근하고
일하고
QA하고
버그 수정하고
배포하고
한숨 돌렸으니 이제 해볼까?
그렇다. 이 WIL은 분명히 지난 주차의 커리큘럼을 기반으로 한다. 하지만 지난주에 학습한 내용을 바탕으로 작성하고 있는 내용이 아니다. 마치 음주운전을 했지만 술은 마시지 않은 것처럼 대부분이 오늘 벼락치기로 학습한 내용임을 양심껏 밝힌다.
2. 학습 내용
2주차의 내용은 딥러닝 이론과 자연어 처리 (2)
이다.
오피셜한 강의 자료 상에서의 세부 내용은 다음과 같다.
NLP(Natural Language Processing, 자연어 처리)
지난주에 MLP를 배웠는데, 자연어 data는 MLP를 적용하기 어렵다. 그 이유는 다음과 같다.
가변적 길이: MLP의 경우에는 고정된 shape의 입력을 가정하기 때문에 사진 data는 이에 부합할 수 있다. 하지만 자연어 data는 문장의 구조나 길이가 지금 이 문서처럼 계속해서 달라질 수 있기 때문에 사전에 특정할 수 없다.
모호한 최소 단위: 사진 data의 최소 단위는 픽셀이다. 무엇보다 명확하다. 하지만 자연어는 어떤가? 하지만 자연어는 어떤가?
를 어떻게 나눌 수 있을까? 하
, 지
, 만
, ... 처럼 글자 단위로 자르면 의미가 보존되지 않는다. 그렇다고 하지만
, 자연어는
, 어떤가?
같은 단어 단위로 자르면 의미를 비교적 명확하게 보존할 수 있으나 메모리를 많이 쓴다.
무의미한 정보: 인코딩 정보같은 무의미한 것들이 있다. (솔직히 이 항목에 공감되진 않았다. 필터링도 가능하지 않나?)
그래서 등장하게 된게 Tokenizer
이다. 대 LLM 시대에서는 Token
에 친숙할 수 밖에 없다. 뭐하는 놈들일까?
Tokenizer
와 Vocabulary
Tokenizer: 주어진 text를 자르는 방법을 정의함. 이 때 잘린 각 요소들이 Token
이다.
Vocabulary: 각 토큰을 model이 이해할 수 있게 숫자로 맵핑해 놓은 것.
숫자만 맵핑해놓으면 만사 오케이인가? 싶어서 이 이후에 word embedding에 대한 내용이 나오긴 하는데... 솔직히 벡터화 하는것 까지만 이해했다. 뭐... 벡터화 했는데 어쩔티비?
RNN(Recurrent Neural Network, 순환 신경망) RNN의 핵심은 다음 두가지라고 한다.
Hidden state: 각 token xtxt가 들어올 때마다 업데이트가 되는 hidden state htht가 있다. 이 hidden state는 각 token을 기억하는 역할을 가지고 있다. 그리고 같은 token들이 들어와도 token 순서에 따라 값이 바뀔 수 있다. 즉, 단어 순서에 따라 달라지는 의미 차이를 모델이 학습하고 표현할 수 있다.
Time step과 무관한 neural network: hidden state를 업데이트 할 때 사용하는 neural network은 ff 하나뿐이다. 하나의 ff로 모든 token을 처리하기 때문에 가변적인 길이의 data도 처리가 가능하다.
Attention
나는 미래 시점에서 이 글을 작성하고 있기 때문에 말하자면, 뒤에서 계속해서 언급이 된다. 아주 중요한 것 같다.
솔직히 뭐 자세히 이해 못했다.
인코더 디코더가 있고 인코더 부분을 transformer에서 쓴다더라 정도... 나중에 필요하면 내가 더 학습하지 않을까.. 에서 넘어갔다.
Transformer(자연어 처리 모델)
이래저래 이번 주차의 핵심인데 가장 언급 빈도가 적은 문제의 그 녀석...
Positional encoding
솔직히 뭐라고 하는지 모르겠다. 중요한 개념이라고 느껴진다.
뒤 커리큘럼에서 자주 언급이 된다.
나중에 기회되면 얘가 정확히 어떤 의의를 가지는지에 대한 파악이 필요할 것 같다.
Self Attention
Q를 자기 자신의 x로 부터 추출
한 것을 제외하면 Seq to Seq와 동일하다. 이래서 self attention이라고 부르는 것 같다.
3. 문제 및 해결 과정
이번 주 과제 내용은 Transformer였다. 솔직히 갑자기 분위기 트랜스포머...? 앞에서 설명한 내용이 채 이해되기 전에 더 어려운 개념이 던져졌다. 더 문제는 발제에서 해당 내용에 대해 다룬 부분이 가장 적다는 것.
그래서 그냥 기한내에 과제 제출하는 것을 과감하게 포기했다.
4. 느낀 점 및 개선 방향
코스에 대해.
솔직히 Transformer가 너무 갑작스럽게 등장했다. 그 이후에 특강 세션이니 뭐니 했는데, 이게.. 맞는 방향성인가에 대한 의구심이 해소되지 않았다. 당장 word embedding 부터도...
뭔가 그냥 그렇게 됐다. 궁금하면 찾아 보던가~
라는 뉘앙스가 느껴진다.
당연히 학습자 주도로 찾아볼 수 있다. 실제로 나도 내가 필요하거나 궁금하다고 느끼면 당연히 찾아보니까. 근데 궁금하게 만들어주지 못했다.
이걸 통해서 우리가 어떤 문제해결을 할 수 있고, 어떤 문제를 함께 해결해볼거야: (X)
이런게 있어요~ 궁금하면 찾아보세요~: (O)
자율학습과 방임의 개념은 명확히 다른데 음... 글쎄...? 물론 이 부분에 대해 느끼는 불편함은, 내가 명확한 교육 철학을 가지고 있어서 그럴 수 있다. 그렇다면 반대로, 오랜 경력을 가진 교육 기관은 명확한 교육 철학을 가지고 커리큘럼을 설계하고 검수했을까?
개인에 대해
확실히 몰입감이 많이 떨어졌다는 생각이 든다. 기대컨에 실패해서도 있는 것 같고 재미를 붙일만큼 시간 투자를 못해서 그런것도 있는 것 같다.
어떻게 하면 최선의 결과로 극복할 수 있을까?
우선 내가 지금 당장 빠르게 할 수 있는 것은 코어 학습 시간을 지키는 것이 아닐까?
사실 퇴근해서 집에 도착하면 코어학습 시간이 끝나갈 때쯤인 경우가 많았는데.... 어떻게든 한번 지켜보는걸로 해봐야겠다.
그럼에도 불구하고 긍정적인 부분은 뇌에 나름 뭐가 쌓이고는 있다. 명확하게 정리가 안되어서 그렇지...
경험상 가장 좋은 방법은 같은 주제를 다양한 관점에서 서술하는 자료들을 보는거긴 한데, 그 시간은 어디서 낼 수 있을까에 대한 고민이 다시 꼬리를 물고 가정이 무너지고 사회가 무너지고...
3주차 학습 내용과 2주차의 학습 내용을 한번에 이해하고 싶다는 생각이 들었다. 3주차가 2주차의 강한 연장선상이기도 하고.... 다음주의 목표는 이걸로 해야겠다.
#항해99 #항해플러스AI후기 #AI개발자 #LLM
다음 내용이 궁금하다면?
이미 회원이신가요?
2025년 4월 6일 오후 2:35