比 o3 更快更準(zhǔn)?聽說有人打造了一個(gè)超強(qiáng)郵件助手 ART·E 原創(chuàng)
你有沒有遇到過這種情況?
突然收到一條消息:“我弟弟周五航班的時(shí)間是幾點(diǎn)?”
你打開郵箱,翻來覆去地查找,輸入關(guān)鍵詞,一頁一頁瀏覽,好不容易才找到那封關(guān)鍵郵件。
這種操作在 2025 年還存在,是不是有點(diǎn)反人類了?
最近,有一個(gè)項(xiàng)目就瞄準(zhǔn)了這個(gè)痛點(diǎn),推出了一個(gè)名叫 ART·E 的電子郵件研究代理。它并不是那種“看起來很厲害”的模型,而是真正能幫你從海量郵件中快速準(zhǔn)確找到答案的工具。
最讓人驚訝的是,它的表現(xiàn)竟然超過了 o3,不僅回答正確率更高,運(yùn)行速度更快,成本也低了將近 64 倍。
ART·E 是什么?它真的有用嗎?
ART·E 全稱 ART·E(可能是某個(gè)縮寫,但目前還沒公開),是一個(gè)通過強(qiáng)化學(xué)習(xí)訓(xùn)練出來的 AI 助手,專門用于從你的郵箱中查找和回答問題。
比如:
- “RSVP 方式是什么?”
- “修訂版 anexb.doc 文件在哪兒下載?”
- “公司差旅政策里關(guān)于酒店報(bào)銷的規(guī)定是什么?”
這些問題聽起來是不是很眼熟?沒錯(cuò),這就是我們?nèi)粘I钪薪?jīng)常碰到的真實(shí)場景。
而 ART·E 的目標(biāo)很簡單:讓你不再手動(dòng)翻找郵件,直接發(fā)問,它就能給出答案。
更夸張的是,它不僅能回答出這些問題,還能告訴你這些答案來自哪幾封郵件,出處一目了然。
數(shù)據(jù)從何而來?Enron 郵件庫成了訓(xùn)練寶庫
為了訓(xùn)練這樣一個(gè)模型,首先需要一個(gè)龐大的數(shù)據(jù)集。
于是開發(fā)者們盯上了 Enron——這家在 2001 年因財(cái)務(wù)造假被起訴的能源公司。當(dāng)時(shí)公布的近 50 萬封郵件,意外地成為了研究人員的寶藏。
最終,他們從中挑選了 8 個(gè)員工的郵箱作為測試集,另外選了 20 個(gè)作為訓(xùn)練集。每個(gè)郵箱至少包含 5,000 封郵件,有些甚至超過 10,000 封。
光有郵件還不夠,還需要大量真實(shí)的問題與答案對來模擬用戶可能提出的查詢。
于是,GPT-4.11 被派上用場了。每批處理 20 封郵件,自動(dòng)生成多個(gè)問題和答案,同時(shí)還會打一個(gè)“how_realistic”分值,來過濾掉那些不合理的提問。
最終,得到了一個(gè)包含約 4000 個(gè)問題的合成數(shù)據(jù)集。
舉幾個(gè)真實(shí)的例子看看你就明白了:
問題 | 答案 | 來源 |
周二下午與 EES 會議討論什么問題? | 強(qiáng)制公用事業(yè)公司支付拖欠的 PX 信用額度、是否應(yīng)向客戶收取新的 1 分附加費(fèi)、是否應(yīng)將客戶重新轉(zhuǎn)回捆綁式服務(wù)等 | Expand Source |
我去科羅拉多斯普林斯的大陸航空航班確認(rèn)號是多少? | N1BTZH | Expand Source |
e-commerce交易禁運(yùn)國家有哪些? | 巴林、伊拉克、科威特、黎巴嫩、利比亞、阿曼、卡塔爾、沙特阿拉伯、敘利亞、阿聯(lián)酋、也門 | Expand Source |
這些數(shù)據(jù)既貼近現(xiàn)實(shí),又具備代表性,非常適合用來訓(xùn)練和評估模型。
工具設(shè)計(jì)簡潔高效,只圍繞核心任務(wù)展開
為了讓模型專注于核心任務(wù),環(huán)境的設(shè)計(jì)也被盡可能簡化。
提供了三個(gè)基礎(chǔ)工具函數(shù):
def search_emails(keywords, sent_after=None, sent_before):
"""根據(jù)關(guān)鍵詞及時(shí)間范圍搜索郵件"""
# 返回最多10封匹配的郵件ID和摘要片段
def read_email(message_id):
"""讀取指定ID郵件的完整內(nèi)容"""
def return_final_answer(answer: str, sources: list[str]):
"""返回最終答案及引用郵件ID列表"""
這三個(gè)工具已經(jīng)足夠讓模型完成大部分的操作了。
所有數(shù)據(jù)都存儲在一個(gè) SQLite 數(shù)據(jù)庫中,并使用 FTS5 全文檢索引擎來加速搜索。
整個(gè)流程也非常簡單:
- 接收初始提示詞:任務(wù)描述 + 用戶問題;
- LLM 生成下一步動(dòng)作(調(diào)用哪個(gè)工具);
- 執(zhí)行工具,獲取結(jié)果;
- 將工具返回的信息加入上下文;
- 重復(fù)上述步驟,直到返回答案或達(dá)到最大步數(shù)(默認(rèn)為 10)。
沒有復(fù)雜的遞歸邏輯,也沒有花里胡哨的中間層,就是最為直接的執(zhí)行路徑。
測試現(xiàn)成模型:別急著訓(xùn)練,先看看大模型能干啥
很多人拿到新任務(wù)第一反應(yīng)就是“趕緊訓(xùn)練一個(gè)模型”,但在正式訓(xùn)練之前,先嘗試一些現(xiàn)成的大模型其實(shí)是非常有必要的。
原因有幾個(gè):
- 可能你發(fā)現(xiàn)現(xiàn)有的模型已經(jīng)做得很好了,根本不需要再訓(xùn)練;
- 很多時(shí)候模型表現(xiàn)差是因?yàn)樘崾驹~缺失、工具不可靠或者任務(wù)模糊,這些問題 RL 也解決不了;
- 最重要的是,當(dāng)你最終超越這些模型時(shí),那一刻的成就感會讓你覺得一切努力都值得。
所以這次也測試了不少主流模型,包括 GPT-4o、Qwen-14B、o3、o4-mini 等等。
并通過 LLM-as-judge 的方式來做自動(dòng)評估:
def judge_answer(golden_answer, model_answer):
"""判斷模型回答是否正確"""
prompt = f"請比較以下兩個(gè)答案是否一致:\n\nGolden Answer: {golden_answer}\nModel Answer: {model_answer}"
response = call_llm(prompt)
return response.strip().lower() == "yes"
結(jié)果顯示,即使是目前最強(qiáng)的大模型,在這類任務(wù)上的準(zhǔn)確率也不高。這就為我們提供了改進(jìn)的空間。
獎(jiǎng)勵(lì)函數(shù)怎么設(shè)計(jì)?告訴模型你要什么
這是整個(gè)過程中最關(guān)鍵的一環(huán)之一。
很多人都會誤解:我已經(jīng)有一個(gè)評價(jià)函數(shù)了,還需要什么獎(jiǎng)勵(lì)函數(shù)?
其實(shí)不然。雖然我們可以用 LLM 作為裁判來衡量答案是否正確,但這只是一個(gè)最終目標(biāo)。而在 RL 中,我們還可以引導(dǎo)模型同時(shí)優(yōu)化多個(gè)指標(biāo),比如:
- 準(zhǔn)確性(Correctness)
- 幻覺抑制(Hallucination Penalty)
- 步數(shù)最小化(Turn Minimization)
最終采用的獎(jiǎng)勵(lì)函數(shù)如下:
def calculate_reward(correct, hallucinated, turns):
base_reward = 1.0 if correct else -1.0
hallucination_penalty = -0.5 if hallucinated else 0
turn_bonus = 0.1 * (10 - turns) / 10 # 鼓勵(lì)更少步驟
return base_reward + hallucination_penalty + turn_bonus
其中:
- ?
?correct?
? 表示答案是否正確; - ?
?hallucinated?
? 表示是否虛構(gòu)答案; - ?
?turns?
? 是完成任務(wù)所用的步驟數(shù)。
這個(gè)函數(shù)背后的核心思想在于:既要鼓勵(lì)模型回答正確,又要懲罰錯(cuò)誤行為(如幻覺),還要讓它盡可能高效完成任務(wù)。
訓(xùn)練過程揭秘:GRPO + ART 庫實(shí)戰(zhàn)
訓(xùn)練部分使用的是他們自己開源的 ART(Agent Reinforcement Trainer)庫,采用 Group Relative Policy Optimization(GRPO)算法。
整個(gè)流程非常清晰:
- 加載一批問題(每次加載 12 個(gè));
- 每個(gè)問題跑 4 次軌跡(trajectory);
- 對每個(gè)軌跡計(jì)算獎(jiǎng)勵(lì);
- 使用 GRPO 公式更新模型權(quán)重;
- 每 30 步運(yùn)行一次驗(yàn)證集測試;
- 直到模型在驗(yàn)證集上停止提升為止。
完整的訓(xùn)練腳本只有幾十行代碼:
from art.trainer import GRPOTrainer
from art.envs.email_agent_env import EmailAgentEnv
env = EmailAgentEnv()
trainer = GRPOTrainer(env=env, model="qwen-14b", reward_func=calculate_reward)
# 開始訓(xùn)練
trainer.train(
dataset_path="data/synthetic_qa_dataset.json",
num_epochs=2,
learning_rate=1.2e-5,
batch_size=12,
rollout_per_questinotallow=4,
save_dir="results/art-e/",
log_to_wandb=True
)
訓(xùn)練監(jiān)控方面也有一些小技巧:
- 觀察獎(jiǎng)勵(lì)標(biāo)準(zhǔn)差:如果所有軌跡得分接近,說明模型陷入局部最優(yōu);
- 跟蹤多個(gè)指標(biāo):包括準(zhǔn)確率、幻覺率、平均步數(shù)等;
- 定期查看模型輸出:防止 Reward Hacking,比如模型學(xué)會了重復(fù)調(diào)用同一個(gè)工具來“占滿”回合數(shù)從而拿更多獎(jiǎng)勵(lì)。
最終,整個(gè)訓(xùn)練在一塊 H100 GPU 上完成,耗時(shí)不到一天,總成本約為 80 美元。
性能對比:ART·E vs o3,誰更勝一籌?
最后來看一下 ART·E 的實(shí)際表現(xiàn):
指標(biāo) | ART·E | o3 |
準(zhǔn)確率 | 89% | 70% |
平均步數(shù) | 3.2 | 4.1 |
運(yùn)行成本($/query) | $0.002 | $0.128 |
幻覺率 | 2.3% | 8.9% |
可以看到,ART·E 不僅在準(zhǔn)確性上遠(yuǎn)超 o3,在成本和效率上也實(shí)現(xiàn)了質(zhì)的飛躍。更關(guān)鍵的是,它能回答很多 o3 根本無法理解的問題。
結(jié)語:通往通用 Agent 的一小步
ART·E 的誕生并不是終點(diǎn),而是探索真正智能代理(Intelligent Agent)旅程中的重要一步。
它證明了一個(gè)道理:即使是最前沿的問題,也可以通過合理的方法、合適的數(shù)據(jù)以及一點(diǎn)巧思,打造出令人驚艷的產(chǎn)品。
本文轉(zhuǎn)載自??Halo咯咯?? 作者:基咯咯
