内容
---
title: Parlay
emoji: 🤝
colorFrom: indigo
colorTo: green
sdk: docker
pinned: false
tags: ["openenv", "hackathon", "rl", "gametheory"]
---
<p align="center">
<img src="images/Parlay_square%20logo.png" alt="Parlay logo" width="220">
</p>
# Parlay ◈ — 你将遇到的最佳谈判者
**[▶ 立即体验 — HuggingFace Space](https://huggingface.co/spaces/sh4shv4t/Parlay)** |
[博客文章](BLOG.md) |
[SFT 模型](https://huggingface.co/sh4shv4t/parlay-sft-1-5b) |
[GRPO 模型](https://huggingface.co/sh4shv4t/parlay-grpo-1-5b) |
[数据集](https://huggingface.co/datasets/sh4shv4t/parlay-episodes) |
[训练(HF / TRL 流水线)](training/notebooks/parlay_training.ipynb) |
[OpenEnv 重置/步骤回放](training/notebooks/openenv_rollout_training.ipynb) |
[SFT — Colab (`parlay_sft_colab`)](https://colab.research.google.com/drive/1x5uZMbdKF7XeDNm-bM5YSPdpd1srgArA?usp=sharing) |
[GRPO HF 作业 — Colab (`parlay_grpo_hf_job`)](https://colab.research.google.com/drive/1DNYogmRlR_YJrEO6GN3YC7xj8lfycDuL?usp=sharing) |
[OpenEnv 清单](openenv.yaml)




---
## 问题
语言模型在描述谈判方面非常出色。如果你让它解释纳什谈判解决方案,它会给你写一页教科书。但是,当它处于真正的交易中,面对隐藏信息、适应性对手、不断升级的紧张局势和不断变化的世界时,它就会崩溃。
它在压力下崩溃。它忽略了对手的行为所透露的隐藏约束。它没有注意到外部冲击何时改变了交易对双方的价值。
核心问题:谈判不是一个问答任务。它是一个**具有部分可观察性、战略欺骗和稀疏终端结果的马尔可夫决策过程**。我需要一个针对这种情况进行训练的环境,而不是仅在谈判记录上进行微调。
当时没有现成的强化学习环境是为此设计的,所以我创建了 Parlay。
---
## 环境
Parlay 是一个与 [OpenEnv](https://github.com/huggingface/openenv) 兼容的强化学习环境。代理通过 WebSocket 连接并与具有不同个性的 AI 对手进行多回合 B2B 谈判。
**三种场景,三种对手。九种组合可供训练。**
| 场景 | 利益 | 关键漂移事件 |
|----------|--------|------------------|
| `saas_enterprise` | $125k–$165k ACV | 竞争对手价格下降在第 8 回合,季度末截止日期在第 14 回合 |
| `hiring_package` | $195k–$230k 总补偿 | 竞争对手收到录用通知在第 5 回合 |
| `acquisition_term_sheet` | $10.5M–$16M 估值 | 技术债务发现于第 7 回合,第二个收购方于第 13 回合 |
| 人物 | 风格 |
|---------|-------|
| **强势人物** | 激进的锚定,人工设定的截止日期,永远不会首先让步 |
| **外交官** | 双赢框架,在建立信任后透露约束条件,永远不会虚张声势 |
| **老手** | 战略性沉默,镜像你的语言,模拟**你对他们的看法** |
代理永远不会看到完整的状态。对手的真实退出价格、紧迫感分数和预算上限都是**隐藏的**,代理必须从行为中推断出来。
### 什么使得它具有挑战性
- **隐藏信息**:对手的真实 BATNA、紧迫感分数和预算上限永远不会被透露——代理必须从行为中推断出来
- **ZOPA 侵蚀**:长时间的高紧张谈判会缩小交易区;连续 3 回合紧张度超过 75 触发侵蚀,幅度为原始宽度的 2%
- **漂移事件**:谈判中途的外生冲击会以人物为特定方式改变隐藏值
- **心智理论**:代理必须跟踪对手的信念,而不仅仅是他们的出价
---
## 奖励设计
以往的谈判强化学习论文只奖励交易结果。这样会使代理学习锚定激进并获得幸运,但脆弱、对框架敏感且没有真正的战略推理。
Parlay 的奖励函数有两个组成部分。
**每步奖励(塑造代理如何谈判)**
R_t = α·ΔV_t(ZOPA 进展)+ β·ToM_t(信念准确性)− δ·C_t(投降惩罚)− θ·noise_t(不连贯惩罚)+ ψ·Bluff_t(虚张声势检测)+ μ·MEV_t(市场事件推理)
**终端奖励(奖励结果)**
R_T = γ·E(交易效率)+ ε·S(速度奖励)+ ζ·D(漂移适应)− ω·1[价格 < BATNA](投降悬崖)
其中交易效率 E =(最终价格 − BATNA_self)/ ZOPA 宽度 ∈ [0, 1]。
ω = 200 项**故意不连续**。任何平滑的惩罚都可以通过高交易价值克服。悬崖使代理的底线绝对化——它了解到有一条它不能跨越的线。
所有系数都位于 `parlay_env/reward.py` 中,作为单一真实来源。
| 项 | 系数 | 奖励内容 |
|------|-------|----------------|
| α·ΔV | 2 | ZOPA 进展 — 出价向上移动 |
| β·ToM | 5 | 心智理论准确性 vs 隐藏真相 |
| −δ·C | −3 | 惩罚不必要的让步 |
| −θ·noise | −10 | 惩罚不连贯的表述 |
| ψ·bluff | 12 | 抓住对手的虚张声势 |
| μ·MEV | 8 | 适应漂移事件 |
**终端:** R_T = γ·E(100) + ε·S(20) + ζ·D(15) 或 −ω(200) 在投降时
---
## ZOPA 崩溃机制
这是以前的谈判强化学习环境中没有模拟的内容:**长时间冲突会破坏交易本身。**
在现实谈判中,如果双方都强硬且紧张局势持续上升,替代方案看起来更好,信任度下降,交易可能性所在的区域缩小。Parlay 明确模拟了这一点。
每回合紧张度超过 75 时,计数器递增。连续 3 回合超过阈值:
BATNA_buyer −= Δ_orig · r_erosion, BATNA_seller += Δ_orig · r_erosion
其中 Δ_orig 是原始 ZOPA 宽度,r_erosion = 0.02。使用原始宽度(而非当前缩小宽度)确保崩溃实际上终止,而不是渐近。
代理可以在每次观察中看到 `zopa_width_pct_remaining`。UI 中的 ZOPA 条形图从金色 → 琥珀色 → 猩红色变化,因为交易区缩小。
**这创造了一个真正的多目标挑战**:最大化你的交易份额 **和** 保留交易可能的空间。这比固定 ZOPA 谈判更具挑战性,也更贴近现实。
---
## 市场事件估值
在回合之间,会发生诸如美联储加息、竞争对手产品召回、关键员工离职等外部事件。**标题是公开的**,但对各方谈判底线的真正影响是**隐藏且人物特定的**。
```text
⚡ 突发新闻 — 美联储将利率上调 50 个基点
```
强势人物(mev_sensitivity=0.65)会积极重新计算。老手(mev_sensitivity=0.20)几乎无动于衷。代理必须在下一次出价之前估计影响,并在下一次行动中考虑。
评估者将此与地面真相进行比较:
MEV_t = 1 − |v̂ − v*| / 0.30
这是继“对手想要什么?”之后,第二个层次的 ToM 问题,还要考虑“这个外部冲击如何更新对手想要什么,以及更新幅度比自己多或少?”
之前的谈判强化学习论文都没有这一层。
---
## 训练流程
```text
Gemini 自我博弈 → 140 个质量过滤的回合(9 种组合,94.3% 交易率)
↓
SFT 冷启动 — Qwen2.5-1.5B,3 个纪元,LoRA r=16
sh4shv4t/parlay-sft-1-5b
↓
GRPO 微调 — 100 步,G=4,静态 JSONL 提示
sh4shv4t/parlay-grpo-1-5b
```
**在 Hugging Face 作业上运行 GRPO**(预付积分,数据 + SFT 在 Hub 上;`scripts/hf_grpo_entry.sh`;模板使用 **`--timeout 6h`** 和 **`a100-large`**):参见 [`training/GRPO_HF_RUNBOOK.md`](training/GRPO_HF_RUNBOOK.md)。
```text
Gemini 自我博弈(generate_data.py)
→ 9 种人物 × 场景组合中筛选 80 个高质量的回合
→ 只保留:deal_efficiency ≥ 0.25 | 有原则的退出 | drift_adapted | ToM ≥ 0.5
GRPO 微调(grpo_train.py)
→ Qwen2.5-1.5B-Instruct 基础
→ G=4 每次提示的补全,基于组的相关优势估计
→ 奖励函数:[效率,ToM,MEV,反投降,格式]
→ 回放调用实时环境 WebSocket — 不重放静态 JSONL
→ ω 预热:前 30 步 OMEGA=50,然后恢复 200
```
我使用 GRPO ([Shao et al., 2024](https://arxiv.org/abs/2402.03300)),与 DeepSeek-R1 相同的原因。它消除了价值模型,将内存减少一半,并且在可验证的奖励领域更加稳定,因为每一步都可以评分。谈判结果始终可验证,要么交易高于 BATNA,要么不是,并且要么信念准确,要么不准确。
ω 预热是一个实用的细节:在第 0 步,基础模型偶尔会突破 BATNA 底线(它不知道底线在哪里)。每次突破都会给 -200,这会淹没所有积极信号。从 ω=50 开始给模型足够的空间来学习地板,然后悬崖变得绝对。
### 结果
本节末尾的数字是标题。**曲线** 是证明:它们显示模型首先**吸收结构化谈判语言**(SFT),然后**在实时评估器下重新组织行为**(GRPO),直到奖励成为实际优化的内容,而不是仅仅是 token 似然性。
#### SFT — 冷启动:为什么损失下降得很快,然后稳定

**你看到的**。在精选的自我博弈和筛选的回合上监督下一个 token 的损失,而不是泛化聊天。曲线的左侧是模型**学习任务的契约**:有效 JSON、回合制、出价和战术的词汇,以及数据中高评分游戏的**形状**。该阶段压制了大部分损失,因为它是一个**低维对齐问题**,相对于开放聊天的熵。
**为什么它会趋于平稳,看起来不“解决”**。温和的尾部并不意味着运行在**停止学习**的意义上;而是模型在**复制模仿**静态切片的回合,而不是针对**当前**的评估器重新优化策略。那就是为什么下一步不是“更多 SFT”,而是 **GRPO**,因为你需要一个**实时**与环境的信号,而不是数据集的镜像。
**为什么这仍然很重要**。SFT 是跑道:它将巨大的行为空间压缩成 RL 可以在几个小时内**搜索**的小空间。如果冷启动稍微出错,GRPO 目标就会爆炸,无效的移动和浪费的回合。
#### GRPO — 环境训练:奖励变得真实
下面的图表来自我的 **Hugging Face 作业** 运行(L4,80 步,G=2,SFT 基础 [`sh4shv4t/parlay-sft-1-5b`](https://huggingface.co/sh4shv4t/parlay-sft-1-5b)→ [`sh4shv4t/parlay-grpo-1-5b`](https://huggingface.co/sh4shv4t/parlay-grpo-1-5b))。点是 **TRL 日志每 5 步的平均值**;原始系列位于 [`results/grpo_train_metrics.json`](results/grpo_train_metrics.json)。使用 `python scripts/plot_grpo_hf_job_curves.py`(或 Colab)重新生成图表后作业。
**平均批次奖励** — 线条必须变得更好,如果系统实际上**利用**环境。

**为什么不是平滑的抛物线**。每批次采样 **不同的角色×场景回放** 和 **有限的补全组(G=2)**,因此**瞬时**信号具有高方差。波动不是“实验失败”意义上的噪音;它们是**随机**、**部分可观察**的谈判 MDP 的诚实轨迹。持续的**局部均值上升**很重要:净变化是 **组相对更新正在将策略带入** 结构化动作空间的更高奖励区域。
**为什么平台期不是失败模式**。随着策略停止采取灾难性的低奖励行动,**优势信号缩小**;你**应该**看到收益递减。那与 RLHF 中的现象相同,当模型在大多数分布上“足够好”,并且开始为几个质量点而挣扎时,除了这里的奖励是一个**组合评估器**(ZOPA,ToM,漂移,格式,悬崖惩罚),而不是单个标量偏好。
**策略损失** — 来自奖励曲线的另一种解读,而不是 bug。

**为什么损失可以在奖励改善时波动**。GRPO 目标来自**剪辑策略比率、KL 正则化和基于组的归还**,而不是干净的交叉熵静态标签。一步可以使损失增加,同时 **评估器下的价值** 仍然改善,尤其是当批次混合“简单”和“棘手”场景时。损失回答“损失”如何增加。另一方面,**价值** 的变化告诉我们移动到了什么样的终态。
一起看,一个**紧密的 SFT 运行** 和一个**高方差、向上倾斜的 GRPO 奖励** 讲述了一个故事:**模仿学习游戏规则;强化学习学习游戏的回报**。
定性转变更有趣。基础模型在强势人物设定激进锚点时就会投降——它将“不可行”视为真实价值的信息,而不是战术。经过 GRPO 训练后,相同的强势人物锚点会遇到沉默或反锚点。模型已经学会将起始数字视为参考点操纵,而不是真实约束。
### 通过 OpenEnv 连接
`pip` 包:**openenv-core**(导入:`import openenv`)。服务器是 `parlay_env/server.py` 中的普通 FastAPI;OpenEnv 中没有服务器基类。
```python
from parlay_env.client import ParlayEnvClient, ParlayAction
with ParlayEnvClient(
base_url="https://huggingface.co/spaces/sh4shv4t/Parlay"
).sync() as client:
obs = client.reset(scenario_id="saas_enterprise", persona="veteran")
result = client.step(ParlayAction(
utterance="We propose 150,000 for the annual contract.",
offer_amount=150000.0
))
```
基类:`openenv.GenericEnvClient`,`openenv.GenericAction`(当 `openenv-core` 安装时;参见 `parlay_env/openenv_compat.py`)。
- 清单:[openenv.yaml](openenv.yaml)
- WebSocket:`wss://sh4shv4t-parlay.hf.space/env/ws`(消息信封使用 `"cmd": "reset" | "step" | "state"`;参见 [openenv.yaml](openenv.yaml) `api.messages`)
- MCP 服务器:8 种工具位于 [mcp_server/tools.py](mcp_server/tools.py)
---
## 快速开始
```bash
pip install -r requirements.txt
export GEMINI_API_KEY=your_key
uvicorn main:app --port 8000
# open http://localhost:8000
```
---
## 架构
- `main.py`:FastAPI 入口、路由器、静态文件。
- `parlay_env/`:服务器、模型、评估器、奖励常数、博弈论、OpenEnv 客户端。
- `agent/`:Gemini 客户端、ToM 跟踪器、自我博弈运行器。
- `game/`:场景、战术卡、排行榜。
- `dashboard/`:UI 和 API 路由、观察者流。
- `training/`:数据集生成、SFT、GRPO、评估。使用 [`training/notebooks/openenv_rollout_training.ipynb`](training/notebooks/openenv_rollout_training.ipynb) 进行**实时** `reset` / `step` 回放对抗 Space(OpenEnv 协议);使用 [`training/notebooks/parlay_training.ipynb`](training/notebooks/parlay_training.ipynb) 进行 Colab TRL 样式的流水线。
- `mcp_server/`:FastMCP 工具。
- `tests/`:关键和模块测试。
---
## 运行手册
### 本地应用
```bash
uvicorn main:app --host 0.0.0.0 --port 8000
```
### OpenEnv 服务器
```bash
python -m parlay_env.server --port 8001
```
### 无密钥测试套件
```bash
pytest tests/test_keyless.py -v
```
### 烟雾测试
```bash
python smoke_test.py
```
### Docker
```bash
docker build -t parlay .
docker run -p 7860:7860 -e GEMINI_API_KEY=$GEMINI_API_KEY parlay
```
---
## 测试
```bash
pytest tests/test_keyless.py -v # 16 tests, no API key needed
python smoke_test.py # 7 integration tests
```
### 完整套件(可选)
```bash
pytest tests/ -v
```
### Git 钩子(可选)
```bash
pip install -r requirements-dev.txt
pre-commit install
```
### 关注模块(可选)
```bash
pytest tests/test_grader.py -v
pytest tests/test_game_theory.py -v
pytest tests/test_tom.py -v
pytest tests/test_reward.py -v
pytest tests/test_scenarios.py -v
```
### 测试覆盖范围
- `test_keyless.py`: 无密钥全栈健全性检查。
- `test_grader.py`: 分步/终端奖励行为。
- `test_game_theory.py`: ZOPA/Nash/Pareto/Shapley。
- `test_tom.py`: ToM 更新和置信度指标。
- `test_training_pipeline.py`: 训练数据/管道检查。
### MCP
```bash
python -m mcp_server.server stdio
```
或 SSE:
```bash
python -m mcp_server.server sse
```
---
## 为什么它很重要
我认为在构建此项目时,最有价值的部分是:训练 AI 代理的环境竟然是一个对人类销售代表真正有用的辅导工具。
大多数谈判培训的过程是这样的:销售经理扮演买家,代表扮演卖家,他们都知道经理会在下午 4 点有其他会议,所以会对代表手下留情。这不是真正的测试,大家都知道。
**在浏览器中与 AI 交互。** 你可以选择场景和对手,然后实时与 Space 背后的模型进行谈判——不是一个简单的聊天框,而是一个完整的游戏视图,包含每个角色的 **3D 角色头像**。用户界面显示 **实时交易分析**:**ZOPA** 带(交易可能的范围),**认知模型(ToM)** 置信度条(合作、竞争、保留、灵活性),以及随着对话展开的信号变化轨迹——这样你可以看到你的策略和报价如何改变对手的推断状态,而不仅仅是交易记录。
<p align="center">
<img src="images/Parlay_frontend_interactwithchar.png" alt="Parlay UI: chat negotiation with a 3D opponent avatar, tactical actions, and live ZOPA and ToM metrics" width="920">
<br>
<em><strong>图.</strong> 游戏视图:与 3D 角色渲染的对手进行谈判,使用战术行动,并实时查看 ZOPA 和 ToM 指标。</em>
</p>
Parlay 在三个方面与众不同。
**AI 永远不会手下留情。** Shark 会将锚定价格提高 35%,并坚持下去。 Veteran 会镜像你的语言并等待。 Diplomat 会让你觉得一个比你应该达成的价格低 20% 的交易很不错。它们都没有下午 4 点的会议。
**你可以实时查看隐藏状态。** 观察者视图暴露了你在实时谈判中看不到的东西,例如对手的真实退出价格、他们的紧急程度、他们在透露 BATNA 时是否在 bluff。销售经理可以坐在初级代表旁边,在第二屏幕上打开观察者网址,并实时辅导: *"看到他的紧急程度刚刚飙升了吗?不要给他最后期限的让步,让他明确要求。*
**奖励信号告诉你确切地在哪些地方失去了利益。** 每次谈判结束后,交易效率 E 会告诉你你获得了多少可用的 ZOPA。如果你以 148k 的价格成交,而 ZOPA 是 125k-165k,那么你的效率是 57.5%,Nash 点是 145k,你超过了 3k,但你从理论上限中留下了 17k。 这是一个具体、可操作的数字,而不是一个模糊的 "干得好"。
人类-教师的飞轮效应在两个方向上运行:人类在效率阈值以上的游戏提高了 AI 的训练分布,而 AI 的训练策略成为人类代表训练的基准。这个循环会不断加强。
---
## 限制
**GRPO 训练中的 ToM 项使用关键词代理,而不是完整的评估器。** 完整的评估器根据隐藏的真实值计算置信度准确性。这需要每次 rollout 调用一个评估器,这会减慢训练速度。 GRPO 奖励函数使用更快的 utterance 级代理。这是故意的权衡:完整的评估器在评估期间运行,而代理在训练期间运行。
**三个场景范围太窄。** 我一开始故意设置了一个小的固定场景集。如果你想添加采购、许可或房地产,[场景规范](https://github.com/sh4shv4t/Parlay/blob/main/game/scenarios.py) 是一个干净的数据类。欢迎提交拉取请求。
**训练数据多样性是下一个前沿领域。** 目前,自主博弈数据完全来自 Gemini-vs-Gemini 对话。我的计划是通过从公开可用的来源抓取真实的谈判记录(收益电话问答环节、记录的交易总结、谈判案例研究数据库),并用不同模型的混合生成的对话进行补充,大幅拓宽这一领域。包含人类实际谈判方式的训练集,而不仅仅是一个大型语言模型(LLM)模拟的谈判,应该会产生明显更鲁棒的代理。我设计了场景数据类,使其能够无缝兼容。
**下一步:** 我设计了人类-教师飞轮效应,以便高质量的人类游戏(交易效率 ≥ 0.60)可以自动反馈到训练数据中。当这个循环闭合时,系统会随着人们玩它的次数而变得更好。 更深层次的研究问题是:MEV 推理层是否训练代理以推理不对称外生冲击,产生比新型场景更好的谈判代理?这是一个论文大小的验证研究,并且运行它所需的一切都已经在存储库中。
---
## 参考文献
### Nash (1950) — *The Bargaining Problem*, Econometrica 18(2):155–162
纳什谈判解决方案提供了一个封闭形式的“公平”价格 p* = (BATNA_buyer + BATNA_seller) / 2,即最大化双方盈余的点。这是 UI 中 ZOPA 尺度上的金色 ◆ 钻石,也是衡量交易效率 E 的基准。没有一个有原则的“公平”概念,效率评分是任意的。
### Shapley (1953) — *A Value for N-Person Games*, Contributions to the Theory of Games 2:307–317
Shapley 值计算每个玩家在所有联盟排序中的边际贡献,即多方交易中游戏理论上的公平分配。内置于 `game_theory.py` 以支持未来的多方交易场景。
### Tversky & Kahneman (1974) — *Judgment Under Uncertainty: Heuristics and Biases*, Science 185(4157):1124–1131
经验锚定系数为 0.65——谈判中的第一个数字会使最终结算偏移大约 35% 的锚定和现实之间的差距。这就是为什么 `anchor_high` 是 0 CP 卡。它不是一个游戏机制,而是一个有文档记录的认知偏差。 `offer_anchoring_effect()` 在 `game_theory.py` 中使用此系数来预测对手的反击。
### Kahneman & Tversky (1979) — *Prospect Theory*, Econometrica 47(2):263–291
损失比收益大约 2.25 倍。将成本重构为 ROI 计算利用了这种不对称性,相同的数字根据是“你支付的”还是“你获得的”而感觉不同。这支撑了 `reframe` 战术卡设计。
### Schelling (1960) — *The Strategy of Conflict*, Harvard University Press
可信的承诺设备会改变纳什均衡。真实的 BATNA 揭示了对手出价的理性变化,因为他们现在知道谈判有一个硬底线。被检测到的 bluff 会破坏可信度,并将均衡转向另一个方向。这就是为什么 `batna_reveal` 是牌堆中风险最高的卡,以及为什么存在虚张声势检测奖励项(ψ = 12)。
### Rubinstein (1982) — *Perfect Equilibrium in a Bargaining Model*, Econometrica 50(1):97–109
在具有折扣率的交替报价模型中,耐心决定了谁让步。第一人优势随着耐心不对称性的增加而衰减:不耐心的参与者的份额收敛到 δ₂ / (1 + δ₂),其中 δ₂ 是对手的折扣因子。 Shark 角色的截止日期策略直接实现了这一点。人为制造的紧迫感是一种尝试人为提高你的明显折扣率。
### Raiffa (1982) — *The Art and Science of Negotiation*, Harvard University Press
整合谈判:当各方在不同问题上具有不同的优先级顺序时,双方都可以获得收益而无需价格变动。 `sweetener` 卡设计源于此,因为添加非价格让步在你看来不值一提,但在对手看来却很有价值时,会产生联合盈余。
### Sutton & Barto (2018) — *Reinforcement Learning: An Introduction* (2nd ed), MIT Press
正式的 MDP 框架——状态、行动、奖励、转换——以及奖励部分的所有数学符号都来自此处。环境中的每个设计决策都映射回 MDP 形式化:隐藏状态是部分可观察性,漂移事件是非平稳性,ZOPA 崩溃是状态相关的终端条件。
### Wei et al. (2025) — *TOMA: Theory of Mind Augmented LLM Agents for Strategic Negotiation*
β·ToM_t 奖励项的直接理由。 TOMA 显示,在 utterance 生成前进行显式精神状态建模的代理比非 ToM 基线在谈判基准上高出 18.9%。 没有这篇论文,ToM 项是一种设计直觉。 有了它,就变成了一个有根据的假设,并有先前的经验支持。
### DeepSeek-AI (2025) — *DeepSeek-R1: Incentivizing Reasoning Capability in LLMs via Reinforcement Learning*
使用 GRPO 而不是 PPO 的原因。 DeepSeek-R1 表明,在可验证的奖励领域,带有价值模型的群体相对策略优化可以产生稳定、高效的训练。谈判结果是可验证的,这使得 GRPO 成为自然的选择。
### Shao et al. (2024) — *DeepSeekMath: Pushing the Limits of Mathematical Reasoning in Open Language Models*
GRPO 作为正式算法的首次发表。 群体相对优势:A_i = (r_i − mean(r₁‥G)) / std(r₁‥G)。 Parlay 训练配置中的 G=4 每次提示的完成数直接来自本文对群体大小的消融研究。
### Camerer et al. (2004) — *A Cognitive Hierarchy Model of Games*, QJE 119(3):861–898
k 级推理模型直接映射到 Veteran 角色的 `tom_depth=0.92` 参数。 0 级玩家随机行动,1 级玩家对 0 级玩家做出最佳回应,2 级玩家对 1 级玩家做出最佳回应。 Veteran 运行在 k=2 — 它模拟你的模型,而不是你的陈述位置。 这也是为什么 Veteran 是最难的对手和开发真正 ToM 的最佳训练信号。
### Ziegler et al. (2019) — *Fine-Tuning Language Models from Human Preferences*, arXiv:1909.08593
人类-教师飞轮灵感来自 RLHF 的核心见解:即使稀疏的人类偏好数据也是一个有价值的信号。 高效率的人类游戏(交易效率 ≥ 0.60)被标记并写入训练 JSONL 中,从而随着时间的推移改善分布。 人类专业知识成为训练数据。
---
*代码:[github.com/sh4shv4t/parlay](https://github.com/sh4shv4t/parlay) · Space: [huggingface.co/spaces/sh4shv4t/parlay](https://huggingface.co/spaces/sh4shv4t/parlay)*
由 Shashvat Singh 构建 · Meta PyTorch × Scaler OpenEnv 黑客马拉松 · 2026 年 4 月
◈ Parlay — 你将遇到的最佳谈判者。
---
## 许可证
MIT
MCP 配置
以下是此 MCP Server 的配置信息,可直接复制到 Cursor 或其他 MCP 客户端中使用。
mcp.json
连接信息
猜你喜欢
暂无推荐服务器