본문 바로가기

전체 글35

[Hugging Face] Pre-trained Model Fine-tuning (2. Fine-tuning) 1. DataLoader 만들기from torch.utils.data import DataLoadertrain_loader = DataLoader( train_dataset, batch_size=16, shuffle=True)val_loader = DataLoader( val_dataset, batch_size=16, shuffle=False)DataLoader는 Dataset을 batch 단위로 꺼내주는 역할을 한다. 예를 들어 지금 train_dataset 이 4000개에 batch_size가 16이기 때문에 16개 * 250 해서 총 4000개의 데이터를 넣어주는 것이다.보통 Validation에서는 순서를 섞을 필요가 없기 때문에 그냥 넣는다. 2.GPU 설정imp.. 2026. 9. 2.
[Hugging Face] Pre-trained Model Fine-tuning (1. 데이터 셋 준비하기) 0. Fine-tuning 이란?Hugging Face 를 이용하면 이미 대규모로 학습을 진행시켜놓은 모델을 그대로 가져다 쓸 수 있는 장점이 있었다. 하지만 그 모델만 그대로 이용해서 내가 원하는 특정 작업을 수행 할 수는 없다. 그때 필요한 것이 fine-tuning 이라는 기술이다. 즉 한마디로 표현하면 "Pre-trained 된 모델을 내 마음대로 쓰기위해 미세조정 하는 과정" 이라고 생각하면 된다.처음부터 모델을 학습시킨다면 방대한 데이터를 갖고 엄청난 시간과 계산을 통해 모델을 학습 시켜야 하지만 이미 만들어진 모델을 사용하면 비교적 작은 데이터로 특정 작업에 최적화 시킬 수 있는 것이다. 1. BERT이번엔 BERT라는 모델을 사용해 영화 리뷰의 긍정/부정 분류 모델을 만드려고 한다. 앞 .. 2026. 8. 30.
[HuggingFace]Text_Generation(Decoder-only) 0. Decoder 만을 활용하는 Text_GenerationChat GPT와 같은 생성형 LLM은 Decoder-only Transformer 를 사용한다. 조금 정리를 해보면구조대표적 용도예시Encoder-only문장 이해/분류BERTEncoder-Decoder입력을 다른 시퀀스로 변환번역 모델Decoder-only 텍스트 생성생성형 LLM이렇게 정리 할 수 있는데 Encoder 에서는 input 값을 해석하고 이해하는 부분, Decoder는 새로운 시퀀스를 만들어 내는 부분 이기 때문에 각각의 쓰임이 다르다. 우리가 만들었던 번역모델을 생각해보면 영어 라는 input을 이해하고 독일어 라는 새로운 시퀀스를 만들어내야 했기 때문에 Encoder-Decoder를 사용했던 것이다. 다만, GPT와 같은.. 2026. 8. 29.
[HuggingFace]Transformer_Translator 0. Hugging FaceHugging Face는 git-hub과 같은 오픈소스 플랫폼으로 AI를 공부하고 있는 사람이라면 반드시 알아야되는 플랫폼이다. 다른 오픈소스 플랫폼과는 다르게 사전 학습된 모델을 바로 가져와 사용할 수 있다는 것이 큰 특징이다. 즉, 사용자가 직접 학습을 시키지 않아도 된다는 뜻이다. pre-trained 된 모델을 가져와 Fine-tuning만 거치면 내가 원하는 대로 사용이 가능하다. 이번에는 Transformer를 직접 구현하지 않고 Hugging Face의 pre-trained 된 Transformer 모델을 어떻게 사용할 수 있는지 알아보자 1. 라이브러리 설치!pip install transformers sentencepiece나처럼 Kaggle에서 연습을 진행하는.. 2026. 8. 23.
[NLP]Embedding 0. Embedding 이란?단어를 컴퓨터가 학습할 수 있는 형태의 벡터로 표현하는 방법 자연어 처리 모델에서는 문장을 있는 그대로 입력 받을 수 없다. 우리가 쓰는 말을 컴퓨터가 이해하고 계산하기 위해서는 결국 숫자로 표현된 데이터가 필요하다. 그때 Embedding을 통해 단어와 같은 이산적인 데이터를 연속적인 벡터 공간의 숫자 벡터로 변환하는 것이다. 예를 들어 'I' 'love' 'cats' 'dogs' 라는 단어들이 있다고 해보자I → 0 love → 1 cats → 2 dogs → 3이렇게 숫자로 토큰화 되었을 때 'I love cats'라는 문장은 [0,1,2] 로 표현 할 수 있지만 ' dog'나 'cat'이 어떤 의미에서 더 크거나, 두 단어가 1만큼 가까운 의미를 가진다는 뜻은 아니다.. 2026. 8. 17.
PyTorch로 Transformer 구현하기(9)(학습) 1. Training만들었으니 이제 제대로 작동이 되는지 확인해 볼 차례다.PAD = 0BOS = 1EOS = 2src_data = torch.tensor([ [3, 4, 5], [3, 5, 4], [4, 3, 5], [4, 5, 3], [5, 3, 4], [5, 4, 3]])tgt_data = torch.tensor([ [6, 7, 8], [6, 8, 7], [7, 6, 8], [7, 8, 6], [8, 6, 7], [8, 7, 6]])#3 → 6 4 → 7 5 → 8실제 데이터를 학습 시키기에는 무리가 있기때문에 Toy data로 진행했다. 간단하게 src_data는 입력데이터 즉 번역기로 따진다면 번역전 원어라고 할 수 있고 tgt_d.. 2026. 8. 16.