아이티고

강좌검색

  • 강좌검색
  • 질문검색
    최근 검색어 자동저장 전체삭제
    여기를 클릭하면, 샘플강의가 재생됩니다.
    강좌코드 : la_P050429
    강사사진
    김종영 강사

    [심화과정]Fine tuning (파인 튜닝) - Transformer (트랜스포머) 아키텍처 Part.3
    담당강사 : 김종영

    강의구성 총 11강좌 (강의시간 : 총 ) 권장 수강기간 30일
    강의형식 동영상 증빙서류 이 강좌의 80% 이상 수강 시
    출력이 가능합니다.
    과정소개
    본 과정은 AI 모델을 특정 목적에 맞게 최적화하는 핵심 기술인 Fine-tuning을 Transformer 아키텍처의 원리부터 실제 구현까지 체계적으로 학습합니다. Attention 메커니즘, Self-attention, Multi-head Attention 등 Transformer의 핵심 구조를 수식과 함께 이해하고, 사전학습(Pre-training)된 모델이 Fine-tuning을 통해 어떻게 새로운 태스크에 적응하는지 그 원리를 탄탄히 익힙니다. 학습률(Learning Rate), 배치 크기(Batch Size), Epoch 등 주요 하이퍼파라미터의 역할을 이론적으로 파악하고, PyTorch와 Hugging Face를 활용한 실습을 통해 텍스트 분류, 감성 분석 등 실제 태스크에 Fine-tuning을 직접 적용해봅니다. 이 과정을 통해 AI/ML을 처음 접하는 분도 Transformer 기반 모델의 동작 원리를 이해하고, 원하는 도메인에 맞는 모델을 스스로 학습시킬 수 있는 기초 역량을 갖추게 됩니다.
    학습목표
    ● HuggingFace의 BertTokenizer와 BertModel을 활용하여 BERT 입력을 준비하고 인코더를 통과시켜 토큰별 벡터를 추출하는 코드를 구현할 수 있다. ● BertForClassification 클래스를 직접 구현하여 pre-trained BERT에 Linear Layer를 추가하는 fine-tuning 구조를 이해할 수 있다. ● torch.einsum의 동작 원리(축 이름, element-wise 곱셈, 합산)를 이해하고 MHA, MQA의 attention 연산을 einsum으로 표현할 수 있다. ● KV Cache의 필요성과 동작 방식을 이해하고, MHA 대비 MQA와 GQA의 K, V 공유 구조의 차이를 설명할 수 있다. ● GPT-2의 MHA 가중치를 mean pooling을 통해 GQA로 변환하는 convert_mha_to_gqa 함수와 GQAAttention 클래스를 구현할 수 있다.
    교육대상
    Transformer 아키텍처의 원리를 이해하고 PyTorch 기반 AI 모델 구현 및 Fine-tuning을 학습하고자 하는 개발자 및 AI 입문자
    차시별 학습목표
    01. HuggingFace의 BertTokenizer로 입력을 준비하고 input_ids, token_type_ids, attention_mask의 의미와 shape을 이해할 수 있다. WordPiece 토크나이징과 ## 토큰의 의미를 설명할 수 있다.
    02. BertModel을 통해 입력을 인코더에 통과시키고 last_hidden_state와 pooler_output의 shape과 의미를 이해할 수 있다. 각 토큰별 768차원 출력 벡터와 [CLS] 벡터 추출 방법을 코드로 구현할 수 있다.
    03. BertForClassification 클래스를 구현하여 pre-trained BERT에 fine-tuning용 Linear Layer를 추가하는 구조를 이해할 수 있다. forward() 메서드에서 [CLS] 벡터를 추출하여 분류에 활용하는 코드를 작성할 수 있다.
    04. 인코더-디코더 구조에서 self-attention, masked self-attention, cross-attention의 Q, K, V 출처와 shape 변화를 추론 단계(KV Cache 포함)까지 이해할 수 있다. 추론 시 매 스텝마다 K, V를 KV Cache에 저장하고 로드하는 방식을 설명할 수 있다.
    05. MHA 대비 MQA의 K, V 공유 구조와 KV Cache 메모리 절감 효과를 이해할 수 있다. torch.einsum의 기본 동작(축 이름, element-wise 곱셈, 합산)을 이해하고 벡터 내적과 행렬 곱을 einsum으로 표현할 수 있다.
    06. torch.einsum을 활용하여 행렬-벡터 곱, 행렬-행렬 곱, 배치 행렬 곱 등 다양한 선형 연산을 표현할 수 있다. 축 이름이 같은 경우와 다른 경우의 동작 차이를 이해할 수 있다.
    07. torch.einsum을 활용하여 Dot-Product Attention과 Multi-Head Attention의 Q, K, V 연산을 표현할 수 있다. MQA의 einsum 구현 방식과 MHA와의 차이를 코드로 이해할 수 있다.
    08. einsum을 활용하여 Multi-Head Attention의 전체 연산 흐름(Q/K/V 생성 → attention 계산 → output projection)을 단계별로 구현할 수 있다. batched MHA와 MQA의 einsum 표현 차이를 비교하여 설명할 수 있다.
    09. GPT-2 모델에서 HuggingFace를 통해 Wq, Wk, Wv 가중치를 로드하고 구조를 파악할 수 있다. MHA를 GQA로 변환하기 위한 mean pooling의 개념과 가중치 shape 변환 과정을 이해할 수 있다.
    10. convert_mha_to_gqa 함수를 구현하여 MHA의 Wk, Wv를 그룹별 mean pooling으로 GQA 가중치로 변환하는 과정을 코드로 작성할 수 있다. repeat_kv 함수를 통해 GQA의 K, V를 Q의 head 수에 맞게 확장하는 방법을 이해할 수 있다.
    11. GQAAttention 클래스를 구현하고 build_gqa_from_mha 함수로 GPT-2의 모든 MHA 레이어를 GQA로 교체하는 전체 과정을 구현할 수 있다. MHA, MQA, GQA의 K, V head 수 차이와 메모리 효율성 trade-off를 비교하여 설명할 수 있다.
    참고사항
    - 수강 기간 중 언제든지 반복 수강이 가능합니다.
    - 수강 여부 : 해당 차시의 80%를 수강하면 (회색) 배경으로 표시됩니다.
    - 수강 신청 완료 후 수강할 수 있습니다.
    - 즐겨찾기 한 강좌는 MY Class에서 확인할 수 있습니다.
    강좌 리스트
    01. BERT 코드 1/3 [30:45]
    02. BERT 코드 2/3 [33:29]
    03. BERT 코드 3/3 [13:51]
    04. 오리지널 Attention 메커니즘 [47:39]
    05. MQA, GQA의 필요성, einsum 1/3 [31:52]
    06. einsum 2/3 [38:7]
    07. einsum 3/3 [41:19]
    08. Multi-head Attention [34:35]
    09. Grouped Query Attention 1/3 [25:51]
    10. Grouped Query Attention 2/3 [35:34]
    11. Grouped Query Attention 3/3 [38:9]
    1:1
    문의