Skip to content

boostcampaitech7/level2-nlp-generationfornlp-nlp-05-lv3

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 

History

96 Commits
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

πŸ† LV.2 NLP ν”„λ‘œμ νŠΈ : 수λŠ₯ν˜• 문제 풀이 λͺ¨λΈ 생성



✏️ λŒ€νšŒ μ†Œκ°œ

νŠΉμ§•γ€€γ€€γ€€γ€€ μ„€λͺ…
λŒ€νšŒ 주제 넀이버 λΆ€μŠ€νŠΈμΊ ν”„ AI Tech 7κΈ° NLP Track의 Level 2 도메인 기초 λŒ€νšŒ '수λŠ₯ν˜• 문제 풀이 λͺ¨λΈ 생성'μž…λ‹ˆλ‹€.
λŒ€νšŒ μ„€λͺ… AI λͺ¨λΈλ‘œ ν•œκ΅­μ–΄ 수λŠ₯ κ΅­μ–΄ 및 μ‚¬νšŒ κ³Όλͺ©μ˜ 문제λ₯Ό ν’€μ–΄ λŒ€ν˜• μ–Έμ–΄ λͺ¨λΈλ“€μ„ λŠ₯κ°€ν•˜λŠ” μ„±λŠ₯을 λͺ©ν‘œλ‘œ ν•˜λŠ” λŒ€νšŒμž…λ‹ˆλ‹€.
데이터 ꡬ성 λ°μ΄ν„°λŠ” 수λŠ₯ κ΅­μ–΄Β·μ‚¬νšŒμ™€ μœ μ‚¬ν•œ 문제λ₯Ό 기반으둜 KMMLU(ν•œκ΅­μ‚¬), MMMLU(고ꡐ μ—­μ‚¬Β·κ²½μ œΒ·μ •μΉ˜ λ“±), KLUE MRC(κ²½μ œΒ·κ΅­μ œΒ·μ‚¬νšŒ λ“±) 데이터λ₯Ό ν¬ν•¨ν•©λ‹ˆλ‹€.
평가 μ§€ν‘œ λͺ¨λΈμ΄ 맞좘 문제 수λ₯Ό 전체 문제 수둜 λ‚˜λˆˆ 정확도(Accuracy)λ₯Ό κΈ°μ€€μœΌλ‘œ ν•©λ‹ˆλ‹€.
κ²°κ³Όλ¬Ό WrapUp Report, Presentation Material



πŸŽ–οΈ Leader Board

ν”„λ‘œμ νŠΈ κ²°κ³Ό Public λ¦¬λ”λ³΄λ“œ 1λ“±, Private λ¦¬λ”λ³΄λ“œ 1등을 κΈ°λ‘ν•˜μ˜€μŠ΅λ‹ˆλ‹€.

πŸ₯‡Β Public Leader Board (1μœ„)

image

πŸ₯‡ Private Leader Board (1μœ„)

image



πŸ‘¨β€πŸ’» λ‚˜μ•Ό, 자, μ—°μ–΄νŒ€ 멀버

곽희쀀 김정은 κΉ€μ§„μž¬ μ˜€μˆ˜ν˜„ μœ€μ„ μ›… 정민지
곽희쀀 김정은 κΉ€μ§„μž¬ μ˜€μˆ˜ν˜„ μœ€μ„ μ›… 정민지



πŸ‘Ό μ—­ν•  λΆ„λ‹΄

νŒ€μ›γ€€γ€€ μ—­ν• 
곽희쀀 데이터셋 λ ˆμ΄λΈ”λ§, EDA, μ™ΈλΆ€ 데이터셋 탐색, GPTλ₯Ό ν†΅ν•œ 데이터셋 증강 μ‹€ν—˜, μ½”λ“œ λ¦¬νŒ©ν† λ§, LLM ν•™μŠ΅ 방법 섀계, Fine-Tuning, RAG νŒŒμ΄ν”„λΌμΈ ꡬ좕, μ΅œμ’… μ½”λ“œ 정리
김정은 데이터셋 λ ˆμ΄λΈ”λ§, λͺ¨λΈ 탐색 및 Fine-Tuning, 데이터셋 크둀링 및 μ „μ²˜λ¦¬(곡무원 기좜, khan), 데이터셋 ν’ˆμ§ˆ ν…ŒμŠ€νŠΈ, RAG μ‹œμŠ€ν…œ ꡬ좕 및 μ‹€ν—˜, ν”„λ‘¬ν”„νŠΈ μ—”μ§€λ‹ˆμ–΄λ§
κΉ€μ§„μž¬ 초기 νŒ€ ν™˜κ²½ ꡬ좕 및 λŒ€μ‹œλ³΄λ“œ μ œμž‘, 데이터셋 λ ˆμ΄λΈ”λ§, 데이터 탐색, RAG 데이터 μ „μ²˜λ¦¬(λ²ˆμ—­), Retrieval ꡬ좕 및 μ‹€ν—˜ (Sparse)
μ˜€μˆ˜ν˜„ 초기 베이슀라인 μ½”λ“œ ꡬ좕, 데이터셋 λ ˆμ΄λΈ”λ§, 데λͺ¨ νŽ˜μ΄μ§€ μ œμž‘
μœ€μ„ μ›… 데이터셋 λ ˆμ΄λΈ”λ§, λͺ¨λΈ 탐색 및 Fine-Tuning, Unsloth μ„ΈνŒ…, ν”„λ‘¬ν”„νŠΈ μ—”μ§€λ‹ˆμ–΄λ§, 데이터셋 크둀링(곡무원 기좜, khan), 데이터셋 ν’ˆμ§ˆ ν…ŒμŠ€νŠΈ, LoRA νŠœλ‹, 앙상블
정민지 데이터셋 λ ˆμ΄λΈ”λ§, λ²‘ν„°μŠ€ν† μ–΄ 데이터 크둀링 및 μ „μ²˜λ¦¬ (OpenStax, Wikipedia, μš°λ¦¬μ—­μ‚¬λ„·), Retrieval μ„±λŠ₯ 평가 데이터셋 및 μ§€ν‘œ ꡬ성, RAG μ‹œμŠ€ν…œ ꡬ좕 및 μ‹€ν—˜ (Chunk size, Dense Retrieval, Reranking)



πŸƒ ν”„λ‘œμ νŠΈ μ„€λͺ…

πŸ–₯️ ν”„λ‘œμ νŠΈ κ°œμš”

κ°œμš” μ„€λͺ…
주제 Generation for NLP - 수λŠ₯ν˜• 문제 풀이 λͺ¨λΈ 생성
ꡬ쑰 LLM Fine-Tuned Foundation Model + RAG
평가 μ§€ν‘œ Accuracy = correct / total
개발 ν™˜κ²½ GPU : Tesla V100 Server 4λŒ€, IDE : VsCode, Jupyter Notebook
ν˜‘μ—… ν™˜κ²½ Jira&Confluence(진행 상황 곡유), Github(μ½”λ“œ 및 데이터 곡유), Zoom&Slack(μ‹€μ‹œκ°„ μ†Œν†΅)

πŸ“… ν”„λ‘œμ νŠΈ νƒ€μž„λΌμΈ

  • ν”„λ‘œμ νŠΈλŠ” 2024-11-11 ~ 2024-11-28κΉŒμ§€ μ§„ν–‰λ˜μ—ˆμŠ΅λ‹ˆλ‹€.

image


πŸ•΅οΈ ν”„λ‘œμ νŠΈ 진행

  • ν”„λ‘œμ νŠΈλ₯Ό μ§„ν–‰ν•˜λ©° λ‹¨κ³„λ³„λ‘œ μ‹€ν—˜ν•˜μ—¬ μ μš©ν•œ λ‚΄μš©λ“€μ€ μ•„λž˜μ™€ κ°™μŠ΅λ‹ˆλ‹€.
ν”„λ‘œμ„ΈμŠ€γ€€ μ„€λͺ…
데이터 EDA, Fine-Tuning 데이터셋 ꡬ성 (데이터 ν’ˆμ§ˆ κ°œμ„ , 데이터 증강), RAG 데이터 ꡬ성 (벑터 μŠ€ν† μ–΄ 데이터 μˆ˜μ§‘ 및 μ „μ²˜λ¦¬, chunking)
λͺ¨λΈλ§ λͺ¨λΈ μ„ μ • 및 νŠœλ‹, LoRA νŠœλ‹, ν”„λ‘¬ν”„νŠΈ νŠœλ‹
RAG Vector Store ꡬ좕, Retriever ν‰κ°€μš© 데이터셋 ꡬ좕, Retriever νŒŒλΌλ―Έν„° μ„€μ •, RAFT(Retrieval Augmented Fine-Tuning)
앙상블 Weighted Voting Ensemble

πŸ€– Ensemble

μ •μ œ, 증강을 λ‹€μ–‘ν•˜κ²Œ μ μš©ν•œ 데이터셋과 LoRA νŠœλ‹μ„ 톡해 itsmenlp/unsloth_qwen_2.5_32B_bnb_4bit_finetuned둜 μΆ”λ‘ ν•œ output의 accuracy Top 5둜 weighted voting ensemble을 μ§„ν–‰ν•œ κ²°κ³Ό, μ΅œμ’… Public Accuracy 0.8341을 λ‹¬μ„±ν–ˆμŠ΅λ‹ˆλ‹€.

Output Accuracy Weight
Top 5 0.8180 0.1
Top 4 0.8180 0.1
Top 3 0.8203 0.2
Top 2 0.8272 0.2
Top 1 0.8295 0.4

πŸ“ƒ KSAT Results

λ³Έ ν”„λ‘œμ νŠΈμ—μ„œ κ°œλ°œν•œ sLLM을 ν™œμš©ν•œ 2025학년도 수λŠ₯의 κ΅­μ–΄(화법과 μž‘λ¬Έ), ν•œκ΅­μ‚¬, μ‚¬νšŒ 탐ꡬ μ˜μ—­ 풀이 κ²°κ³Όμž…λ‹ˆλ‹€.

image



πŸŽ₯ 2025학년도 수λŠ₯ 문제 풀이 데λͺ¨ μ˜μƒ

demo_ksat.mp4



πŸ“ ν”„λ‘œμ νŠΈ ꡬ쑰

ν”„λ‘œμ νŠΈ 폴더 κ΅¬μ‘°λŠ” λ‹€μŒκ³Ό κ°™μŠ΅λ‹ˆλ‹€.

level2-nlp-generationfornlp-nlp-05-lv3/  
β”œβ”€β”€ checkpoints/                        # λͺ¨λΈ 체크포인트 μ €μž₯ 폴더  
β”‚   └── (experiment_name)/              # μ‹€ν—˜ 이름  
β”‚       β”œβ”€β”€ checkpoint-1111             # λͺ¨λΈ 체크포인트  
β”‚       └── checkpoint-2222  
β”œβ”€β”€ config/  
β”‚   └── config.yaml                     # μ„€μ • 관리 파일  
β”œβ”€β”€ notebooks/  
β”‚   β”œβ”€β”€ eda.ipynb                       # EDA  
β”‚   β”œβ”€β”€ demo_data_preprocessing.ipynb   # 데λͺ¨ 데이터 μ „μ²˜λ¦¬ μ½”λ“œ  
β”‚   └── ft_data_processing.ipynb        # Fine-Tuning 데이터 μ „μ²˜λ¦¬ μ½”λ“œ   
β”œβ”€β”€ prompt/  
β”‚   β”œβ”€β”€ prompt_templates.yaml           # ν”„λ‘¬ν”„νŠΈ ν…œν”Œλ¦Ώ 관리 파일  
β”œβ”€β”€ src/  
β”‚   β”œβ”€β”€ dataset.py                      # 데이터 λ‘œλ“œ 및 μ „μ²˜λ¦¬ κ΄€λ ¨ μ½”λ“œ  
β”‚   β”œβ”€β”€ ensemble.py                     # 앙상블 기법 κ΅¬ν˜„ μ½”λ“œ  
β”‚   β”œβ”€β”€ model.py                        # λͺ¨λΈ μ •μ˜ 및 ν•™μŠ΅ κ΄€λ ¨ μ½”λ“œ
β”‚   β”œβ”€β”€ preprocessing.py                # 벑터 μŠ€ν† μ–΄ κ΅¬μΆ•μš© 데이터 μˆ˜μ§‘ 및 μ „μ²˜λ¦¬ μ½”λ“œ
β”‚   β”œβ”€β”€ retrieval_dense.py              # Dense Retrieval κ΅¬ν˜„ μ½”λ“œ  
β”‚   β”œβ”€β”€ retrieval_sparse.py             # Sparse Retrieval κ΅¬ν˜„ μ½”λ“œ  
β”‚   └── utils.py                        # 보쑰 ν•¨μˆ˜ 및 μœ ν‹Έλ¦¬ν‹° μ½”λ“œ  
β”œβ”€β”€ streamlit/                          # Streamlit κ΄€λ ¨ μ›Ή μ• ν”Œλ¦¬μΌ€μ΄μ…˜ 디렉토리  
β”œβ”€β”€ main.py                             # ν”„λ‘œμ νŠΈ μ‹€ν–‰μ˜ 메인 슀크립트  
β”œβ”€β”€ .gitignore  
β”œβ”€β”€ README.md  
└── requirements.txt  


πŸ’Ύ ν”„λ‘œμ νŠΈ μ„€μΉ˜ 및 μ‹€ν–‰

  • OS: Ubuntu-20.04.6 LTS
  • Python: 3.11 이상
  • ν•„μˆ˜ 라이브러리: requirements.txt μ°Έκ³ 
  • GPU: NVIDIA V100 32GB
git clone https://github.com/boostcampaitech7/level2-nlp-generationfornlp-nlp-05-lv3.git
pip install -r requirements.txt

python src/retrieval_dense.py # ν˜Ήμ€ python src/retrieval_sparse.py
python main.py --config {config_path} --mode {train/test}

config.yaml githubμ—μ„œ 확인


πŸ’Ύ Demo μ‹€ν–‰

cd streamlit
streamlit run home.py

About

level2-nlp-generationfornlp-nlp-05-lv3 created by GitHub Classroom

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published