항해 플러스 AI 후기 3주차 WIL

1. 이번 주 목표

  • 회사, 개인 일정이 너무 빡빡해 성실하게 임하지 못했던 2주차까지 학습의 진도를 따라잡는 것이 최우선 목표였다.

2. 학습 내용

1. Transfer Learning

  • data가 부족하거나 충분한 상황에서도 훨씬 빠르게 generalization이 잘되는 모델을 학습하는 방법

💡 자연어 처리 문제들은 어차피 입력이 다 같은 자연어인데, 다른 자연어 처리 문제를 푸는 모델(Pre-trained Model)을 잘 활용하면 data가 적은 자연어 처리 문제도 풀 수 있지 않을까?


  • 구성요소

    • Pre-trained Model: 충분한 data로 학습하여 자연어 이해 능력 자체가 좋은 모델.

    • Fine-tuning: pre-trained model을 우리가 목표로 하는 자연어 처리 문제에 맞게 학습시키는 방법. 이 때 목표로 하는 자연어 처리 문제를 일반적으로 downstream task라고 부른다.

1.1 Pre-training

  • Supervised pre-training: 입력과 출력 pair가 충분한 자연어 처리 문제에 대해서 모델을 학습하는 방식.

    • 학습에 사용되는 데이터가 “정답”을 가지고 있음

    • 감정 분석 (긍정/부정), 스팸 메일 분류(스팸/일반)

  • Unsupervised pre-training: 주어진 text로부터 가상의 label을 생성하여 가상 label을 맞추는 방향으로 모델을 학습하는 방식.

    • 데이터에 정답이 없음

    • 모델이 스스로 데이터 내의 패턴, 구조, 관계를 스스로 찾아감

    • 단어 임베딩, 텍스트 카테고리 분석 (비슷한 문서끼리 정렬하는)

2. BERT(Bidirectional Encoder Representations from Transformers)

  • 2018년 구글에서 발표한 Transformer Encoder Block을 사용한 NLU 모델

💡 BERT는 un-supervised 방식으로 pre-trained 모델을 학습하는 방식으로, 입력은 자연어이기만 하면 된다. 특별한 label이 필요가 없기 때문에 위키피디아 등의 text를 그대로 긁어와서 사용할 수 있다.

  • 다음 2가지 loss에 대해 pre-training을 진행한다.

2.1 MLM(Masked Language Model)

💡 문장의 일부분을 지웠을(Masking) 때, 나머지를 보고 맞추는 식으로 모델을 학습하면 자연어 처리율이 올라갈 것 같은데?


  1. 특정 token mask: 학습 단계에서 랜덤하게 token들을 [MASK] 라는 special token으로 변경(Masking)

  2. Masking한 token 예측: 1에서 masking한 token들을 예측하는 방향으로 모델을 학습.

2.2 NSP(Next Sentence Prediction)

  • Text가 두 문장으로 이루어져 있을 때, 두 문장이 실제로 이어진 문장인지 아니면 별개의 문장인지 맞추는 식으로 학습.


DistillBERT

  • knowledge distillation이라는 방식을 활용하여 BERT와 비슷한 성능을 내지만 더 빠르고 가볍게 만든 pre-trained Transformer 모델


  1. Teacher, student 모델 선정: teacher와 student 모델을 선정함. 일반적으로 teacher 모델은 성능이 좋은 pre-trained 모델, student 모델은 적당히 작게 학습된 모델.

  2. Soft label 생성: teacher 모델을 가지고 soft label을 생성함. 예를 들어, MLM에서 label을 mask하기 전 token의 값이 아니라 해당 mask token에 대한 teacher 모델의 예측 값으로 설정한다(teacher 모델의 예측 값은 argmax를 하기 전의 값을 의미).

  3. Student 모델 학습: 생성한 soft label을 가지고 student 모델을 학습하면 됨.

💡 DistillBERT는 위와 같은 knowledge distillation을 활용하여 학습하며 더 적은 parameter 수와 inference time으로 BERT와 비슷한 성능을 낸다.

3. GPT(Generative Pre-trained Transformer)

  • 생성하는 사전학습 트랜스포머(?)

  • BERT와 비슷한 방식으로 pre-training을 했으나, 약간 다른 next token prediction loss를 사용한다.

3.1 GPT의 next token prediction

  • 기존 MLM loss: 문장 중간의 token을 masking.

  • GPT의 next token prediction: 마지막 token을 masking.


  • 앞의 문장만 보고 예측을 하기 때문에 문장 전체를 가지고 학습할 수 있음.

  • 따라서 fine-tunning의 난이도와 효율이 굉장히 좋다.

3.2 Token Generative Model

  • GPT의 text 생성은 다음과 같이 이루어진다.

  1. 주어진 문장을 보고 token 생성

    1. GPT에 어떤 문장을 입력으로 넣음.

    2. next word prediction과 똑같은 과정으로 주어진 문장의 다음 token을 생성할 수 있음.

  2. 생성한 token을 주어진 문장에 concat

    1. 위의 과정에서 생성된 token을 주어진 문장에 concat함.

    2. 그리고 다시 GPT에 입력으로 넣어 token을 생성함.

  3. Special token이 나올 때 까지 생성

  • 생성하는 방식은 sequence-to-sequence model의 decoder가 text를 생성하는 방식과 동일함.

3.3 Large Language Model


  • parameter의 수를 폭발적으로 늘려 더 이상 fine-tuning에 의존하지 않을 수 있어졌다.

  • 대신 파라미터의 수 만큼 많은 컴퓨팅 자원을 필요로 한다.

3.4 Few-shot learning

  • 어떤 자연어 처리 문제를 풀 때 그 문제의 예시들을 먼저 보여주고, 주어진 문제를 풀리게 하는 것.


  • train data로 존재하는 입력, 출력의 pair를 그대로 text로 변환하여 넣어주면 마지막에 주어지는 문제를 잘 풀 수 있음.

  • 이렇게 few-shot learning을 활용하면 train data를 이용한 성능 올리기가 가능하다. 또한 여전히 fine-tuning과 같은 별개의 학습 과정도 필요 없다.


3. 느낀점

  • 이번 주차, 재미있었다.

  • 설명의 개연성이 충분하다고 느껴졌고 실제로 들으면서 음… 이런 느낌인가? 라는 연상도 좀 들었다.

  • few-shot learning에서는 아 프롬프팅의 원리가 이건가? 싶은 생각이 들었다.

다음 내용이 궁금하다면?

또는

이미 회원이신가요?

2025년 4월 13일 오후 2:29

댓글 0

    함께 읽은 게시물

    OpenAI가 발표한 Codex의 핵심은 AI와 함께 진짜 팀으로 일하는 것 같은 경험을 준다는거네요.


    기존의 코딩 어시스턴트는 Agent라는 이름을 붙였어도 결국은 자동완성의 확장에 그치는 것이라, 즉, 나의 뇌를 확장하는 것이라 한계가 좀 명확했는데요.


    ... 더 보기

    주니어 개발자들이 읽으면 좋은 테크 아티클 모음📚

    F-Lab 에서 주니어 개발자들이(사실 개발자라면 누구나) 보시면 좋을 아티클 모음을 공유해 주었네요! 검색엔진부터 비동기 처리, NoSQL 등 다양한 분야의 아티클들이 공유되어 있으니 관심있으신 분들은 보시면 좋겠습니다. F-Lab 에서 공유해주신 아티클 주제를 나열해보면 다음과 같습니다. 📌 구글이 직접 말하는 검색엔진의 원리 (tali.kr) 📌 검색 엔진은 어떻게 작동하는가 (xo.dev) 📌 네이버의 검색엔진의 특징과 알고리즘 (tistory.com) 📌 [네이버 블로그]네이버 검색의 원리 : 네이버 블... 더 보기

    주니어 개발자들이 읽으면 좋은 테크 아티클 모음

    F-Lab : 상위 1% 개발자들의 멘토링

    주니어 개발자들이 읽으면 좋은 테크 아티클 모음

     • 

    저장 133 • 조회 3,592


    타입 안전한 API 모킹으로 프론트엔드 생산성 높이기

    이번에 우아한형제들 기술 블로그에 "타입 안전한 API 모킹으로 프론트엔드 생산성 높이기"라는 새 글을 발행하게 되었습니다.

    ... 더 보기

    1년에 한 번 오는 AMA(Ask Me Anything) Time!

    아무거나 물어보세요. 🙂


    샘 알트만: "지금 당신이 o3보다 더 똑똑하다고 생각하세요?"


    ... 더 보기

    샘 알트만: "지금 당신이 o3보다 더 똑똑하다고 생각하세요?" : 오호츠크 리포트

    55check.com

    샘 알트만: "지금 당신이 o3보다 더 똑똑하다고 생각하세요?" : 오호츠크 리포트

    무너지고 있는 프론트엔드, 백엔드 직군의 경계에 대한 고찰

    AI 기술이 우리 일상과 산업 전반에 스며들면서 소프트웨어 개발 환경 역시 큰 변화의 물결을 맞이하고 있다. 특히 코딩을 돕는 AI 에이전트의 등장은 개발 생산성에 대한 큰 변화를 만들고 있다. 나 역시 이러한 변화를 체감하며, 나에게 익숙한 소프트웨어 개발의 대표적인 두 축인 프론트엔드와 백엔드 영역에서 AI 기술이 미치는 영향과 그로 인해 변화하는 소프트웨어 엔지니어의 역할에 대해 개인적인 생각을 정리해 본다.

    ... 더 보기

     • 

    저장 32 • 조회 4,092