docs: add recommended inference settings and backend configuration guide
Browse files
README.md
CHANGED
|
@@ -58,6 +58,63 @@ Reasoning Trace 기반 구조화된 투자 분석을 수행합니다.
|
|
| 58 |
|
| 59 |
> MLX 4-bit 양자화 모델도 별도 제공 예정 (Apple Silicon 최적화)
|
| 60 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 61 |
---
|
| 62 |
|
| 63 |
## What Can VELA Do?
|
|
|
|
| 58 |
|
| 59 |
> MLX 4-bit 양자화 모델도 별도 제공 예정 (Apple Silicon 최적화)
|
| 60 |
|
| 61 |
+
### Recommended Inference Settings
|
| 62 |
+
|
| 63 |
+
VELA의 `generation_config.json`은 llama-cpp-python 서버와 동일한 샘플링 파라미터를 사용합니다.
|
| 64 |
+
모든 백엔드에서 동일한 출력 품질을 보장하기 위해 아래 설정을 권장합니다:
|
| 65 |
+
|
| 66 |
+
| Parameter | Value | Note |
|
| 67 |
+
|-----------|-------|------|
|
| 68 |
+
| `temperature` | 0.7 | 창의성-일관성 균형점 |
|
| 69 |
+
| `top_k` | 40 | 상위 40개 토큰 후보 (llama.cpp default) |
|
| 70 |
+
| `top_p` | 0.95 | 누적 확률 95% 이내 토큰 사용 |
|
| 71 |
+
| `repetition_penalty` | 1.0 | **비활성화** (후처리로 반복 제어) |
|
| 72 |
+
| `max_tokens` | 1024-2048 | 분석 복잡도에 따라 조절 |
|
| 73 |
+
|
| 74 |
+
> **주의사항**:
|
| 75 |
+
> - `repetition_penalty ≥ 1.2`는 **사용 금지** — Qwen 7B 기반 모델에서 중국어 text leak 및 환각(hallucination)을 유발합니다
|
| 76 |
+
> - `top_k < 20` 또는 `top_p < 0.8`은 출력 다양성을 과도하게 제한하여 confidence 고정(50%) 현상을 발생시킵니다
|
| 77 |
+
> - 반복 제어는 `repetition_penalty` 대신 **후처리 파이프라인**으로 처리하는 것이 안정적입니다
|
| 78 |
+
|
| 79 |
+
#### Backend별 설정 가이드
|
| 80 |
+
|
| 81 |
+
**llama-cpp-python / Ollama** — 별도 설정 불필요 (기본값이 권장값과 동일):
|
| 82 |
+
```python
|
| 83 |
+
model.create_chat_completion(
|
| 84 |
+
messages=messages,
|
| 85 |
+
max_tokens=1024,
|
| 86 |
+
temperature=0.7,
|
| 87 |
+
# top_k, top_p, repeat_penalty는 서버 기본값 사용
|
| 88 |
+
)
|
| 89 |
+
```
|
| 90 |
+
|
| 91 |
+
**HuggingFace Transformers** — `generation_config.json`이 자동 로드됨. 명시적 파라미터 최소화:
|
| 92 |
+
```python
|
| 93 |
+
outputs = model.generate(
|
| 94 |
+
**inputs,
|
| 95 |
+
max_new_tokens=1024,
|
| 96 |
+
temperature=0.7,
|
| 97 |
+
do_sample=True,
|
| 98 |
+
# top_k, top_p, repetition_penalty는 generation_config.json에서 로드
|
| 99 |
+
)
|
| 100 |
+
```
|
| 101 |
+
|
| 102 |
+
**vLLM** — 명시적 설정 권장:
|
| 103 |
+
```python
|
| 104 |
+
params = SamplingParams(
|
| 105 |
+
temperature=0.7,
|
| 106 |
+
top_k=40,
|
| 107 |
+
top_p=0.95,
|
| 108 |
+
repetition_penalty=1.0,
|
| 109 |
+
max_tokens=1024,
|
| 110 |
+
)
|
| 111 |
+
```
|
| 112 |
+
|
| 113 |
+
**MLX** — 서버 기본값 사용:
|
| 114 |
+
```python
|
| 115 |
+
generate(model, tokenizer, prompt=prompt, max_tokens=1024, temp=0.7)
|
| 116 |
+
```
|
| 117 |
+
|
| 118 |
---
|
| 119 |
|
| 120 |
## What Can VELA Do?
|