[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"similar-Ethan-yt--guwenbert":3,"tool-Ethan-yt--guwenbert":64},[4,17,27,35,48,56],{"id":5,"name":6,"github_repo":7,"description_zh":8,"stars":9,"difficulty_score":10,"last_commit_at":11,"category_tags":12,"status":16},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 真正成长为懂上",141543,2,"2026-04-06T11:32:54",[13,14,15],"开发框架","Agent","语言模型","ready",{"id":18,"name":19,"github_repo":20,"description_zh":21,"stars":22,"difficulty_score":23,"last_commit_at":24,"category_tags":25,"status":16},4487,"LLMs-from-scratch","rasbt\u002FLLMs-from-scratch","LLMs-from-scratch 是一个基于 PyTorch 的开源教育项目，旨在引导用户从零开始一步步构建一个类似 ChatGPT 的大型语言模型（LLM）。它不仅是同名技术著作的官方代码库，更提供了一套完整的实践方案，涵盖模型开发、预训练及微调的全过程。\n\n该项目主要解决了大模型领域“黑盒化”的学习痛点。许多开发者虽能调用现成模型，却难以深入理解其内部架构与训练机制。通过亲手编写每一行核心代码，用户能够透彻掌握 Transformer 架构、注意力机制等关键原理，从而真正理解大模型是如何“思考”的。此外，项目还包含了加载大型预训练权重进行微调的代码，帮助用户将理论知识延伸至实际应用。\n\nLLMs-from-scratch 特别适合希望深入底层原理的 AI 开发者、研究人员以及计算机专业的学生。对于不满足于仅使用 API，而是渴望探究模型构建细节的技术人员而言，这是极佳的学习资源。其独特的技术亮点在于“循序渐进”的教学设计：将复杂的系统工程拆解为清晰的步骤，配合详细的图表与示例，让构建一个虽小但功能完备的大模型变得触手可及。无论你是想夯实理论基础，还是为未来研发更大规模的模型做准备",90106,3,"2026-04-06T11:19:32",[15,26,14,13],"图像",{"id":28,"name":29,"github_repo":30,"description_zh":31,"stars":32,"difficulty_score":10,"last_commit_at":33,"category_tags":34,"status":16},3704,"NextChat","ChatGPTNextWeb\u002FNextChat","NextChat 是一款轻量且极速的 AI 助手，旨在为用户提供流畅、跨平台的大模型交互体验。它完美解决了用户在多设备间切换时难以保持对话连续性，以及面对众多 AI 模型不知如何统一管理的痛点。无论是日常办公、学习辅助还是创意激发，NextChat 都能让用户随时随地通过网页、iOS、Android、Windows、MacOS 或 Linux 端无缝接入智能服务。\n\n这款工具非常适合普通用户、学生、职场人士以及需要私有化部署的企业团队使用。对于开发者而言，它也提供了便捷的自托管方案，支持一键部署到 Vercel 或 Zeabur 等平台。\n\nNextChat 的核心亮点在于其广泛的模型兼容性，原生支持 Claude、DeepSeek、GPT-4 及 Gemini Pro 等主流大模型，让用户在一个界面即可自由切换不同 AI 能力。此外，它还率先支持 MCP（Model Context Protocol）协议，增强了上下文处理能力。针对企业用户，NextChat 提供专业版解决方案，具备品牌定制、细粒度权限控制、内部知识库整合及安全审计等功能，满足公司对数据隐私和个性化管理的高标准要求。",87618,"2026-04-05T07:20:52",[13,15],{"id":36,"name":37,"github_repo":38,"description_zh":39,"stars":40,"difficulty_score":10,"last_commit_at":41,"category_tags":42,"status":16},2268,"ML-For-Beginners","microsoft\u002FML-For-Beginners","ML-For-Beginners 是由微软推出的一套系统化机器学习入门课程，旨在帮助零基础用户轻松掌握经典机器学习知识。这套课程将学习路径规划为 12 周，包含 26 节精炼课程和 52 道配套测验，内容涵盖从基础概念到实际应用的完整流程，有效解决了初学者面对庞大知识体系时无从下手、缺乏结构化指导的痛点。\n\n无论是希望转型的开发者、需要补充算法背景的研究人员，还是对人工智能充满好奇的普通爱好者，都能从中受益。课程不仅提供了清晰的理论讲解，还强调动手实践，让用户在循序渐进中建立扎实的技能基础。其独特的亮点在于强大的多语言支持，通过自动化机制提供了包括简体中文在内的 50 多种语言版本，极大地降低了全球不同背景用户的学习门槛。此外，项目采用开源协作模式，社区活跃且内容持续更新，确保学习者能获取前沿且准确的技术资讯。如果你正寻找一条清晰、友好且专业的机器学习入门之路，ML-For-Beginners 将是理想的起点。",85013,"2026-04-06T11:09:19",[26,43,44,45,14,46,15,13,47],"数据工具","视频","插件","其他","音频",{"id":49,"name":50,"github_repo":51,"description_zh":52,"stars":53,"difficulty_score":23,"last_commit_at":54,"category_tags":55,"status":16},3128,"ragflow","infiniflow\u002Fragflow","RAGFlow 是一款领先的开源检索增强生成（RAG）引擎，旨在为大语言模型构建更精准、可靠的上下文层。它巧妙地将前沿的 RAG 技术与智能体（Agent）能力相结合，不仅支持从各类文档中高效提取知识，还能让模型基于这些知识进行逻辑推理和任务执行。\n\n在大模型应用中，幻觉问题和知识滞后是常见痛点。RAGFlow 通过深度解析复杂文档结构（如表格、图表及混合排版），显著提升了信息检索的准确度，从而有效减少模型“胡编乱造”的现象，确保回答既有据可依又具备时效性。其内置的智能体机制更进一步，使系统不仅能回答问题，还能自主规划步骤解决复杂问题。\n\n这款工具特别适合开发者、企业技术团队以及 AI 研究人员使用。无论是希望快速搭建私有知识库问答系统，还是致力于探索大模型在垂直领域落地的创新者，都能从中受益。RAGFlow 提供了可视化的工作流编排界面和灵活的 API 接口，既降低了非算法背景用户的上手门槛，也满足了专业开发者对系统深度定制的需求。作为基于 Apache 2.0 协议开源的项目，它正成为连接通用大模型与行业专有知识之间的重要桥梁。",77062,"2026-04-04T04:44:48",[14,26,13,15,46],{"id":57,"name":58,"github_repo":59,"description_zh":60,"stars":61,"difficulty_score":23,"last_commit_at":62,"category_tags":63,"status":16},519,"PaddleOCR","PaddlePaddle\u002FPaddleOCR","PaddleOCR 是一款基于百度飞桨框架开发的高性能开源光学字符识别工具包。它的核心能力是将图片、PDF 等文档中的文字提取出来，转换成计算机可读取的结构化数据，让机器真正“看懂”图文内容。\n\n面对海量纸质或电子文档，PaddleOCR 解决了人工录入效率低、数字化成本高的问题。尤其在人工智能领域，它扮演着连接图像与大型语言模型（LLM）的桥梁角色，能将视觉信息直接转化为文本输入，助力智能问答、文档分析等应用场景落地。\n\nPaddleOCR 适合开发者、算法研究人员以及有文档自动化需求的普通用户。其技术优势十分明显：不仅支持全球 100 多种语言的识别，还能在 Windows、Linux、macOS 等多个系统上运行，并灵活适配 CPU、GPU、NPU 等各类硬件。作为一个轻量级且社区活跃的开源项目，PaddleOCR 既能满足快速集成的需求，也能支撑前沿的视觉语言研究，是处理文字识别任务的理想选择。",74963,"2026-04-06T11:16:39",[15,26,13,46],{"id":65,"github_repo":66,"name":67,"description_en":68,"description_zh":69,"ai_summary_zh":69,"readme_en":70,"readme_zh":71,"quickstart_zh":72,"use_case_zh":73,"hero_image_url":74,"owner_login":75,"owner_name":76,"owner_avatar_url":77,"owner_bio":78,"owner_company":79,"owner_location":80,"owner_email":81,"owner_twitter":82,"owner_website":82,"owner_url":83,"languages":82,"stars":84,"forks":85,"last_commit_at":86,"license":87,"difficulty_score":88,"env_os":89,"env_gpu":90,"env_ram":91,"env_deps":92,"category_tags":97,"github_topics":98,"view_count":10,"oss_zip_url":82,"oss_zip_packed_at":82,"status":16,"created_at":102,"updated_at":103,"faqs":104,"releases":140},4397,"Ethan-yt\u002Fguwenbert","guwenbert","GuwenBERT: 古文预训练语言模型（古文BERT）  A Pre-trained Language Model for Classical Chinese (Literary Chinese)","GuwenBERT 是一款专为古文（文言文）打造的预训练语言模型，旨在填补当前自然语言处理领域在古典汉语资源上的空白。它基于海量的古代文献语料（涵盖近 1.6 万本古籍、17 亿字符）训练而成，能够有效理解和分析艰深的文言文本。\n\n该工具主要解决了现有主流模型难以精准处理古文断句、标点及命名实体识别（如人名、地名、书名标注）等痛点。实验表明，在古文任务中，GuwenBERT 的表现显著优于通用的中文 RoBERTa 模型，尤其在标注数据稀缺的小样本场景下优势明显。使用它能大幅减少繁琐的数据清洗和增强工作，帮助开发者用更简单的模型架构获得更高的准确率。\n\nGuwenBERT 特别适合从事数字人文研究的学者、开发古文处理应用的工程师以及需要对古籍进行自动化整理的机构使用。其核心技术亮点在于采用了“继续训练”策略，巧妙地将现代汉语 RoBERTa 的语言特征迁移至古代汉语，并构建了包含 2.3 万个高频古文字符的专用词表，从而实现了古今语言特征的深度融合。目前，该模型已接入 Huggingface 平台，支持开发者通过几行代码轻松调用，助力中华优秀古籍的数字化传承与研究。","[**中文说明**](https:\u002F\u002Fgithub.com\u002Fethan-yt\u002Fguwenbert\u002F) | [English](https:\u002F\u002Fgithub.com\u002Fethan-yt\u002Fguwenbert\u002Fblob\u002Fmaster\u002FREADME_EN.md)\n\n\u003Cp align=\"center\">\n    \u003Cbr>\n    \u003Cimg src=\"https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002FEthan-yt_guwenbert_readme_945562da5538.png\" width=\"500\"\u002F>\n    \u003Cbr>\n\u003C\u002Fp>\n\u003Cp align=\"center\">\n\u003Ca href=\"https:\u002F\u002Fgithub.com\u002Fethan-yt\u002Fguwenbert\u002Fissues\">\u003Cimg alt=\"GitHub issues\" src=\"https:\u002F\u002Fimg.shields.io\u002Fgithub\u002Fissues\u002Fethan-yt\u002Fguwenbert\">\u003C\u002Fa>\n\u003Ca href=\"https:\u002F\u002Fgithub.com\u002Fethan-yt\u002Fguwenbert\u002Fstargazers\">\u003Cimg alt=\"GitHub stars\" src=\"https:\u002F\u002Fimg.shields.io\u002Fgithub\u002Fstars\u002Fethan-yt\u002Fguwenbert\">\u003C\u002Fa>\n\u003Ca href=\"https:\u002F\u002Fgithub.com\u002FEthan-yt\u002Fguwenbert\u002Fblob\u002Fmain\u002FLICENSE\">\u003Cimg alt=\"GitHub license\" src=\"https:\u002F\u002Fimg.shields.io\u002Fgithub\u002Flicense\u002Fethan-yt\u002Fguwenbert\">\u003C\u002Fa>\n\u003C\u002Fp>\n\n`GuwenBERT`是一个基于大量古文语料的`RoBERTa`模型。\n\n在自然语言处理领域中，预训练语言模型（Pre-trained Language Models）已成为非常重要的基础技术。\n目前互联网上存在大量的现代汉语BERT模型可供下载，但是缺少古文的语言模型。\n为了进一步促进古文研究和自然语言处理的结合，我们发布了古文预训练模型`GuwenBERT`。\n\n对于古文的常见任务：断句，标点，专名标注，目前通常采用序列标注模型。这类模型非常依赖预训练的词向量或者BERT，所以一个好的语言模型可以大幅提高标注效果。经过实验，在古文NER任务中我们的BERT比目前最流行的中文RoBERTa效果**提升6.3%**，仅仅300步就可以达到中文RoBERTa的最终水平，特别适合**标注语料不足的小数据集**。使用我们的模型也可以**减少数据清洗，数据增强，引入字典等繁琐工序**，在评测中我们仅仅用了一个BERT+CRF的模型就可以达到第二名。\n\n* `GuwenBERT`基于`殆知阁古代文献`语料训练，其中包含15,694本古文书籍，字符数1.7B。所有繁体字均经过简体转换处理。\n\n* `GuwenBERT`的词表是基于古文语料构建的，取其中高频字符，大小为23,292。\n\n* 基于继续训练技术（Continue Training），`GuwenBERT`结合现代汉语RoBERTa权重和大量古文语料，将现代汉语的部分语言特征向古代汉语迁移以提升表现。\n\n## 相关项目\n\n* [CCLUE](https:\u002F\u002Fcclue.top): 古文语言理解测评基准\n* [GuwenModels](https:\u002F\u002Fgithub.com\u002FEthan-yt\u002Fguwen-models): 古文自然语言处理模型合集, 收录互联网上的古文相关模型及资源.\n\n\n## 在线体验\n\n### 古文预训练语言模型\n\n\u003Cp align=\"center\">\n\u003Ca href=\"https:\u002F\u002Fhuggingface.co\u002Fethanyt\u002Fguwenbert-base\">\n    \u003Cimg width=\"601\" alt=\"image\" src=\"https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002FEthan-yt_guwenbert_readme_8d6769b1e6c9.png\">\u003C\u002Fa>\n\u003C\u002Fp>\n\n点击图片或[这里](https:\u002F\u002Fhuggingface.co\u002Fethanyt\u002Fguwenbert-base)跳转。第一次计算可能需要加载模型，请多等一会。\n\n### 古文自然语言处理流水线\n\n\u003Cp align=\"center\">\n\u003Ca href=\"https:\u002F\u002Fcclue.top\u002Fguwen-models.html\">\u003Cimg width=\"888\" alt=\"image\" src=\"https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002FEthan-yt_guwenbert_readme_d445fb91e78f.png\">\u003C\u002Fa>\n\u003C\u002Fp>\n\n点击图片或[这里](https:\u002F\u002Fcclue.top\u002Fguwen-models.html)跳转。\n\n\n## 新闻\n2021\u002F7\u002F25 和下游任务相关的模型、代码已经上传，欢迎star：https:\u002F\u002Fgithub.com\u002FEthan-yt\u002Fguwen-models\n\n2020\u002F10\u002F31 CCL2020会议分享：基于继续训练的古汉语语言模型 [slides](.\u002Fassets\u002F基于继续训练的古汉语语言模型.pdf)\n\n2020\u002F10\u002F25 我们的模型已接入[Huggingface Transformers](https:\u002F\u002Fgithub.com\u002Fhuggingface\u002Ftransformers)，查看[使用说明](#使用说明)\n\n2020\u002F9\u002F29 我们的模型获得2020年“古联杯”古籍文献命名实体识别评测大赛 **二等奖** \n\n\n## 使用说明\n### Huggingface Transformers\n\n\n依托于[Huggingface Transformers](https:\u002F\u002Fgithub.com\u002Fhuggingface\u002Ftransformers)，可轻松调用以下模型\n* **`ethanyt\u002Fguwenbert-base`**：12-layer, 768-hidden, 12-heads\n* **`ethanyt\u002Fguwenbert-large`**：24-layer, 1024-hidden, 16-heads\n\n代码如下\n```python\nfrom transformers import AutoTokenizer, AutoModel\n\ntokenizer = AutoTokenizer.from_pretrained(\"ethanyt\u002Fguwenbert-base\")\n\nmodel = AutoModel.from_pretrained(\"ethanyt\u002Fguwenbert-base\")\n```\n\nNote: 由于本工作使用中文语料，RoBERTa原作Tokenizer是基于BPE算法的，对中文不太友好，所以这里使用BERT的分词器。这个配置已经写入`config.json`，所以直接使用`AutoTokenizer`会自动加载`BertTokenizer`, `AutoModel`会自动加载`RobertaModel`。\n\n## 模型下载\n\n> 我们提供的模型是PyTorch版本，如果需要tensorflow版本请自行通过[Transformers](https:\u002F\u002Fgithub.com\u002Fhuggingface\u002Ftransformers)提供的转换脚本进行转换。\n\n### 直接下载\n\n通过huggingface官网直接下载：\n\nhttps:\u002F\u002Fhuggingface.co\u002Fethanyt\u002Fguwenbert-base\n\nhttps:\u002F\u002Fhuggingface.co\u002Fethanyt\u002Fguwenbert-large\n\n拉到最下方点击\"List all files in model\" → 在弹框中下载每个文件。\n\n### 镜像\n\n\n中国大陆境内用户如果无法直接下载huggingface hub的模型，可以使用以下镜像：\n\n| 模型名称 | 大小 | 百度网盘 |\n| :-----  | :-- | :------ |\n| guwenbert-base | 235.2M | [链接](https:\u002F\u002Fpan.baidu.com\u002Fs\u002F1dw_08p7CVsz0jVj4jd58lQ) 提取码: 4jng |\n| guwenbert-large | 738.1M | [链接](https:\u002F\u002Fpan.baidu.com\u002Fs\u002F1TL9mBIlIv2rSvp61xCkeJQ) 提取码: m5sz |\n\n\n## 评测结果\n\n### 2020年“古联杯”古籍文献命名实体识别评测大赛-第二名\n\n本评测任务由古联（北京）数字传媒科技有限公司举办。古籍文献的整理和分析对数字人文研究和中华文化传承具有重要意义。命名实体识别在古籍文献处理过程中极为重要，是其他工作得以顺利开展的关键。该项工作会影响到古文自动标点、文白翻译等一系列自动化处理工作，因此，能够从古籍文献中自动识别出专名信息是一项非常重要且有价值的工作。\n\n具体任务为：根据给定的古籍篇章，将候选篇章中的命名实体提取出来，并且按照既定类别进行归并。提取出来的实体名称大致分为两类：书名和其他专名(含人名、地名、朝代名、民族名等)。\n\n数据集方面：分为训练数据和评测数据，涉及经、史、子、集等1900多篇古籍文本。训练数据为带有标签的文本文件，共计1063291字符（计空格），含11068组书名，10040组专名。\n\n| 实体类型    | Precision   | Recall | F1    |\n|:----------:|:-----------:|:------:|:-----:|\n| 书名  | 77.50       | 73.73  | 75.57 |\n| 其他专名 | 85.85       | 89.32  | 87.55 |\n| 平均值 | 83.88       | 85.39  | 84.63 |\n\n\n\n## FAQ\n\n有任何问题可以直接在Issue区留言，或者直接邮件联系我。这里会总结一些常见问题。\n\nQ: **“古联杯”评测数据集可以公开吗？**\n\nA: 和主办方通过邮件询问了一下，主办方表示不能公开，如有需要可以联系zhucuiping@ancientbooks.cn\n\nQ: **预训练时，阶段1和阶段2使用的是相同的语料吗？阶段1训练时是否掺入了现代汉语的语料？**\n\nA: 两个阶段的语料、任务相同，唯一不同的只是第一阶段冻结了Transformer层，以便学习embeddings\n\n## 使用建议\n* 初始学习率是非常重要的一个参数，需要根据目标任务进行调整。\n* 对于需要用到CRF的模型，请将CRF层的学习率调大，一般为RoBERTa的100倍以上\n\n## 预训练过程\n\n> Note: 本节介绍的是预训练的过程，微调不要参考本节配置\n\n模型首先由`hfl\u002Fchinese-roberta-wwm-ext`初始化，然后按照以下两步训练：第一步，模型只更新Embedding层；第二步，所有参数共同更新。模型在 4 块 V100 上训练 120K 步(第一步 20K, 第二步 100K)。\n\n\u003Cp align=\"center\">\n    \u003Cbr>\n    \u003Cimg src=\"https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002FEthan-yt_guwenbert_readme_f4a5c575df31.png\"\u002F>\n    \u003Cbr>\n\u003C\u002Fp>\n\n详细的超参数设置如下：\n\n| Name | Value |\n|:---------|:----|\n|Batch size |2,048|\n|Seq Length | 512 |\n|Optimizer| Adam |\n|Learning Rate| 2e-4(base), 1e-4 (large) |\n|Adam-eps | 1e-6 |\n|Weight Decay | 0.01|\n|Warmup | 5K steps, linear decay of learning rate after.| \n\n## 引用\n如果本文中的内容对你的研究工作有所帮助，欢迎在论文中引用本工作。由于论文尚未发表，可以暂时以脚注的形式\n\n```tex\n\\footnote{GuwenBERT \\url{https:\u002F\u002Fgithub.com\u002Fethan-yt\u002Fguwenbert}}.\n```\n\n## 免责声明\n报告中所呈现的实验结果仅表明在特定数据集和超参组合下的表现，并不能代表各个模型的本质。\n实验结果可能因随机数种子，计算设备而发生改变。\n**该项目中的内容仅供技术研究参考，不作为任何结论性依据。使用者可以在许可证范围内任意使用该模型，但我们不对因使用该项目内容造成的直接或间接损失负责。**\n\n## 感谢\n\n本工作是基于[中文BERT-wwm](https:\u002F\u002Fgithub.com\u002Fymcui\u002FChinese-BERT-wwm\u002Fblob\u002Fmaster\u002FREADME.md)继续训练的。\n","[**中文说明**](https:\u002F\u002Fgithub.com\u002Fethan-yt\u002Fguwenbert\u002F) | [English](https:\u002F\u002Fgithub.com\u002Fethan-yt\u002Fguwenbert\u002Fblob\u002Fmaster\u002FREADME_EN.md)\n\n\u003Cp align=\"center\">\n    \u003Cbr>\n    \u003Cimg src=\"https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002FEthan-yt_guwenbert_readme_945562da5538.png\" width=\"500\"\u002F>\n    \u003Cbr>\n\u003C\u002Fp>\n\u003Cp align=\"center\">\n\u003Ca href=\"https:\u002F\u002Fgithub.com\u002Fethan-yt\u002Fguwenbert\u002Fissues\">\u003Cimg alt=\"GitHub issues\" src=\"https:\u002F\u002Fimg.shields.io\u002Fgithub\u002Fissues\u002Fethan-yt\u002Fguwenbert\">\u003C\u002Fa>\n\u003Ca href=\"https:\u002F\u002Fgithub.com\u002Fethan-yt\u002Fguwenbert\u002Fstargazers\">\u003Cimg alt=\"GitHub stars\" src=\"https:\u002F\u002Fimg.shields.io\u002Fgithub\u002Fstars\u002Fethan-yt\u002Fguwenbert\">\u003C\u002Fa>\n\u003Ca href=\"https:\u002F\u002Fgithub.com\u002FEthan-yt\u002Fguwenbert\u002Fblob\u002Fmain\u002FLICENSE\">\u003Cimg alt=\"GitHub license\" src=\"https:\u002F\u002Fimg.shields.io\u002Fgithub\u002Flicense\u002Fethan-yt\u002Fguwenbert\">\u003C\u002Fa>\n\u003C\u002Fp>\n\n`GuwenBERT`是一个基于大量古文语料的`RoBERTa`模型。\n\n在自然语言处理领域中，预训练语言模型（Pre-trained Language Models）已成为非常重要的基础技术。\n目前互联网上存在大量的现代汉语BERT模型可供下载，但是缺少古文的语言模型。\n为了进一步促进古文研究和自然语言处理的结合，我们发布了古文预训练模型`GuwenBERT`。\n\n对于古文的常见任务：断句，标点，专名标注，目前通常采用序列标注模型。这类模型非常依赖预训练的词向量或者BERT，所以一个好的语言模型可以大幅提高标注效果。经过实验，在古文NER任务中我们的BERT比目前最流行的中文RoBERTa效果**提升6.3%**，仅仅300步就可以达到中文RoBERTa的最终水平，特别适合**标注语料不足的小数据集**。使用我们的模型也可以**减少数据清洗，数据增强，引入字典等繁琐工序**，在评测中我们仅仅用了一个BERT+CRF的模型就可以达到第二名。\n\n* `GuwenBERT`基于`殆知阁古代文献`语料训练，其中包含15,694本古文书籍，字符数1.7B。所有繁体字均经过简体转换处理。\n\n* `GuwenBERT`的词表是基于古文语料构建的，取其中高频字符，大小为23,292。\n\n* 基于继续训练技术（Continue Training），`GuwenBERT`结合现代汉语RoBERTa权重和大量古文语料，将现代汉语的部分语言特征向古代汉语迁移以提升表现。\n\n## 相关项目\n\n* [CCLUE](https:\u002F\u002Fcclue.top): 古文语言理解测评基准\n* [GuwenModels](https:\u002F\u002Fgithub.com\u002FEthan-yt\u002Fguwen-models): 古文自然语言处理模型合集, 收录互联网上的古文相关模型及资源.\n\n\n## 在线体验\n\n### 古文预训练语言模型\n\n\u003Cp align=\"center\">\n\u003Ca href=\"https:\u002F\u002Fhuggingface.co\u002Fethanyt\u002Fguwenbert-base\">\n    \u003Cimg width=\"601\" alt=\"image\" src=\"https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002FEthan-yt_guwenbert_readme_8d6769b1e6c9.png\">\u003C\u002Fa>\n\u003C\u002Fp>\n\n点击图片或[这里](https:\u002F\u002Fhuggingface.co\u002Fethanyt\u002Fguwenbert-base)跳转。第一次计算可能需要加载模型，请多等一会。\n\n### 古文自然语言处理流水线\n\n\u003Cp align=\"center\">\n\u003Ca href=\"https:\u002F\u002Fcclue.top\u002Fguwen-models.html\">\u003Cimg width=\"888\" alt=\"image\" src=\"https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002FEthan-yt_guwenbert_readme_d445fb91e78f.png\">\u003C\u002Fa>\n\u003C\u002Fp>\n\n点击图片或[这里](https:\u002F\u002Fcclue.top\u002Fguwen-models.html)跳转。\n\n\n## 新闻\n2021\u002F7\u002F25 和下游任务相关的模型、代码已经上传，欢迎star：https:\u002F\u002Fgithub.com\u002FEthan-yt\u002Fguwen-models\n\n2020\u002F10\u002F31 CCL2020会议分享：基于继续训练的古汉语语言模型 [slides](.\u002Fassets\u002F基于继续训练的古汉语语言模型.pdf)\n\n2020\u002F10\u002F25 我们的模型已接入[Huggingface Transformers](https:\u002F\u002Fgithub.com\u002Fhuggingface\u002Ftransformers)，查看[使用说明](#使用说明)\n\n2020\u002F9\u002F29 我们的模型获得2020年“古联杯”古籍文献命名实体识别评测大赛 **二等奖** \n\n\n## 使用说明\n### Huggingface Transformers\n\n\n依托于[Huggingface Transformers](https:\u002F\u002Fgithub.com\u002Fhuggingface\u002Ftransformers)，可轻松调用以下模型\n* **`ethanyt\u002Fguwenbert-base`**：12-layer, 768-hidden, 12-heads\n* **`ethanyt\u002Fguwenbert-large`**：24-layer, 1024-hidden, 16-heads\n\n代码如下\n```python\nfrom transformers import AutoTokenizer, AutoModel\n\ntokenizer = AutoTokenizer.from_pretrained(\"ethanyt\u002Fguwenbert-base\")\n\nmodel = AutoModel.from_pretrained(\"ethanyt\u002Fguwenbert-base\")\n```\n\nNote: 由于本工作使用中文语料，RoBERTa原作Tokenizer是基于BPE算法的，对中文不太友好，所以这里使用BERT的分词器。这个配置已经写入`config.json`，所以直接使用`AutoTokenizer`会自动加载`BertTokenizer`, `AutoModel`会自动加载`RobertaModel`。\n\n## 模型下载\n\n> 我们提供的模型是PyTorch版本，如果需要tensorflow版本请自行通过[Transformers](https:\u002F\u002Fgithub.com\u002Fhuggingface\u002Ftransformers)提供的转换脚本进行转换。\n\n### 直接下载\n\n通过huggingface官网直接下载：\n\nhttps:\u002F\u002Fhuggingface.co\u002Fethanyt\u002Fguwenbert-base\n\nhttps:\u002F\u002Fhuggingface.co\u002Fethanyt\u002Fguwenbert-large\n\n拉到最下方点击\"List all files in model\" → 在弹框中下载每个文件。\n\n### 镜像\n\n\n中国大陆境内用户如果无法直接下载huggingface hub的模型，可以使用以下镜像：\n\n| 模型名称 | 大小 | 百度网盘 |\n| :-----  | :-- | :------ |\n| guwenbert-base | 235.2M | [链接](https:\u002F\u002Fpan.baidu.com\u002Fs\u002F1dw_08p7CVsz0jVj4jd58lQ) 提取码: 4jng |\n| guwenbert-large | 738.1M | [链接](https:\u002F\u002Fpan.baidu.com\u002Fs\u002F1TL9mBIlIv2rSvp61xCkeJQ) 提取码: m5sz |\n\n\n## 评测结果\n\n### 2020年“古联杯”古籍文献命名实体识别评测大赛-第二名\n\n本评测任务由古联（北京）数字传媒科技有限公司举办。古籍文献的整理和分析对数字人文研究和中华文化传承具有重要意义。命名实体识别在古籍文献处理过程中极为重要，是其他工作得以顺利开展的关键。该项工作会影响到古文自动标点、文白翻译等一系列自动化处理工作，因此，能够从古籍文献中自动识别出专名信息是一项非常重要且有价值的工作。\n\n具体任务为：根据给定的古籍篇章，将候选篇章中的命名实体提取出来，并且按照既定类别进行归并。提取出来的实体名称大致分为两类：书名和其他专名(含人名、地名、朝代名、民族名等)。\n\n数据集方面：分为训练数据和评测数据，涉及经、史、子、集等1900多篇古籍文本。训练数据为带有标签的文本文件，共计1063291字符（计空格），含11068组书名，10040组专名。\n\n| 实体类型    | Precision   | Recall | F1    |\n|:----------:|:-----------:|:------:|:-----:|\n| 书名  | 77.50       | 73.73  | 75.57 |\n| 其他专名 | 85.85       | 89.32  | 87.55 |\n| 平均值 | 83.88       | 85.39  | 84.63 |\n\n\n\n## FAQ\n\n有任何问题可以直接在Issue区留言，或者直接邮件联系我。这里会总结一些常见问题。\n\nQ: **“古联杯”评测数据集可以公开吗？**\n\nA: 和主办方通过邮件询问了一下，主办方表示不能公开，如有需要可以联系zhucuiping@ancientbooks.cn\n\nQ: **预训练时，阶段1和阶段2使用的是相同的语料吗？阶段1训练时是否掺入了现代汉语的语料？**\n\nA: 两个阶段的语料、任务相同，唯一不同的只是第一阶段冻结了Transformer层，以便学习embeddings\n\n## 使用建议\n* 初始学习率是非常重要的一个参数，需要根据目标任务进行调整。\n* 对于需要用到CRF的模型，请将CRF层的学习率调大，一般为RoBERTa的100倍以上\n\n## 预训练过程\n\n> Note: 本节介绍的是预训练的过程，微调不要参考本节配置\n\n模型首先由`hfl\u002Fchinese-roberta-wwm-ext`初始化，然后按照以下两步训练：第一步，模型只更新Embedding层；第二步，所有参数共同更新。模型在 4 块 V100 上训练 120K 步(第一步 20K, 第二步 100K)。\n\n\u003Cp align=\"center\">\n    \u003Cbr>\n    \u003Cimg src=\"https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002FEthan-yt_guwenbert_readme_f4a5c575df31.png\"\u002F>\n    \u003Cbr>\n\u003C\u002Fp>\n\n详细的超参数设置如下：\n\n| Name | Value |\n|:---------|:----|\n|Batch size |2,048|\n|Seq Length | 512 |\n|Optimizer| Adam |\n|Learning Rate| 2e-4(base), 1e-4 (large) |\n|Adam-eps | 1e-6 |\n|Weight Decay | 0.01|\n|Warmup | 5K steps, linear decay of learning rate after.| \n\n## 引用\n如果本文中的内容对你的研究工作有所帮助，欢迎在论文中引用本工作。由于论文尚未发表，可以暂时以脚注的形式\n\n```tex\n\\footnote{GuwenBERT \\url{https:\u002F\u002Fgithub.com\u002Fethan-yt\u002Fguwenbert}}.\n```\n\n## 免责声明\n报告中所呈现的实验结果仅表明在特定数据集和超参组合下的表现，并不能代表各个模型的本质。\n实验结果可能因随机数种子，计算设备而发生改变。\n**该项目中的内容仅供技术研究参考，不作为任何结论性依据。使用者可以在许可证范围内任意使用该模型，但我们不对因使用该项目内容造成的直接或间接损失负责。**\n\n## 感谢\n\n本工作是基于[中文BERT-wwm](https:\u002F\u002Fgithub.com\u002Fymcui\u002FChinese-BERT-wwm\u002Fblob\u002Fmaster\u002FREADME.md)继续训练的。","# GuwenBERT 快速上手指南\n\nGuwenBERT 是一个基于大量古文语料训练的 RoBERTa 模型，专为古文断句、标点、命名实体识别（NER）等任务优化。相比通用中文模型，它在小样本古文任务上表现更佳。\n\n## 环境准备\n\n*   **系统要求**：Linux, macOS, Windows\n*   **Python 版本**：3.6 及以上\n*   **核心依赖**：\n    *   `transformers` (推荐 4.0+)\n    *   `torch` (PyTorch)\n    *   `sentencepiece` (可选，视具体分词需求)\n\n## 安装步骤\n\n1.  **安装基础深度学习框架**\n    请根据你的 CUDA 版本安装 PyTorch，或安装 CPU 版本：\n    ```bash\n    pip install torch torchvision torchaudio\n    # 或者访问 https:\u002F\u002Fpytorch.org\u002F 获取特定环境的安装命令\n    ```\n\n2.  **安装 Transformers 库**\n    ```bash\n    pip install transformers\n    ```\n\n3.  **配置国内镜像加速（推荐）**\n    由于模型托管在 Hugging Face，国内下载可能较慢。建议设置镜像源或使用离线下载。\n    \n    *方案 A：设置环境变量使用镜像*\n    ```bash\n    export HF_ENDPOINT=https:\u002F\u002Fhf-mirror.com\n    ```\n    *(注：请在运行 Python 脚本前执行此命令)*\n\n    *方案 B：手动下载离线模型*\n    如果网络受限，可从百度网盘下载模型文件并解压到本地目录：\n    *   **guwenbert-base**: [下载链接](https:\u002F\u002Fpan.baidu.com\u002Fs\u002F1dw_08p7CVsz0jVj4jd58lQ) (提取码: 4jng)\n    *   **guwenbert-large**: [下载链接](https:\u002F\u002Fpan.baidu.com\u002Fs\u002F1TL9mBIlIv2rSvp61xCkeJQ) (提取码: m5sz)\n\n## 基本使用\n\nGuwenBERT 已接入 Hugging Face Transformers 库，可直接通过模型名称加载。\n\n### 1. 在线加载（需网络连接）\n\n```python\nfrom transformers import AutoTokenizer, AutoModel\n\n# 加载分词器和模型 (base 版本)\ntokenizer = AutoTokenizer.from_pretrained(\"ethanyt\u002Fguwenbert-base\")\nmodel = AutoModel.from_pretrained(\"ethanyt\u002Fguwenbert-base\")\n\n# 如果需要 large 版本，将上述字符串改为 \"ethanyt\u002Fguwenbert-large\"\n\n# 简单测试\ntext = \"学而时习之不亦说乎\"\ninputs = tokenizer(text, return_tensors=\"pt\")\noutputs = model(**inputs)\n\nprint(outputs.last_hidden_state.shape)\n```\n\n> **注意**：虽然底层架构是 RoBERTa，但由于训练语料为中文，配置中已指定使用 `BertTokenizer`。直接使用 `AutoTokenizer` 即可自动适配，无需额外指定。\n\n### 2. 离线加载（推荐国内用户）\n\n如果你已通过百度网盘下载了模型文件，假设解压后的文件夹路径为 `.\u002Fguwenbert-base`：\n\n```python\nfrom transformers import AutoTokenizer, AutoModel\n\n# 指向本地模型文件夹路径\nmodel_path = \".\u002Fguwenbert-base\"\n\ntokenizer = AutoTokenizer.from_pretrained(model_path)\nmodel = AutoModel.from_pretrained(model_path)\n\ntext = \"有朋自远方来不亦乐乎\"\ninputs = tokenizer(text, return_tensors=\"pt\")\noutputs = model(**inputs)\n```\n\n### 微调建议\n*   **学习率**：初始学习率对效果影响较大，建议根据下游任务调整（Base 版推荐 2e-4，Large 版推荐 1e-4）。\n*   **CRF 层**：若下游任务包含 CRF 层，建议将 CRF 层的学习率设置为预训练模型学习率的 100 倍以上。","某高校数字人文团队正致力于构建一个自动化古籍整理系统，需要从海量未标点的《二十四史》文本中精准提取人名、地名及书名等实体信息。\n\n### 没有 guwenbert 时\n- **模型理解偏差大**：直接使用现代汉语 BERT 模型处理古文，因词汇和语法差异巨大，导致对“之乎者也”等虚词及古今异义词的语义捕捉严重失真。\n- **数据依赖成本高**：为了弥补预训练知识的缺失，团队必须投入大量人力进行繁琐的数据清洗、人工构造增强数据，并强行引入外部字典来辅助识别。\n- **小样本效果差**：在标注语料不足的特定朝代文献（如冷门史书）上，模型收敛极慢且准确率低下，难以达到实用标准。\n- **开发周期漫长**：需要反复调整特征工程和网络结构才能勉强提升效果，研发效率极低。\n\n### 使用 guwenbert 后\n- **语义理解精准**：guwenbert 基于 17 亿字符的古文语料预训练，天然契合古文语法特征，能准确区分古今词义，显著提升上下文理解能力。\n- **流程大幅简化**：凭借强大的预训练表征，团队不再需要复杂的数据增强或外挂字典，仅用简单的 BERT+CRF 架构即可实现高精度识别。\n- **小数据快速收敛**：在少量标注数据下，guwenbert 仅需 300 步训练即可达到通用中文 RoBERTa 的最终水平，NER 任务效果提升 6.3%。\n- **落地效率倍增**：开发人员可专注于业务逻辑而非调参，快速将模型部署至生产环境，成功在“古联杯”评测中斩获二等奖。\n\nguwenbert 通过填补古文预训练模型的空白，让古籍智能化处理从“手工雕琢”迈向了“高效自动”的新阶段。","https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002FEthan-yt_guwenbert_945562da.png","Ethan-yt","Ethan","https:\u002F\u002Foss.gittoolsai.com\u002Favatars\u002FEthan-yt_8aad95d3.jpg","Natural Language Processing, Deep Learning, Information Retrieval, Full-stack Development.","Beijing Institute of Technology","Beijing, China","yantanbj@kanyun.com",null,"https:\u002F\u002Fgithub.com\u002FEthan-yt",561,40,"2026-04-02T09:51:47","Apache-2.0",1,"未说明","预训练阶段明确需要 4 块 NVIDIA V100 GPU；微调\u002F推理阶段未明确具体型号，但需支持 PyTorch 和 Transformers 的 CUDA 环境","未说明（建议根据模型大小配置：Base 版约需 2-4GB，Large 版约需 8-16GB+）",{"notes":93,"python":89,"dependencies":94},"1. 该工具基于 Huggingface Transformers 库，安装 transformers 后会自动处理大部分依赖。2. 提供的模型为 PyTorch 版本，如需 TensorFlow 版本需自行转换。3. 预训练过程使用了 4 块 V100 显卡，普通用户主要用于微调或推理，显存需求取决于所选模型（Base 或 Large）。4. 中国大陆用户若无法访问 Huggingface，可使用提供的百度网盘镜像下载模型文件。5. 模型词表大小为 23,292，针对古文优化。",[95,96],"transformers","torch",[15],[99,100,101,67,95],"bert","classical-chinese","literary-chinese","2026-03-27T02:49:30.150509","2026-04-06T21:12:53.542488",[105,110,115,120,125,130,135],{"id":106,"question_zh":107,"answer_zh":108,"source_url":109},20065,"如何从 Hugging Face 加载并使用 guwenbert 模型进行推理？","可以使用 transformers 库的 Auto 类加载模型和分词器。示例代码如下：\nfrom transformers import AutoTokenizer, AutoModelForMaskedLM\nimport torch, os\n\npath_1 = 'guwenbert-base'\nos.environ[\"CUDA_VISIBLE_DEVICES\"] = '2'\nDEVICE = torch.device(\"cuda:0\" if torch.cuda.is_available() else \"cpu\")\n\ntokenizer = AutoTokenizer.from_pretrained(path_1)\nmodel = AutoModelForMaskedLM.from_pretrained(path_1).to(DEVICE)\n注意：如果输入文本过长导致报错，建议将文本分两次输入处理。","https:\u002F\u002Fgithub.com\u002FEthan-yt\u002Fguwenbert\u002Fissues\u002F17",{"id":111,"question_zh":112,"answer_zh":113,"source_url":114},20066,"在使用 guwenbert 处理两个句子（如问答对）时，应该如何拼接它们？","可以直接使用 [SEP] 标记将两个句子分开。不需要使用 type embedding（段嵌入），因为根据 RoBERTa 论文，type embedding 对于预训练语言模型并非必要组件。你可以直接将 passage-query 对拼接在一起。","https:\u002F\u002Fgithub.com\u002FEthan-yt\u002Fguwenbert\u002Fissues\u002F18",{"id":116,"question_zh":117,"answer_zh":118,"source_url":119},20067,"为什么 guwenbert 的 checkpoint 文件中缺少 cls\u002Fpredictions 等 MLM 相关的层权重？","这是因为发布的权重文件对应的模型架构配置（config.json）使用的是 RobertaForMaskedLM，但实际保存时可能只保留了 backbone 部分或特定任务头。维护者确认：只有使用 RobertaForMaskedLM 架构时才包含 lm head（即 cls\u002Fpredictions 层）。如果您需要这些层进行 MLM 微调，请确保加载时使用的模型类正确对应，或者检查 config.json 中的模型类型设置。","https:\u002F\u002Fgithub.com\u002FEthan-yt\u002Fguwenbert\u002Fissues\u002F7",{"id":121,"question_zh":122,"answer_zh":123,"source_url":124},20068,"输入序列中的 mask 值格式应该是怎样的？","Mask 值用于标识特殊令牌（如 [CLS], [SEP], [PAD]）。可以通过 tokenizer 的 get_special_tokens_mask 方法获取。例如，对于输入 [0, 55, 34, 76, 89, 1, 1, 1, 1]（假设 1 是 padding id），调用 tokenizer.get_special_tokens_mask(..., already_has_special_tokens=True) 会返回 [1, 0, 0, 0, 0, 1, 1, 1, 1]，其中 1 表示该位置是特殊令牌或 padding，0 表示普通 token。","https:\u002F\u002Fgithub.com\u002FEthan-yt\u002Fguwenbert\u002Fissues\u002F16",{"id":126,"question_zh":127,"answer_zh":128,"source_url":129},20069,"运行模型时报错 'CUDA error: CUBLAS_STATUS_ALLOC_FAILED' 或 'index out of bounds' 怎么办？","这通常与显存不足或输入数据长度有关。建议尝试以下步骤：\n1. 禁用 CUDA，在 CPU 上运行代码以获取更详细的报错信息（例如使用 CUDA_LAUNCH_BLOCKING=1 python your_script.py）。\n2. 减小 batch_size。\n3. 检查输入数据是否过长，古文模型对长度敏感，过长的句子可能导致索引越界。\n4. 如果问题依旧，建议在 Colab 上创建最小复现样例以便排查。","https:\u002F\u002Fgithub.com\u002FEthan-yt\u002Fguwenbert\u002Fissues\u002F11",{"id":131,"question_zh":132,"answer_zh":133,"source_url":134},20070,"guwenbert 是基于 BERT 还是 RoBERTa 架构？为什么配置中 model_type 有时显示不同？","guwenbert 基于 RoBERTa 架构。虽然中文 BERT-wwm 等模型通常使用 BertModel 载入且 config 中 model_type 为 bert，但 guwenbert 去除了 RoBERTa 论文中指出的非必要组件（如 next sentence prediction 和 type embeddings）。Hugging Face 的实现保留 type embedding 仅为兼容性，实际使用时可以直接拼接句子而无需 type embedding。","https:\u002F\u002Fgithub.com\u002FEthan-yt\u002Fguwenbert\u002Fissues\u002F14",{"id":136,"question_zh":137,"answer_zh":138,"source_url":139},20071,"项目未来有哪些工作计划或下游任务支持？","项目未来的工作重点在于整理规范的下游任务数据集，包括断句任务、加注标点任务和书名识别任务等 NLU 类型任务。目前专名识别数据集因比赛要求未公开。维护者已开启新项目 CCLUE (https:\u002F\u002Fgithub.com\u002FEthan-yt\u002FCCLUE) 来推进相关工作，欢迎社区贡献数据源或参与开发。","https:\u002F\u002Fgithub.com\u002FEthan-yt\u002Fguwenbert\u002Fissues\u002F5",[]]