# Financial Text Simplifier (금융 텍스트 간소화 모델) ## Model Description [![Open In Colab](https://colab.research.google.com/assets/colab-badge.svg)](https://colab.research.google.com/drive/19Q7kUWtHX2shLx6iGGoT66wEidOrvLCf?usp=sharing) **fin_simplifier**는 복잡한 금융 용어와 문장을 일반인이 이해하기 쉬운 한국어로 변환하는 Encoder-Decoder 모델입니다. ### Architecture - **Encoder**: KR-FinBert-SC (금융 도메인 특화 BERT) - **Decoder**: SKT KoGPT2-base-v2 (한국어 생성 모델) - **Model Type**: Seq2Seq (Encoder-Decoder) - **Parameters**: 255M ### Key Features - 금융 전문 용어를 쉬운 일상어로 변환 - 한국어 금융 문서에 최적화 - PER, ROE, 파생상품 등 복잡한 개념 간소화 - 은행 상담 및 금융 교육 활용 가능 ## Intended Use ### Primary Use Cases 1. **금융 상담 지원**: 은행 상담 시 고객 이해도 향상 2. **금융 교육**: 복잡한 금융 개념을 쉽게 설명 3. **문서 간소화**: 약관, 상품 설명서 등을 이해하기 쉽게 변환 4. **접근성 개선**: 금융 소외계층의 금융 서비스 접근성 향상 ### Out-of-Scope Use - 법적 구속력이 있는 문서 작성 - 투자 조언 또는 금융 상담 대체 - 정확한 수치나 계산이 필요한 경우 ## How to Use ### Installation ```python from transformers import EncoderDecoderModel, AutoTokenizer import torch # Model loading model = EncoderDecoderModel.from_pretrained("combe4259/fin_simplifier") encoder_tokenizer = AutoTokenizer.from_pretrained("snunlp/KR-FinBert-SC") decoder_tokenizer = AutoTokenizer.from_pretrained("skt/kogpt2-base-v2") # Set special tokens if decoder_tokenizer.pad_token is None: decoder_tokenizer.pad_token = decoder_tokenizer.eos_token ``` ### Inference Example ```python def simplify_text(text, model, encoder_tokenizer, decoder_tokenizer): # Tokenize input inputs = encoder_tokenizer( text, return_tensors="pt", max_length=128, padding="max_length", truncation=True ) # Generate simplified text with torch.no_grad(): generated = model.generate( input_ids=inputs["input_ids"], attention_mask=inputs["attention_mask"], max_length=128, num_beams=6, repetition_penalty=1.2, length_penalty=0.8, early_stopping=True, do_sample=True, top_k=50, top_p=0.95, temperature=0.7 ) # Decode output simplified = decoder_tokenizer.decode(generated[0], skip_special_tokens=True) return simplified # Example usage complex_text = "주가수익비율(PER)은 주가를 주당순이익으로 나눈 지표입니다." simple_text = simplify_text(complex_text, model, encoder_tokenizer, decoder_tokenizer) print(f"원문: {complex_text}") print(f"간소화: {simple_text}") # Output: "간소화: PER은 주식 가격이 회사 이익 대비 비싼지 싼지 보는 숫자입니다." ``` ## Training Details ### Training Data - **Size**: 약 100개의 금융 용어 쌍 (복잡한 설명 → 쉬운 설명) - **Domain**: 한국 금융 용어 및 개념 - **Categories**: - 기본 금융 지표 (PER, ROE, ROA 등) - 투자 상품 (ETF, ELS, 파생상품 등) - 대출/예금 용어 - 리스크 관리 용어 - 세금 관련 용어 ### Training Procedure - **Epochs**: 10 - **Batch Size**: 4 (with gradient accumulation steps: 2) - **Learning Rate**: 3e-5 - **Optimizer**: AdamW with warmup - **Label Smoothing**: 0.1 - **Dropout**: 0.2 (encoder and decoder) ### Hyperparameters for Generation - **Beam Search**: 6 beams - **Repetition Penalty**: 1.2 - **Length Penalty**: 0.8 - **Temperature**: 0.7 - **Top-k**: 50 - **Top-p**: 0.95 ## Evaluation ### Example Outputs | 원문 (Complex) | 변환 결과 (Simplified) | |---------------|---------------------| | 시가총액은 발행주식수에 주가를 곱한 값으로 기업의 시장가치를 나타냅니다. | 시가총액은 회사의 모든 주식을 합친 가격입니다. | | 파생결합증권은 기초자산의 가격변동에 연계하여 수익이 결정되는 증권입니다. | 파생결합증권은 다른 상품 가격에 따라 수익이 바뀌는 투자 상품입니다. | | 환매조건부채권(RP)은 일정기간 후 다시 매입하는 조건으로 매도하는 채권입니다. | RP는 나중에 다시 사겠다고 약속하고 일단 파는 채권입니다. | | 유동성위험은 자산을 적정가격에 현금화하지 못할 위험입니다. | 유동성위험은 급하게 팔 때 제값을 못 받을 위험입니다. | | 원리금균등상환은 매월 동일한 금액으로 원금과 이자를 상환하는 방식입니다. | 원리금균등상환은 매달 같은 금액을 갚는 방식입니다. | ## Limitations and Biases ### Limitations 1. **학습 데이터 규모**: 약 100개의 예시로 학습되어 일반화 능력이 제한적 2. **도메인 특화**: 금융 분야 외 다른 전문 용어에는 성능이 떨어질 수 있음 3. **문맥 이해**: 긴 문장이나 복잡한 문맥에서는 정확도가 낮을 수 있음 4. **수치 정보**: 정확한 수치나 계산식 변환에는 적합하지 않음 ### Potential Biases - 학습 데이터가 한국 금융 시장 중심으로 구성 - 일반 소비자 관점의 간소화로 전문가 수준의 정확성은 보장되지 않음 ## Ethical Considerations ### Responsible Use - ✅ 금융 교육 및 이해도 향상 목적으로 사용 - ✅ 보조 도구로서 인간 전문가와 함께 사용 - ❌ 법적 효력이 있는 문서 작성에 사용 금지 - ❌ 투자 결정의 유일한 근거로 사용 금지 ### Privacy - 모델은 개인 정보를 포함하지 않음 - 입력된 텍스트는 저장되지 않음 ## Citation ```bibtex @misc{fin_simplifier2024, title={Financial Text Simplifier: Korean Financial Terms Simplification Model}, author={combe4259}, year={2024}, publisher={HuggingFace}, url={https://huggingface.co/combe4259/fin_simplifier} } ``` ## Acknowledgments - **KR-FinBert-SC**: 금융 도메인 특화 인코더 제공 - **SKT KoGPT2**: 한국어 생성 모델 제공 - **NH Bank Text-Gaze-Tracker Project**: 실제 활용 사례 및 피드백 ## Contact - **HuggingFace**: [combe4259](https://huggingface.co/combe4259) - **Model Card**: 문의사항은 HuggingFace 토론 탭을 이용해주세요 ## License 이 모델은 연구 및 교육 목적으로 제공됩니다. 상업적 사용 시 별도 문의가 필요합니다. ## Updates - **2024.01**: 초기 버전 릴리즈 (v1.0) - 금융 용어 100개 학습 - KR-FinBert + KoGPT2 아키텍처 --- **Note**: 이 모델은 금융 정보의 접근성을 높이기 위한 연구 프로젝트의 일환으로 개발되었습니다. 실제 금융 상담이나 투자 결정에는 반드시 전문가의 조언을 구하시기 바랍니다.