guwenbert
GuwenBERT 是一款专为古文(文言文)打造的预训练语言模型,旨在填补当前自然语言处理领域在古典汉语资源上的空白。它基于海量的古代文献语料(涵盖近 1.6 万本古籍、17 亿字符)训练而成,能够有效理解和分析艰深的文言文本。
该工具主要解决了现有主流模型难以精准处理古文断句、标点及命名实体识别(如人名、地名、书名标注)等痛点。实验表明,在古文任务中,GuwenBERT 的表现显著优于通用的中文 RoBERTa 模型,尤其在标注数据稀缺的小样本场景下优势明显。使用它能大幅减少繁琐的数据清洗和增强工作,帮助开发者用更简单的模型架构获得更高的准确率。
GuwenBERT 特别适合从事数字人文研究的学者、开发古文处理应用的工程师以及需要对古籍进行自动化整理的机构使用。其核心技术亮点在于采用了“继续训练”策略,巧妙地将现代汉语 RoBERTa 的语言特征迁移至古代汉语,并构建了包含 2.3 万个高频古文字符的专用词表,从而实现了古今语言特征的深度融合。目前,该模型已接入 Huggingface 平台,支持开发者通过几行代码轻松调用,助力中华优秀古籍的数字化传承与研究。
使用场景
某高校数字人文团队正致力于构建一个自动化古籍整理系统,需要从海量未标点的《二十四史》文本中精准提取人名、地名及书名等实体信息。
没有 guwenbert 时
- 模型理解偏差大:直接使用现代汉语 BERT 模型处理古文,因词汇和语法差异巨大,导致对“之乎者也”等虚词及古今异义词的语义捕捉严重失真。
- 数据依赖成本高:为了弥补预训练知识的缺失,团队必须投入大量人力进行繁琐的数据清洗、人工构造增强数据,并强行引入外部字典来辅助识别。
- 小样本效果差:在标注语料不足的特定朝代文献(如冷门史书)上,模型收敛极慢且准确率低下,难以达到实用标准。
- 开发周期漫长:需要反复调整特征工程和网络结构才能勉强提升效果,研发效率极低。
使用 guwenbert 后
- 语义理解精准:guwenbert 基于 17 亿字符的古文语料预训练,天然契合古文语法特征,能准确区分古今词义,显著提升上下文理解能力。
- 流程大幅简化:凭借强大的预训练表征,团队不再需要复杂的数据增强或外挂字典,仅用简单的 BERT+CRF 架构即可实现高精度识别。
- 小数据快速收敛:在少量标注数据下,guwenbert 仅需 300 步训练即可达到通用中文 RoBERTa 的最终水平,NER 任务效果提升 6.3%。
- 落地效率倍增:开发人员可专注于业务逻辑而非调参,快速将模型部署至生产环境,成功在“古联杯”评测中斩获二等奖。
guwenbert 通过填补古文预训练模型的空白,让古籍智能化处理从“手工雕琢”迈向了“高效自动”的新阶段。
运行环境要求
- 未说明
- 预训练阶段明确需要 4 块 NVIDIA V100 GPU
- 微调/推理阶段未明确具体型号,但需支持 PyTorch 和 Transformers 的 CUDA 环境
未说明(建议根据模型大小配置:Base 版约需 2-4GB,Large 版约需 8-16GB+)

快速开始
GuwenBERT是一个基于大量古文语料的RoBERTa模型。
在自然语言处理领域中,预训练语言模型(Pre-trained Language Models)已成为非常重要的基础技术。
目前互联网上存在大量的现代汉语BERT模型可供下载,但是缺少古文的语言模型。
为了进一步促进古文研究和自然语言处理的结合,我们发布了古文预训练模型GuwenBERT。
对于古文的常见任务:断句,标点,专名标注,目前通常采用序列标注模型。这类模型非常依赖预训练的词向量或者BERT,所以一个好的语言模型可以大幅提高标注效果。经过实验,在古文NER任务中我们的BERT比目前最流行的中文RoBERTa效果提升6.3%,仅仅300步就可以达到中文RoBERTa的最终水平,特别适合标注语料不足的小数据集。使用我们的模型也可以减少数据清洗,数据增强,引入字典等繁琐工序,在评测中我们仅仅用了一个BERT+CRF的模型就可以达到第二名。
GuwenBERT基于殆知阁古代文献语料训练,其中包含15,694本古文书籍,字符数1.7B。所有繁体字均经过简体转换处理。GuwenBERT的词表是基于古文语料构建的,取其中高频字符,大小为23,292。基于继续训练技术(Continue Training),
GuwenBERT结合现代汉语RoBERTa权重和大量古文语料,将现代汉语的部分语言特征向古代汉语迁移以提升表现。
相关项目
- CCLUE: 古文语言理解测评基准
- GuwenModels: 古文自然语言处理模型合集, 收录互联网上的古文相关模型及资源.
在线体验
古文预训练语言模型
点击图片或这里跳转。第一次计算可能需要加载模型,请多等一会。
古文自然语言处理流水线
点击图片或这里跳转。
新闻
2021/7/25 和下游任务相关的模型、代码已经上传,欢迎star:https://github.com/Ethan-yt/guwen-models
2020/10/31 CCL2020会议分享:基于继续训练的古汉语语言模型 slides
2020/10/25 我们的模型已接入Huggingface Transformers,查看使用说明
2020/9/29 我们的模型获得2020年“古联杯”古籍文献命名实体识别评测大赛 二等奖
使用说明
Huggingface Transformers
依托于Huggingface Transformers,可轻松调用以下模型
ethanyt/guwenbert-base:12-layer, 768-hidden, 12-headsethanyt/guwenbert-large:24-layer, 1024-hidden, 16-heads
代码如下
from transformers import AutoTokenizer, AutoModel
tokenizer = AutoTokenizer.from_pretrained("ethanyt/guwenbert-base")
model = AutoModel.from_pretrained("ethanyt/guwenbert-base")
Note: 由于本工作使用中文语料,RoBERTa原作Tokenizer是基于BPE算法的,对中文不太友好,所以这里使用BERT的分词器。这个配置已经写入config.json,所以直接使用AutoTokenizer会自动加载BertTokenizer, AutoModel会自动加载RobertaModel。
模型下载
我们提供的模型是PyTorch版本,如果需要tensorflow版本请自行通过Transformers提供的转换脚本进行转换。
直接下载
通过huggingface官网直接下载:
https://huggingface.co/ethanyt/guwenbert-base
https://huggingface.co/ethanyt/guwenbert-large
拉到最下方点击"List all files in model" → 在弹框中下载每个文件。
镜像
中国大陆境内用户如果无法直接下载huggingface hub的模型,可以使用以下镜像:
| 模型名称 | 大小 | 百度网盘 |
|---|---|---|
| guwenbert-base | 235.2M | 链接 提取码: 4jng |
| guwenbert-large | 738.1M | 链接 提取码: m5sz |
评测结果
2020年“古联杯”古籍文献命名实体识别评测大赛-第二名
本评测任务由古联(北京)数字传媒科技有限公司举办。古籍文献的整理和分析对数字人文研究和中华文化传承具有重要意义。命名实体识别在古籍文献处理过程中极为重要,是其他工作得以顺利开展的关键。该项工作会影响到古文自动标点、文白翻译等一系列自动化处理工作,因此,能够从古籍文献中自动识别出专名信息是一项非常重要且有价值的工作。
具体任务为:根据给定的古籍篇章,将候选篇章中的命名实体提取出来,并且按照既定类别进行归并。提取出来的实体名称大致分为两类:书名和其他专名(含人名、地名、朝代名、民族名等)。
数据集方面:分为训练数据和评测数据,涉及经、史、子、集等1900多篇古籍文本。训练数据为带有标签的文本文件,共计1063291字符(计空格),含11068组书名,10040组专名。
| 实体类型 | Precision | Recall | F1 |
|---|---|---|---|
| 书名 | 77.50 | 73.73 | 75.57 |
| 其他专名 | 85.85 | 89.32 | 87.55 |
| 平均值 | 83.88 | 85.39 | 84.63 |
FAQ
有任何问题可以直接在Issue区留言,或者直接邮件联系我。这里会总结一些常见问题。
Q: “古联杯”评测数据集可以公开吗?
A: 和主办方通过邮件询问了一下,主办方表示不能公开,如有需要可以联系zhucuiping@ancientbooks.cn
Q: 预训练时,阶段1和阶段2使用的是相同的语料吗?阶段1训练时是否掺入了现代汉语的语料?
A: 两个阶段的语料、任务相同,唯一不同的只是第一阶段冻结了Transformer层,以便学习embeddings
使用建议
- 初始学习率是非常重要的一个参数,需要根据目标任务进行调整。
- 对于需要用到CRF的模型,请将CRF层的学习率调大,一般为RoBERTa的100倍以上
预训练过程
Note: 本节介绍的是预训练的过程,微调不要参考本节配置
模型首先由hfl/chinese-roberta-wwm-ext初始化,然后按照以下两步训练:第一步,模型只更新Embedding层;第二步,所有参数共同更新。模型在 4 块 V100 上训练 120K 步(第一步 20K, 第二步 100K)。
详细的超参数设置如下:
| Name | Value |
|---|---|
| Batch size | 2,048 |
| Seq Length | 512 |
| Optimizer | Adam |
| Learning Rate | 2e-4(base), 1e-4 (large) |
| Adam-eps | 1e-6 |
| Weight Decay | 0.01 |
| Warmup | 5K steps, linear decay of learning rate after. |
引用
如果本文中的内容对你的研究工作有所帮助,欢迎在论文中引用本工作。由于论文尚未发表,可以暂时以脚注的形式
\footnote{GuwenBERT \url{https://github.com/ethan-yt/guwenbert}}.
免责声明
报告中所呈现的实验结果仅表明在特定数据集和超参组合下的表现,并不能代表各个模型的本质。 实验结果可能因随机数种子,计算设备而发生改变。 该项目中的内容仅供技术研究参考,不作为任何结论性依据。使用者可以在许可证范围内任意使用该模型,但我们不对因使用该项目内容造成的直接或间接损失负责。
感谢
本工作是基于中文BERT-wwm继续训练的。
常见问题
相似工具推荐
everything-claude-code
everything-claude-code 是一套专为 AI 编程助手(如 Claude Code、Codex、Cursor 等)打造的高性能优化系统。它不仅仅是一组配置文件,而是一个经过长期实战打磨的完整框架,旨在解决 AI 代理在实际开发中面临的效率低下、记忆丢失、安全隐患及缺乏持续学习能力等核心痛点。 通过引入技能模块化、直觉增强、记忆持久化机制以及内置的安全扫描功能,everything-claude-code 能显著提升 AI 在复杂任务中的表现,帮助开发者构建更稳定、更智能的生产级 AI 代理。其独特的“研究优先”开发理念和针对 Token 消耗的优化策略,使得模型响应更快、成本更低,同时有效防御潜在的攻击向量。 这套工具特别适合软件开发者、AI 研究人员以及希望深度定制 AI 工作流的技术团队使用。无论您是在构建大型代码库,还是需要 AI 协助进行安全审计与自动化测试,everything-claude-code 都能提供强大的底层支持。作为一个曾荣获 Anthropic 黑客大奖的开源项目,它融合了多语言支持与丰富的实战钩子(hooks),让 AI 真正成长为懂上
LLMs-from-scratch
LLMs-from-scratch 是一个基于 PyTorch 的开源教育项目,旨在引导用户从零开始一步步构建一个类似 ChatGPT 的大型语言模型(LLM)。它不仅是同名技术著作的官方代码库,更提供了一套完整的实践方案,涵盖模型开发、预训练及微调的全过程。 该项目主要解决了大模型领域“黑盒化”的学习痛点。许多开发者虽能调用现成模型,却难以深入理解其内部架构与训练机制。通过亲手编写每一行核心代码,用户能够透彻掌握 Transformer 架构、注意力机制等关键原理,从而真正理解大模型是如何“思考”的。此外,项目还包含了加载大型预训练权重进行微调的代码,帮助用户将理论知识延伸至实际应用。 LLMs-from-scratch 特别适合希望深入底层原理的 AI 开发者、研究人员以及计算机专业的学生。对于不满足于仅使用 API,而是渴望探究模型构建细节的技术人员而言,这是极佳的学习资源。其独特的技术亮点在于“循序渐进”的教学设计:将复杂的系统工程拆解为清晰的步骤,配合详细的图表与示例,让构建一个虽小但功能完备的大模型变得触手可及。无论你是想夯实理论基础,还是为未来研发更大规模的模型做准备
NextChat
NextChat 是一款轻量且极速的 AI 助手,旨在为用户提供流畅、跨平台的大模型交互体验。它完美解决了用户在多设备间切换时难以保持对话连续性,以及面对众多 AI 模型不知如何统一管理的痛点。无论是日常办公、学习辅助还是创意激发,NextChat 都能让用户随时随地通过网页、iOS、Android、Windows、MacOS 或 Linux 端无缝接入智能服务。 这款工具非常适合普通用户、学生、职场人士以及需要私有化部署的企业团队使用。对于开发者而言,它也提供了便捷的自托管方案,支持一键部署到 Vercel 或 Zeabur 等平台。 NextChat 的核心亮点在于其广泛的模型兼容性,原生支持 Claude、DeepSeek、GPT-4 及 Gemini Pro 等主流大模型,让用户在一个界面即可自由切换不同 AI 能力。此外,它还率先支持 MCP(Model Context Protocol)协议,增强了上下文处理能力。针对企业用户,NextChat 提供专业版解决方案,具备品牌定制、细粒度权限控制、内部知识库整合及安全审计等功能,满足公司对数据隐私和个性化管理的高标准要求。
ML-For-Beginners
ML-For-Beginners 是由微软推出的一套系统化机器学习入门课程,旨在帮助零基础用户轻松掌握经典机器学习知识。这套课程将学习路径规划为 12 周,包含 26 节精炼课程和 52 道配套测验,内容涵盖从基础概念到实际应用的完整流程,有效解决了初学者面对庞大知识体系时无从下手、缺乏结构化指导的痛点。 无论是希望转型的开发者、需要补充算法背景的研究人员,还是对人工智能充满好奇的普通爱好者,都能从中受益。课程不仅提供了清晰的理论讲解,还强调动手实践,让用户在循序渐进中建立扎实的技能基础。其独特的亮点在于强大的多语言支持,通过自动化机制提供了包括简体中文在内的 50 多种语言版本,极大地降低了全球不同背景用户的学习门槛。此外,项目采用开源协作模式,社区活跃且内容持续更新,确保学习者能获取前沿且准确的技术资讯。如果你正寻找一条清晰、友好且专业的机器学习入门之路,ML-For-Beginners 将是理想的起点。
ragflow
RAGFlow 是一款领先的开源检索增强生成(RAG)引擎,旨在为大语言模型构建更精准、可靠的上下文层。它巧妙地将前沿的 RAG 技术与智能体(Agent)能力相结合,不仅支持从各类文档中高效提取知识,还能让模型基于这些知识进行逻辑推理和任务执行。 在大模型应用中,幻觉问题和知识滞后是常见痛点。RAGFlow 通过深度解析复杂文档结构(如表格、图表及混合排版),显著提升了信息检索的准确度,从而有效减少模型“胡编乱造”的现象,确保回答既有据可依又具备时效性。其内置的智能体机制更进一步,使系统不仅能回答问题,还能自主规划步骤解决复杂问题。 这款工具特别适合开发者、企业技术团队以及 AI 研究人员使用。无论是希望快速搭建私有知识库问答系统,还是致力于探索大模型在垂直领域落地的创新者,都能从中受益。RAGFlow 提供了可视化的工作流编排界面和灵活的 API 接口,既降低了非算法背景用户的上手门槛,也满足了专业开发者对系统深度定制的需求。作为基于 Apache 2.0 协议开源的项目,它正成为连接通用大模型与行业专有知识之间的重要桥梁。
PaddleOCR
PaddleOCR 是一款基于百度飞桨框架开发的高性能开源光学字符识别工具包。它的核心能力是将图片、PDF 等文档中的文字提取出来,转换成计算机可读取的结构化数据,让机器真正“看懂”图文内容。 面对海量纸质或电子文档,PaddleOCR 解决了人工录入效率低、数字化成本高的问题。尤其在人工智能领域,它扮演着连接图像与大型语言模型(LLM)的桥梁角色,能将视觉信息直接转化为文本输入,助力智能问答、文档分析等应用场景落地。 PaddleOCR 适合开发者、算法研究人员以及有文档自动化需求的普通用户。其技术优势十分明显:不仅支持全球 100 多种语言的识别,还能在 Windows、Linux、macOS 等多个系统上运行,并灵活适配 CPU、GPU、NPU 等各类硬件。作为一个轻量级且社区活跃的开源项目,PaddleOCR 既能满足快速集成的需求,也能支撑前沿的视觉语言研究,是处理文字识别任务的理想选择。

