CSAT-Solver
는 고급 언어 모델을 사용하여 한국의 대학수학능력시험 문제를 해결하기 위해 설계된 프로젝트입니다. 이 프로젝트는 대규모 언어 모델에 미세 조정 기법을 적용하여 CSAT의 전형적인 객관식 문제에 대한 성능을 향상시킵니다.
강신욱 | 박규태 | 이정민 | 장요한 | 한동훈 | 홍성균 |
팀원 | 역할 |
---|---|
이정민 | Team Leader, Baseline code, LLM Memory Optimization, Data Augmentation |
강신욱 | EDA, Data Augmentation |
박규태 | LLM Model Search, RAG Pipeline Analysis |
장요한 | LLM Model Search, Data Augmentation |
한동훈 | EDA Streamlit, LLM Memory Optimization, Data Augmentation |
홍성균 | LLM Model Search, Data Augmentation |
11월 11일 (월) 10:00 ~ 11월 28일 (목) 19:00
pip install -r requirements.txt
@dataclass
class ModelArguments:
"""
Arguments pertaining to which model/config/tokenizer we are going to fine-tune from.
"""
model_name_or_path: str = field(
default='beomi/gemma-ko-2b', # 사용할 모델
)
train_test_split: Optional[float] = field(
default=0.1,
metadata={
"help": "test_size"
},
)
.
.
.
python run.py
- 사전 훈련된 언어 모델(예: Gemma-ko-2b)의 미세 조정
- 4비트 및 8비트 양자화 지원
- CSAT 스타일 문제에 대한 맞춤형 데이터 처리
- 훈련 및 평가 파이프라인
- 테스트 데이터셋에 대한 추론
- Weights & Biases를 통한 실험 추적 통합
Streamlit 기반의 EDA 제공하여 시각화 자료를 로컬로 손쉽게 제공합니다.
- 패턴 기반 ID 조회
- 전체 데이터셋 표시
- 길이 분포 시각화
- 토큰화된 길이 분포 시각화
- 채팅 템플릿 적용 후 토큰화 길이 분포
- 답변 분포 표시
CSAT-Solver/
│
├── data/
│ ├── train.csv
│ └── test.csv
│
├── models/ # LoRA 학습된 adapter 저장 디렉토리
│
├── output/ # test.csv로 inference 결과 저장 디렉토리
│
├── src/
│ ├── arguments.py # 학습에 필요한 여러 인자
│ ├── utils.py # 시드 고정 및 데이터 셋 chat message 형태로 변환
│ ├── streamlit_app.py # EDA 시각화 제공 프로그램
│ ├── main.py # 모델 학습 및 추론
│ ├── ensemble.py # 추론 결과 앙상블
│ ├── backtranslation_augmentation.py # 역번역 증강
│ └── retrieval_tasks/ # RAG 파이프라인 코드 디렉토리
│ ├── __init__.py
│ ├── LLM_tasks.py # LLM을 활용한 파이프라인 중의 요약 및 확인 task
│ ├── retrieval.py # 리트리버 공통 추상 클래스
│ ├── retrieval_semantic.py # Dense
│ ├── retrieval_syntactic.py # Sparse
│ ├── retrieval_hybrid.py # 하이브리드 서치
│ ├── retrieval_rerank.py # two-stage reranker
│ └── retrieve_utils.py # RAG 기반 검색·요약 파이프라인
│
├── requirements.txt
├── README.md
└── run.py # 실행 파일