Texo
Texo 是一款超轻量级的开源 LaTeX 公式识别(OCR)模型,专为将图片中的数学公式快速转换为可编辑的 LaTeX 代码而设计。针对当前 STEM 领域学习者及科研人员在笔记整理时缺乏免费、高速且高精度识别工具的痛点,Texo 以仅 2000 万参数的极简架构,实现了媲美主流大模型的性能,同时大幅降低了运行门槛。
这款工具特别适合需要频繁处理数学公式的学生、研究人员,以及希望在本地或网页端集成公式识别功能的开发者。其最大亮点在于极致的轻量化与灵活性:不仅推理速度快,还能直接在浏览器中运行,无需安装复杂环境;训练全流程代码开源且结构清晰,普通消费级显卡即可完成微调与复现,是学习深度学习图像识别的优秀教程。作为 PPFormulaNet-S 的蒸馏版本,Texo 在保持高准确率的同时,让高质量的公式识别真正变得触手可及。
使用场景
数学系研究生小林在整理手写笔记时,需要将大量复杂的微积分公式图片快速转换为可编辑的 LaTeX 代码以便存入知识库。
没有 Texo 时
- 依赖重型服务:现有的高精度识别模型参数量大,必须部署在昂贵的云端 GPU 服务器上,本地笔记本无法运行。
- 隐私泄露风险:未公开的研究手稿和推导过程需上传至第三方在线转换网站,存在数据外泄隐患。
- 工作流割裂:无法直接在浏览器或本地离线环境中处理,每次识别都要经历“截图 - 上传 - 等待 - 下载”的繁琐步骤。
- 复现门槛高:若想微调模型以适应特定书写习惯,庞大的训练管线和硬件要求让个人开发者望而却步。
使用 Texo 后
- 浏览器即开即用:凭借仅 20M 的超轻量参数,Texo 可直接在浏览器端运行,无需任何后端服务器支持。
- 数据完全本地化:所有公式图片的处理均在本地完成,敏感科研数据无需出域,彻底杜绝隐私风险。
- 实时流畅体验:极简架构带来毫秒级推理速度,小林可以边写边拍,即时获得可编辑的 LaTeX 源码,工作流无缝衔接。
- 低成本自定义训练:完整的训练流程代码开源且组织清晰,小林能用消费级显卡轻松微调模型,精准适配自己的字迹风格。
Texo 通过将 SOTA 级别的公式识别能力压缩至浏览器可运行的体量,让个人研究者也能拥有私有、极速且可定制的 LaTeX 数字化工作台。
运行环境要求
- 未说明
- 训练必需:推荐 40GB 显存 (如 A40/L40S),最低 16GB 显存 (需配合梯度累积)
- 推理可在消费级 GPU 或浏览器中运行
最低 20GB (需流式数据加载),推荐 50GB

快速开始
Texo 的发音为 /ˈtɛːkoʊ/
一款极简、免费且开源的 SOTA LaTeX OCR 模型,参数量仅为 2000 万。
特性
- 免费且开源。
- 推理速度快、模型轻量。
- 可在消费级 GPU 上训练。
- 代码结构清晰,适合作为教程。
- 可在浏览器中运行!
[!注] 很荣幸被 @ruanyf's weekly 收录,如果你从那里过来,并且在访问 demo 网站时出现 bug,请移步至 Texo-web 仓库报告。由于我前端水平有限,欢迎各位不吝赐教。
序言
尽管如今有越来越多的 STEM 和 AI 学习者需要笔记整理工具,但目前仍然缺乏一款免费、快速、易用且精确的 LaTeX OCR 工具。这类经典模式识别任务由于词汇表封闭、泛化需求较低,恰好处于机器学习的舒适区,得益于近年来深度学习的发展(如 TrOCR、GOT-2.0、UniMERNet、PPFormulaNet),可以说已经基本解决。因此,Texo 作为一项个人项目应运而生,旨在解决这一问题。
同时,这也是我将迄今为止在学校和网络上所学知识与经验相结合的一次全面实践,更是我对心爱的开源社区的一次初步贡献。
性能
Texo 是 PPFormulaNet-S 的蒸馏版本,并在 UniMERNet-1M 数据集上进行了微调,因此其性能应与 PPFormulaNet-S 基本相当。以下是基于 UniMERNet-Test 数据集的评估结果。
| 模型 | 参数量 | 指标 | SPE | CPE | SCE | HWE |
|---|---|---|---|---|---|---|
| UniMERNet-T† | 107M | BLEU | 0.909 | 0.902 | 0.566 | 0.883 |
| 编辑距离 | 0.066 | 0.075 | 0.239 | 0.078 | ||
| PPFormulaNet-S† | 57M | BLEU | 0.8694 | 0.8071 | - | - |
| 编辑距离 | - | - | - | - | ||
| Texo-distill* | 20M | BLEU | 0.9014 | 0.8909 | 0.7034 | 0.8606 |
| 编辑距离 | 0.0780 | 0.1042 | 0.1941 | 0.0995 | ||
| Texo-transfer* | 20M** | BLEU | 0.8597 | 0.8334 | 0.5549 | 0.7973 |
| 编辑距离 | 0.0980 | 0.1306 | 0.2187 | 0.0999 | ||
| Texo-transfer-onnx | 如上 | BLEU | 0.8395 | 0.8136 | 0.5153 | 0.7787 |
| 编辑距离 | 0.0980 | 0.1288 | 0.2050 | 0.0976 |
我们仅列出了这些 SOTA 模型的轻量级版本。可以看出,在 BLEU 或编辑距离等序列指标方面,我们的模型在大幅减少参数量的同时,仍保持了相当的性能。
-表示论文中未报告。†:摘自相关论文。
*:Texo-distill 使用与 UniMERNet 和 PPFormulaNet 相同的分词器,因此序列指标具有严格可比性。而 Texo-transfer 使用自定义分词器,故指标不可直接比较(我们的序列长度更短,详情请参阅 notes)。当然,对于 LaTeX-OCR 来说,更公平的评价指标应该是 CDM,但由于其实现较为复杂,我暂时没有进行测试。
**:略少于 Texo-distill,因为分词器的词汇表更小。
环境配置
git clone https://github.com/alephpi/Texo
uv sync
对于尚未使用 uv 的用户,不妨尝试一下。而对于坚持不用 uv 的用户,相信你们也知道该如何调整。
下载模型
# 仅下载模型
python scripts/python/hf_hub.py pull
# 对于希望从有用检查点开始训练的用户
python scripts/python/hf_hub.py pull --with_useful_ckpts
推理
请查看 demo.ipynb
训练
要求
- 我的配置:50GB CPU 内存,A40/L40S 46GB 显存。
- 推荐配置:50GB CPU 内存,40GB GPU 内存。
- 最低配置:20GB CPU 内存(配合流式数据加载)和 16GB GPU 内存(配合梯度累积)。
下载数据集(UniMER-1M)
参照我在 Hugging Face 上的操作步骤:https://huggingface.co/datasets/wanderkid/UniMER_Dataset
如果你嫌麻烦,可以直接使用我整理并规范过的数据集:
- https://huggingface.co/datasets/alephpi/UniMER-Train
- https://huggingface.co/datasets/alephpi/UniMER-Test
如果你想了解所有预处理细节,请查阅 这里 和 这里,其中我收集并整理了所有有用的 KaTeX 命令。
启动
我们使用 hydra 来管理训练配置和实验。
# 开始训练
python src/train.py
# 从检查点恢复训练
python src/train.py training.resume_from_ckpt="<ckpt_path>"
# 调试
python src/train.py --config-dir="./config" --config-name="train_debug.yaml"
# 在 Slurm 集群上训练
python src/train.py --multirun --config-dir="./config" --config-name="train_slurm.yaml"
更多训练配置请参见 config 目录。
日志
训练结果会保存在 outputs 目录中。要可视化这些结果,可以运行:
tensorboard --logdir outputs
图表
以下是一些精美的损失曲线,帮助你了解损失规模和收敛过程。
训练损失
验证损失
BLEU
编辑距离
学习率
重现整个工作流程
如果你想从头开始,可以查看我的 notes
致谢
- transformers:框架、模型解码器、分词器
- UniMERNet:数据集、图像处理器
- Im2Markup:LaTeX 预处理
- KaTeX:用于训练分词器的 LaTeX 词汇表及预处理用的 LaTeX 解析器
- my-unimernet:图像处理器(以及一个优秀的代码库,帮助理解 UniMERNet 的实现)
- PaddleOCR:模型架构、预训练权重
- PaddleOCR2Pytorch 和 D-FINE:模型编码器实现
- Im2Markup、LaTeX-OCR 和 TrOCR:先驱
- MixTeX 和 TexTeller:灵感来源
- Telecom Paris 提供了 GPU 集群。
许可证
版权所有 © 2025 年至今 毛思成 maosicheng98@gmail.com
星标历史
常见问题
相似工具推荐
stable-diffusion-webui
stable-diffusion-webui 是一个基于 Gradio 构建的网页版操作界面,旨在让用户能够轻松地在本地运行和使用强大的 Stable Diffusion 图像生成模型。它解决了原始模型依赖命令行、操作门槛高且功能分散的痛点,将复杂的 AI 绘图流程整合进一个直观易用的图形化平台。 无论是希望快速上手的普通创作者、需要精细控制画面细节的设计师,还是想要深入探索模型潜力的开发者与研究人员,都能从中获益。其核心亮点在于极高的功能丰富度:不仅支持文生图、图生图、局部重绘(Inpainting)和外绘(Outpainting)等基础模式,还独创了注意力机制调整、提示词矩阵、负向提示词以及“高清修复”等高级功能。此外,它内置了 GFPGAN 和 CodeFormer 等人脸修复工具,支持多种神经网络放大算法,并允许用户通过插件系统无限扩展能力。即使是显存有限的设备,stable-diffusion-webui 也提供了相应的优化选项,让高质量的 AI 艺术创作变得触手可及。
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 真正成长为懂上
ComfyUI
ComfyUI 是一款功能强大且高度模块化的视觉 AI 引擎,专为设计和执行复杂的 Stable Diffusion 图像生成流程而打造。它摒弃了传统的代码编写模式,采用直观的节点式流程图界面,让用户通过连接不同的功能模块即可构建个性化的生成管线。 这一设计巧妙解决了高级 AI 绘图工作流配置复杂、灵活性不足的痛点。用户无需具备编程背景,也能自由组合模型、调整参数并实时预览效果,轻松实现从基础文生图到多步骤高清修复等各类复杂任务。ComfyUI 拥有极佳的兼容性,不仅支持 Windows、macOS 和 Linux 全平台,还广泛适配 NVIDIA、AMD、Intel 及苹果 Silicon 等多种硬件架构,并率先支持 SDXL、Flux、SD3 等前沿模型。 无论是希望深入探索算法潜力的研究人员和开发者,还是追求极致创作自由度的设计师与资深 AI 绘画爱好者,ComfyUI 都能提供强大的支持。其独特的模块化架构允许社区不断扩展新功能,使其成为当前最灵活、生态最丰富的开源扩散模型工具之一,帮助用户将创意高效转化为现实。
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 协议开源的项目,它正成为连接通用大模型与行业专有知识之间的重要桥梁。
