[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"similar-luhua-rain--MRC_Competition_Dureader":3,"tool-luhua-rain--MRC_Competition_Dureader":61},[4,18,26,36,44,53],{"id":5,"name":6,"github_repo":7,"description_zh":8,"stars":9,"difficulty_score":10,"last_commit_at":11,"category_tags":12,"status":17},4358,"openclaw","openclaw\u002Fopenclaw","OpenClaw 是一款专为个人打造的本地化 AI 助手，旨在让你在自己的设备上拥有完全可控的智能伙伴。它打破了传统 AI 助手局限于特定网页或应用的束缚，能够直接接入你日常使用的各类通讯渠道，包括微信、WhatsApp、Telegram、Discord、iMessage 等数十种平台。无论你在哪个聊天软件中发送消息，OpenClaw 都能即时响应，甚至支持在 macOS、iOS 和 Android 设备上进行语音交互，并提供实时的画布渲染功能供你操控。\n\n这款工具主要解决了用户对数据隐私、响应速度以及“始终在线”体验的需求。通过将 AI 部署在本地，用户无需依赖云端服务即可享受快速、私密的智能辅助，真正实现了“你的数据，你做主”。其独特的技术亮点在于强大的网关架构，将控制平面与核心助手分离，确保跨平台通信的流畅性与扩展性。\n\nOpenClaw 非常适合希望构建个性化工作流的技术爱好者、开发者，以及注重隐私保护且不愿被单一生态绑定的普通用户。只要具备基础的终端操作能力（支持 macOS、Linux 及 Windows WSL2），即可通过简单的命令行引导完成部署。如果你渴望拥有一个懂你",349277,3,"2026-04-06T06:32:30",[13,14,15,16],"Agent","开发框架","图像","数据工具","ready",{"id":19,"name":20,"github_repo":21,"description_zh":22,"stars":23,"difficulty_score":10,"last_commit_at":24,"category_tags":25,"status":17},3808,"stable-diffusion-webui","AUTOMATIC1111\u002Fstable-diffusion-webui","stable-diffusion-webui 是一个基于 Gradio 构建的网页版操作界面，旨在让用户能够轻松地在本地运行和使用强大的 Stable Diffusion 图像生成模型。它解决了原始模型依赖命令行、操作门槛高且功能分散的痛点，将复杂的 AI 绘图流程整合进一个直观易用的图形化平台。\n\n无论是希望快速上手的普通创作者、需要精细控制画面细节的设计师，还是想要深入探索模型潜力的开发者与研究人员，都能从中获益。其核心亮点在于极高的功能丰富度：不仅支持文生图、图生图、局部重绘（Inpainting）和外绘（Outpainting）等基础模式，还独创了注意力机制调整、提示词矩阵、负向提示词以及“高清修复”等高级功能。此外，它内置了 GFPGAN 和 CodeFormer 等人脸修复工具，支持多种神经网络放大算法，并允许用户通过插件系统无限扩展能力。即使是显存有限的设备，stable-diffusion-webui 也提供了相应的优化选项，让高质量的 AI 艺术创作变得触手可及。",162132,"2026-04-05T11:01:52",[14,15,13],{"id":27,"name":28,"github_repo":29,"description_zh":30,"stars":31,"difficulty_score":32,"last_commit_at":33,"category_tags":34,"status":17},1381,"everything-claude-code","affaan-m\u002Feverything-claude-code","everything-claude-code 是一套专为 AI 编程助手（如 Claude Code、Codex、Cursor 等）打造的高性能优化系统。它不仅仅是一组配置文件，而是一个经过长期实战打磨的完整框架，旨在解决 AI 代理在实际开发中面临的效率低下、记忆丢失、安全隐患及缺乏持续学习能力等核心痛点。\n\n通过引入技能模块化、直觉增强、记忆持久化机制以及内置的安全扫描功能，everything-claude-code 能显著提升 AI 在复杂任务中的表现，帮助开发者构建更稳定、更智能的生产级 AI 代理。其独特的“研究优先”开发理念和针对 Token 消耗的优化策略，使得模型响应更快、成本更低，同时有效防御潜在的攻击向量。\n\n这套工具特别适合软件开发者、AI 研究人员以及希望深度定制 AI 工作流的技术团队使用。无论您是在构建大型代码库，还是需要 AI 协助进行安全审计与自动化测试，everything-claude-code 都能提供强大的底层支持。作为一个曾荣获 Anthropic 黑客大奖的开源项目，它融合了多语言支持与丰富的实战钩子（hooks），让 AI 真正成长为懂上",157379,2,"2026-04-15T23:32:42",[14,13,35],"语言模型",{"id":37,"name":38,"github_repo":39,"description_zh":40,"stars":41,"difficulty_score":32,"last_commit_at":42,"category_tags":43,"status":17},2271,"ComfyUI","Comfy-Org\u002FComfyUI","ComfyUI 是一款功能强大且高度模块化的视觉 AI 引擎，专为设计和执行复杂的 Stable Diffusion 图像生成流程而打造。它摒弃了传统的代码编写模式，采用直观的节点式流程图界面，让用户通过连接不同的功能模块即可构建个性化的生成管线。\n\n这一设计巧妙解决了高级 AI 绘图工作流配置复杂、灵活性不足的痛点。用户无需具备编程背景，也能自由组合模型、调整参数并实时预览效果，轻松实现从基础文生图到多步骤高清修复等各类复杂任务。ComfyUI 拥有极佳的兼容性，不仅支持 Windows、macOS 和 Linux 全平台，还广泛适配 NVIDIA、AMD、Intel 及苹果 Silicon 等多种硬件架构，并率先支持 SDXL、Flux、SD3 等前沿模型。\n\n无论是希望深入探索算法潜力的研究人员和开发者，还是追求极致创作自由度的设计师与资深 AI 绘画爱好者，ComfyUI 都能提供强大的支持。其独特的模块化架构允许社区不断扩展新功能，使其成为当前最灵活、生态最丰富的开源扩散模型工具之一，帮助用户将创意高效转化为现实。",108322,"2026-04-10T11:39:34",[14,15,13],{"id":45,"name":46,"github_repo":47,"description_zh":48,"stars":49,"difficulty_score":32,"last_commit_at":50,"category_tags":51,"status":17},6121,"gemini-cli","google-gemini\u002Fgemini-cli","gemini-cli 是一款由谷歌推出的开源 AI 命令行工具，它将强大的 Gemini 大模型能力直接集成到用户的终端环境中。对于习惯在命令行工作的开发者而言，它提供了一条从输入提示词到获取模型响应的最短路径，无需切换窗口即可享受智能辅助。\n\n这款工具主要解决了开发过程中频繁上下文切换的痛点，让用户能在熟悉的终端界面内直接完成代码理解、生成、调试以及自动化运维任务。无论是查询大型代码库、根据草图生成应用，还是执行复杂的 Git 操作，gemini-cli 都能通过自然语言指令高效处理。\n\n它特别适合广大软件工程师、DevOps 人员及技术研究人员使用。其核心亮点包括支持高达 100 万 token 的超长上下文窗口，具备出色的逻辑推理能力；内置 Google 搜索、文件操作及 Shell 命令执行等实用工具；更独特的是，它支持 MCP（模型上下文协议），允许用户灵活扩展自定义集成，连接如图像生成等外部能力。此外，个人谷歌账号即可享受免费的额度支持，且项目基于 Apache 2.0 协议完全开源，是提升终端工作效率的理想助手。",100752,"2026-04-10T01:20:03",[52,13,15,14],"插件",{"id":54,"name":55,"github_repo":56,"description_zh":57,"stars":58,"difficulty_score":32,"last_commit_at":59,"category_tags":60,"status":17},4721,"markitdown","microsoft\u002Fmarkitdown","MarkItDown 是一款由微软 AutoGen 团队打造的轻量级 Python 工具，专为将各类文件高效转换为 Markdown 格式而设计。它支持 PDF、Word、Excel、PPT、图片（含 OCR）、音频（含语音转录）、HTML 乃至 YouTube 链接等多种格式的解析，能够精准提取文档中的标题、列表、表格和链接等关键结构信息。\n\n在人工智能应用日益普及的今天，大语言模型（LLM）虽擅长处理文本，却难以直接读取复杂的二进制办公文档。MarkItDown 恰好解决了这一痛点，它将非结构化或半结构化的文件转化为模型“原生理解”且 Token 效率极高的 Markdown 格式，成为连接本地文件与 AI 分析 pipeline 的理想桥梁。此外，它还提供了 MCP（模型上下文协议）服务器，可无缝集成到 Claude Desktop 等 LLM 应用中。\n\n这款工具特别适合开发者、数据科学家及 AI 研究人员使用，尤其是那些需要构建文档检索增强生成（RAG）系统、进行批量文本分析或希望让 AI 助手直接“阅读”本地文件的用户。虽然生成的内容也具备一定可读性，但其核心优势在于为机器",93400,"2026-04-06T19:52:38",[52,14],{"id":62,"github_repo":63,"name":64,"description_en":65,"description_zh":66,"ai_summary_zh":66,"readme_en":67,"readme_zh":68,"quickstart_zh":69,"use_case_zh":70,"hero_image_url":71,"owner_login":72,"owner_name":73,"owner_avatar_url":74,"owner_bio":75,"owner_company":75,"owner_location":75,"owner_email":76,"owner_twitter":75,"owner_website":75,"owner_url":77,"languages":78,"stars":94,"forks":95,"last_commit_at":96,"license":75,"difficulty_score":32,"env_os":97,"env_gpu":98,"env_ram":97,"env_deps":99,"category_tags":103,"github_topics":104,"view_count":32,"oss_zip_url":75,"oss_zip_packed_at":75,"status":17,"created_at":111,"updated_at":112,"faqs":113,"releases":149},7976,"luhua-rain\u002FMRC_Competition_Dureader","MRC_Competition_Dureader","机器阅读理解 冠军\u002F亚军代码及中文预训练MRC模型","MRC_Competition_Dureader 是一套专为中文机器阅读理解（MRC）任务打造的开源解决方案，包含了在多项权威比赛中获得冠亚军成绩的代码及经过大规模数据再训练的预训练模型。它主要解决了通用预训练语言模型在特定中文阅读理解和问答场景中泛化能力不足、准确率不够高的问题。通过整合医疗、法律、教育等多领域的大规模数据进行深度清洗与增强构造（包括引入负样本以提升抗干扰能力），该项目的模型在杜阅读器（DuReader）、腾讯医疗等数据集上的表现显著优于原生基线模型，F1 分数提升明显。\n\n这套工具非常适合从事自然语言处理的研究人员、AI 开发者以及需要参加相关算法竞赛的选手使用。其核心亮点在于提供了基于 MacBERT 和 RoBERTa-wwm-ext 架构的深度优化版本，不仅支持开放域问答，还能作为强大的基线模型帮助下游任务快速提升效果。此外，代码基于 Hugging Face Transformers 框架进行了针对性改良，更好地适配了中文特性，确保了答案抽取的精度。用户只需简单的几行代码即可加载模型进行推理或微调，极大地降低了高性能中文 MRC 模型的应用门槛。","## 机器阅读理解预训练模型及代码开源\n\n\n*********************** **更新** ***********************\n* 5\u002F21：开源**基于大规模MRC数据再训练**的模型（包括`roberta-wwm-large`、`macbert-large`）\n* 5\u002F18：开源比赛代码\n\n\n## Contents\n  - [基于大规模MRC数据再训练的模型](#基于大规模MRC数据再训练)\n  - [仓库介绍](#仓库介绍)\n  - [运行流程](#运行流程)\n  - [小小提示](#小小提示)\n\n\n## 基于大规模MRC数据再训练\n\n此库发布的再训练模型，在 阅读理解\u002F分类 等任务上均有大幅提高\u003Cbr\u002F>\n（已有多位小伙伴在 Dureader、法研杯、医疗问答 等多个比赛中取得**top5**的好成绩😁）\n\n|                模型\u002F数据集                 |  Dureader-2021  |  tencentmedical |\n| ------------------------------------------|--------------- | --------------- |\n|                                           |    F1-score    |    Accuracy     |\n|                                           |  dev \u002F A榜     |     test-1      |\n| macbert-large (哈工大预训练语言模型)         | 65.49 \u002F 64.27  |     82.5        |\n| roberta-wwm-ext-large (哈工大预训练语言模型) | 65.49 \u002F 64.27  |     82.5        |\n| macbert-large (ours)                      | 70.45 \u002F **68.13**|   **83.4**    |\n| roberta-wwm-ext-large (ours)              | 68.91 \u002F 66.91   |    83.1        |\n\n\n* **数据来源**\n  * 网上收集的大量中文MRC数据\n  （其中包括公开的MRC数据集以及自己爬取的网页数据等，\n  囊括了医疗、教育、娱乐、百科、军事、法律、等领域。）\n\n* **数据构造**\n  * 清洗\n    * 舍弃：context>1024的舍弃、question>64的舍弃、网页标签占比超过30%的舍弃。\n    * 重新标注：若answer>64且不完全出现在文档中，则采用模糊匹配: 计算所有片段与answer的相似度(F1值)，取相似度最高的且高于阈值（0.8）\n  * 数据标注\n    * 收集的数据有一部分是不包含的位置标签的，仅仅是(问题-文章-答案)的三元组形式。\n      所以，对于只有答案而没有位置标签的数据通过正则匹配进行位置标注：\u003Cbr\u002F>\n      ① 若答案片段多次出现在文章中，选择上下文与问题最相似的答案片段作为标准答案（使用F1值计算相似度，答案片段的上文48和下文48个字符作为上下文）；\u003Cbr\u002F>\n      ② 若答案片段只出现一次，则默认该答案为标准答案。\n    * 采用滑动窗口将长文档切分为多个重叠的子文档，故一个文档可能会生成多个有答案的子文档。\n  * 无答案数据构造\n    * 在跨领域数据上训练可以增加数据的领域多样性，进而提高模型的泛化能力，而负样本的引入恰好能使得模型编码尽可能多的数据，加强模型对难样本的识别能力：\u003Cbr\u002F>\n      ① 对于每一个问题，随机从数据中捞取context，并保留对应的title作为负样本;（50%）\u003Cbr\u002F>\n      ② 对于每一个问题，将其正样本中答案出现的句子删除，以此作为负样本；（20%）\u003Cbr\u002F>\n      ③ 对于每一个问题，使用BM25算法召回得分最高的前十个文档，然后根据得分采样出一个context作为负样本，\n      对于非实体类答案，剔除得分最高的context（30%）\n* **用途**  \n  * 此mrc模型可直接用于`open domain`，[点击体验](https:\u002F\u002Fhuggingface.co\u002Fluhua\u002Fchinese_pretrain_mrc_roberta_wwm_ext_large)\n  * 将此模型放到下游 MRC\u002F分类 任务微调可比直接使用预训练语言模型提高`2个点`\u002F`1个点`以上\n* **合作**\n  * 相关训练数据以及使用更多数据训练的模型\u002F一起打比赛 可邮箱联系(luhua98@foxmail.com)~ \n  \n```\n----- 使用方法 -----\nfrom transformers import AutoTokenizer, AutoModelForQuestionAnswering\n\nmodel_name = \"chinese_pretrain_mrc_roberta_wwm_ext_large\" # \"chinese_pretrain_mrc_macbert_large\"\n\n# Use in Transformers\ntokenizer = AutoTokenizer.from_pretrained(f\"luhua\u002F{model_name}\")\nmodel = AutoModelForQuestionAnswering.from_pretrained(f\"luhua\u002F{model_name}\")\n\n# Use locally（通过 https:\u002F\u002Fhuggingface.co\u002Fluhua 下载模型及配置文件）\ntokenizer = BertTokenizer.from_pretrained(f'.\u002F{model_name}')\nmodel = AutoModelForQuestionAnswering.from_pretrained(f'.\u002F{model_name}')\n```\n\n## 仓库介绍\n* **目的**\n  * **开源了基于MRC数据再训练的模型**，在MRC任务下微调，效果大幅优于使用预训练的语言模型，其次，旨在提供一个效果不错的`强基线`\n  * 有些[mrc比赛](#比赛)由于\"年代久远\"整理不过来（`others`文件夹），但方案和代码都有，对比着看就看懂了\n* **优化**\n  * 代码基于Hugginface的squad代码。之前自己开发，版本多且许多细节没有考虑，便转移到squad代码上迭代。但其实现的类缺乏对中文的支持，推理结果有一些影响，**修改之后 此库能较好的支持中文，抽取的答案精度也尽可能不受影响**\n  \n\n## 运行流程\n\n脚本参数解释\n\n* `--lm`: 要加载的模型的文件夹名称\n* `--do_train`: 开启训练\n* `--evaluate_during_training`: 开启训练时的验证\n* `--do_test`:  开启预测\n* `--version_2_with_negative`: 开启适配于数据中有`无答案数据`（如：squad2.0、dureader2021）\n* `--threads`: 数据处理所使用的线程数（可以通过os.cpu_count()查看机器支持的线程数）\n  \n##### 一、数据 & 模型：\n* 将train、dev、test等数据放在datasets文件夹下(样例数据已给出，符合格式即可)\n* 通过 export lm=xxx 指定模型目录\n\n##### 二、一键运行\n```python \nsh train_bert.sh  # sh test_bert.sh\n```\n\n##### 三、无答案问题\n* 如果包含无答案类型数据（如：squad2.0、dureader2021），加入--version_2_with_negative就行\n* 将数据替换为Dureader2021_checklist的数据, 加入--version_2_with_negative即可\n\n\n## 小小提示：\n* 代码上传前已经跑通。文件不多，所以如果碰到报错之类的信息，可能是代码路径不对、缺少安装包等问题，一步步解决，可以提issue\n* 环境\n  ```\n  pip install transformers==2.10.0 \n  ```\n* 代码基于transformers 2.10.0版本，但是预训练模型可以使用其他版本加载。转换为tf可使用[转换](https:\u002F\u002Fgithub.com\u002Fhuggingface\u002Ftransformers\u002Fblob\u002Fmaster\u002Fsrc\u002Ftransformers\u002Fmodels\u002Fbert\u002Fconvert_bert_pytorch_checkpoint_to_original_tf.py)\n* 预训练相关参数 [参考](https:\u002F\u002Fgithub.com\u002Fbasketballandlearn\u002FMRC_Competition_Dureader\u002Fissues\u002F33)\n\n\n## 感谢\n[zhangxiaoyu](https:\u002F\u002Fgithub.com\u002FDecalogue) [zhongjialun](https:\u002F\u002Fgithub.com\u002Fslaxes) [huanghui](https:\u002F\u002Fgithub.com\u002Fhuanghuidmml)  [nanfulai](https:\u002F\u002Fgithub.com\u002Fnanfulai)\n\n","## 机器阅读理解预训练模型及代码开源\n\n\n*********************** **更新** ***********************\n* 5\u002F21：开源**基于大规模MRC数据再训练**的模型（包括`roberta-wwm-large`、`macbert-large`）\n* 5\u002F18：开源比赛代码\n\n\n## 目录\n  - [基于大规模MRC数据再训练的模型](#基于大规模MRC数据再训练)\n  - [仓库介绍](#仓库介绍)\n  - [运行流程](#运行流程)\n  - [小小提示](#小小提示)\n\n\n## 基于大规模MRC数据再训练\n\n此库发布的再训练模型，在 阅读理解\u002F分类 等任务上均有大幅提高\u003Cbr\u002F>\n（已有多位小伙伴在 Dureader、法研杯、医疗问答 等多个比赛中取得**top5**的好成绩😁）\n\n|                模型\u002F数据集                 |  Dureader-2021  |  tencentmedical |\n| ------------------------------------------|--------------- | --------------- |\n|                                           |    F1-score    |    Accuracy     |\n|                                           |  dev \u002F A榜     |     test-1      |\n| macbert-large (哈工大预训练语言模型)         | 65.49 \u002F 64.27  |     82.5        |\n| roberta-wwm-ext-large (哈工大预训练语言模型) | 65.49 \u002F 64.27  |     82.5        |\n| macbert-large (ours)                      | 70.45 \u002F **68.13**|   **83.4**    |\n| roberta-wwm-ext-large (ours)              | 68.91 \u002F 66.91   |    83.1        |\n\n\n* **数据来源**\n  * 网上收集的大量中文MRC数据\n  （其中包括公开的MRC数据集以及自己爬取的网页数据等，\n  囊括了医疗、教育、娱乐、百科、军事、法律、等领域。）\n\n* **数据构造**\n  * 清洗\n    * 舍弃：context>1024的舍弃、question>64的舍弃、网页标签占比超过30%的舍弃。\n    * 重新标注：若answer>64且不完全出现在文档中，则采用模糊匹配: 计算所有片段与answer的相似度(F1值)，取相似度最高的且高于阈值（0.8）\n  * 数据标注\n    * 收集的数据有一部分是不包含的位置标签的，仅仅是(问题-文章-答案)的三元组形式。\n      所以，对于只有答案而没有位置标签的数据通过正则匹配进行位置标注：\u003Cbr\u002F>\n      ① 若答案片段多次出现在文章中，选择上下文与问题最相似的答案片段作为标准答案（使用F1值计算相似度，答案片段的上文48和下文48个字符作为上下文）；\u003Cbr\u002F>\n      ② 若答案片段只出现一次，则默认该答案为标准答案。\n    * 采用滑动窗口将长文档切分为多个重叠的子文档，故一个文档可能会生成多个有答案的子文档。\n  * 无答案数据构造\n    * 在跨领域数据上训练可以增加数据的领域多样性，进而提高模型的泛化能力，而负样本的引入恰好能使得模型编码尽可能多的数据，加强模型对难样本的识别能力：\u003Cbr\u002F>\n      ① 对于每一个问题，随机从数据中捞取context，并保留对应的title作为负样本;（50%）\u003Cbr\u002F>\n      ② 对于每一个问题，将其正样本中答案出现的句子删除，以此作为负样本；（20%）\u003Cbr\u002F>\n      ③ 对于每一个问题，使用BM25算法召回得分最高的前十个文档，然后根据得分采样出一个context作为负样本，\n      对于非实体类答案，剔除得分最高的context（30%）\n* **用途**  \n  * 此mrc模型可直接用于`open domain`，[点击体验](https:\u002F\u002Fhuggingface.co\u002Fluhua\u002Fchinese_pretrain_mrc_roberta_wwm_ext_large)\n  * 将此模型放到下游 MRC\u002F分类 任务微调可比直接使用预训练语言模型提高`2个点`\u002F`1个点`以上\n* **合作**\n  * 相关训练数据以及使用更多数据训练的模型\u002F一起打比赛 可邮箱联系(luhua98@foxmail.com)~ \n  \n```\n----- 使用方法 -----\nfrom transformers import AutoTokenizer, AutoModelForQuestionAnswering\n\nmodel_name = \"chinese_pretrain_mrc_roberta_wwm_ext_large\" # \"chinese_pretrain_mrc_macbert_large\"\n\n# Use in Transformers\ntokenizer = AutoTokenizer.from_pretrained(f\"luhua\u002F{model_name}\")\nmodel = AutoModelForQuestionAnswering.from_pretrained(f\"luhua\u002F{model_name}\")\n\n# Use locally（通过 https:\u002F\u002Fhuggingface.co\u002Fluhua 下载模型及配置文件）\ntokenizer = BertTokenizer.from_pretrained(f'.\u002F{model_name}')\nmodel = AutoModelForQuestionAnswering.from_pretrained(f'.\u002F{model_name}')\n```\n\n## 仓库介绍\n* **目的**\n  * **开源了基于MRC数据再训练的模型**，在MRC任务下微调，效果大幅优于使用预训练的语言模型，其次，旨在提供一个效果不错的`强基线`\n  * 有些[mrc比赛](#比赛)由于\"年代久远\"整理不过来（`others`文件夹），但方案和代码都有，对比着看就看懂了\n* **优化**\n  * 代码基于Hugginface的squad代码。之前自己开发，版本多且许多细节没有考虑，便转移到squad代码上迭代。但其实现的类缺乏对中文的支持，推理结果有一些影响，**修改之后 此库能较好的支持中文，抽取的答案精度也尽可能不受影响**\n  \n\n## 运行流程\n\n脚本参数解释\n\n* `--lm`: 要加载的模型的文件夹名称\n* `--do_train`: 开启训练\n* `--evaluate_during_training`: 开启训练时的验证\n* `--do_test`:  开启预测\n* `--version_2_with_negative`: 开启适配于数据中有`无答案数据`（如：squad2.0、dureader2021）\n* `--threads`: 数据处理所使用的线程数（可以通过os.cpu_count()查看机器支持的线程数）\n  \n##### 一、数据 & 模型：\n* 将train、dev、test等数据放在datasets文件夹下(样例数据已给出，符合格式即可)\n* 通过 export lm=xxx 指定模型目录\n\n##### 二、一键运行\n```python \nsh train_bert.sh  # sh test_bert.sh\n```\n\n##### 三、无答案问题\n* 如果包含无答案类型数据（如：squad2.0、dureader2021），加入--version_2_with_negative就行\n* 将数据替换为Dureader2021_checklist的数据, 加入--version_2_with_negative即可\n\n\n## 小小提示：\n* 代码上传前已经跑通。文件不多，所以如果碰到报错之类的信息，可能是代码路径不对、缺少安装包等问题，一步步解决，可以提issue\n* 环境\n  ```\n  pip install transformers==2.10.0 \n  ```\n* 代码基于transformers 2.10.0版本，但是预训练模型可以使用其他版本加载。转换为tf可使用[转换](https:\u002F\u002Fgithub.com\u002Fhuggingface\u002Ftransformers\u002Fblob\u002Fmaster\u002Fsrc\u002Ftransformers\u002Fmodels\u002Fbert\u002Fconvert_bert_pytorch_checkpoint_to_original_tf.py)\n* 预训练相关参数 [参考](https:\u002F\u002Fgithub.com\u002Fbasketballandlearn\u002FMRC_Competition_Dureader\u002Fissues\u002F33)\n\n\n## 感谢\n[zhangxiaoyu](https:\u002F\u002Fgithub.com\u002FDecalogue) [zhongjialun](https:\u002F\u002Fgithub.com\u002Fslaxes) [huanghui](https:\u002F\u002Fgithub.com\u002Fhuanghuidmml)  [nanfulai](https:\u002F\u002Fgithub.com\u002Fnanfulai)","# MRC_Competition_Dureader 快速上手指南\n\n本指南帮助开发者快速部署和使用基于大规模中文 MRC（机器阅读理解）数据再训练的预训练模型。该模型在杜阅读（DuReader）、医疗问答等任务上表现优异，可作为强有力的基线模型。\n\n## 环境准备\n\n*   **系统要求**：Linux \u002F macOS \u002F Windows (需支持 Python 环境)\n*   **Python 版本**：推荐 Python 3.6+\n*   **核心依赖**：\n    *   `transformers` (官方推荐版本：**2.10.0**，虽然高版本通常兼容，但为确保复现性建议使用该版本)\n    *   `torch` (PyTorch)\n\n## 安装步骤\n\n1.  **安装依赖库**\n    建议使用国内镜像源加速安装：\n\n    ```bash\n    pip install transformers==2.10.0 -i https:\u002F\u002Fpypi.tuna.tsinghua.edu.cn\u002Fsimple\n    ```\n\n    *注：若未安装 PyTorch，请先根据官网指引安装对应版本的 torch。*\n\n2.  **获取代码与数据**\n    克隆本仓库或下载源码，确保目录结构如下：\n    *   `datasets\u002F`：存放训练、验证和测试数据（JSON 格式）。\n    *   `models\u002F`：存放预训练模型文件（可从 Hugging Face 下载或本地路径指定）。\n\n## 基本使用\n\n### 方式一：通过 Transformers 直接加载（推荐）\n\n最简单的方式是直接调用 Hugging Face `transformers` 库加载已上传的模型，无需下载额外代码即可进行推理。\n\n```python\nfrom transformers import AutoTokenizer, AutoModelForQuestionAnswering\n\n# 选择模型名称: \"chinese_pretrain_mrc_roberta_wwm_ext_large\" 或 \"chinese_pretrain_mrc_macbert_large\"\nmodel_name = \"luhua\u002Fchinese_pretrain_mrc_roberta_wwm_ext_large\" \n\n# 初始化分词器和模型\ntokenizer = AutoTokenizer.from_pretrained(model_name)\nmodel = AutoModelForQuestionAnswering.from_pretrained(model_name)\n\n# 示例：进行问答推理\nquestion = \"中国的首都是哪里？\"\ncontext = \"中华人民共和国首都是北京。\"\n\ninputs = tokenizer.encode_plus(question, context, return_tensors=\"pt\")\noutputs = model(**inputs)\n\nanswer_start_index = outputs.start_logits.argmax()\nanswer_end_index = outputs.end_logits.argmax() + 1\n\npredict_answer_tokens = inputs.input_ids[0, answer_start_index:answer_end_index]\nprint(tokenizer.decode(predict_answer_tokens))\n```\n\n### 方式二：本地运行训练与预测\n\n若需使用提供的脚本进行微调训练或批量测试，请遵循以下流程：\n\n1.  **准备数据**\n    将处理好的 `train.json`, `dev.json`, `test.json` 放入 `datasets` 文件夹。\n\n2.  **配置模型路径**\n    设置环境变量指定预训练模型目录：\n    ```bash\n    export lm=.\u002Fpath_to_your_model_folder\n    ```\n\n3.  **执行脚本**\n    \n    *   **开始训练**（含验证）：\n        ```bash\n        sh train_bert.sh\n        ```\n        *若数据包含无答案样本（如 DuReader 2021 或 SQuAD 2.0），需在脚本参数中加入 `--version_2_with_negative`。*\n\n    *   **开始预测**：\n        ```bash\n        sh test_bert.sh\n        ```\n\n**关键参数说明：**\n*   `--do_train`: 开启训练模式\n*   `--do_test`: 开启预测模式\n*   `--evaluate_during_training`: 训练过程中进行评估\n*   `--threads`: 数据处理线程数（建议设置为 `os.cpu_count()`）","某法律科技团队正在开发一款智能案情分析系统，需要从海量裁判文书中自动提取关键事实以辅助律师快速研判。\n\n### 没有 MRC_Competition_Dureader 时\n- **模型泛化能力弱**：直接使用通用预训练模型（如原生 BERT），在面对法律、医疗等垂直领域的复杂中文表述时，理解准确率低下，难以捕捉专业术语间的逻辑关系。\n- **无法处理“无答案”场景**：当文档中确实不包含问题所需信息时，模型往往强行抽取错误片段作为答案，导致系统输出大量误导性结论，缺乏对“未知”的判断力。\n- **数据清洗与标注成本极高**：团队需耗费数周时间手动构建高质量的中文问答对，且难以解决长文档截断和答案位置模糊匹配等技术难题，严重拖慢项目进度。\n- **基线效果难以突破**：在内部测试集上，F1 分数长期停滞在 60% 左右，无法满足生产环境对高精度信息抽取的严苛要求。\n\n### 使用 MRC_Competition_Dureader 后\n- **领域适应性显著增强**：利用其基于大规模多领域数据（含法律、医疗等）再训练的 MacBERT 或 RoBERTa 模型，直接在下游任务微调即可将准确率提升 2 个点以上，轻松理解专业语境。\n- **精准识别无效信息**：内置对 SQuAD 2.0 及 DuReader 2021 风格的“无答案”数据支持，模型能准确判断何时“不知道”，大幅降低胡编乱造的错误率。\n- **开箱即用的强基线**：直接加载开源的冠军级权重，省去了繁琐的数据构造、清洗及正则匹配标注过程，团队可将精力集中在业务逻辑而非底层算法调优上。\n- **竞赛级性能表现**：在类似杜阅读的比赛评测中，该模型曾取得 Top 5 的成绩，帮助团队在短短几天内将系统 F1 分数从 60% 提升至 68% 以上，达到交付标准。\n\nMRC_Competition_Dureader 通过提供经过大规模中文数据深度打磨的预训练模型，让开发者能以极低成本构建出具备竞赛级水平的机器阅读理解应用。","https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Fluhua-rain_MRC_Competition_Dureader_d3248418.png","luhua-rain","luhua","https:\u002F\u002Foss.gittoolsai.com\u002Favatars\u002Fluhua-rain_ba8b2f87.png",null,"luhua98@foxmail.com","https:\u002F\u002Fgithub.com\u002Fluhua-rain",[79,83,87,91],{"name":80,"color":81,"percentage":82},"Python","#3572A5",99.6,{"name":84,"color":85,"percentage":86},"Shell","#89e051",0.4,{"name":88,"color":89,"percentage":90},"Makefile","#427819",0,{"name":92,"color":93,"percentage":90},"Vim Script","#199f4b",743,151,"2026-02-25T11:58:17","未说明","未说明（基于 BERT\u002FRoBERTa\u002FMacBERT 大型模型训练与推理，通常建议配备 NVIDIA GPU 及充足显存）",{"notes":100,"python":97,"dependencies":101},"代码基于 transformers 2.10.0 版本开发，但预训练模型可使用其他版本加载。若数据包含无答案类型（如 SQuAD 2.0 或 DuReader 2021），需添加 --version_2_with_negative 参数。首次运行需下载哈工大预训练语言模型（如 macbert-large 或 roberta-wwm-ext-large）。",[102],"transformers==2.10.0",[14,35],[105,106,107,108,109,110],"qa","dureader","pytorch","bert","squad","mrc","2026-03-27T02:49:30.150509","2026-04-16T10:55:25.031607",[114,119,124,129,134,139,144],{"id":115,"question_zh":116,"answer_zh":117,"source_url":118},35724,"predicting.py 中的 prior_scores=(0.44, 0.23, 0.15, 0.09, 0.07) 是如何得出的？","这些权重值是依据训练集统计得出的。具体做法是统计答案出现在文档的不同段落位置（如第 1 段、第 2 段等）的频率分布，根据出现次数计算出的概率作为先验分数，用于在预测时对不同段落的答案得分进行加权调整。","https:\u002F\u002Fgithub.com\u002Fluhua-rain\u002FMRC_Competition_Dureader\u002Fissues\u002F14",{"id":120,"question_zh":121,"answer_zh":122,"source_url":123},35718,"训练完成后，如何构建类似 Open Domain 的问答系统？","可以使用 Hugging Face Transformers 库中的 QuestionAnsweringPipeline。首先加载预训练模型和分词器，然后创建管道实例进行推理。示例代码如下：\nfrom transformers import AutoTokenizer, AutoModelForQuestionAnswering, QuestionAnsweringPipeline\n\nmodel_name = \"chinese_pretrain_mrc_roberta_wwm_ext_large\"\ntokenizer = AutoTokenizer.from_pretrained(f\"luhua\u002F{model_name}\")\nmodel = AutoModelForQuestionAnswering.from_pretrained(f\"luhua\u002F{model_name}\")\n\nqap = QuestionAnsweringPipeline(model=model, tokenizer=tokenizer)\nans = qap({'question': '我今天吃了什么', 'context': '今天天气很好，我出门散步，吃了一顿肯德基'})\nprint(ans)","https:\u002F\u002Fgithub.com\u002Fluhua-rain\u002FMRC_Competition_Dureader\u002Fissues\u002F39",{"id":125,"question_zh":126,"answer_zh":127,"source_url":128},35719,"squad_convert_examples_to_features 数据处理转换需要运行多久？","转换速度高度依赖硬件配置和数据量。根据经验数据：在 A100 单卡、5 万条数据、threads=12 的配置下，大约需要 2 小时。如果使用普通 CPU（如 threads=6），处理 30MB 左右的 JSON 文件可能需要 20 小时甚至更久，因为该过程主要消耗 CPU 资源且上下文较长。建议增加线程数或使用高性能 CPU\u002FGPU 环境加速。","https:\u002F\u002Fgithub.com\u002Fluhua-rain\u002FMRC_Competition_Dureader\u002Fissues\u002F32",{"id":130,"question_zh":131,"answer_zh":132,"source_url":133},35720,"在 Python 3 环境下运行 run.sh --para_extraction 报错'int 不能和 None 做比较'如何解决？","该错误与 Python 版本无直接关系，根本原因是 DuReader 的测试数据中缺少 'most_rel_para' 字段，导致相关变量为 None。解决方案是在代码中添加异常处理或空值检查，避免将整数与 None 进行比较。例如在比较前判断变量是否为 None，若为 None 则跳过或赋予默认值。","https:\u002F\u002Fgithub.com\u002Fluhua-rain\u002FMRC_Competition_Dureader\u002Fissues\u002F2",{"id":135,"question_zh":136,"answer_zh":137,"source_url":138},35721,"想要提交结果到官网应该选择哪个文件？","比赛期间官方要求提交的是 test 文件的预测结果。目前官方提交通道可能已关闭，建议用户在本地使用 test 数据集进行测试评估即可。Test 文件通常需要去官方竞赛页面下载。","https:\u002F\u002Fgithub.com\u002Fluhua-rain\u002FMRC_Competition_Dureader\u002Fissues\u002F11",{"id":140,"question_zh":141,"answer_zh":142,"source_url":143},35722,"答案抽取函数 find_best_answer_for_passage 中 while True 循环的逻辑是什么？","该循环用于处理预测出的起始位置（start）大于结束位置（end）的异常情况。逻辑是：如果 best_end \u003C best_start，则将当前概率最大的 start 和 end 位置的概率置为 0，重新寻找次大概率的位置，最多尝试 3 次。这是一种启发式策略，实验表明相比动态规划（DP）求全局最优，该方法能避免答案过短的问题，获得更高的 BLEU 值（约 45% vs 5%）。","https:\u002F\u002Fgithub.com\u002Fluhua-rain\u002FMRC_Competition_Dureader\u002Fissues\u002F5",{"id":145,"question_zh":146,"answer_zh":147,"source_url":148},35723,"README 中提到的网上收集的大量中文 MRC 数据是否公开分享？","由于涉及数据来源合规性等诸多问题，维护者决定不公开分享这部分自行收集的数据集。建议用户关注公开的中文 MRC 数据集（如 CMRC2018 等）或自行从合法来源爬取数据。","https:\u002F\u002Fgithub.com\u002Fluhua-rain\u002FMRC_Competition_Dureader\u002Fissues\u002F40",[]]