HuggingFace/실습

무료 환경에서 Hugging Face 언어 모델 학습과 배포

qoeka 2025. 2. 12. 16:57

 

\

! pip install datasets

 

 

 

트레인 데이터에서는 텍스트 부분을 패딩하여 토큰을 생성하고, 한 줄씩 처리하여 변환한다. 이를 map() 함수를 통해 수행한다.

 

train_dataset.map(tokenize_function, batched=True)를 사용하면 기존 컬럼에 토큰화된 데이터가 추가된다. 만약 필요 없는 원본 컬럼을 삭제하려면 remove_columns 옵션을 활용하면 된다. 이를 통해 데이터 크기를 줄이고, 모델 학습에 필요한 정보만 유지할 수 있다.

 

 

데이터셋을 train과 test로 분할한 후, map() 함수를 사용하여 tokenize_function을 적용한다. 이 과정에서 batched=True를 설정하여 배치 단위로 처리하며, 필요 없는 text 컬럼은 remove_columns=['text'] 옵션을 통해 삭제한다.

 

훈련 설정을 위해 TrainingArguments를 활용하며, 출력 디렉토리(output_dir), 학습 에포크(num_train_epochs=2), 배치 크기(per_device_train_batch_size=8), 평가 전략(evaluation_strategy='epoch'), 가중치 감소(weight_decay=0.01) 등의 하이퍼파라미터를 설정한다.

 

또한 logging_dir='./logs'를 지정하여 로그를 저장하고 모니터링할 수 있도록 한다.

 

 

일반적인 언어 모델은 Trainer 클래스를 활용하여 학습을 진행하면 된다. 모델, 학습 데이터, 평가 데이터를 설정한 후 trainer.train()을 호출하여 훈련을 시작한다.

 

 

노트 모델과 캐주얼 LM은 챗GPT 같은 모델을 만들 때 사용되며, 시퀀스 모델은 긍정·부정 문장 분류 등 특정 패턴을 학습시킬 때 활용된다.

기업에서는 대량의 데이터를 처리하고 높은 성능을 유지하기 위해 비용을 지불하며 클라우드 기반의 고성능 GPU나 TPU를 사용한다.

 

 

따라서 빠르게 모델을 만들고 최적화하는 것이 중요하며, 이를 위해 사전 학습된 모델을 활용하거나 하이퍼파라미터 튜닝을 진행한다.

 

이런 방식으로 학습을 진행하면 원하는 결과를 얻을 수 있으며, 무료 환경에서는 리소스 제한이 있어 일정 용량을 초과하면 중단될 수도 있다. 현재는 무료 리소스를 사용 중이라 용량이 초과되어 여기까지만 진행하지만, 만약 계속 진행되었다면 다음과 같은 과정이 이어졌을 것이다.

 

  1. 추가 학습 및 평가
    학습이 완료된 후, 검증 데이터셋을 이용해 모델의 성능을 평가하고, 과적합 여부를 확인한다.
    만약 과적합이 발생하면 정규화 기법을 적용하거나 데이터 증강을 통해 일반화 성능을 개선한다.
  2. 하이퍼파라미터 튜닝
    학습률(Learning Rate), 배치 크기(Batch Size), 토큰 길이 등의 하이퍼파라미터를 조정하여 최적의 성능을 찾는다.
    이를 위해 Grid Search나 Bayesian Optimization 같은 기법을 사용할 수 있다.
  3. 추론 및 테스트
    모델이 충분히 학습되었다면, 실제 문장을 입력하여 결과를 확인한다.
    입력된 문장이 올바르게 해석되고, 원하는 형태의 응답을 생성하는지 테스트를 진행한다.
  4. 모델 배포
    성능이 검증된 모델을 API 서버 또는 Streamlit과 같은 프레임워크를 활용하여 배포한다.
    실시간 서비스로 활용할 경우 FastAPI와 같은 경량화된 서버를 사용할 수도 있다.
  5. 지속적인 개선 및 모니터링
    모델을 운영하면서 실사용 데이터를 수집하고, 이를 기반으로 재학습을 진행하여 성능을 개선한다.
    주기적으로 모델을 업데이트하여 최신 트렌드와 도메인 특성에 맞게 유지보수한다.

결과적으로, 모델이 완벽하게 학습되고 배포되면 챗봇, 문서 요약, 번역 등 다양한 AI 서비스에 활용할 수 있다.
하지만 현재는 무료 리소스 제한으로 인해 학습이 중단되었으며, 이후 다음날이되면 돌아오기에 다음날 진행하는 방식으로 진행해도된다 하지만 용량이 커서 유료로 사용을 추천한다.