본문 바로가기

NLP

(12)
[Day 9] 한권으로 끝내는 실전 LLM 파인튜닝 - 단일 GPU Gemma-2B-it 파인튜닝 학습 코드 다음은  실전 LLM 파인튜닝> 도서의 스터디 Day9 요약입니다.3.4.8 학습 파라미터 설정wandb.init(project="gemma-2B-it-Full-Fine-Tuning", entity="wandb 사용자 계정")training_args = TrainingArguments( output_dir='./keywords_gemma_results', max_steps=800, per_device_train_batch_size=4, per_device_eval_batch_size=8, gradient_accumulation_steps=8, learning_rate=2e-4, weight_decay=0.01, warmup_steps=0, logging_d..
[Day 8] 한권으로 끝내는 실전 LLM 파인튜닝 - 단일 GPU Gemma-2B-it 파인튜닝 데이터 준비 다음은  실전 LLM 파인튜닝> 도서의 스터디 Day8 요약입니다.3.4.5 키워드 데이터 생성pipe = pipeline("text-generation", model=model, tokenizer=tokenizer, device_map='auto')def keyword_prompt(input_text, summary_text): return [ {"role": "user", "content": f"{input_text}"}, {"role": "assistant", "content": f"{summary_text}"}, {"role": "user", "content": "중요한 키워드 5개를 뽑아주세요"}, {"role":"assistant", "content": "..
[Day 7] 한권으로 끝내는 실전 LLM 파인튜닝 - 단일 GPU Gemma-2B-it 파인튜닝 다음은  실전 LLM 파인튜닝> 도서의 스터디 Day7 요약입니다.3.4 _ 단일 GPU를 활용한 Gemma-2B-it 파인튜닝Gemma-2B 사용을 위해선 huggingface hub에서 access token을 발급받아야 함. Huggingface hub -> settings -> Acess Tokens에서 create_token 수행3.4.2 Gemma 모델 준비from huggingface_hub import loginapi_token = 'YOUR_ACCESS_TOKEN'login(api_token)import torchimport wandbfrom sklearn.model_selection import train_test_splitfrom transformers import ( AutoM..
[Day6] 한권으로 끝내는 실전 LLM 파인튜닝 - GPU 병렬화 기법 다음은  실전 LLM 파인튜닝> 도서의 스터디 Day6 요약입니다.3.3 _ GPU 병렬화 기법병렬화 : 컴퓨팅 자원을 동시에 활용해 대규모 작업을 효율적으로 처리. 3.3.1 데이터 병렬 처리(Data Parallelism)데이터 병렬 처리(Data Parallelis, DP) : 전체 데이터를 작은 덩어리 여러 개로 나눠 각각을 서로 다른 GPU 계산 장치에서 동시에 처리해 전체 학습 과정의 속도를 높임.(1) 먼저 데이터를 여러 미니배치로 나눔(2) 모델 복사본을 각 GPU에 복사(3) 모든 GPU는 같은 모델 구조와 초깃값으로 시작해 각자의 데이터 배치에 대해 독립적으로 순전파, 역전파를 수행(4) 각 GPU에서 계산된 gradient를 모아 모델 복사본의 parameter를 갱신(5) 모든 계산..
[Day5] 한권으로 끝내는 실전 LLM 파인튜닝 - GPT, Gemma, Llama3 모델 특징 비교 다음은  실전 LLM 파인튜닝> 도서의 스터디 Day5 요약입니다.3.2 _ Gemma와 Llama 3 모델 구조 분석3.2.1 Gemma 모델 구조 분석모델의 크기를 줄여 고성능 컴퓨팅 자원이 부족한 환경에서도 언어 모델을 활용할 수 있게 하려는 혁신적 시도를 함.모델의 크기를 줄이면서도 성능을 유지할 수 있는 효율적 설계가 가능함을 보여줌. input_layernorm과 post_attention_layernorm 2가지 요소가 추가됨. 이는 학습 과정에서 발생할 수 있는 gradient vanishing, gradient exploding 문제를 해결하기 위함이었음.1. layernorm(RMSNorm) : 그래디언트라는 방향 지시등이 항상 적절한 크기를 유지하도록 조절해 주는 장치. layerno..
[Day4] 한권으로 끝내는 실전 LLM 파인튜닝 - 전체 파인튜닝 개념 & 데이터 준비 다음은 도서의 스터디 Day4 요약입니다.3.1 _ 전체 파인튜닝 데이터 준비3.1.1 전체 파인튜닝의 원리와 종류(1) 파인튜닝이 필요한 이유파인튜닝 : 이미 학습되어 공개된 언어 모델(Pre-trained Language Model)을 특정 작업에 맞게 추가로 학습하는 것. 거대한 크기를 가진 LLM은 방대한 지식을 학습해 다양한 문제를 풀 수 있는 증력을 가지고 있음. (ex - Gemini, ChatGPT) 다만 전문적이고 특수한 분야에서 Hallucination 문제가 두드러짐.성능을 높이고자 하는 분야나 풀고자 하는 문제의 데이터로 추가학습 시 모델이 해당 분야에서 더 정확하고 신뢰할 수 있는 응답을 생성할 수 있음. 또한 특정 목적에 맞게 추가로 학습시키는 것 역시 가능하다. 처음부터 원하..
[Day3] 한권으로 끝내는 실전 LLM 파인튜닝 - 멀티헤드 어텐션과 피드포워드 다음은 [한권으로 끝내는 실전 LLM 파인튜닝] 스터디의 Day3 내용 정리입니다.2.6 멀티헤드 어텐션과 피드포워드 단일 헤드 어텐션의 한계를 극복하고 모델의 성능을 크게 향상시키는 핵심 구조. 2.6.1 멀티헤드 어텐션 만들기멀티헤드 어텐션 : 여러 개의 어텐션 메커니즘을 병렬로 사용해 다양한 관점에서 정보를 동시에 병렬처리 할 수 있도록 한다. 각 헤드는 독립적으로 단일 데이터를 여러개의 다른 헤드를 통해 동시에 처리함. 그를 통해 데이터에 내재된 다양한 패턴과 관계를 더욱 정교하게 학습할 수 있게 됨. import torch.nn as nnimport torch.nn.functional as F# 단일 head attentionclass Head(nn.Module): def __init__(se..
[CS224N] Lecture 5: Recurrent Neural Networks RNNs 본 강의는 Stanford CS224N NLP with Deep Learning Winter 2021 Lecture 5을 듣고 정리한 내용입니다. 1. Parsers Neural based Dependency Parser Simple feed-forward neural network multi-class classifier hidden layer를 통해 input에 대해 행렬곱+비선형 layer를 추가해 공간을 변형시킬 수 있음. 이후 softmax layer에 넣어 분류 확률로써 활용. Graph-based dependency parser transition based dependency parser의 대안. 모든 단어 쌍을 고려해서, 단어들이 ROOT에 의존한다고 봄. 그 덩어리가 ROOT에 의존할 ..