license: apache-2.0
language:
- ko
- en
library_name: transformers
tags:
- finance
- korean
- stock-analysis
- reasoning
- dpo
- gguf
- llama-cpp
- mlx
base_model: Qwen/Qwen2.5-7B-Instruct
pipeline_tag: text-generation
VELA (Vector-Encoded Learning Agent)
Version History
| Version | Date | Changes |
|---|---|---|
| v1.2 | 2026-02-16 | SFT v3 (58K) Gap Fill 12์นดํ ๊ณ ๋ฆฌ, Markdown RT, ๋ฒค์น๋งํฌ ์ถ๊ฐ |
| v1.1 | 2026-02-12 | GGUF ์์ํ ๋ชจ๋ธ ์ถ๊ฐ (Q4_K_M, Q8_0) |
| v1.0 | 2026-01-28 | DPO ๋ณํฉ, ์ค๊ตญ์ด/์์ด leak ํด๊ฒฐ |
| v0.9 | 2026-01-15 | SFT ๋ฒ ์ด์ค ๋ชจ๋ธ ๊ณต๊ฐ |
ํ๊ตญ ์ฃผ์์์ฅ ์ ๋ฌธ AI ์ ๋๋ฆฌ์คํธ
VELA๋ ํ๊ตญ ์ฃผ์์์ฅ ๋ด์ค ๋ถ์ ๋ฐ ํฌ์ ๋ฆฌ์์น๋ฅผ ์ํด ํนํ๋ 7B ํ๋ผ๋ฏธํฐ ์ธ์ด ๋ชจ๋ธ์ ๋๋ค. KOSPI/KOSDAQ 2,135๊ฐ ์ข ๋ชฉ์ ๋ํ ๋ด์ค ์ํฅ ๋ถ์, ์ฆ๊ถ์ฌ ๋ฆฌํฌํธ ํด์, Reasoning Trace ๊ธฐ๋ฐ ๊ตฌ์กฐํ๋ ํฌ์ ๋ถ์์ ์ํํฉ๋๋ค.
์ง์์ ์ธ ๊ฐ๋ฐ๊ณผ ํ์ต์ผ๋ก ๊ฐ์ ํด๋๊ฐ๊ณ ์์ต๋๋ค. ์ฌ์ฉ์์ ์ด
58K+ SFT ์ํ๊ณผ 26K+ DPO ํ์ด๋ก ํ์ตํ์ฌ, ํ๊ตญ์ด ๊ธ์ต ๋๋ฉ์ธ์์ ์ ํํ๊ณ ๊ตฌ์กฐํ๋ ๋ถ์์ ์ ๊ณตํฉ๋๋ค.
Agent Framework: github.com/Intrect-io/vela-framework โ
pip install vela-framework
Model Details
| ํญ๋ชฉ | ๋ด์ฉ |
|---|---|
| Base Model | Qwen/Qwen2.5-7B-Instruct |
| Training | SFT (58,206 samples) + DPO (26,421 pairs) |
| Parameters | 7.6B |
| Context Length | 8,192 tokens |
| RT Format | Markdown Reasoning Trace |
| 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 |
MLX 4-bit ์์ํ ๋ชจ๋ธ๋ ๋ณ๋ ์ ๊ณต ์์ (Apple Silicon ์ต์ ํ)
Recommended Inference Settings
VELA์ generation_config.json์ llama-cpp-python ์๋ฒ์ ๋์ผํ ์ํ๋ง ํ๋ผ๋ฏธํฐ๋ฅผ ์ฌ์ฉํฉ๋๋ค.
๋ชจ๋ ๋ฐฑ์๋์์ ๋์ผํ ์ถ๋ ฅ ํ์ง์ ๋ณด์ฅํ๊ธฐ ์ํด ์๋ ์ค์ ์ ๊ถ์ฅํฉ๋๋ค:
| Parameter | Value | Note |
|---|---|---|
temperature |
0.7 | ์ฐฝ์์ฑ-์ผ๊ด์ฑ ๊ท ํ์ |
top_k |
40 | ์์ 40๊ฐ ํ ํฐ ํ๋ณด (llama.cpp default) |
top_p |
0.95 | ๋์ ํ๋ฅ 95% ์ด๋ด ํ ํฐ ์ฌ์ฉ |
repetition_penalty |
1.0 | ๋นํ์ฑํ (ํ์ฒ๋ฆฌ๋ก ๋ฐ๋ณต ์ ์ด) |
max_tokens |
1024-2048 | ๋ถ์ ๋ณต์ก๋์ ๋ฐ๋ผ ์กฐ์ |
์ฃผ์์ฌํญ:
repetition_penalty โฅ 1.2๋ ์ฌ์ฉ ๊ธ์ง โ Qwen 7B ๊ธฐ๋ฐ ๋ชจ๋ธ์์ ์ค๊ตญ์ด text leak ๋ฐ ํ๊ฐ(hallucination)์ ์ ๋ฐํฉ๋๋คtop_k < 20๋๋top_p < 0.8์ ์ถ๋ ฅ ๋ค์์ฑ์ ๊ณผ๋ํ๊ฒ ์ ํํ์ฌ confidence ๊ณ ์ (50%) ํ์์ ๋ฐ์์ํต๋๋ค- ๋ฐ๋ณต ์ ์ด๋
repetition_penalty๋์ ํ์ฒ๋ฆฌ ํ์ดํ๋ผ์ธ์ผ๋ก ์ฒ๋ฆฌํ๋ ๊ฒ์ด ์์ ์ ์ ๋๋ค
Backend๋ณ ์ค์ ๊ฐ์ด๋
llama-cpp-python / Ollama โ ๋ณ๋ ์ค์ ๋ถํ์ (๊ธฐ๋ณธ๊ฐ์ด ๊ถ์ฅ๊ฐ๊ณผ ๋์ผ):
model.create_chat_completion(
messages=messages,
max_tokens=1024,
temperature=0.7,
# top_k, top_p, repeat_penalty๋ ์๋ฒ ๊ธฐ๋ณธ๊ฐ ์ฌ์ฉ
)
HuggingFace Transformers โ generation_config.json์ด ์๋ ๋ก๋๋จ. ๋ช
์์ ํ๋ผ๋ฏธํฐ ์ต์ํ:
outputs = model.generate(
**inputs,
max_new_tokens=1024,
temperature=0.7,
do_sample=True,
# top_k, top_p, repetition_penalty๋ generation_config.json์์ ๋ก๋
)
vLLM โ ๋ช ์์ ์ค์ ๊ถ์ฅ:
params = SamplingParams(
temperature=0.7,
top_k=40,
top_p=0.95,
repetition_penalty=1.0,
max_tokens=1024,
)
MLX โ ์๋ฒ ๊ธฐ๋ณธ๊ฐ ์ฌ์ฉ:
generate(model, tokenizer, prompt=prompt, max_tokens=1024, temp=0.7)
What Can VELA Do?
1. ๋ด์ค ์ํฅ ๋ถ์
์ฃผ์ ๊ด๋ จ ๋ด์ค๊ฐ ์ฃผ๊ฐ์ ๋ฏธ์น๋ ์ํฅ์ ๋จ๊ณ์ ์ผ๋ก ์ถ๋ก ํฉ๋๋ค.
2. Reasoning Trace (๋จ๊ณ๋ณ ์ฌ๊ณ ๊ณผ์ )
๋ถ์ ๊ณผ์ ์ ํฌ๋ช ํ๊ฒ ๋ณด์ฌ์ฃผ๋ Markdown Reasoning Trace๋ฅผ ์์ฑํฉ๋๋ค:
**Step 1**:
**Thought**: ์ผ์ฑ์ ์ 3๋๋
ธ ์์ฐ ์ฑ๊ณต ๋ด์ค์ ๊ธฐ์ ์ ์๋ฏธ๋ฅผ ํ์
ํด์ผ ํฉ๋๋ค.
**Action**: search
**Query**: ์ผ์ฑ์ ์ 3๋๋
ธ ํ์ด๋๋ฆฌ ์์จ ๊ฒฝ์๋ ฅ TSMC
**Confidence**: 35%
**Step 2**:
**Thought**: TSMC ๋๋น ์์จ ๊ฒฉ์ฐจ๊ฐ ํต์ฌ ๋ณ์์ด๋ฉฐ, ์์ฐ ์ฑ๊ณต์ ๊ธฐ์ ๋ ฅ ์
์ฆ์ด๋ ์์จ ์์ ํ๊น์ง ์๊ฐ ํ์.
**Action**: analyze
**Confidence**: 65%
**Step 3**:
**Thought**: 3๋๋
ธ ์์ฐ ์ฑ๊ณต์ ์ค์ฅ๊ธฐ ๊ธ์ ์๊ทธ๋์ด๋, ๋จ๊ธฐ์ ์ผ๋ก ์์จ ์ด์ ๋ฆฌ์คํฌ๊ฐ ์กด์ฌํฉ๋๋ค.
**Action**: conclude
**Confidence**: 80%
3. ์ฆ๊ถ์ฌ ๋ฆฌํฌํธ ํด์
์ ๋๋ฆฌ์คํธ ๋ฆฌํฌํธ๋ฅผ ๊ธฐ๋ฐ์ผ๋ก ํต์ฌ ํฌ์ธํธ์ ํฌ์ ์์ฌ์ ์ ๋์ถํฉ๋๋ค.
4. ํฌ์ ๋ฆฌ์์น ๋ฆฌํฌํธ
7๊ฐ ์น์ ์ผ๋ก ๊ตฌ์กฐํ๋ ํฌ์ ๋ถ์ ๋ณด๊ณ ์๋ฅผ ์์ฑํฉ๋๋ค: Executive Summary / Key Metrics / ์์ฅ ๋ํฅ / ์๊ธ ๋ถ์ / ๋ด์ค ์ํฅ / ๋ฆฌ์คํฌ / ํฌ์ ์๊ฒฌ
5. ๋๊ตฌ ํธ์ถ (Tool Calling)
Search, Price, Investor ๋ฑ ์ธ๋ถ ๋๊ตฌ์ ์ฐ๋ํ๋ ๋ถ์์ ์ํํฉ๋๋ค.
Training Pipeline
Qwen/Qwen2.5-7B-Instruct
|
v
SFT (58,206 samples)
โโโ ๋ด์ค ๋ถ๋ฅ ๋ถ์ 10,830 (18.6%)
โโโ ๊ทน๋จ ์๊ทธ๋ ๋ถ์ 9,603 (16.5%)
โโโ ์ฆ๊ถ์ฌ ๋ฆฌํฌํธ (GPT-4o) 5,117 (8.8%)
โโโ ๋ด์ค ์ํฅ ๋ถ์ 4,839 (8.3%)
โโโ ๋ฉํฐํด ๋ํ 8,000 (13.8%)
โโโ Gap Fill (12 ์นดํ
๊ณ ๋ฆฌ) 12,635 (21.7%)
โ โโโ ๋ฐธ๋ฅ์์ด์
๋ถ์ 2,000
โ โโโ ์๊ธ/๋ฆฌ์คํฌ/EOD 3,000
โ โโโ ๊ฑฐ์ /์ ๋ณด ์๋ต 1,000
โ โโโ ๊ฐ๊ฒฐ ๋ถ์ 1,000
โ โโโ ์ฌ์ธต ์ถ๋ก (5+ steps) 1,000
โ โโโ ๊ธฐํ (๋งคํฌ๋ก, ์นํฐ ๋ฑ) 4,635
โโโ ๊ธฐํ 7,182 (12.3%)
|
v
DPO (26,421 pairs)
โโโ ์ค๋ณต ์ ๊ฑฐ ๊ธฐ๋ณธ ํ์ด 12,000 (45.4%)
โโโ ๋ค๊ตญ์ด leak ๋ณด๊ฐ 5,997 (22.7%)
โโโ VELA ChatML ์ ๋ ฌ 5,000 (18.9%)
โโโ ๋ถ์ถฉ๋ถ ๋ถ์ ๊ต์ 1,642 (6.2%)
โโโ ์ค๊ตญ์ด leak ๊ต์ v2 1,216 (4.6%)
โโโ Reasoning Trace ์ ๋ ฌ 566 (2.1%)
|
v
VELA v1.2
Training Data Details
SFT v3 (58,206 samples)
| Source | Samples | Ratio | Description |
|---|---|---|---|
classified_news |
10,830 | 18.6% | GPT-4o ๋ถ๋ฅ๋ ๋ด์ค Reasoning Trace |
extreme_signals |
9,603 | 16.5% | ๊ธ๋ฑ/๊ธ๋ฝ ์๊ทธ๋ ๋ด์ค ๋ถ์ |
securities_report_gpt4o |
5,117 | 8.8% | ์ฆ๊ถ์ฌ ๋ฆฌํฌํธ GPT-4o ์ฌ๊ตฌ์ฑ |
analysis_news |
4,839 | 8.3% | ์ผ๋ฐ ๋ด์ค ์ํฅ ๋ถ์ |
multi_turn_2t |
4,000 | 6.9% | ๋จ์ผ ํด ๋ค์ ์ข ๋ชฉ ๋ถ์ |
multi_turn_4t |
4,000 | 6.9% | 2ํด follow-up ๋ํ |
valuation |
2,000 | 3.4% | ๋ฐธ๋ฅ์์ด์ ๋ถ์ (v3 Gap Fill) |
tool_calling |
1,965 | 3.4% | Search/Price/Investor ๋๊ตฌ ํธ์ถ |
supply_demand_ext |
1,000 | 1.7% | ์๊ธ ํ์ฅ ๋ถ์ (v3) |
risk |
1,000 | 1.7% | ๋ฆฌ์คํฌ ๋ถ์ (v3) |
eod_report |
1,000 | 1.7% | EOD ์ํฉ ๋ฆฌํฌํธ (v3) |
refusal |
1,000 | 1.7% | ๊ฑฐ์ /์ ๋ณด ์๋ต (v3) |
short_analysis |
1,000 | 1.7% | ๊ฐ๊ฒฐ ๋ถ์ <500์ (v3) |
deep_reasoning |
1,000 | 1.7% | ์ฌ์ธต ์ถ๋ก 5+ steps (v3) |
low_confidence |
1,000 | 1.7% | ์ ํ์ ๋ ๋ถ์ (v3) |
macro_impact_ext |
1,000 | 1.7% | ๊ฑฐ์๊ฒฝ์ ํ์ฅ (v3) |
sector_theme |
1,000 | 1.7% | ์นํฐ/ํ ๋ง ๋ถ์ (v3) |
multi_stock_comparison |
981 | 1.7% | ๋ณต์ ์ข ๋ชฉ ๋น๊ต ๋ถ์ |
earnings_impact |
971 | 1.7% | ์ค์ ๋ฐํ ์ํฅ ๋ถ์ |
risk_alert |
948 | 1.6% | ๋ฆฌ์คํฌ ๊ฒฝ๊ณ ๋ถ์ |
null_impact |
900 | 1.5% | ์ฃผ๊ฐ ๋ฌด์ํฅ ์๋ต (v3) |
| Other | 2,050 | 3.5% | batch5 fallback, ๊ธฐ์กด ์๊ธ/์นํฐ/๋งคํฌ๋ก |
v3์์ 12๊ฐ ์นดํ ๊ณ ๋ฆฌ 12,635๊ฐ ์ํ์ ์ถ๊ฐํ์ฌ ๋ฐ์ดํฐ ๊ฐญ์ ๋ณด๊ฐํ์ต๋๋ค. ์์ฑ ๋น์ฉ: Perplexity Sonar 2K ($4.60) + OpenAI gpt-4o-mini Batch API 10.6K ($2.76) = ~$7.36
DPO v2 (26,421 pairs)
| Source | Pairs | Ratio | Rejection Type |
|---|---|---|---|
dpo_dedup |
12,000 | 45.4% | ์งง์/์ ํ์ง ์๋ต vs ์์ธ ๋ถ์ |
multilingual_aug |
5,997 | 22.7% | ์ค๊ตญ์ด/์์ด leak, ์งง์ ์๋ต, ์ ํ์ |
vela_chatml |
5,000 | 18.9% | ํ์ ์ค๋ฅ, ์งง์ ์๋ต |
batch5_insuf_dpo |
1,642 | 6.2% | ๋ถ์ถฉ๋ถ ๋ถ์ ํ์ง ๊ต์ |
chinese_leak_v2 |
1,216 | 4.6% | ์ค๊ตญ์ด ๋ฌธ์ leak ์ง์ค ๊ต์ |
reasoning_trace_2k |
566 | 2.1% | ์์ด leak, RT ํ์ ์ค๋ฅ |
Data Version History
| Version | SFT Samples | DPO Pairs | Changes |
|---|---|---|---|
| v1.0 | 36,713 | 24,779 | ์ด๊ธฐ ํ์ต ๋ฐ์ดํฐ (JSON RT) |
| v1.1 | 36,713 | 24,779 | RT JSON โ Markdown ๋ณํ |
| v2.0 | 45,571 | 26,421 | +๋ฉํฐํด 8K, +batch5 ๋ถ์ถฉ๋ถ DPO |
| v3.0 | 58,206 | 26,421 | +Gap Fill 12๊ฐ ์นดํ ๊ณ ๋ฆฌ 12,635 |
Benchmarks
Quantization Benchmark (GGUF)
RTX 3060 12GB, llama-cpp-python, n_gpu_layers=-1, n_ctx=4096
| Format | Speed | Chinese Leak | Quality |
|---|---|---|---|
| Q4_K_M | 36 tok/s | 0/5 CLEAN | RT + Report OK |
| Q8_0 | 25 tok/s | 0/5 CLEAN | RT + Report OK |
Stress test 5ํ: Synthesis + 3K Reasoning Trace ๊ต๋ โ ์์ชฝ ๋ชจ๋ Chinese leak ์ ๋ก
MLX Benchmark (Apple Silicon)
M1 Max 32GB, MLX 4-bit ์์ํ
| Config | Quantization | Load Time | Speed | Memory |
|---|---|---|---|---|
| MLX 4-bit | 4-bit (4.5 bpw) | 0.59s | 15.93 tok/s | 4.4 GB |
| PyTorch (CPU) | BF16 | 0.10s | 4.93 tok/s | 0.3 GB |
| PyTorch + LoRA (CPU) | BF16 | 1.64s | 4.22 tok/s | 14.1 GB |
MLX 4-bit vs PyTorch CPU:
- 3.2x faster inference (15.93 vs 4.93 tok/s)
- 73% smaller model size (4 GB vs 15 GB)
- 68% less memory (4.4 vs 14.1 GB)
DPO Quality Improvements
| Metric | Before DPO | After DPO |
|---|---|---|
| Chinese leak | Frequent | 0/10 CLEAN |
| English leak | Occasional | Minimal |
| RT format compliance | ~80% | ~98% |
| Korean fluency | Good | Excellent |
Usage
llama-cpp-python (Recommended for GGUF)
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,
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)
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
from vllm import LLM, SamplingParams
llm = LLM(model="intrect/VELA", dtype="bfloat16")
params = SamplingParams(temperature=0.7, max_tokens=1024)
outputs = llm.generate(
["์ผ์ฑ์ ์ HBM ์์ฅ ์ ๋ง์ ๋ถ์ํด์ฃผ์ธ์."],
params,
)
print(outputs[0].outputs[0].text)
MLX (Apple Silicon)
from mlx_lm import load, generate
model, tokenizer = load("intrect/VELA") # or local MLX 4-bit path
response = generate(
model,
tokenizer,
prompt="์ผ์ฑ์ ์ 3๋๋
ธ ์์ฐ ๋ด์ค ๋ถ์",
max_tokens=1024,
)
print(response)
Ollama
# 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 (๋ถ์ ๊ณผ์ )
Markdown ํ์์ผ๋ก ๋จ๊ณ๋ณ ์ฌ๊ณ ๊ณผ์ ์ ํฌ๋ช ํ๊ฒ ๋ณด์ฌ์ค๋๋ค:
**Step 1**:
**Thought**: ์ผ์ฑ์ ์ HBM3E 12๋จ ์์ฐ ๊ด๋ จ ๋ด์ค๋ฅผ ํ์ธํฉ๋๋ค. ์์ฃผ ํํฉ๊ณผ ์์ฅ ์ ์ ์จ ํ์
์ด ํ์ํฉ๋๋ค.
**Action**: search
**Query**: ์ผ์ฑ์ ์ HBM3E 12๋จ ์์ฃผ ์์ฅ์ ์ ์จ
**Confidence**: 45%
**Step 2**:
**Thought**: SKํ์ด๋์ค ๋๋น ์ผ์ฑ์ ์์ HBM ์์ฅ ์ ์ ์จ ํ๋ ์ถ์ธ๋ฅผ ๋ถ์ํฉ๋๋ค.
**Action**: analyze
**Confidence**: 70%
**Step 3**:
**Thought**: HBM3E ์์ฐ ์ฑ๊ณต์ ๊ธ์ ์ ์ด๋, NVIDIA ์ธ์ฆ ์ง์ฐ ๋ฆฌ์คํฌ๊ฐ ์กด์ฌํฉ๋๋ค.
**Action**: conclude
**Confidence**: 82%
2. Synthesis Report (์ต์ข ๋ฆฌํฌํธ)
7๊ฐ ์น์ ์ผ๋ก ๊ตฌ์กฐํ๋ ํฌ์ ๋ถ์ ๋ณด๊ณ ์:
# ๋ถ์ ๋ฆฌํฌํธ: ์ผ์ฑ์ ์ (005930.KS)
## Executive Summary
[2-3๋ฌธ์ฅ ํต์ฌ ์์ฝ]
## Key Metrics
| ์งํ | ์์น |
|------|------|
| ํ์ฌ๊ฐ | 181,200์ |
| 12M FWD PER | 15.4๋ฐฐ |
| PBR | 3.13๋ฐฐ |
## ์์ฅ ๋ํฅ ๋ถ์
## ์๊ธ ๋ถ์
## ๋ด์ค ์ํฅ ๋ถ์
## ๋ฆฌ์คํฌ ์์ธ
## ํฌ์ ์๊ฒฌ
Example Output
์๋๋ VELA ๋ชจ๋ธ์ด ์ค์ ๋ก ์์ฑํ๋ ์๋ต ์์์ ๋๋ค (SFT ํ์ต ๋ฐ์ดํฐ ๊ธฐ๋ฐ).
Query: "LGU+ ์คํ๋ ์์ฉ๋ง ๊ตฌ์ถ ๋ด์ค๊ฐ CS(065770) ์ฃผ๊ฐ์ ๋ฏธ์น๋ ์ํฅ์ ๋ถ์ํด์ฃผ์ธ์."
Reasoning Trace (์ถ๋ก ๊ณผ์ ) ํผ์น๊ธฐ
**Step 1**:
**Thought**: CS๋ ํต์ ์ฅ๋น ์ ์กฐ์
์ฒด๋ก, LGU+ ์คํ๋ ์์ฉ๋ง ๊ตฌ์ถ ๋ด์ค๋
์ง์ ์ ์ํ ๊ฐ๋ฅ์ฑ์ด ์๋ค. ๋ด์ค์์ ์ธ๊ธ๋ '์ผ์ง์ ์ยท๋
ธํค์'์์ ํ๋ ฅ ๊ด๊ณ,
๊ธฐ์ ์ค์ฆ ์๋ฏธ๋ฅผ ํ์
ํด์ผ ํ๋ค. CS์ ์คํ๋ ๊ด๋ จ ํฌ์ง์
๋ ํ์ธ ํ์.
**Action**: search
**Query**: CS 065770 ์คํ๋ 5G ํต์ ์ฅ๋น ์ฌ์
**Confidence**: 40%
**Step 2**:
**Thought**: ๋ด์ค ๋ณธ๋ฌธ์์ '์ผ์ง์ ์ยท๋
ธํค์'๊ฐ ์ฅ๋น ๊ตฌ์ถ์ ๋ด๋นํ๋ค๊ณ ๋ช
์.
CS๊ฐ ์ด ํ๋ก์ ํธ์ ์ง์ ์ฐธ์ฌํ๋์ง, ์๋๋ฉด ๊ฐ์ ์ํ์ธ์ง ๊ตฌ๋ถ์ด ํ์.
LGU+ ์คํ๋ ์ค์ฆ ํ๋ก์ ํธ์ ๊ท๋ชจ์ ํฅํ ์์ฉํ ์ผ์ ๋ ์ค์.
**Action**: search
**Query**: LGU+ ์คํ๋ ์ค์ฆ๋จ์ง ์ผ์ง์ ์ CS ์ฐธ์ฌ
**Confidence**: 50%
**Step 3**:
**Thought**: ๋ด์ค์์ CS์ ์ง์ ์ธ๊ธ์ด ์์ผ๋ฏ๋ก, CS๊ฐ ์คํ๋ ๋ฐธ๋ฅ์ฒด์ธ ๋ด ์ด๋
์์น์ ์๋์ง ๋ถ๋ช
ํ. ๋ค๋ง ํต์ ์ฅ๋น ์ ์กฐ์ฌ๋ก์ ์คํ๋ ์์ฅ ํ๋๋ ์ฅ๊ธฐ ์ฑ์ฅ ๊ธฐํ.
์ค์ 1์ผ/3์ผ ์์ต๋ฅ ์ด ๊ฐ๊ฐ +0.73%, +0.87%๋ก ์๋งํ ์์น์ด๋ฏ๋ก,
๋ด์ค ์ง์ ์ํฅ๋ณด๋ค๋ ์นํฐ ๊ธ์ ์ฌ๋ฆฌ ๋ฐ์์ผ๋ก ํด์.
**Action**: analyze
**Confidence**: 65%
Quick Assessment (๋น ๋ฅธ ํ์ ) ํผ์น๊ธฐ
{
"category": "product_innovation",
"sentiment": "bullish",
"impact": "medium",
"confidence": 0.68,
"reasoning": "LGU+ ์คํ๋ ์์ฉ๋ง ๊ตฌ์ถ์ ๊ตญ๋ด ํต์ ์ฅ๋น ์ฐ์
์ ๊ธฐ์ ๊ณ ๋ํ ์ ํธ์ด๋,
๋ด์ค์์ CS์ ์ง์ ์ฐธ์ฌ๊ฐ ๋ช
์๋์ง ์์. ๊ฐ์ ์ํ ๊ฐ๋ฅ์ฑ๊ณผ ์นํฐ ๊ธ์ ์ฌ๋ฆฌ๋ก
์ธํ ์๋งํ ์์น์ผ๋ก ํ๊ฐ."
}
Analysis Report (์์ธ ๋ฆฌํฌํธ)
1. Executive Summary
LG์ ํ๋ฌ์ค์ ์คํ๋ ์์ฉ๋ง ๊ตฌ์ถ์ ๊ตญ๋ด ํต์ ์ธํ๋ผ์ 5G-6G ๊ธฐ์ ๊ณ ๋ํ๋ฅผ ์์ฌํ๋ ๊ธ์ ์ ์ ํธ์ ๋๋ค. ๋ด์ค์์๋ ์ผ์ง์ ์์ ๋ ธํค์์ ์ฅ๋น ๊ตฌ์ถ์ ๋ช ์ํ์ผ๋, CS์ ์ง์ ์ฐธ์ฌ ์ฌ๋ถ๋ ๊ณต๊ฐ๋์ง ์์์ต๋๋ค. ๋ค๋ง CS๋ ํต์ ์ฅ๋น ์ ์กฐ์ ์ฒด๋ก์ ๊ตญ๋ด ์คํ๋ ์์ฅ ํ๋์ ์ฅ๊ธฐ ์ํ์๊ฐ ๋ ๊ฐ๋ฅ์ฑ์ด ์์ต๋๋ค. ์ค์ ์ฃผ๊ฐ ๋ฐ์(1์ผ +0.73%, 3์ผ +0.87%)์ ์ ํ์ ์ด๋ฉฐ, ์ด๋ ๋ด์ค๊ฐ ๊ฐ๋ณ ์ข ๋ชฉ๋ณด๋ค๋ ์นํฐ ์ ์ฒด์ ๋ํ ๊ธ์ ์ฌ๋ฆฌ๋ฅผ ๋ฐ์ํ ๊ฒ์ผ๋ก ํด์๋ฉ๋๋ค. ์ข ํฉ ์ ๋ขฐ๋: 0.68 (MEDIUM)
2. Key Metrics
| ์งํ | ์์น | ํ๊ฐ |
|---|---|---|
| 1์ผ ์์ต๋ฅ | +0.73% | ์ฝํ ์์น |
| 3์ผ ์์ต๋ฅ | +0.87% | ์ง์์ ์ฝ์ธ ์์น |
| ๋ด์ค ์ํฅ๋ ฅ | Medium | ์นํฐ ์ํฅ > ๊ฐ๋ณ ์ข ๋ชฉ ์ํฅ |
| ์ง์ ์ธ๊ธ | ์์ | CS ๋ฏธ์ธ๊ธ |
| ๊ธฐ์ ์นดํ ๊ณ ๋ฆฌ | ์คํ๋(Open RAN) | 5G-6G ํต์ฌ ๊ธฐ์ |
3. ์์ฅ ๋ํฅ ๋ถ์
์คํ๋์ ๊ธฐ์กด ํ์ํ ํต์ ์ฅ๋น ์์คํ ์ ๊ฐ๋ฐฉํ ํ์ค์ผ๋ก ์ ํํ๋ ๊ตฌ์กฐ์ ๋ณํ์ ๋๋ค. LGU+์ ๊ธ์ค๊ณต๊ณผ๋ํ๊ต ์บ ํผ์ค ๊ตฌ์ถ์ ํ๊ตญ์ง๋ฅ์ ๋ณด์ฌํ์งํฅ์(NIA)๊ณผ ๊ณผํ๊ธฐ์ ์ ๋ณดํต์ ๋ถ ์ฃผ๋์ ๊ตญ๊ฐ ์ค์ฆ ํ๋ก์ ํธ๋ก, ์ ๋ถ ์ฐจ์์ ์คํ๋ ์ํ๊ณ ์กฐ์ฑ ์์ง๋ฅผ ๋ณด์ฌ์ค๋๋ค.
"๊ธฐ์กด 5G ๋คํธ์ํฌ์ ๋๋ฑํ ์์ค์ ์๋น์ค"๋ฅผ ์ ๊ณตํ๋ค๊ณ ๋ช ์ํ ๊ฒ์ ๊ตญ๋ด ์คํ๋ ๊ธฐ์ ์ด ๊ธ๋ก๋ฒ ์์ค์ ๋๋ฌํ์์ ์๋ฏธํฉ๋๋ค. ์ด๋ ๊ตญ๋ด ํต์ ์ฅ๋น ์ฐ์ ์ ๋ฐ์ ๊ธ์ ์ ์ ํธ์ด๋ฉฐ, CS์ ๊ฐ์ ๊ด๋ จ ์ ์ฒด๋ค์ ๊ธฐ์ ๊ณ ๋ํ ํ์์ฑ์ ๊ฐ์กฐํฉ๋๋ค.
4. ๋ฆฌ์คํฌ ์์ธ
- CS์ ์คํ๋ ํ๋ก์ ํธ ์ง์ ์ฐธ์ฌ ์ฌ๋ถ ๋ถํ์ค
- ์ผ์ง์ ์ยท๋ ธํค์ ๋ฑ ๊ฒฝ์์ฌ ๋๋น ๊ธฐ์ ํฌ์ง์ ๋ ๋ฏธํ์ธ
- ์คํ๋ ์์ฉํ ์ผ์ ๋ฐ ์์ฃผ ๊ฐ์์ฑ ๋ถ์กฑ
5. ํฌ์ ์๊ฒฌ
์คํ๋ ์์ฅ ํ๋๋ ์ค์ฅ๊ธฐ ๊ธ์ ์์ธ์ด๋, CS์ ์ง์ ์ ์ํ ๊ฒฝ๋ก๊ฐ ํ์ธ๋๊ธฐ ์ ๊น์ง ๊ด๋ง ํฌ์ง์ ์ด ์ ์ ํฉ๋๋ค. ํฅํ CS์ ์คํ๋ ๊ด๋ จ ์์ฃผ ๊ณต์๋ ๊ธฐ์ ์ ํด ๋ฐํ ์ ์ฌํ๊ฐ๊ฐ ํ์ํฉ๋๋ค.
Architecture
VELA๋ ๋จ๋ LLM์ผ๋ก๋ ๋์ํ์ง๋ง, ์์ด์ ํธ ์์คํ ๊ณผ ๊ฒฐํฉํ๋ฉด ์ค์๊ฐ ๋ฐ์ดํฐ ๊ธฐ๋ฐ ๋ถ์์ด ๊ฐ๋ฅํฉ๋๋ค:
[์ฌ์ฉ์ ์ฟผ๋ฆฌ]
|
v
[๋ฉํฐ์์ค ๊ฒ์] โโโ DuckDuckGo (์ต์ ๋ด์ค)
| โโโ ํ๊ตญํฌ์์ฆ๊ถ KIS (ํ์ฌ๊ฐ, PER, PBR, EPS, ์๊ธ)
| โโโ FnGuide (์ฌ์
๊ฐ์, ์ฌ๋ฌด์ ๋ณด)
| โโโ FAISS 317K (๊ณผ๊ฑฐ ์ ์ฌ ๋ด์ค + ์ฃผ๊ฐ ๋ฐ์)
v
[์ปจํ
์คํธ ์ฃผ์
] โ System Prompt + ๊ฒ์ ๊ฒฐ๊ณผ
|
v
[VELA LLM] โ Reasoning Trace (Step-by-Step)
|
v
[๋ฆฌ์์น ๋ฆฌํฌํธ]
Limitations
- ์ค์๊ฐ ์์ธ: ๋ชจ๋ธ ์์ฒด๋ ์ค์๊ฐ ๋ฐ์ดํฐ์ ์ ๊ทผํ์ง ๋ชปํฉ๋๋ค (์์ด์ ํธ ์์คํ ํ์)
- ์์น ํ ๋ฃจ์๋ค์ด์ : ๊ตฌ์ฒด์ ์์น(์ฃผ๊ฐ, PER ๋ฑ)๋ ์ธ๋ถ ๊ฒ์ฆ์ด ํ์ํฉ๋๋ค
- ์ปจํ ์คํธ: 8K ํ ํฐ ์ ํ์ผ๋ก ๊ธด ๋ฌธ์ ์ฒ๋ฆฌ์ ํ๊ณ๊ฐ ์์ต๋๋ค
- ํฌ์ ์กฐ์ธ ์๋: ์ ๋ณด ์ ๊ณต ๋ชฉ์ ์ด๋ฉฐ, ํฌ์ ๊ฒฐ์ ์ ๋ณธ์ธ์ ํ๋จ๊ณผ ์ฑ ์์ ๋๋ค
Citation
@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}
}
Disclaimer: ์ด ๋ชจ๋ธ์ ์ถ๋ ฅ์ ํฌ์ ์กฐ์ธ์ด ์๋๋๋ค. ๋ชจ๋ ํฌ์ ๊ฒฐ์ ์ ๋ณธ์ธ์ ํ๋จ๊ณผ ์ฑ ์ ํ์ ์ด๋ฃจ์ด์ ธ์ผ ํฉ๋๋ค.