@Promixyz:AI 事实核查正变得越来越不公平——10 个开源 GitHub 项目,让智能体为它写出的内容提供证据,而不仅仅是生成答案…

X AI KOLs Timeline 工具

摘要

该推文盘点了 10 个用于让 AI 智能体为其输出提供可验证证据的开源 GitHub 项目,涵盖科学文献检索(OpenScholar、PaperQA2)、文档解析(Docling)、网络爬取(Crawl4AI)、RAG(RAGFlow、GraphRAG、LightRAG)、深度研究(Open Deep Research)以及事实核查与评估(DeepEval、Ragas),并重点展示了 Allen AI 的 OpenScholar 代码库。

AI 事实核查正变得越来越不公平 10 个开源 GitHub 项目,让智能体为它写出的内容提供证据,而不只是生成一个答案 01 OpenScholar ▸ https://github.com/AkariAsai/OpenScholar… → 检索并综合科学文献 02 PaperQA2 ▸ https://github.com/Future-House/paper-qa… → 基于论文的有据回答 + 引用来源 构建证据 03 Docling ▸ https://github.com/docling-project/docling… → PDF + 表格 + 文档 → 结构化数据 04 Crawl4AI ▸ https://github.com/unclecode/crawl4ai… → 网页 → 干净、可供 AI 使用的证据 05 RAGFlow ▸ https://github.com/infiniflow/ragflow… → 从复杂文档中检索证据 连接论点 06 GraphRAG ▸ https://github.com/microsoft/graphrag… → 跨来源映射实体及其关系 07 LightRAG ▸ https://github.com/HKUDS/LightRAG → 在相互关联的知识中检索 交叉验证一切 08 Open Deep Research ▸ https://github.com/langchain-ai/open_deep_research… → 跨多个来源进行研究 09 DeepEval ▸ https://github.com/confident-ai/deepeval… → 评估输出是否真正站得住脚 10 Ragas ▸ https://github.com/explodinggradients/ragas… → 衡量检索与回答质量 证据闭环: 提问 → 拆解 → 搜索 → 提取 → 关联事实 → 比对来源 → 核查论点 → 引用 → 报告 47 个来源可能压缩成 30 条论点 30 条论点可能压缩成 26 条引用 但这一切都发生在智能体核查过哪些证据真正支撑它想说的话之后 这就是区别所在 AI 可以在几秒钟内生成一个答案 真正值得关注的技术栈,是那个能告诉你为什么应该相信它的 ⭣
查看原文
查看缓存全文

缓存时间: 2026/10/04 17:18

AI 事实核查正变得越来越不公平

10 个开源 GitHub 项目,让你的智能体证明它写下的内容,而不是仅仅生成一个答案

01 OpenScholar ▸ https://github.com/AkariAsai/OpenScholar… → 检索 + 综合科学文献

02 PaperQA2 ▸ https://github.com/Future-House/paper-qa… → 基于论文的答案 + 引用

构建证据

03 Docling ▸ https://github.com/docling-project/docling… → PDF + 表格 + 文档 → 结构化数据

04 Crawl4AI ▸ https://github.com/unclecode/crawl4ai… → 网页 → 干净、可直接喂给 AI 的证据

05 RAGFlow ▸ https://github.com/infiniflow/ragflow… → 从复杂文档中检索证据

串联主张

06 GraphRAG ▸ https://github.com/microsoft/graphrag… → 跨来源映射实体与关系

07 LightRAG ▸ https://github.com/HKUDS/LightRAG → 在相互连接的知识中检索

交叉核验一切

08 Open Deep Research ▸ https://github.com/langchain-ai/open_deep_research… → 跨多个来源进行调研

09 DeepEval ▸ https://github.com/confident-ai/deepeval… → 评估输出是否真的站得住脚

10 Ragas ▸ https://github.com/explodinggradients/ragas… → 度量检索与回答的质量

证据闭环:

问题 → 拆解 → 搜索 → 提取 → 关联事实 → 比对来源 → 核验主张 → 引用 → 报告

47 个来源可以收敛为 30 条主张 30 条主张可以收敛为 26 条引用

但前提是,智能体先要检查哪些证据真正支撑它想说的话

这就是区别

AI 几秒钟就能生成一个答案

真正有意思的那套技术栈,是能告诉你为什么该相信它的那套 ⭣


AkariAsai/OpenScholar

来源:https://github.com/AkariAsai/OpenScholar

OpenScholar

本仓库包含 OpenScholar 的代码库。

博客 (https://allenai.org/blog/openscholar) | 演示 (https://open-scholar.allen.ai/) | 论文 (https://arxiv.org/abs/2411.14199) | 模型权重与数据 (https://huggingface.co/collections/OpenScholar/openscholar-v1-67376a89f6a80f448da411a6) | ScholarQABench (https://github.com/AkariAsai/ScholarQABench/) | 专家评估 (https://github.com/AkariAsai/OpenScholar_ExpertEval) | 公开演示代码 (https://github.com/allenai/open-scholar-demo) | 公开演示数据 (https://huggingface.co/datasets/allenai/openscilm_queries)

目录

  1. OpenScholar 概览
  2. 仓库结构
  3. 安装
  4. 运行 OpenScholar
  5. 训练 OpenScholar-8B
  6. 运行检索器
  7. 联系方式与引用

OpenScholar 概览

科学的进步取决于我们查找、综合并在此基础上进一步构建科学文献中相关知识的能力。然而,科学文献正以指数级增长——如今每年发表的论文数以百万计——这使得科学家越来越难以找到所需的信息,甚至难以跟上某一个子领域的最新进展。

为了帮助科学家高效地导航和综合科学文献,我们推出了 OpenScholar,一个检索增强的语言模型(LM):它先在文献中检索相关论文,再基于这些来源生成有据可依的回答。欢迎访问 open-scholar.allen.ai/ (https://open-scholar.allen.ai/),并查看我们的论文 (https://openscholar.allen.ai/paper) 了解更多信息。

OpenScholar 概览

仓库结构

本仓库包含运行 OpenScholar 推理的代码。

  • src/:OpenScholar 的主要源代码。
  • training/:我们基于处理后的数据训练 Llama 3.1 8B 的训练代码。我们修改了早期版本的 torchtune 用于训练。
  • retriever/:用于离线检索以及托管在线检索服务的代码库。

关于自动评估和人工评估,请查看以下仓库。

  • 若要在 ScholarQABench 上运行评估,请查看 ScholarQABench (https://github.com/AkariAsai/ScholarQABench/) 仓库。
  • 关于我们的人工评估界面以及结果,请查看 OpenScholar_ExpertEval (https://github.com/AkariAsai/OpenScholar_ExpertEval) 仓库。

安装

要运行 OpenScholar 推理,请确保已安装所有必要的依赖库。

[测试环境命令]

python conda create -n os_env python=3.10.0 conda activate os_env pip install -r requirements.txt python -m spacy download en_core_web_sm

另外,请设置以下 API 密钥:

sh export S2_API_KEY=YOUR_S2_API_KEY 获取 API 密钥的方法参见 Semantic Scholar API 页面 (https://www.semanticscholar.org/product/api)。

如果你还想使用网页搜索引擎,请注册 you.com 的 Web API 并设置密钥。 sh export YOUR_API_KEY=YOUR_YOU_COM_API_KEY

与 OpenScholar 训练和检索组件相关的信息,请分别参阅 training/ 和 retrieval/ 目录。

运行 OpenScholar 推理

默认情况下,OpenScholar 先使用在 retrieval/ 中运行检索脚本后得到的离线检索结果,再叠加来自 Semantic Scholar Paper API 和网页搜索 API 的额外检索结果。可参考脚本 src/use_search_apis.py,使用外部 API 离线检索相关段落。

我们已将检索结果发布到 Google Drive (https://drive.google.com/drive/folders/1lOloYPOveKesD-37lD4Dlju96tc0XIm9?usp=sharing)。

本地使用开源语言模型(例如 Llama-3.1_OpenScholar-8B)

  • 使用 top 10 运行标准 RAG 流程

sh python run.py \ --input_file YOUR_INPUT_FILE \ --model_name OpenScholar/Llama-3.1_OpenScholar-8B \ --use_contexts \ --output_file OUTPUT_FILE_PATH \ --top_n 10 --llama3 --zero_shot

  • 运行检索器 + 重排器流程

sh python run.py \ --input_file YOUR_INPUT_FILE \ --model_name OpenScholar/Llama-3.1_OpenScholar-8B \ --use_contexts \ --ranking_ce \ --reranker OpenScholar/OpenScholar_Reranker \ --output_file OUTPUT_FILE_PATH \ --top_n 10 --llama3 --zero_shot

  • 运行 Open 检索器的自我反思式生成流程

sh python run.py \ --input_file YOUR_INPUT_FILE \ --model_name OpenScholar/Llama-3.1_OpenScholar-8B \ --use_contexts --output_file OUTPUT_FILE_NAME \ --top_n 10 --llama3 --use_contexts \ --ranking_ce --reranker OpenScholar/OpenScholar_Reranker \ --posthoc --feedack --ss_retriever \ --use_abstract --norm_cite --zero_shot --max_per_paper 3 \

使用闭源语言模型,例如 OpenAI GPT-4o

你也可以将 OpenScholar 流程与闭源 LLM 结合使用,只需指定 model_name、api 和 api_key_fp。

sh python run.py \ --input_file YOUR_INPUT_FILE \ --model_name "gpt-4o" \ --api "openai" \ --api_key_fp PATH_TO_YOUR_OPEN_AI_KEY \ --use_contexts \ --output_file OUTPUT_FILE_PATH \ --top_n 10 --llama3 --zero_shot

配置详解

下面是各配置项的详细说明。

  • top_n:喂入底层语言模型的段落数量。对于多论文任务,我们默认使用 10。
  • feedback:若想在生成过程中使用自我反馈循环,设为 true。
  • posthoc_at:若想运行事后引用归因,设为 true。
  • zero_shot:若想以零样本方式运行推理,设为 true。
  • ranking_ce:使用重排模型对 top_n 段落重新排序;若不设为 true,则直接从输入文件提供的 ctxs 中取 top_n 段落。
  • reranker:指定重排器模型文件的路径(本地或 HF Hub)。若使用我们的 OpenScholar 重排器,请设为 OpenScholar/OpenScholar_Reranker。
  • min_citation:可设置引用数下限。若给出任意 int 值,则排除引用数低于 min_citation 的论文。默认设为 None,即不考虑引用数,纳入所有论文。
  • ss_retriever:在反馈生成循环中使用 Semantic Scholar API,以增强反馈结果。
  • use_abstract:利用摘要来提升重排结果。
  • max_per_paper:设置推理时来自同一篇论文的最大段落数。
  • task_name:运行单论文任务时指定任务名称。对于 SciFact、PubmedQA 和 QASA,对应的任务名称分别为 claim_full、boolean_question_full 和 single_qa。

训练

嵌入模型训练

  • 我们使用 peS2o (https://huggingface.co/datasets/allenai/peS2o/tree/main/data/v2) 训练嵌入模型,该数据用于构建 OpenScholar Datastore。
  • 我们使用 Contriever (https://github.com/facebookresearch/contriever) 代码库对 contriever (base) (https://huggingface.co/facebook/contriever) 继续预训练,所用训练脚本为 (https://github.com/facebookresearch/contriever/blob/main/example_scripts/contriever.sh)。

重排器模型训练

  • 我们使用 FlagEmbeddings (https://github.com/FlagOpen/FlagEmbedding/tree/lm-cocktail/examples/reranker) 训练重排器模型。
  • 我们按照原仓库的说明 (https://github.com/FlagOpen/FlagEmbedding/blob/lm-cocktail/examples/reranker/README.md) 对重排器训练数据进行格式化,然后用 torch tune 训练 BGE reranker large (https://huggingface.co/BAAI/bge-reranker-large)。

torchrun --nproc_per_node {number of gpus} \ -m FlagEmbedding.reranker.run \ --output_dir {path to save model} \ --model_name_or_path BAAI/bge-reranker-base \ --train_data PATH_TO_TRAIN_DATA \ --learning_rate 6e-5 \ --fp16 \ --num_train_epochs 5 \ --per_device_train_batch_size {batch size; set 1 for toy data} \ --gradient_accumulation_steps 4 \ --dataloader_drop_last True \ --train_group_size 16 \ --max_len 512 \ --weight_decay 0.01 \ --logging_steps 10

生成式语言模型训练

  • 我们使用自己的 OpenScholar/OS_Train_Data 数据训练 OpenScholar-8B (https://huggingface.co/OpenScholar/OpenScholar_Llama-3.1-8B),该数据包含 13k 条指令微调样本。我们使用修改版的 torchtune (https://github.com/pytorch/torchtune),在 8*A100 上训练 8B 模型。

训练配置的更详细说明请参阅 train/。

运行检索器

我们的 peS2o v2 和 v3 数据存储(切分文本 + 索引)均可获取:

  • OpenScholar/OpenScholar-DataStore-V2 (https://huggingface.co/datasets/OpenScholar/OpenScholar-DataStore-V2)
  • OpenScholar/OpenScholar-DataStore-V3 (https://huggingface.co/datasets/OpenScholar/OpenScholar-DataStore-V3)

如何在本地运行 peS2o 索引,请参阅 retriever 下的说明。请注意,由于索引规模巨大(基于 4500 万篇论文、超过 2 亿条嵌入向量),peS2o 检索器需要占用大量 CPU 内存。在我们的主要实验中,我们采用离线方式检索初始段落。

我们计划通过 Semantic Scholar API 公开发布 OpenScholar 演示所用的高效稀疏-密集检索器 API 端点,以加速基于 LLM 的科学文献综合研究。敬请关注!!d!

联系方式与引用

如有任何问题,请联系 [email protected]。请注意,我目前正在申请学术职位,回复可能会比较慢。 如果有关于演示的任何问题,请通过 Google 表单 (https://docs.google.com/forms/d/e/1FAIpQLSfqPUKxxXlV16Bs8ZGcasXMP35WKQU6eeQhYViPQ9_Cmeq5Kw/viewform) 提交你的请求。

@article{openscholar, title={{OpenScholar}: Synthesizing Scientific Literature with Retrieval-Augmented Language Models}, author={Asai, Akari and He*, Jacqueline and Shao*, Rulin and Shi, Weijia and Singh, Amanpreet and Chang, Joseph Chee and Lo, Kyle and Soldaini, Luca and Feldman, Tian, Sergey and Mike, D’arcy and Wadden, David and Latzke, Matt and Minyang and Ji, Pan and Liu, Shengyan and Tong, Hao and Wu, Bohao and Xiong, Yanyu and Zettlemoyer, Luke and Weld, Dan and Neubig, Graham and Downey, Doug and Yih, Wen-tau and Koh, Pang Wei and Hajishirzi, Hannaneh}, journal={Arxiv}, year={2024}, }

相似文章

@xiaoying_eth: 这 10 个 GitHub 仓库,不该只被程序员知道。 1. TradingAgents 一个 AI 投资分析师团队。 基本面、情绪、新闻、技术 4 个分析师一起讨论策略,后面还有风险经理和执行代理。 相当于把一个迷你华尔街团队,塞进你的…

X AI KOLs Timeline

推荐了10个实用的GitHub开源项目,涵盖AI投资分析、多模型聊天客户端、视频生成引擎、金融终端、短视频自动生成、AI邮件客户端、语音克隆、域名信息收集、Claude技能集和API集成等。

@FakeMaidenMaker: 兄弟们,又挖到一个 AI 工程实战宝藏,叫 Hands-On-AI-Engineering 刚开源就冲了 2.3K star,一个仓库塞了 50 多个能直接跑起来的真实 AI 项目。 它最实用的地方是不讲空泛理论,每个项目都是一个完整的小…

X AI KOLs Timeline

推荐了一个刚开源就获得2.3K star的GitHub仓库Hands-On-AI-Engineering,内含50多个可直接运行的AI项目,涵盖RAG、AI agent、OCR等类别,每个项目都提供完整代码和说明,适合实战学习。