- Crawling-main: N사 포털의 뉴스 기사를 크롤링하는 코드입니다.
- Explanation_about_code: T5 fine-tuning에 대한 설명 주석이 담겨있는 코드입니다.
- Flask-main: API의 기반이 되는 Flask 코드입니다.
- NLP-model-main-scoring: bert score를 측정하는 코드입니다.
- model_ET5: 최종 모델(epoch:12, data:290,000건)의 학습 과정이 담긴 코드 폴더입니다.
- AI 기반 뉴스 요약기 구축 후 다양한 신문사의 기사를 요약하여 전달하는 챗봇 서비스 진행
- 개발 환경: VScode(크롤링), Google Colab(딥러닝 모델), PyCharm(서비스 구현)
- 주요 사용 라이브러리 PyTorch, Transformers, Sentencepiece(0.1.91), Flask 등
- 학습 데이터셋(Fine-tuning): AI Hub 문서요약 텍스트(https://aihub.or.kr/aidata/8054) 다운로드 후, 뉴스텍스트 총 30만 건(train, validation 포함) 중에 기사 원본(sentence), 생성요약문(abstractive) 을 추출하여 데이터셋을 구축함(train 29만 건, test 1만 건)
- 2019년 Google에서 출시한 T5(Text To Text Transfer Transformer) 모델을 이용하여 요약 모델 구축
- ETRI(https://aiopen.etri.re.kr/service_dataset.php) 에서 제공하는 한국어 언어모델 ET5의 API를 신청하여 사용 승인을 받은 후 Fine-tuning을 진행
- 생성 요약문 예시
- 모델 성능 비교를 위해 BERT Score 활용(https://github.com/Tiiiger/bert_score)
- 서비스 구현에는 29만 건 데이터를 epochs 12로 학습한 ET5 모델을 선정
- Colab 런타임 24시간 제한으로 인해 데이터를 나누어 Fine-tuning 진행 후 모델을 저장한 뒤 추가 학습 진행
- 포털에서 뉴스기사를 크롤링하고 Fine-tuning으로 구축한 모델을 통해 요약문을 생성한 뒤 kakao i open builder를 이용하여 사용자에게 챗봇으로 뉴스 기사 요약문 서비스를 배포함
- kakao 채널 개설
- kakao I open builder (승인 요청 후 약 7일 소요)
- 성능좋은 GPU 혹은 CPU, RAM까지 갖춰져있는 고성능 PC
- 로컬에 모델 저장
- crawling.py에 모델 경로 수정