[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"similar-LeeSureman--Flat-Lattice-Transformer":3,"tool-LeeSureman--Flat-Lattice-Transformer":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 真正成长为懂上",142651,2,"2026-04-06T23:34:12",[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 既能满足快速集成的需求，也能支撑前沿的视觉语言研究，是处理文字识别任务的理想选择。",74991,"2026-04-06T23:16:49",[15,26,13,46],{"id":65,"github_repo":66,"name":67,"description_en":68,"description_zh":69,"ai_summary_zh":70,"readme_en":71,"readme_zh":72,"quickstart_zh":73,"use_case_zh":74,"hero_image_url":75,"owner_login":76,"owner_name":77,"owner_avatar_url":78,"owner_bio":79,"owner_company":80,"owner_location":81,"owner_email":82,"owner_twitter":82,"owner_website":83,"owner_url":84,"languages":85,"stars":90,"forks":91,"last_commit_at":92,"license":82,"difficulty_score":93,"env_os":94,"env_gpu":95,"env_ram":96,"env_deps":97,"category_tags":105,"github_topics":82,"view_count":10,"oss_zip_url":82,"oss_zip_packed_at":82,"status":16,"created_at":106,"updated_at":107,"faqs":108,"releases":142},4797,"LeeSureman\u002FFlat-Lattice-Transformer","Flat-Lattice-Transformer","code for ACL 2020 paper: FLAT: Chinese NER Using Flat-Lattice Transformer","Flat-Lattice-Transformer 是一款专为中文命名实体识别（NER）任务设计的开源深度学习模型，源自 ACL 2020 的学术论文。它主要解决了中文 NER 中因缺乏明确词边界而导致的识别难题。传统方法通常先进行分词再识别，容易受分词错误影响；而 Flat-Lattice-Transformer 创新性地引入“扁平化晶格（Flat-Lattice）”结构，将字符与潜在词汇信息同时输入 Transformer 编码器，无需依赖外部工具分词即可捕捉丰富的词汇特征，从而显著提升识别准确率。\n\n该工具特别适合自然语言处理领域的研究人员和开发者使用，尤其是那些希望复现前沿学术成果、优化中文信息抽取系统或探索 Transformer 在序列标注中应用的技术人员。其独特亮点在于巧妙地将晶格结构转化为扁平序列，既保留了词汇信息，又完美适配标准的 Transformer 架构，便于并行计算。此外，项目后续还推出了优化版本（如 Flat_unique 和 Flat_scalar），通过改进位置编码机制大幅降低了显存占用，使得在有限硬件资源下训练更长序列成为可能。基于 PyTorch 和 ","Flat-Lattice-Transformer 是一款专为中文命名实体识别（NER）任务设计的开源深度学习模型，源自 ACL 2020 的学术论文。它主要解决了中文 NER 中因缺乏明确词边界而导致的识别难题。传统方法通常先进行分词再识别，容易受分词错误影响；而 Flat-Lattice-Transformer 创新性地引入“扁平化晶格（Flat-Lattice）”结构，将字符与潜在词汇信息同时输入 Transformer 编码器，无需依赖外部工具分词即可捕捉丰富的词汇特征，从而显著提升识别准确率。\n\n该工具特别适合自然语言处理领域的研究人员和开发者使用，尤其是那些希望复现前沿学术成果、优化中文信息抽取系统或探索 Transformer 在序列标注中应用的技术人员。其独特亮点在于巧妙地将晶格结构转化为扁平序列，既保留了词汇信息，又完美适配标准的 Transformer 架构，便于并行计算。此外，项目后续还推出了优化版本（如 Flat_unique 和 Flat_scalar），通过改进位置编码机制大幅降低了显存占用，使得在有限硬件资源下训练更长序列成为可能。基于 PyTorch 和 FastNLP 构建，Flat-Lattice-Transformer 提供了清晰的代码实现和详细的运行指南，是中文 NLP 研究中极具参考价值的基线模型。","[English](#Requirement)\n[中文](#运行环境)\n\n# Flat-Lattice-Transformer\ncode for ACL 2020 paper: FLAT: Chinese NER Using Flat-Lattice Transformer. \n\nModels and results can be found at our ACL 2020 paper [FLAT: Chinese NER Using Flat-Lattice Transformer](https:\u002F\u002Farxiv.org\u002Fpdf\u002F2004.11795.pdf).\n\n\n\n\n# Requirement:\n\n```\nPython: 3.7.3\nPyTorch: 1.2.0\nFastNLP: 0.5.0\nNumpy: 1.16.4\n```\nyou can go [here](https:\u002F\u002Ffastnlp.readthedocs.io\u002Fzh\u002Flatest\u002F) to know more about FastNLP.\n\n\n\nHow to run the code?\n====\n1. Download the character embeddings and word embeddings.\n\n      Character and Bigram embeddings (gigaword_chn.all.a2b.{'uni' or 'bi'}.ite50.vec) : [Google Drive](https:\u002F\u002Fdrive.google.com\u002Ffile\u002Fd\u002F1_Zlf0OAZKVdydk7loUpkzD2KPEotUE8u\u002Fview?usp=sharing) or [Baidu Pan](https:\u002F\u002Fpan.baidu.com\u002Fs\u002F1pLO6T9D)\n\n      Word(Lattice) embeddings: \n      \n      yj, (ctb.50d.vec) : [Google Drive](https:\u002F\u002Fdrive.google.com\u002Ffile\u002Fd\u002F1K_lG3FlXTgOOf8aQ4brR9g3R40qi1Chv\u002Fview?usp=sharing) or [Baidu Pan](https:\u002F\u002Fpan.baidu.com\u002Fs\u002F1pLO6T9D)\n      \n      ls, (sgns.merge.word.bz2) : [Baidu Pan](https:\u002F\u002Fpan.baidu.com\u002Fs\u002F1luy-GlTdqqvJ3j-A4FcIOw)\n\n2. Modify the `paths.py` to add the pretrained embedding and the dataset\n3. Run following commands\n```\npython preprocess.py (add '--clip_msra' if you need to train FLAT on MSRA NER dataset)\ncd V0 (without Bert) \u002F V1 (with Bert)\npython flat_main.py --dataset \u003Cdataset_name> (ontonotes, msra, weibo or resume)\n```\n\nIf you want to record experiment result, you can use fitlog:\n```\npip install fitlog\nfitlog init V0\ncd V0\nfitlog log logs\n```\nthen set use_fitlog = True in flat_main.py.\n\nyou can go [here](https:\u002F\u002Ffitlog.readthedocs.io\u002Fzh\u002Flatest\u002F) to know more about Fitlog.\n\n\nCite: \n========\n[bibtex](https:\u002F\u002Fwww.aclweb.org\u002Fanthology\u002F2020.acl-main.611.bib)\n\n---\n\n\n\n\n\n\n# 运行环境:\n\n```\nPython: 3.7.3\nPyTorch: 1.2.0\nFastNLP: 0.5.0\nNumpy: 1.16.4\n```\n你可以在 [这里](https:\u002F\u002Ffastnlp.readthedocs.io\u002Fzh\u002Flatest\u002F) 深入了解 FastNLP 这个库.\n\n\n\n如何运行？\n====\n1. 请下载预训练的embedding\n\n      从[Google Drive](https:\u002F\u002Fdrive.google.com\u002Ffile\u002Fd\u002F1_Zlf0OAZKVdydk7loUpkzD2KPEotUE8u\u002Fview?usp=sharing) 或 [Baidu Pan](https:\u002F\u002Fpan.baidu.com\u002Fs\u002F1pLO6T9D) 下载字和 Bigram 的 embedding (gigaword_chn.all.a2b.{'uni' or 'bi'}.ite50.vec) \n\n      从[Google Drive](https:\u002F\u002Fdrive.google.com\u002Ffile\u002Fd\u002F1K_lG3FlXTgOOf8aQ4brR9g3R40qi1Chv\u002Fview?usp=sharing) 或 [Baidu Pan](https:\u002F\u002Fpan.baidu.com\u002Fs\u002F1pLO6T9D) 下载词的 embedding (ctb.50d.vec)(yj)\n      \n      从[Baidu Pan](https:\u002F\u002Fpan.baidu.com\u002Fs\u002F1luy-GlTdqqvJ3j-A4FcIOw) 下载词的embedding (sgns.merge.bigram.bz2)(ls)\n\n2. 修改 `paths.py` 来添加预训练的 embedding 和你的数据集\n3. 运行下面的代码\n```\npython preprocess.py (add '--clip_msra' if you need to train FLAT on MSRA NER dataset)\ncd V0 (without Bert) \u002F V1 (with Bert)\npython flat_main.py --dataset \u003Cdataset_name> (ontonotes, msra, weibo or resume)\n```\n\n如果你想方便地记录和观察实验结果, 你可以使用fitlog:\n```\npip install fitlog\nfitlog init V0\ncd V0\nfitlog log logs\n```\n然后把flat_main.py里的 use_fitlog 设置为 True 就行\n你可以在 [这里](https:\u002F\u002Ffitlog.readthedocs.io\u002Fzh\u002Flatest\u002F) 深入了解 Fitlog 这个工具\n\n\n引用: \n========\n[bibtex](https:\u002F\u002Fwww.aclweb.org\u002Fanthology\u002F2020.acl-main.611.bib)\n\n\n更新说明：\n========\n5.7共提交两个版本，其中V2使用tensor.unique()用于去除相对位置中重复组合（记为Flat_unique），V3使用标量替代了FLAt中的相对位置编码(记为Flat_scalar).详见[FLAT瘦身日记](https:\u002F\u002Fzhuanlan.zhihu.com\u002Fp\u002F509248057)   \n使用这两种方法的显存占用如下表所示   \nbatch_size=10   \n|seq_len| 50 | 100 | 150 | 200 | 250 | 300 |   \n|:-------|----:|-----:|-----:|-----:|-----:|-----:|   \n|Flat|1096MB | 1668MB |2734MB|4118MB|5938MB|8374MB|\n|Flat_unique|964MB|1204MB|1610MB|2166MB|2922MB|3940MB|\n|Flat_scalar|878MB|916MB|1028MB|1062MB|1148MB|1322MB|\n|Bert+Flat|1605MB|2237MB|3333MB|4725MB|6571MB|9039MB|\n|Bert+Flat_unique|1495MB|1685MB|2129MB|2697MB|3453MB|4585MB|\n|Bert+Flat_scalar|1409MB|1481MB|1565MB|1617MB|1705MB|2051MB|\n\n\n\n\n\n\n ","[English](#Requirement)\n[中文](#运行环境)\n\n# 扁平-网格-Transformer\nACL 2020论文的代码：FLAT：使用扁平-网格-Transformer进行中文命名实体识别。\n\n模型和结果可以在我们的ACL 2020论文《FLAT：使用扁平-网格-Transformer进行中文命名实体识别》中找到，论文链接为：https:\u002F\u002Farxiv.org\u002Fpdf\u002F2004.11795.pdf。\n\n\n\n# 需求：\n\n```\nPython: 3.7.3\nPyTorch: 1.2.0\nFastNLP: 0.5.0\nNumpy: 1.16.4\n```\n你可以访问 [这里](https:\u002F\u002Ffastnlp.readthedocs.io\u002Fzh\u002Flatest\u002F) 来了解更多关于FastNLP的信息。\n\n\n\n如何运行代码？\n====\n1. 下载字符嵌入和词嵌入。\n\n      字符和二元组嵌入（gigaword_chn.all.a2b.{'uni'或'bi'}.ite50.vec）：[Google Drive](https:\u002F\u002Fdrive.google.com\u002Ffile\u002Fd\u002F1_Zlf0OAZKVdydk7loUpkzD2KPEotUE8u\u002Fview?usp=sharing) 或 [Baidu Pan](https:\u002F\u002Fpan.baidu.com\u002Fs\u002F1pLO6T9D)\n\n      词（网格）嵌入：\n      \n      yj, (ctb.50d.vec)：[Google Drive](https:\u002F\u002Fdrive.google.com\u002Ffile\u002Fd\u002F1K_lG3FlXTgOOf8aQ4brR9g3R40qi1Chv\u002Fview?usp=sharing) 或 [Baidu Pan](https:\u002F\u002Fpan.baidu.com\u002Fs\u002F1pLO6T9D)\n      \n      ls, (sgns.merge.word.bz2)：[Baidu Pan](https:\u002F\u002Fpan.baidu.com\u002Fs\u002F1luy-GlTdqqvJ3j-A4FcIOw)\n\n2. 修改 `paths.py` 文件以添加预训练的嵌入和数据集。\n3. 运行以下命令：\n```\npython preprocess.py （如果需要在MSRA NER数据集上训练FLAT，请添加 '--clip_msra'）\ncd V0（不带Bert） \u002F V1（带Bert）\npython flat_main.py --dataset \u003C数据集名称> （ontonotes、msra、weibo或resume）\n```\n\n如果你想记录实验结果，可以使用fitlog：\n```\npip install fitlog\nfitlog init V0\ncd V0\nfitlog log logs\n```\n然后在 flat_main.py 中将 use_fitlog 设置为 True。\n\n你可以访问 [这里](https:\u002F\u002Ffitlog.readthedocs.io\u002Fzh\u002Flatest\u002F) 来了解更多关于Fitlog的信息。\n\n\n引用:\n========\n[bibtex](https:\u002F\u002Fwww.aclweb.org\u002Fanthology\u002F2020.acl-main.611.bib)\n\n---\n\n\n\n\n# 运行环境:\n\n```\nPython: 3.7.3\nPyTorch: 1.2.0\nFastNLP: 0.5.0\nNumpy: 1.16.4\n```\n你可以在 [这里](https:\u002F\u002Ffastnlp.readthedocs.io\u002Fzh\u002Flatest\u002F) 深入了解 FastNLP 这个库。\n\n\n\n如何运行？\n====\n1. 请下载预训练的embedding\n\n      从[Google Drive](https:\u002F\u002Fdrive.google.com\u002Ffile\u002Fd\u002F1_Zlf0OAZKVdydk7loUpkzD2KPEotUE8u\u002Fview?usp=sharing) 或 [Baidu Pan](https:\u002F\u002Fpan.baidu.com\u002Fs\u002F1pLO6T9D) 下载字和 Bigram 的 embedding (gigaword_chn.all.a2b.{'uni'或'bi'}.ite50.vec) \n\n      从[Google Drive](https:\u002F\u002Fdrive.google.com\u002Ffile\u002Fd\u002F1K_lG3FlXTgOOf8aQ4brR9g3R40qi1Chv\u002Fview?usp=sharing) 或 [Baidu Pan](https:\u002F\u002Fpan.baidu.com\u002Fs\u002F1pLO6T9D) 下载词的 embedding (ctb.50d.vec)(yj)\n      \n      从[Baidu Pan](https:\u002F\u002Fpan.baidu.com\u002Fs\u002F1luy-GlTdqqvJ3j-A4FcIOw) 下载词的embedding (sgns.merge.bigram.bz2)(ls)\n\n2. 修改 `paths.py` 来添加预训练的 embedding 和你的数据集。\n3. 运行下面的代码：\n```\npython preprocess.py （如果需要在MSRA NER数据集上训练FLAT，请添加 '--clip_msra'）\ncd V0（不带Bert） \u002F V1（带Bert）\npython flat_main.py --dataset \u003C数据集名称> （ontonotes、msra、weibo或resume）\n```\n\n如果你想方便地记录和观察实验结果, 你可以使用fitlog:\n```\npip install fitlog\nfitlog init V0\ncd V0\nfitlog log logs\n```\n然后把flat_main.py里的 use_fitlog 设置为 True 就行\n你可以在 [这里](https:\u002F\u002Ffitlog.readthedocs.io\u002Fzh\u002Flatest\u002F) 深入了解 Fitlog 这个工具\n\n\n引用: \n========\n[bibtex](https:\u002F\u002Fwww.aclweb.org\u002Fanthology\u002F2020.acl-main.611.bib)\n\n\n更新说明：\n========\n5.7共提交两个版本，其中V2使用tensor.unique()用于去除相对位置中重复组合（记为Flat_unique），V3使用标量替代了FLAt中的相对位置编码(记为Flat_scalar).详见[FLAT瘦身日记](https:\u002F\u002Fzhuanlan.zhihu.com\u002Fp\u002F509248057)   \n使用这两种方法的显存占用如下表所示   \nbatch_size=10   \n|seq_len| 50 | 100 | 150 | 200 | 250 | 300 |   \n|:-------|----:|-----:|-----:|-----:|-----:|-----:|   \n|Flat|1096MB | 1668MB |2734MB|4118MB|5938MB|8374MB|\n|Flat_unique|964MB|1204MB|1610MB|2166MB|2922MB|3940MB|\n|Flat_scalar|878MB|916MB|1028MB|1062MB|1148MB|1322MB|\n|Bert+Flat|1605MB|2237MB|3333MB|4725MB|6571MB|9039MB|\n|Bert+Flat_unique|1495MB|1685MB|2129MB|2697MB|3453MB|4585MB|\n|Bert+Flat_scalar|1409MB|1481MB|1565MB|1617MB|1705MB|2051MB|","# Flat-Lattice-Transformer 快速上手指南\n\nFlat-Lattice-Transformer (FLAT) 是 ACL 2020 论文《Chinese NER Using Flat-Lattice Transformer》的开源实现，专为中文命名实体识别（NER）设计。本指南将帮助你快速搭建环境并运行模型。\n\n## 环境准备\n\n在开始之前，请确保你的系统满足以下版本要求：\n\n*   **Python**: 3.7.3\n*   **PyTorch**: 1.2.0\n*   **FastNLP**: 0.5.0\n*   **Numpy**: 1.16.4\n\n> **提示**：你可以访问 [FastNLP 官方文档](https:\u002F\u002Ffastnlp.readthedocs.io\u002Fzh\u002Flatest\u002F) 深入了解该库的使用。\n\n## 安装与数据配置\n\n### 1. 安装依赖\n使用 pip 安装核心依赖库及实验记录工具（可选）：\n\n```bash\npip install torch==1.2.0 fastnlp==0.5.0 numpy==1.16.4\n# 可选：安装 fitlog 用于记录实验结果\npip install fitlog\n```\n\n### 2. 下载预训练 Embedding\n请从以下国内镜像源（百度网盘）或 Google Drive 下载所需的向量文件：\n\n*   **字和 Bigram Embedding** (`gigaword_chn.all.a2b.{uni\u002Fbi}.ite50.vec`)\n    *   [百度网盘下载](https:\u002F\u002Fpan.baidu.com\u002Fs\u002F1pLO6T9D)\n    *   [Google Drive 下载](https:\u002F\u002Fdrive.google.com\u002Ffile\u002Fd\u002F1_Zlf0OAZKVdydk7loUpkzD2KPEotUE8u\u002Fview?usp=sharing)\n\n*   **词 Embedding (yj 数据集)** (`ctb.50d.vec`)\n    *   [百度网盘下载](https:\u002F\u002Fpan.baidu.com\u002Fs\u002F1pLO6T9D)\n    *   [Google Drive 下载](https:\u002F\u002Fdrive.google.com\u002Ffile\u002Fd\u002F1K_lG3FlXTgOOf8aQ4brR9g3R40qi1Chv\u002Fview?usp=sharing)\n\n*   **词 Embedding (ls 数据集)** (`sgns.merge.word.bz2`)\n    *   [百度网盘下载](https:\u002F\u002Fpan.baidu.com\u002Fs\u002F1luy-GlTdqqvJ3j-A4FcIOw)\n\n### 3. 配置路径\n下载完成后，修改项目根目录下的 `paths.py` 文件，填入你下载的预训练 embedding 路径以及数据集存放路径。\n\n## 基本使用\n\n### 1. 数据预处理\n运行预处理脚本。如果你需要在 MSRA NER 数据集上训练，请添加 `--clip_msra` 参数。\n\n```bash\npython preprocess.py\n# 若训练 MSRA 数据集：\n# python preprocess.py --clip_msra\n```\n\n### 2. 运行模型\n根据是否使用 BERT，进入对应的目录并执行训练命令。支持的数据集包括：`ontonotes`, `msra`, `weibo`, `resume`。\n\n**不使用 BERT (V0):**\n```bash\ncd V0\npython flat_main.py --dataset \u003Cdataset_name>\n```\n\n**使用 BERT (V1):**\n```bash\ncd V1\npython flat_main.py --dataset \u003Cdataset_name>\n```\n\n### 3. (可选) 记录实验结果\n若已安装 `fitlog`，可按以下步骤开启实验记录功能：\n\n```bash\nfitlog init V0\ncd V0\nfitlog log logs\n```\n随后，打开 `flat_main.py` 文件，将 `use_fitlog` 变量设置为 `True` 即可。更多用法请参考 [Fitlog 文档](https:\u002F\u002Ffitlog.readthedocs.io\u002Fzh\u002Flatest\u002F)。\n\n---\n**性能优化提示**：\n针对显存占用问题，项目后续更新了 `Flat_unique` (V2) 和 `Flat_scalar` (V3) 版本，显著降低了长序列训练的显存需求。如需使用，请参考项目源码中的最新实现。","某金融科技公司正在构建智能风控系统，需要从海量中文新闻和社交媒体中自动提取企业名称、人物及地点，以监测潜在的舆情风险。\n\n### 没有 Flat-Lattice-Transformer 时\n- **分词错误导致识别失败**：传统方法依赖预先分词，一旦分词工具将“北京大学”错误切分为“北京\u002F大学”，模型便无法将其识别为一个完整的组织机构实体。\n- **边界模糊难以处理**：中文缺乏天然空格分隔，面对嵌套实体（如“上海市人民政府”中包含“上海市”）时，基于字符的模型往往难以精准判断实体起止边界。\n- **长距离依赖捕捉弱**：在处理长句时，常规序列模型容易丢失上下文信息，导致对远距离修饰语的实体归类不准确。\n- **调优成本高昂**：为了弥补分词误差，团队需花费大量时间人工规则纠错或尝试多种分词器组合，研发效率低下。\n\n### 使用 Flat-Lattice-Transformer 后\n- **融合词汇信息消除歧义**：Flat-Lattice-Transformer 创新性地将字符与潜在词汇（Lattice）结构融合，即使不依赖完美分词，也能利用“北大”、“大学”等词汇信息辅助判断，显著提升“北京大学”的识别准确率。\n- **扁平化结构精准定位**：通过独特的扁平化晶格 Transformer 架构，模型能直接建模字符间的复杂关系，轻松解决嵌套实体和边界模糊问题，无需复杂的后处理规则。\n- **全局上下文感知增强**：借助 Transformer 的自注意力机制，模型能有效捕捉长距离依赖，确保在复杂句式中依然能准确关联实体与其属性。\n- **端到端训练简化流程**：团队不再需要纠结于选择何种分词工具，直接使用预训练 Embedding 即可端到端训练，实验迭代速度提升数倍，且显存占用通过优化版本（如 Flat_scalar）得到良好控制。\n\nFlat-Lattice-Transformer 通过打破中文分词瓶颈，实现了更精准、高效的中文命名实体识别，让风控系统能更敏锐地捕捉关键情报。","https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002FLeeSureman_Flat-Lattice-Transformer_a5151382.png","LeeSureman","Xiaonan Li","https:\u002F\u002Foss.gittoolsai.com\u002Favatars\u002FLeeSureman_514bc693.jpg","4th year PhD student at Fudan University.\r\nResearch Topic: Retrieval-based LLM Enhancement.","Fudan Univeristy","Shanghai",null,"https:\u002F\u002Fscholar.google.com\u002Fcitations?user=ldEcEjEAAAAJ&hl=en","https:\u002F\u002Fgithub.com\u002FLeeSureman",[86],{"name":87,"color":88,"percentage":89},"Python","#3572A5",100,1004,170,"2026-02-13T07:06:19",4,"","未说明（但项目涉及深度学习训练及显存优化版本对比，隐含需要 NVIDIA GPU）","未说明（根据更新说明中的显存占用表，长序列训练建议显存充足，系统内存推荐 16GB+）",{"notes":98,"python":99,"dependencies":100},"1. 运行前需手动下载字符、Bigram 及词向量预训练文件（提供 Google Drive 和百度网盘链接），并修改 paths.py 配置路径。\n2. 代码分为 V0（无 Bert）和 V1（含 Bert）两个版本目录。\n3. 更新说明中提到了 V2 (Flat_unique) 和 V3 (Flat_scalar) 两种显存优化版本，分别通过去除重复组合和使用标量替代相对位置编码来降低显存占用，适合长序列训练。","3.7.3",[101,102,103,104],"PyTorch==1.2.0","FastNLP==0.5.0","Numpy==1.16.4","fitlog (可选，用于记录实验结果)",[15],"2026-03-27T02:49:30.150509","2026-04-07T11:44:37.481103",[109,114,119,124,129,133,138],{"id":110,"question_zh":111,"answer_zh":112,"source_url":113},21812,"在 Windows 系统下运行代码时报错 OSError: [Errno 22] Invalid argument，文件名中包含冒号怎么办？","这是 Windows 文件名不支持冒号 (:) 导致的。解决方法是修改 `flat_main.py` 第 306 行，将 `cache_name` 生成逻辑中的冒号 (:) 全部替换为井号 (#)。修改后的代码示例：\ncache_name = os.path.join('cache',(args.dataset+'_lattice'+'_only_train#{}'+'_trainClip#{}'+'_norm_num#{}'+'char_min_freq{}'+'bigram_min_freq{}'+'word_min_freq{}'+'only_train_min_freq{}'+'number_norm{}'+'lexicon_{}'+'load_dataset_seed{}'))","https:\u002F\u002Fgithub.com\u002FLeeSureman\u002FFlat-Lattice-Transformer\u002Fissues\u002F42",{"id":115,"question_zh":116,"answer_zh":117,"source_url":118},21813,"如何处理长度超过限制（如 512）的长句子？是直接丢弃还是切割？","不会直接丢弃长句，而是将其切割成多个较短的句子。具体逻辑在 `preprocess.py` 的第 43、47、51 行中实现，方法是在 CONLL 格式的数据中添加额外的空行，将一个长 example 分割成两个短 example。评估（evaluate）时也会对测试集做同样的切割处理以保证一致性。可以通过 `main` 中的 `train_clip` 参数加载切割后的语料，默认句长限制通常为 200，可根据显存大小调整。","https:\u002F\u002Fgithub.com\u002FLeeSureman\u002FFlat-Lattice-Transformer\u002Fissues\u002F55",{"id":120,"question_zh":121,"answer_zh":122,"source_url":123},21814,"运行时提示找不到 `yangjie_word_char_mix.txt` 文件或无法打开该文件，该如何解决？","该文件不需要手动下载或寻找，程序会在运行时自动下载并加载。相关逻辑位于 `preprocess.py` 文件中，代码会通过 `yangjie_rich_pretrain_unigram_path` 等路径变量自动处理。如果遇到无法打开或无响应的情况，请检查网络连接以确保能自动下载预训练资源，或者检查 `preprocess.py` 中的路径配置是否正确。","https:\u002F\u002Fgithub.com\u002FLeeSureman\u002FFlat-Lattice-Transformer\u002Fissues\u002F23",{"id":125,"question_zh":126,"answer_zh":127,"source_url":128},21815,"运行代码时报错 `NotADirectoryError: logs is not exist`，如何解决？","这是因为项目根目录下缺少 `logs` 文件夹。请在项目根目录下手动新建一个名为 `logs` 的文件夹（注意是文件夹 directory，不是 `log.py` 文件）。创建后重新运行代码即可解决该错误。","https:\u002F\u002Fgithub.com\u002FLeeSureman\u002FFlat-Lattice-Transformer\u002Fissues\u002F28",{"id":130,"question_zh":131,"answer_zh":132,"source_url":113},21816,"如果没有 GPU 设备，运行代码时需要做什么修改？","如果没有 GPU，需要修改 `utils.py` 文件。在第 220 行附近添加一行代码 `device = None`，以强制程序使用 CPU 运行，避免因检测不到 GPU 而报错。",{"id":134,"question_zh":135,"answer_zh":136,"source_url":137},21817,"源码在哪里获取？是否需要通过邮件索取？","不需要通过邮件索取。完整的源代码已经公开在这个 GitHub 仓库中，您可以直接克隆或下载该仓库的代码进行学习和使用。","https:\u002F\u002Fgithub.com\u002FLeeSureman\u002FFlat-Lattice-Transformer\u002Fissues\u002F2",{"id":139,"question_zh":140,"answer_zh":141,"source_url":113},21818,"日志中显示 \"Found X out of Y words in the pre-training embedding\"，这代表出错了么？","这通常不是错误，而是正常的信息提示。它表示在预训练词向量中找到了多少个词（例如 Found 698668 out of 698670），未找到的极少数词会被忽略或使用默认向量，只要程序没有因此崩溃，即可正常继续运行。",[]]