--- license: apache-2.0 language: - ko - en library_name: transformers tags: - finance - korean - stock-analysis - reasoning - dpo - gguf - llama-cpp base_model: Qwen/Qwen2.5-7B-Instruct pipeline_tag: text-generation --- # VELA (Vector-Encoded Learning Agent) **한국 주식시장 전문 AI 애널리스트** VELA는 한국 주식시장 뉴스 분석 및 투자 리서치를 위해 특화된 7B 파라미터 언어 모델입니다. 2,135개 종목에 대한 뉴스 영향 분석, 증권사 리포트 해석, Reasoning Trace 기반 구조화된 투자 분석을 수행합니다. ## Model Details | 항목 | 내용 | |------|------| | **Base Model** | Qwen/Qwen2.5-7B-Instruct | | **Training** | SFT (36,713) + DPO (24,779 pairs) | | **Parameters** | 7.6B | | **Context Length** | 8,192 tokens | | **Stock Coverage** | 2,135 종목 (KOSPI + KOSDAQ) | | **License** | Apache 2.0 | ### Available Formats | Format | File | Size | Use Case | |--------|------|------|----------| | **BF16** (safetensors) | `model.safetensors` | 15 GB | Full precision, GPU inference | | **GGUF Q8_0** | `vela-q8_0.gguf` | 7.6 GB | High quality quantized, GPU/CPU | | **GGUF Q4_K_M** | `vela-q4_k_m.gguf` | 4.4 GB | Fast & lightweight, GPU/CPU | ## Training Pipeline ``` Qwen2.5-7B-Instruct ↓ SFT (36,713 samples) - 뉴스 분류 분석 10,830 - 극단 시그널 분석 9,603 - 증권사 리포트 5,117 - 뉴스 영향 분석 4,839 - Tool Calling 1,965 - 기타 (비교분석, 실적, 리스크, 수급, 섹터, 매크로) 4,359 ↓ DPO (24,779 pairs) - 중복 제거 기본 페어 12,000 - 다국어 leak 보강 5,997 - VELA ChatML 정렬 5,000 - 중국어 leak 교정 v2 1,216 - Reasoning Trace 정렬 566 ↓ VELA ``` ## Training Data Distribution ### SFT (36,713 samples, 2,135 종목) | Source | Samples | Ratio | Description | |--------|---------|-------|-------------| | **classified_news** | 10,830 | 29.5% | GPT-4o 분류된 뉴스 → Reasoning Trace 생성 | | **extreme_signals** | 9,603 | 26.2% | 급등/급락 시그널 뉴스 분석 | | **securities_report_gpt4o** | 5,117 | 13.9% | 증권사 리포트 GPT-4o 재구성 (네이버 종목분석 + 미래에셋) | | **analysis_news** | 4,839 | 13.2% | 일반 뉴스 영향 분석 | | **tool_calling** | 1,965 | 5.4% | Search/Price/Investor 도구 호출 학습 | | **multi_stock_comparison** | 981 | 2.7% | 다중 종목 비교 분석 | | **earnings_impact** | 971 | 2.6% | 실적 발표 영향 분석 | | **risk_alert** | 948 | 2.6% | 리스크 경보 분석 | | **supply_demand** | 492 | 1.3% | 수급 동향 분석 | | **sector_theme** | 486 | 1.3% | 섹터/테마 분석 | | **macro_impact** | 481 | 1.3% | 매크로 지표 영향 분석 | > 평균 응답 길이: 2,337자 (Reasoning Trace JSON + 분석 리포트 포함) ### DPO (24,779 pairs) | Source | Pairs | Ratio | Description | |--------|-------|-------|-------------| | **dpo_dedup** | 12,000 | 48.4% | 중복 제거된 기본 DPO 페어 | | **multilingual_aug** | 5,997 | 24.2% | 중국어/영어 leak 보강 (rejected에 leak 삽입) | | **vela_chatml** | 5,000 | 20.2% | VELA 시스템 프롬프트 정렬 | | **chinese_leak_v2** | 1,216 | 4.9% | 중국어 leak 집중 교정 | | **reasoning_trace_2k** | 566 | 2.3% | Reasoning Trace 형식 정렬 | ## Capabilities - **뉴스 영향 분석**: 주식 관련 뉴스의 시장 영향도 예측 - **증권사 리포트 해석**: 애널리스트 리포트 기반 투자 분석 - **리서치 리포트 생성**: 구조화된 투자 분석 보고서 (7개 섹션) - **Reasoning Trace**: 단계별 분석 사고과정 (JSON 형식) - **다중 소스 종합**: 뉴스, 시세, 수급 데이터 통합 분석 ## Quantization Benchmark RTX 3060 12GB, llama-cpp-python, n_gpu_layers=-1, n_ctx=4096 | Format | Speed (tok/s) | Chinese Leak | Quality | |--------|--------------|--------------|---------| | **Q4_K_M** | **36 tok/s** | 0/5 CLEAN | Reasoning Trace + Report OK | | **Q8_0** | 25 tok/s | 0/5 CLEAN | Reasoning Trace + Report OK | > Stress test: 5회 연속 (Synthesis + 3K Reasoning Trace 교대) - 양쪽 모두 Chinese leak 제로 ## Usage ### llama-cpp-python (Recommended for GGUF) ```python from llama_cpp import Llama model = Llama( model_path="vela-q4_k_m.gguf", # or vela-q8_0.gguf n_ctx=4096, n_gpu_layers=-1, # Full GPU offload chat_format="chatml", ) response = model.create_chat_completion( messages=[ {"role": "system", "content": "당신은 한국 주식 전문 애널리스트입니다."}, {"role": "user", "content": "삼성전자 HBM 사업 전망을 분석해주세요."}, ], max_tokens=1024, temperature=0.7, ) print(response["choices"][0]["message"]["content"]) ``` ### Transformers (BF16) ```python from transformers import AutoModelForCausalLM, AutoTokenizer import torch model = AutoModelForCausalLM.from_pretrained( "intrect/VELA", torch_dtype=torch.bfloat16, device_map="auto" ) tokenizer = AutoTokenizer.from_pretrained("intrect/VELA") messages = [ {"role": "system", "content": "당신은 한국 주식 전문 애널리스트입니다."}, {"role": "user", "content": "삼성전자 HBM 사업 전망을 분석해주세요."} ] text = tokenizer.apply_chat_template(messages, tokenize=False, add_generation_prompt=True) inputs = tokenizer(text, return_tensors="pt").to(model.device) outputs = model.generate( **inputs, max_new_tokens=1024, temperature=0.7, do_sample=True ) print(tokenizer.decode(outputs[0], skip_special_tokens=True)) ``` ### vLLM ```python from vllm import LLM, SamplingParams llm = LLM(model="intrect/VELA", dtype="bfloat16") params = SamplingParams(temperature=0.7, max_tokens=1024) prompts = ["삼성전자 HBM 시장 전망을 분석해주세요."] outputs = llm.generate(prompts, params) ``` ### Ollama ```bash # Modelfile FROM ./vela-q4_k_m.gguf TEMPLATE """<|im_start|>system {{ .System }}<|im_end|> <|im_start|>user {{ .Prompt }}<|im_end|> <|im_start|>assistant """ PARAMETER temperature 0.7 PARAMETER num_ctx 4096 ``` ## Output Format VELA는 두 가지 출력 모드를 지원합니다: ### 1. Reasoning Trace (분석 과정) ```json { "step": 1, "thought": "삼성전자 HBM3E 12단 양산 관련 뉴스 확인. 추가 수주 현황과 시장 점유율 파악 필요.", "action": "search", "query": "삼성전자 HBM3E 12단 수주 시장점유율", "confidence": 0.45 } ``` ### 2. Synthesis Report (최종 리포트) ```markdown # EOD 리포트: 삼성전자 (005930.KS) ## Executive Summary [2-3문장 핵심 요약] ## Key Metrics | 지표 | 수치 | |------|------| ## 시장 동향 분석 ## 수급 분석 ## 뉴스 영향 분석 ## 리스크 요인 ## 투자 의견 ``` ## DPO Improvements - ✅ **중국어 leak 제거**: Stress test 10/10 CLEAN - ✅ **영어 leak 감소**: 불필요한 영어 사용 최소화 - ✅ **형식 준수**: Reasoning Trace JSON + 7-section Report - ✅ **한국어 품질**: 자연스러운 한국어 표현 ## Limitations - 실시간 시세 데이터 접근 불가 (외부 API 필요) - 투자 조언이 아닌 정보 제공 목적 - 8K 컨텍스트 제한으로 긴 문서 처리 한계 - 할루시네이션 수치 가능 (수치 데이터는 외부 검증 필요) ## Citation ```bibtex @misc{vela2026, title={VELA: Vector-Encoded Learning Agent for Korean Stock Analysis}, author={intrect}, year={2026}, publisher={Hugging Face}, url={https://huggingface.co/intrect/VELA} } ``` ## Version History | 버전 | 날짜 | 변경사항 | |------|------|----------| | v1.1 | 2026-02-12 | GGUF 양자화 모델 추가 (Q4_K_M, Q8_0), 벤치마크, 학습 데이터 분포 공개 | | v1.0 | 2026-01-28 | DPO 병합, 중국어/영어 leak 해결 | | v0.9 | 2026-01-15 | SFT 베이스 모델 공개 | --- **Disclaimer**: 이 모델의 출력은 투자 조언이 아닙니다. 모든 투자 결정은 본인의 판단과 책임 하에 이루어져야 합니다.