llm-arxiv-daily
利用 GitHub Actions 自动化追踪 arxiv LLM 相关论文,附官方代码链接
加载项目详情…
本应用为开源项目,仅供学习研究,请遵守其开源协议。
利用 GitHub Actions 自动化追踪 arxiv LLM 相关论文,附官方代码链接
加载项目详情…
本应用为开源项目,仅供学习研究,请遵守其开源协议。
想象一下这样的场景:你是一名 AI 研究者,每天早上打开电脑,第一件事就是去 arxiv.org 刷一遍最新提交的论文——看看有没有影响你研究方向的突破性工作。但 arxiv 每天新增上千篇论文,靠人工筛选无异于大海捞针。更让人头疼的是,很多论文在 Papers With Code 上有官方代码仓库,但你总是一篇篇手动去查,效率极低。
llm-arxiv-daily 正是为解决这一痛点而生的工具。它利用 GitHub Actions 实现自动化定时任务,每天自动抓取 arxiv 上与 LLM(大语言模型)相关的最新论文,并附上 Papers With Code 上的官方代码链接,将结果直接更新到 GitHub README 页面和 GitHub Pages 个人网站上。你只需要每天打开自己的主页,就能看到一份结构化的最新论文清单。
llm-arxiv-daily 由 Xuchen-Li(中国科学院自动化研究所,邮箱 lixuchen2024@ia.ac.cn)开发维护。项目采用 Python 语言编写,利用 arxiv 官方 Python API 定期搜索论文,并通过 GitHub Actions 实现零运维的自动化运行。项目最早于 2023 年中公开,至今(2026年)已获得约 145 颗 GitHub Stars,13 次 Fork,被其他研究者 fork 并定制为自己的论文追踪工具。
从技术背景来看,Xuchen-Li 的研究方向集中在 LLM(大型语言模型)和 MLLM(多模态大型语言模型),因此该工具自然而然地成为了他个人研究流程的一部分——将日常的文献调研工作自动化,让自己把更多精力放在真正有价值的论文阅读上,而非机械地翻找最新论文。
项目通过 YAML 配置文件定义了四个核心追踪方向,每个方向下包含多个细分子关键词,确保检索的全面性:
LLM Reasoning(LLM 推理能力):追踪 LLM 思维链、因果推理、常识推理、逻辑推理以及多模态推理相关的最新论文。具体关键词包括 "LLM Reasoning"、"LLM Thinking"、"LLM Causal Reasoning"、"Multimodal Reasoning"、"MLLM Reasoning"、"VLM Reasoning" 等。这部分是 AI 研究最活跃的领域之一,每天新提交的论文数量最多。
LLM Evaluation(LLM 评测):追踪 LLM 评测相关的论文,涵盖基准测试(Benchmark)、视觉-语言基准、评测指标、评测协议和评测数据集。这部分对于想要了解当前 LLM 评测SOTA(State-of-the-Art)方法的研究者非常有用。
LLM & MLLM(多模态大模型):追踪 LLM、MLLM(多模态大型语言模型)、大型视觉-语言模型(LVLM)、基础模型(Foundation Model)方向的论文。这是当前 AI 领域最热门的方向,论文数量庞大。
Video Understanding(视频理解):追踪视频理解、视频字幕、视频问答、视频识别、视频检索、视频生成等任务的相关论文。作者将视频理解纳入追踪范围,说明其研究方向不局限于文本模态。
项目的核心逻辑封装在 daily_arxiv.py 中,流程设计非常清晰:
第一步:配置加载。通过 load_config() 函数读取 config.yaml,将每个追踪方向下的多个子关键词拼接为 arxiv Search 查询字符串。例如 "LLM Reasoning" 分类下的多个关键词会被拼接为 "LLM Reasoning" OR "LLM Thinking" OR "LLM Causal Reasoning" OR ... 的形式,支持布尔逻辑的精确检索。
第二步:arXiv API 查询。使用官方 arxiv Python 库(arxiv 包)执行搜索请求,按提交日期倒序排列(sort_by=arxiv.SortCriterion.SubmittedDate),每次最多返回 max_results 篇论文(默认100篇)。每个关键词分类独立执行一次搜索,结果存储在对应的 content 字典中。
第三步:官方代码链接获取。每篇论文获取后,程序会调用 Papers With Code 的 API(https://arxiv.paperswithcode.com/api/v0/papers/{paper_id})查询是否有官方代码仓库。如果有,则在输出的 Markdown 表格中添加代码链接 [link](url);如果没有,则标记为 null。这一步骤非常重要——它省去了研究者手动去 Papers With Code 搜索代码的时间。
第四步:数据持久化。论文数据以两种格式存储:
JSON 文件(./docs/llm-arxiv-daily.json 和 ./docs/llm-arxiv-daily-web.json):作为中间数据存储,方便后续增量更新。update_json_file() 函数实现增量合并逻辑——每次执行时,新论文会追加到已有 JSON 中,不覆盖历史数据,实现论文库的持续积累。
Markdown 文件(README.md 和 ./docs/index.md):通过 json_to_md() 函数将 JSON 数据转换为带格式的 Markdown 表格。表格包含:发表日期、论文标题、第一作者、全名作者列表、PDF 链接、代码仓库链接六列。Markdown 文件还支持 LaTeX 公式美化(pretty_math() 函数),以及自动生成的「回到顶部」链接和目录索引(Table of Contents)。
项目包含两个 GitHub Actions Workflow:
main.yml:每 6 小时执行一次(cron: 0 0/6 * * *),执行 python daily_arxiv.py,自动抓取最新论文并更新 README 和 GitHub Pages。每次运行后通过 github-actions-x/commit action 将更新提交到 GitHub 仓库,全程无需人工干预,实现了真正的「设置一次,长期自动运行」。
update.yml:每周一早上 8:00 执行(cron: 0 8 * * 1),专门用于更新已有论文的代码链接。之所以需要这一步,是因为某些论文在提交时还没有官方代码仓库,但后来作者补充发布了——update.yml 会重新查询 Papers With Code API,填补之前标记为 null 的链接空白,确保论文清单的完整性和时效性。
从代码架构来看,项目采用了经典的**数据处理管道(Data Pipeline)**模式:输入(配置 + arxiv API)→ 处理(数据转换)→ 输出(JSON + Markdown)。整个 daily_arxiv.py 仅约 400 行代码,没有引入任何重型框架依赖(仅需 arxiv、requests、pyyaml、logging 四个标准库级别的包),代码可读性极高。
函数设计:核心函数职责清晰:load_config() 负责配置解析,get_daily_papers() 负责论文抓取,update_json_file() 负责增量数据合并,json_to_md() 负责格式化输出,update_paper_links() 负责代码链接回填。每个函数均可独立测试,模块化程度良好。
命令行接口:通过 argparse 提供灵活的 CLI 参数支持,支持自定义配置文件路径(--config_path)和代码链接更新模式(--update_paper_links),方便高级用户定制自己的运行逻辑。
错误处理:论文抓取和代码链接查询均有 try/except 包裹,单篇论文的查询失败不会中断整个流程。同时使用 Python logging 模块记录每个步骤的详细运行日志,便于排查问题。
代码质量评分:78/100。扣分项:无单元测试(tests 目录为空)、无类型注解(typing hints)、无 CI 测试保障。但考虑到这是一个高度场景化的个人工具而非通用框架,且代码逻辑相对简单,上述缺失在可接受范围内。文档质量方面:README 内容完整,包含完整的使用说明和配置示例,GitHub Pages 部署也提供了详细文档,文档质量较高。
这是最容易上手的 AI 工具之一。使用门槛极低——你只需要一台能运行 Python 3.10+ 的设备(甚至不需要 GPU),以及一个 GitHub 账号。具体步骤:
Fork 仓库:将 Xuchen-Li/llm-arxiv-daily fork 到自己的 GitHub 账户下。
修改配置:编辑 fork 后的 config.yaml,将自己的 GitHub 用户名和仓库名填入对应字段(user_name、repo_name)。如果想调整追踪的关键词类别和数量,修改 keywords 字典即可。
启用 GitHub Actions:在仓库的 Actions 页面启用 Workflow,GitHub Actions 会自动按照 cron 表达式定时执行。无需购买服务器,无需配置 cron job,一切由 GitHub 免费提供的基础设施承担。
启用 GitHub Pages:在仓库 Settings → Pages 中将 Source 设置为 gh-pages 分支(或 main 分支的 /docs 目录),即可通过 https://your-username.github.io/llm-arxiv-daily/ 访问个人论文追踪主页。
如果你不想用 GitHub Pages,也可以本地运行:直接克隆仓库、安装依赖(pip install arxiv requests pyyaml),运行 python daily_arxiv.py 即可在本地生成论文清单 Markdown 文件。
硬件需求:几乎可以忽略。CPU 架构即可运行,不需要 GPU,内存占用低于 512MB,磁盘占用不足 100MB。任何一台能运行 Python 的电脑(包括树莓派)都可以作为运行主机。
作为一个个人主导的工具,llm-arxiv-daily 也有其局限性:
论文检索精度有限。目前的关键词匹配方式较为基础,使用 arxiv 的默认搜索引擎,无法做语义级别的去重或相关性排序。比如「LLM」这个关键词会匹配到大量不相关的论文,可能造成「噪音」过多的问题。未来的改进方向可以考虑引入 embedding 相似度计算,过滤低相关性的论文。
代码链接覆盖率依赖 Papers With Code。如果某篇论文没有被 Papers With Code 收录且作者未自行在 GitHub 发布,代码链接就会标记为 null。虽然有 weekly update 流程做补充,但仍无法覆盖所有有代码的论文。
无通知机制。目前工具只被动生成静态页面,如果研究者想要第一时间收到推送通知(如邮件、Slack、钉钉),还需要自己额外配置 Webhook 或 IFTTT 规则。
缺乏测试。没有单元测试和集成测试,代码更新依赖作者手动验证,容易引入回归错误。
在 LLM 发展日新月异的当下,论文追踪已经成为 AI 研究者的刚性需求。从早期的 RSS 订阅、Google Scholar 关注,到后来的 Paper Digest 等邮件订阅服务,再到如今基于 API 的自动化追踪工具,研究者获取信息的方式在不断进化。
llm-arxiv-daily 代表了一种轻量级、无运维、GitOps 驱动的解决方案。它不需要你维护服务器,不需要额外部署监控,fork 一份代码,改改配置,就能获得一个永久运行、永不宕机的个人论文追踪主页。这种「零成本维护」的特性对于预算有限的个人研究者非常有吸引力。
展望未来,该工具可以向两个方向发展:一是社交化——支持多人协作的论文讨论区或评论功能,让追踪论文变成团队共享的知识库;二是智能化——引入 LLM 对论文摘要进行自动总结,生成「三句话速读」版本,帮助研究者更快判断论文价值。
无论如何,llm-arxiv-daily 已经证明:好的工具不在于功能多么复杂,而在于它真正解决了研究者的一个日常痛点。对于想要系统化追踪 LLM 前沿进展的研究者,这个工具值得一试。