MobiusQuant/llm-quant-benchmark

GitHub: MobiusQuant/llm-quant-benchmark

一个面向量化交易任务的 LLM 基准测试框架,用真实 K 线数据评估各模型在指标计算、结构分析、规则执行等方面的工程实用性。

Stars: 0 | Forks: 0

# LLM 量化基准测试 一个小型、与提供商无关的测试工具,用于在**量化交易任务**上对大型语言模型进行基准测试——即 LLM 在量化智能体中实际需要完成的工作,而不是简单的聊天。每个任务都会根据真实答案进行自动评分。 它与**任何兼容 OpenAI 的端点**配合使用:OpenRouter、供应商的第一方 API 或自托管的网关。 ## 测量内容 | 维度 | 任务 | 工程场景 | |---|---|---| | **T1** 计算 | 手动计算 SMA / RSI / MACD | 指标计算 | | **T2** 分析 | 摆动高低点、FVG、Order Block、BOS·CHoCH、EQH·EQL | K 线结构分析 | | **T4+T7** 规则 | 多条件信号判断 + 约束遵循 | 信号生成 | | **T5+T6** 数据 | 对 50 / 200 / 500 根 K 线进行异常检测 | 数据质量检查 | | **JSON** | 嵌入在 T2/T4/T5 中 | 智能体数据交换 | 数据为来自 Binance 的真实 **BTC/USDT 1 小时** K 线;SMC 真实答案由参考实现生成。有关完整的方法论,请参阅 [`docs/design.md`](docs/design.md);有关评估 13 个模型(987 次 API 调用)的完整示例,请参阅 [`docs/results/`](docs/results/)。 ## 安装 ``` git clone https://github.com//llm-quant-benchmark.git cd llm-quant-benchmark pip install -e . # or: pip install -r requirements.txt ``` 要求 Python ≥ 3.10。 ## 配置 API key 从环境变量(或 `.env` 文件)中读取 key——从不从受跟踪的配置中读取: ``` cp .env.example .env # 然后编辑 .env 并设置 OPENROUTER_API_KEY=... ``` ## 运行 ``` # 通过 OpenRouter 进行完整 benchmark,涵盖所有默认 models llm-quant-bench # dimensions 的一个子集 / 单个 model / 更多轮次 llm-quant-bench --dimensions t1 t4 --models openai/gpt-5.5 --rounds 3 # 不同的 provider(参见 configs/) llm-quant-bench --config configs/bigmodel-direct.yaml # 恢复中断的运行(results 会按每次调用进行 persisted) llm-quant-bench --resume t1_t2_t4_t5_run1 ``` 结果以流式传输至 Rich 表格,并保存在 `results//` 目录下(每个模型 × 用例 × 轮次对应一个 JSON 文件,以及一个 `summary.json`)。`results/` 目录已被 git 忽略。 ## 提供商 在 [`configs/`](configs/) 下有三种现成的配置——复制一个并编辑 `models:` 列表: | 配置 | 端点 | key 环境变量 | |---|---|---| | `openrouter.yaml`(默认) | OpenRouter | `OPENROUTER_API_KEY` | | `bigmodel-direct.yaml` | Zhipu BigModel(第一方) | `BIGMODEL_API_KEY` | | `openai-compatible-proxy.yaml` | 任何兼容 OpenAI 的网关 / 本地服务器 | `PROXY_API_KEY` | 一个配置包含三个模块:`provider`(base_url、key 环境变量、超时时间、temperature、可选的 `max_tokens` / 用于思考模型的 `extra_body`)、`models`(ID + 显示标签)和 `run`(维度、并发数、轮次)。 ## 项目结构 ``` llm-quant-benchmark/ ├── llm_quant_bench/ # the framework (installable package) │ ├── client.py # LLMClient — async OpenAI-compatible client (retries, backoff) │ ├── runner.py # BenchmarkRunner — concurrency + per-call persistence + resume │ ├── scorer.py # 10 scoring methods + JSON-compliance checker │ ├── loader.py # load test cases from benchmarks/*.yaml │ ├── models.py # pydantic models (TestCase / ModelResponse / ScoreResult) │ ├── report.py # save_results + Rich report │ ├── config.py # config + env-based key loading │ └── cli.py # `llm-quant-bench` entry point ├── benchmarks/ # the test suite (YAML cases + generators) │ └── t{1,2,4,5}_*/ # generate.py + reference.py + *.yaml cases ├── data/ # raw BTC/USDT 1h K-line CSVs ├── configs/ # provider configs (sanitized examples) ├── docs/ # design.md + results/ (example findings, 13 models) └── tests/ # unit tests for the framework ``` ## 扩展 **添加模型** —— 在配置的 `models:` 列表中追加(`{ id: "...", label: "..." }`)。 **添加测试用例** —— 将 YAML 文件放入 `benchmarks//` 目录。每个用例: ``` cases: - id: t1_sma_my_case prompt: "Compute the 10-period SMA of the last 10 closes: ..." expected: 67783.66 scoring_method: numeric_tolerance scoring_params: { tolerance: 0.5 } json_spec: null # or a spec to score JSON compliance ``` 生成器(`benchmarks/*/generate.py`)展示了内置用例是如何从原始数据中生成的——使用 `generate` 附加组件运行它们(`pip install -e ".[generate]"`)。 **添加评分器** —— 在 `scorer.py` 中编写一个 `def _score_x(tc, resp) -> ScoreResult`,并在 `SCORERS` 字典中注册。可用方法包括:`numeric_tolerance`、`macd_tolerance`、`binary`、`highlow_match`、`smc_f1`、`f1_set`、`anomaly_f1`、`rule_signal`、`checklist`、`json_schema`。每个用例都会自动进行 JSON 合规性评分。 ## 评分机制 每个响应都会经过 `score(test_case, response)` 处理:用例的 `scoring_method` 会产生一个 0-1 的得分,同时会有一个 JSON 合规性检查(`direct_parseable`、`no_code_fence`、对照 `json_spec` 的字段类型/枚举)附加到每个结果中。运行器会计算各维度和各用例在多轮测试中的平均值。 ## 许可证 MIT —— 详见 [LICENSE](LICENSE)。
标签:DLL 劫持, K线分析, Petitpotam, Python, 大语言模型, 性能评测, 无后门, 计算机取证, 逆向工具, 量化交易