打開(kāi)網(wǎng)易新聞 查看精彩圖片

大家好,我是 Ai 學(xué)習(xí)的老章

之前推薦過(guò) N 多讀論文神器,比如可以的 ArXiv MCP 服務(wù)器、整篇翻譯并保留樣式的、還有最近剛剛分享的的 AlphaXiv

今天再推薦一個(gè)更強(qiáng)大的,可以復(fù)現(xiàn)機(jī)器學(xué)習(xí)論文代碼的工具——Paper2Code

開(kāi)源代碼不支持 DeepSeek ,稍作修改就可以使用 DeepSeek API 了

打開(kāi)網(wǎng)易新聞 查看精彩圖片

https://arxiv.org/pdf/2504.17192

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

打開(kāi)網(wǎng)易新聞 查看精彩圖片

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)的代碼:

打開(kāi)網(wǎ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ò)程:

  1. 規(guī)劃階段:創(chuàng)建高級(jí)路線(xiàn)圖,包括架構(gòu)設(shè)計(jì)(類(lèi)圖和序列圖)、文件依賴(lài)關(guān)系識(shí)別和配置文件生成。

  2. 分析階段:對(duì)每個(gè)文件和函數(shù)進(jìn)行細(xì)粒度的解釋?zhuān)治鲚斎?、輸出、交互?a class="keyword-search" >算法約束。

  3. 生成階段:根據(jù)規(guī)劃期間確定的執(zhí)行順序合成整個(gè)代碼庫(kù)。

每個(gè)階段都使用專(zhuān)門(mén)的 LLM 代理來(lái)實(shí)現(xiàn),這些代理協(xié)同工作以完成任務(wù),這使得PaperCoder成為一個(gè)復(fù)雜的多代理系統(tǒng)。

打開(kāi)網(wǎng)易新聞 查看精彩圖片

效果怎么樣呢?

PaperCoder的性能優(yōu)于軟件開(kāi)發(fā)工作基線(xiàn),如ChatDevMetaGPT,表明其專(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ù)很有幫助

打開(kāi)網(wǎng)易新聞 查看精彩圖片

如何使用呢?

打開(kāi)網(wǎng)易新聞 查看精彩圖片

安裝

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)的工作流程是:

  1. 將 PDF 論文轉(zhuǎn)換為 JSON 格式 0_pdf_process.py:4-17

  2. 分析論文內(nèi)容并生成實(shí)現(xiàn)計(jì)劃 1_planning.py:26-36

  3. 進(jìn)行邏輯分析 2_analyzing.py:49-54

  4. 生成代碼實(shí)現(xiàn) 3_coding.py:43-50

打開(kāi)網(wǎng)易新聞 查看精彩圖片

不過(guò)這個(gè)項(xiàng)目是默認(rèn) OpenAI 的 api,本地運(yùn)行也只支持 vllm 拉起的模型。

我看了一下,其實(shí)該起來(lái)也非常簡(jiǎn)單

比如把 OpenAI 切換為 DeepSeek,需要修改的腳本不多

修改 API 客戶(hù)端初始化和調(diào)用:

  1. codes/1_planning.py- 規(guī)劃生成組件 1_planning.py:1-16

  2. codes/2_analyzing.py- 邏輯分析組件 2_analyzing.py:1-20

  3. codes/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)

打開(kāi)網(wǎng)易新聞 查看精彩圖片

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