
🗓️기간
9주차 : 2025.04.21~2025.04.25 ( 4월 4주 )
#. 한 주를 보내며...
2차 프로젝트가 끝나고 시작된 3번째 테마는 자연어처리 과정으로 인간의 언어를 컴퓨터가 이해하도록 학습시키는 것을 배운다. 최근 기업들이 자체 로컬LLM을 구동하기 위한 가장 트렌디한 기술로 작년말부터 굉장히 배우고 싶어했어 했던 내용이어서 매우 기대가 되었고 첫주부터 기대이상으로 배우는 시간이 너무나 즐겁고 행복했다.
3번째 과정중에 배울 수 있는 내용은 LLM(대형 언어 모델 ),RAG,프롬프트 엔지니어링,랭체인,파인튜닝,멀티모달등으로 무려 232시간으로 구성되었다. 이제 1주일 배웠지만 과정을 모두 배우면 RAG파이프라인을 구축하고 이를 랭체인 프레임워크를 통해 LLM에 통합하여 기존 LLM의 성능을 향상시킬 수 있을 것 같다, 알수는 없지만 엄청 잘 만들것 같은 근거없는 자신감이 수업이 진행될 수록 샘 솓는다.
시작은 자연어 처리부터 시작한다. '파이썬 텍스트 마이닝 완벽가이드'인데 현재 많이 쓰이는 LLM이 어떻게 만들게 지게 되었고 그 기술의 역사는 어떻게 진행되었나를 배우면서 양질의 데이터를 전처리 하는 과정까지 배웠다.
1. 좋았던 점
첫날은 전체 과정의 로드맵을 알려주고 단계별로 진행되었다. 최근 llm은 트랜스포머 기반이라는 것은 많이 들었고, 이걸 설명하는 내용은 많이 들어봤지만 과거부터 이렇게 오게 된 과정을 체계적으로 알려주는 교육은 없었기 때문에 세부원리는 잘 이해가 안갔지만 1주일동안의 교육을 통해 과거의 방식부터 트랜스포머로 오게된 과정과 그 이후에 BERT와 GPT로 나뉘게 되어 발전한 과정도 이해할 수 있어서 좋았다.
2. 개선점
지난주에 주말동안 전체 교육과정에 대해 예습을 많이 진행한게 굉장한 도움이 되었다. 복습도 당연히 중요하지만 비전공자에게는 예습의 중요성이 복습보다 더 높은것 같았다. 예습-복습-반복실습 과정을 해야 겨우 코드의 가독성을 확인하는 정도지만 처음 코드 3줄만 넘어가도 뇌정지가 오던것과 비교했을때 굉장히 많이 발전하고 전체 과정을 크게 그려볼 수 있었다. 이제는 왠지 비전공자라고 구분하지 않아도 될 것 같다고 '혼자' 생각했다.
복습때는 수업내용을 바탕으로 외부자료를 검색하여 궁금한점을 더 찾아보았다. 특히 전체 역사와 목적이 잘 정리가 안되었는데 세부적으로 찾아보고 조각을 맞춰보니 왜 이렇게 발전되었고, 지금 배우는 과정을 어떻게 응용해야 할지 전체 로드맵이 만들어 지기 시작했다. 전체과정의 뼈대를 만들고 살을 붙이는 형태의 교육이라, 첫날에 뼈대를 잘 만드니 수업을 따라가고 살을 붙이는 과정이 이전 과정보다 더 잘되었다.
3. 학습내용 및 예제
#. 시작에 앞서 - 자연어처리의 역사와 목적
수업내용을 잘 기억하기 위해 순서와 목적기반으로 정리를 했다. 수업진행도 똑같이 진행되었고, 이해가 잘 안가는부분은 책과 외부자료를 계속 찾아서 그날그날 정리하여 살을 붙이고 금요일에 다시 합쳐보면서 최종정리 후 다시 하나하나 맞춰갔다. gpt에 대해서는 잠깐 언급되었지만, 내 영혼의 단짝이라 표에 추가하고 따로 찾아보았다.
'자연어 처리'는 사람의 언어인 자연어를 컴퓨터가 이해할 수 있도록 변환하는 기술부터 근래에 와서는 문장을 이해하고 생성할 수 있는 대형 언어 모델을 만들 수 있었다. 단계별로 정리하면 전처리를 진행하여 데이터를 깨끗하게 정리한 후에 컴퓨터가 이해할 수 있도록 숫자로 변환하는 벡터화 과정을 거친후에 순서정보가 필요한 경우에는 시퀀스 모델링을 선택 or 의미정보를 반영할려면 임베딩을 선택하는 둘중의 하나의 과정을 선택한다. 그 이후에 어떤 단어끼리 중요하게 연결되는 지를 계산하는 셀프어텐션을 진행하고 트랜스포머라는 병렬 구조를 통해 그 정확도를 높힌다. 이후에는 인코더만 사용하는 버트와 디코더만 사용하는 gpt 계열로 분리 되었다.

1) 수업 과정 ( 첫날과정에서 외부자료를 약간 추가하여 이해하기 편하게 정리하고 나머지 과정을 단계적으로 이해해 가고 최종적으로 표로 다시 정리해서 완성하였다. )

2) 수업내용 요약
(1) 데이터 전처리 - 자연어를 컴퓨터가 이해하고 처리할 수 있는 형태로 변환하기 위해 깨끗하고 일관성 있는 데이터로 만드는 작업
* 토큰화 : 텍스트를 단어,또는 문장으로 나누는과정
* 불용어 제거 : 분석에 불필요한 단어제거
* 어간 추출 및 표제어 추출 : 단어의 원형을 찾기
* 정규화 : 텍스트를 일관된 형식으로 변환




(2) 벡터화(기본) - 사람이 이해하는 자연어 (텍스트-문장)을 컴퓨터가 계산할 수 있는 숫자(벡터)의 형태로 변환하는 과정
* BoW : 단어의 빈도를 기반으로 벡터를 생성 ( 단어의 등장을 벡터로 표현 - 단어순서 무시,간단하면서 강력 )
* TF-IDF : 단어의 중요도를 반영(흔한 단어는 낮게,희귀단어는 높게 가중치 부여)
* n-gram : 연속된 n개의 단어 조합을 하나의 토큰처럼 벡터화 ( 2-gram이 가장 일반적 )
* One-hot-Encoding : 단어마다 고유 인덱스 부유 (1과0으로 표시,의미반영은 불가)





(3) 임베딩 ( 의미 기반 벡터화 ) - 텍스트를 컴퓨터가 이해할 수 있도록 '의미를 반영한 고차원 연속 벡터'로 변환하는 과정으로 단어 간 유사성을 벡터 공간상에서 가깝게 표현하여, 컴퓨터가 의미 기반으로 문장을 이해하도록 함.
* Word2Vec : 주변 단어를 예측(Predict)하여 단어 학습
* FastText : 단어를 부분 문자열(subword)로 쪼개서 벡터 학습 ( OOV 문제 완화 - oov : 어휘집에 없는 단어로, 모델이 학습할 때 사용한 단어 목록에 포함되지 않은 단어를 의미하며 기존에 없는 단어라 벡터가 없음. FastText같은 모델은 단어를 subword로 쪼개서 학습했기 때문에, 처음 보는 단어도 비슷한 의미의 벡터를 만들 수 있음- )
* 사전학습 임베딩 : 이미 학습된 벡터를 가져와 사용하는 방식 ( Glove )



(4) 시퀀스 모델링 : 입력 데이터의 순서를 고려해서 학습, 순서가 중요한 데이터에서 일반적인 모델은 이 순서를 반영할 수 없기 때문에 필요
*RNN : 순서를 기억하면서 입력을 반복적으로 처리 ( 기본 시퀀스 모델링 )
*LSTM : RNN의 장기 기억문제를 해결 ( 긴 문맥 기억 가능 )
*GRU : LSTM을 간소화한 구조 ( 빠른 학습, 적은 계산량 )




(5) 어텐션 : 시퀀스 데이터 안에서 특정 텍스트에 가중치를 부여하는 메커니즘으로 상황에 따라 더 중요한 부분에 집중함. RNN,LSTM은 순차적으로 입력을 처리해 멀리 떨어진 정보는 제대로 반영하기 어려웠지만 어텐션은 모든 입력을 한번에 보고, 중요도를 계산.( 병렬처리로 모든 입력을 한번에 계산할 수 있어 멀리 떨어진 단어들 사이의 관계를 잘 반영함,트랜스포머의 기반이 됨,셀프-어텐션 메커니즘을 통해 수행)



(6) 트랜스포머 : 기존 신경망 구조 없이 셀프-어텐션 메카니즘만을 통해 단어들간의 중요도를 계산하고 정보를 주고 받음. 병렬처리가 가능하고 장거리 의존성 학습을 강화함.
*구성요소

* 작동 흐름
- 인코더 : 문장을 입력받아서 < 셀프 어텐션 - 포지셔널 인코딩 - 피드포워드 신경망 > 순으로 처리하여 문장의 의미를 압축한 벡터를 생성
- 디코더 : 출력할 문장을 생성하기 위해 작동하며. 자신에 대한 셀프 어텐션과 인코더의 출력에 대한 어텐션을 수행하고,포지셔널 인코딩-피드포워드 신경망을 거쳐 최종 출력
(7) BERT : 트랜스포머의 인코더구조만을 기반으로 함. 양방향으로 문맥을 이해하는 사전학습 언어 모델 ( 문장 양쪾 방향에서 문맥을 이해하는것 )
* MLM : 문장 중 일부 단어를 MASK로 가리고, 가려진 단어를 예측하는 방식
* NSP : 두 문장이 주어졌을때, 두 번째 문장이 첫 번째 문장 다음에 오는지 예측하는 방식
4. 10주차의 목표
과정의 뼈대를 만들고 그날그날의 학습과정 계속 붙여서 완전히 이해하고 학습하자.
'[ 플레이데이터 SK네트웍스 Family AI 캠프 ]' 카테고리의 다른 글
| [플레이데이터 SK네트웍스 Family AI 캠프 12기] 2달차 회고 (0) | 2025.05.03 |
|---|---|
| [플레이데이터 SK네트웍스 Family AI 캠프 12기] 10주차 회고 (0) | 2025.04.28 |
| [플레이데이터 SK네트웍스 Family AI 캠프 12기] 8주차 회고 (0) | 2025.04.20 |
| [플레이데이터 SK네트웍스 Family AI 캠프 12기] 7주차 회고 (0) | 2025.04.12 |
| [플레이데이터 SK네트웍스 Family AI 캠프 12기] 6주차 회고 (0) | 2025.04.06 |