
大家好,我是 Ai 學(xué)習(xí)的老章
之前推薦過(guò) N 多讀論文神器,比如可以的 ArXiv MCP 服務(wù)器、整篇翻譯并保留樣式的、還有最近剛剛分享的的 AlphaXiv
今天再推薦一個(gè)更強(qiáng)大的,可以復(fù)現(xiàn)機(jī)器學(xué)習(xí)論文代碼的工具——Paper2Code
開(kāi)源代碼不支持 DeepSeek ,稍作修改就可以使用 DeepSeek API 了

https://arxiv.org/pdf/2504.17192
一句話(huà)總結(jié),PaperCoder
旨在通過(guò)利用大型語(yǔ)言模型(LLM)在多代理系統(tǒng)中直接從機(jī)器學(xué)習(xí)研究論文中生成完整的、可執(zhí)行的代碼庫(kù)。

PaperCoder 框架的三階段方法,展示了它如何通過(guò)規(guī)劃、分析和編碼階段將研究論文轉(zhuǎn)換為代碼庫(kù)"盡管機(jī)器學(xué)習(xí)研究快速增長(zhǎng),相應(yīng)的代碼實(shí)現(xiàn)通常不可用,使研究人員復(fù)現(xiàn)結(jié)果和基于先前工作構(gòu)建變得緩慢且勞動(dòng)密集。"
頂級(jí)機(jī)器學(xué)習(xí)會(huì)議的分析表明,只有一小部分被接受的論文提供了相應(yīng)的代碼:

在 ICLR 2024 上接受的論文中只有 21.2%,在 NeurIPS 2024 上接受的論文中只有 10.9%,在 ICML 2024 上接受的論文中只有 31.6% 提供了公開(kāi)發(fā)布的代碼
PaperCoder
通過(guò)將研究庫(kù)生成形式化為軟件開(kāi)發(fā)問(wèn)題來(lái)解決可重復(fù)性挑戰(zhàn)。
該框架可以表示為 M(R) = C,其中:
R 是包含方法和算法的研究論文
C 是生成的代碼庫(kù)
M 是執(zhí)行轉(zhuǎn)換的基于 LLM 的模型
該系統(tǒng)采用三階段方法,該方法反映了人類(lèi)的軟件開(kāi)發(fā)過(guò)程:
規(guī)劃階段:創(chuàng)建高級(jí)路線(xiàn)圖,包括架構(gòu)設(shè)計(jì)(類(lèi)圖和序列圖)、文件依賴(lài)關(guān)系識(shí)別和配置文件生成。
分析階段:對(duì)每個(gè)文件和函數(shù)進(jìn)行細(xì)粒度的解釋?zhuān)治鲚斎?、輸出、交互?a class="keyword-search" >算法約束。
生成階段:根據(jù)規(guī)劃期間確定的執(zhí)行順序合成整個(gè)代碼庫(kù)。
每個(gè)階段都使用專(zhuān)門(mén)的 LLM 代理來(lái)實(shí)現(xiàn),這些代理協(xié)同工作以完成任務(wù),這使得PaperCoder
成為一個(gè)復(fù)雜的多代理系統(tǒng)。

效果怎么樣呢?
PaperCoder
的性能優(yōu)于軟件開(kāi)發(fā)工作基線(xiàn),如ChatDev
和MetaGPT
,表明其專(zhuān)門(mén)設(shè)計(jì)的有效性。
作者與專(zhuān)家(包括原始論文作者)進(jìn)行了評(píng)估,以評(píng)估生成代碼的質(zhì)量。結(jié)果顯示:
PaperCoder 生成的存儲(chǔ)庫(kù)中有 77% 被人類(lèi)評(píng)估者評(píng)為最佳
85% 的人類(lèi)評(píng)審員報(bào)告說(shuō)生成的存儲(chǔ)庫(kù)很有幫助

如何使用呢?

安裝
pip install openai export OPENAI_API_KEY=" " git clone https://github.com/going-doer/Paper2Code cd Paper2Code git clone https://github.com/allenai/s2orc-doc2json.git cd scripts bash run.sh
輸出結(jié)果如下
outputs ├── Transformer │ ├── analyzing_artifacts │ ├── coding_artifacts │ └── planning_artifacts └── Transformer_repo # Final output repository
系統(tǒng)的工作流程是:
將 PDF 論文轉(zhuǎn)換為 JSON 格式 0_pdf_process.py:4-17
分析論文內(nèi)容并生成實(shí)現(xiàn)計(jì)劃 1_planning.py:26-36
進(jìn)行邏輯分析 2_analyzing.py:49-54
生成代碼實(shí)現(xiàn) 3_coding.py:43-50

不過(guò)這個(gè)項(xiàng)目是默認(rèn) OpenAI 的 api,本地運(yùn)行也只支持 vllm 拉起的模型。
我看了一下,其實(shí)該起來(lái)也非常簡(jiǎn)單
比如把 OpenAI 切換為 DeepSeek,需要修改的腳本不多
修改 API 客戶(hù)端初始化和調(diào)用:
codes/1_planning.py
- 規(guī)劃生成組件 1_planning.py:1-16codes/2_analyzing.py
- 邏輯分析組件 2_analyzing.py:1-20codes/3_coding.py
- 代碼生成組件 3_coding.py:1-19
client = OpenAI(api_key = os.environ["OPENAI_API_KEY"])
修改為下面即可
client = OpenAI(api_key = os.environ["OPENAI_API_KEY"],base_url="https://api.siliconflow.cn/v1")
如果你用的是 DeepSeek 官方 API,base_url 改為 https://api.deepseek.com_/v1
其他類(lèi)似
然后修改scripts/run.sh
中的環(huán)境變量設(shè)置: run.sh:1-3
export OPENAI_API_KEY="sk-XXXXXX" GPT_VERSION="
然后就全部 ok
最后推薦一個(gè)我正在學(xué)習(xí)的Cusor快速入門(mén)與實(shí)戰(zhàn)

制作不易,如果這篇文章覺(jué)得對(duì)你有用,可否點(diǎn)個(gè)關(guān)注。給我個(gè)三連擊:點(diǎn)贊、轉(zhuǎn)發(fā)和在看。若可以再給我加個(gè),謝謝你看我的文章,我們下篇再見(jiàn)!
熱門(mén)跟貼