본문 바로가기
IT/인공지능

[AI][NLP] 한국어 요약 모델 개발 코드 및 최적화 방법

by 드인 2024. 5. 15.

[AI][NLP] 한국어 요약 모델 개발 코드 및 최적화 방법


참여 경진대회

한국어 문서 요약 경진대회

https://aiconnect.kr/competition/detail/223/task/272/taskInfo

 

AI CONNECT | AI Competition Platform

No.1 인공지능 경진대회 플랫폼

aiconnect.kr

  • 최종 5위

 

모델 상세

HuggingFace T5 모델을 기반으로 파인튜닝된 한국어 뉴스 요약 T5 모델을 대회 데이터(전처리)로 파인튜닝하여 사용

 

코드 최적화 방법

  1. Baseline 모델 코드
  2. 기존 모델에 파인튜닝 시도
    • HuggingFace의 여러 모델로 파인튜닝
    • 기존 성능이 좋았던 T5 모델을 채택
  3. 전처리 및 최적화 시도
# 학습용 평가
from datasets import load_metric
rouge_metric = load_metric("rouge")

def compute_metrics(pred):
    predictions = pred.predictions
    labels = pred.label_ids

    # Decode the prediction and label ids to texts
    # Replace -100 in the labels as we can't decode them.
    predictions = [tokenizer.decode(pred, skip_special_tokens=True) for pred in predictions]
    labels = [tokenizer.decode(np.where(np.array(label) == -100, 0, label).tolist(), skip_special_tokens=True) for label in labels]

    # Calculate ROUGE scores
    rouge_output = rouge_metric.compute(predictions=predictions, references=labels, use_stemmer=True)
    
    # Extract precision, recall, fmeasure for each ROUGE score
    rouge1 = rouge_output["rouge1"].mid
    rouge2 = rouge_output["rouge2"].mid
    rougeL = rouge_output["rougeL"].mid

    return {
        "rouge1_fmeasure": rouge1.fmeasure,
        "rouge2_fmeasure": rouge2.fmeasure,
        "rougeL_fmeasure": rougeL.fmeasure,
    }

 

4. 후처리 및 모델 학습

 

소스코드