Skip to content
Open
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
77 changes: 77 additions & 0 deletions agile-notes/3rd-agile/AI.md
Original file line number Diff line number Diff line change
Expand Up @@ -155,3 +155,80 @@

- **하드웨어**: NVIDIA GPU를 사용하여 모델 학습 및 추론을 수행하였다.
- **소프트웨어**: Python 3.8, PyTorch, Transformers 라이브러리 등을 사용하였다.


## ---------------------------------------------

# KoBART 기반 한국어 요약 모델 개발 및 평가

## 목적
- **목적**: 장소별 리뷰데이터를 종합하여 한줄로 요약함으로써 사용자가 인지하기 편리한 정보를 제공한다.

## 진행계획
<img width="626" alt="image" src="https://github.com/user-attachments/assets/9be57aca-fbc8-43dc-b849-35773371b6f9">

## 모델 개요
- **모델명**: KoBART
- **특징**: 한국어 요약에 특화된 모델로, 다양한 요약형 모델 중 가장 많이 사용됨.

## 모델 학습
- **추가 학습 데이터**: 한국어 대화 요약 데이터(개인, 쇼핑, 식음료)로 추가 학습을 진행함.

## 한줄평 생성 과정
1. **데이터 통합**: 장소별 리뷰 데이터를 하나로 통합함.
2. **데이터 분할**: 긴 리뷰 텍스트는 100토큰 단위로 분할하여 처리함.
3. **요약 과정**:
- 빔 서치(beam search)를 사용하여 각 단계에서 10개의 후보 중 최적의 요약을 선택.
- `no_repeat_ngram_size=3` 설정으로 같은 단어의 중복 생성을 방지하여 더욱 자연스러운 문장을 생성.
4. **최종 요약**: 분할된 요약을 합쳐 하나의 최종 요약을 생성함.
5. **후처리**: 불필요한 어휘(예: 생성 중에 멈춘 문장)를 제거함.
6. **데이터 매칭 및 번역본 생성**: 최종 요약을 각 장소와 매칭하고 필요시 추가 번역본을 생성함.

## 평가 지표
- **ROUGE** 및 **F1-Score**를 사용하여 모델을 평가함.
- **ROUGE-1**: 4.59
- **ROUGE-2**: 1.30
- **ROUGE-L**: 3.80
- **F1-Score**: 68.76

![image](https://github.com/user-attachments/assets/f654e3df-fbca-4ab4-aff8-ea283f8ea92e)
![image](https://github.com/user-attachments/assets/ba3ef91a-61b1-4ea5-b03f-04648f7cb703)


- **평가 결과 해석**:
- ROUGE 점수가 낮은 이유는 단어 일치도만을 기반으로 하기 때문이며, 방대한 데이터셋에서 한 줄로 요약할 경우 낮게 나올 수밖에 없음.
- F1-Score가 높은 이유는 ROUGE 지표들이 균형을 이루고 있어 조화 평균이 높게 산출됨.
- 최종본 테스트 결과, 약 68%의 F1-Score를 기록하여 의미 있는 성능을 보여줌.

- **모델 평가**:
- 정보 손실 문제를 감안하더라도 모델의 성능이 나쁘지 않다고 판단됨.
- 다대일 요약을 수행하는 상황에서는 어느 정도의 정보 손실이 불가피함.

## 실행 방식의 장점과 한계
### 장점
- **효율적인 처리**: 리뷰 데이터를 100토큰 단위로 분할하여 긴 텍스트도 효과적으로 처리할 수 있음.
- **중복 방지**: `no_repeat_ngram_size=3` 설정으로 중복 어휘 생성을 방지하여 보다 자연스러운 문장을 생성함.
- **문맥 유지**: 빔 서치로 후보 문장 중 가장 적합한 요약을 선택함으로써 요약의 질을 높임.
- **다양한 응용 가능성**: 장소별 리뷰와 같이 다양한 텍스트 데이터를 한 줄 요약으로 제공하여 사용자 경험을 개선할 수 있음.

### 한계
- **정보 손실**: 긴 텍스트를 한 줄로 요약하면서 중요한 세부 정보가 손실될 가능성이 있음.
- **모델 특화 문제**: 대부분의 요약 모델이 긴 문서를 여러 문장으로 요약하는 데 특화되어 있어, 한 문장 요약에는 한계가 존재함.
- **단어 일치도 한계**: ROUGE 지표가 단어 일치도만을 평가하므로, 실제 의미 유사성은 충분히 반영되지 못함.
- **문맥의 부정확성**: 정보 손실로 인해 일부 문장이 정확하지 않거나, 원래 문맥을 충분히 반영하지 못하는 경우가 발생할 수 있음.
- **대표성 문제**: 핵심 정보가 잘 요약되지 않으면, 단일 문장에서 전체 문맥을 대표하기 어려울 수 있음.

## 결과
<img width="934" alt="image" src="https://github.com/user-attachments/assets/897ce3c3-79b1-43eb-ae63-1781ae60070d">
<img width="335" alt="image" src="https://github.com/user-attachments/assets/e3837fa9-354b-4bb2-9002-bce157008404">

## 문제점
- 요약 모델이 뉴스처럼 긴 문서를 짧은 여러 문장으로 요약하는 데 최적화되어 있어, 한 문장 요약에는 한계가 있음.
- 한 줄 요약으로 정보의 손실이 발생하며, 문장 정확성과 문맥 이해도가 낮아질 수 있음.
- 단어의 대표성 문제가 발생하여 요약 내용이 원본의 의미를 충분히 전달하지 못할 수 있음.

## 결론
- KoBART를 이용한 한국어 요약 모델은 다대일 요약 환경에서 의미 있는 성능을 보였음.
- 모델의 추가 개선 여지가 있으나, 정보 손실 문제로 인해 현재 성능도 나쁘지 않은 수준임.
- 장점과 한계를 고려할 때, 특정 응용 사례에 맞춘 추가 조정이 필요할 수 있음.