該存儲庫為 Arxiv 實現了一個非常簡單的日常掃描儀,它使用 GPT4 和作者匹配來查找您可能感興趣的論文。它將每天透過 github actions 運行,並可以透過機器人將此資訊發佈到 slack 或只是將其呈現在靜態 github-pages 網站中。
可以在此處看到在cs.CL
上運行的日報的簡單演示
作為成本估算,2024 年 2 月 7 日在所有cs.CL
上執行此程式的成本為 0.07 美元
這是運行掃描器所需的最少步驟。強烈建議您閱讀全文以決定您要運行什麼。
config/paper_topics.template.txt
複製到config/paper_topics.txt
並填寫您想要關注的論文類型config/authors.template.txt
複製到config/authors.txt
並列出您真正想要關注的作者。作者後面的數字很重要。它們是語義學者作者 ID,您可以透過在語義學者上找到作者並獲取 URL 末尾的數字來找到它們。config/config.ini
中設定所需的 ArXiv 類別。OAI_KEY
) 設定為“github 秘密”此時,您的機器人應該每天運行並發布靜態網站。您可以透過手動執行 github 操作工作流程來測試這一點。
可選但強烈建議:
S2_KEY
) 作為 github 秘密。不然作者搜尋步驟會很慢SLACK_KEY
作為 github 金鑰SLACK_CHANNEL_ID
。configs/config.ini
來調整過濾方式。世界標準時間每天下午 1 點,機器人將運行並發佈到 slack 並發布 github 頁面網站(有關詳細信息,請參閱publish_md 和 cron_runs 操作)。
步驟大致與上面相同,但是你必須透過requirements.txt
設定環境
您必須設定環境變數OAI_KEY
、 SLACK_KEY
、 SLACK_CHANNEL_ID
,而不是透過 github 金鑰傳遞憑證。
要運行所有內容,只需呼叫main.py
其他注意事項:您可能還不想推送到 slack,在這種情況下,請在config/config.ini
的dump_json
、 dump_md
和push_to_slack
欄位中設定所需的輸出端點(json、markdown、slack)。
如果語意學者 API 逾時或速度緩慢,您應該取得 S2 api 金鑰並將其設定為環境變數中的S2_KEY
。 (由於github操作的限制,這僅在程式碼在本地運行時才有幫助)
使其獨立運作:整個過程幾乎不需要計算,因此您可以從 AWS 租用最便宜的 VM,將此儲存庫放入其中,安裝requirements.txt
,適當地設定環境變數並新增以下 crontab
0 13 * * * python ~/arxiv_scanner/main.py
該 crontab 將在世界標準時間 (UTC) 下午 1 點(太平洋時間下午 6 點)運行該腳本。
paper_topics.txt
提示paper_topics.txt
檔案用於產生 GPT 提示。這是您想要關注的主題清單。一組範例可能類似於
1. New methodological improvements to RLHF or instruction-following which are specific fine-tuning steps that are taken to make language models better at following user instructions across a range of tasks.
- Relevant: papers that discuss specific methods like RLHF, or instruction-tuning datasets, improving these methods, or analyzing them.
- Not relevant: papers about adaptation to some task. Simply following instructions or inputs are not sufficient.
2. Shows new powerful test set contamination or membership inference methods for language models. Test set contamination is the phenomenon where a language model observes a benchmark dataset during pretraining.
- Relevant: test statistics that can detect contamination of benchmarks in language models. statistics that can provide guarantees are more interesting. membership inference methods that are general enough to apply to language models are also relevant.
- Not relevant: any papers that do not consider language models, or that do not consider test set contamination.
3. Shows a significant advance in the performance of diffusion language models.
- Relevant: papers that study language models that are also diffusion models. Continuous diffusions are even more relevant, while discrete diffusions are less so.
- Not relevant: papers about image diffusions like DALL-E or Stable Diffusion, or papers that do not explicitly mention language models or applications to text.
這只是一個標準提示,但非常具體會有所幫助,特別是對於「擴散語言模型」或「指令跟隨」之類的事情,LM 可能會混淆影像擴散是否相關,或者是否更好地完成某些任務足以改善指令遵循。
您可能還想專注於一些一般興趣領域,例如
In suggesting papers to your friend, remember that he enjoys papers on statistical machine learning, and generative modeling in natural language processing.
Your friend also likes learning about surprising empirical results in language models, as well as clever statistical tricks.
He does not want to read papers that are about primarily applications of methods to specific domains.
該腳本透過 RSS 來源取得特定日期的一組候選 ArXiv 論文。為了避免重複公佈論文,它只會抓取最後一天內的 RSS 提要。為了避免丟失文件,您需要每天運行此操作。它過濾掉任何UPDATED
論文並僅宣布新的論文。
過濾邏輯非常簡單。我們首先檢查作者是否匹配。
authors.txt
中的某個人匹配,它將進入候選集中,預設分數為author_match_score
。然後我們檢查 GPT 評估的相關性。我們分兩步驟進行。
config.ini
中 h-index 高於hcutoff
的任何沒有作者的論文。這是為了降低成本。config.ini
中model
指定的 GPT 模型進行評估。您應該僅使用 GPT3.5 進行調試。它不能很好地達到這個目的!此步驟使用configs/
中定義的以下提示設定您是一名有用的論文閱讀助手,其工作是閱讀 ArXiv 的每日帖子並識別一些可能與您的朋友相關的論文。下面最多有 5 篇論文。你的工作是找到符合以下條件的論文:
- 標準1
- 標準2
[文件]
以 JSONL 格式撰寫回應,每行包含 {ARXIVID, COMMENT, RELEVANCE, NOVELTY},每篇論文一張。 ARXIVID 應該是 ArXiv ID。評論應指出是否存在與論文非常匹配的標準。如果是這樣,應該按編號提及(無需提及不匹配的標準)。這些配對不應基於「語言建模」或「進步」等一般術語,而應具體參考某個標準。相關性應該是從 1 到 10 的相關性分數,其中 10 必須與具有近同義詞關鍵字匹配的精確、具體標準以及因從事該主題而聞名的作者直接相關,1 與任何標準無關,並且與您朋友的一般興趣領域,2-3 是與一般興趣領域相關但不是特定標準的論文,5 是與特定標準直接匹配的論文。新穎性應該是從 1 到 10 的分數,其中 10 是一項突破性的、通用的發現,將改變整個領域,1 是改進問題的一個方面的工作,或者是在一個非常具體的領域的應用。仔細閱讀摘要以確定這一點,並假設作者聲稱的新穎性不可信。
config/papers_topics.txt
中的主題)和新穎性(等級 1-10)進行評分config.ini
中的相關性和新穎性截止值,則會被過濾最後,所有論文均按其author_match_score
的最大值以及GPT評級的相關性和新穎性分數的總和進行排序(相關性和新穎性分數只有在高於您在配置中設置的截止閾值時才會顯示在最終輸出中文件)。然後,論文被渲染並推送到它們的端點(文字檔案或 Slack)。
此存儲庫使用 ruff- ruff check .
和ruff format .
請透過執行pre-commit install
來安裝預提交掛鉤
filter_papers.py
程式碼也可以作為獨立腳本運行。這將在in/debug_papers.json
中取得一批論文,運行您擁有的任何配置和提示,並將輸出返回到out/filter_paper_test.debug.json
。如果您發現機器人出錯,您可以在out/gpt_paper_batches.debug.json
中找到關聯的批次,並將其複製到相關的debug_papers
檔案中。
這使您可以為過濾器建立基準並查看另一側的結果。
此儲存庫和程式碼最初由 Tatsunori Hashimoto 構建,並根據 Apache 2.0 許可證獲得許可。感謝Chenglei Si 對GPT 過濾器進行測試和基準測試。