[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"similar-graykode--nlp-tutorial":3,"tool-graykode--nlp-tutorial":64},[4,17,27,35,43,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},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,3,"2026-04-05T11:01:52",[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},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 真正成长为懂上",138956,2,"2026-04-05T11:33:21",[13,15,26],"语言模型",{"id":28,"name":29,"github_repo":30,"description_zh":31,"stars":32,"difficulty_score":23,"last_commit_at":33,"category_tags":34,"status":16},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 都能提供强大的支持。其独特的模块化架构允许社区不断扩展新功能，使其成为当前最灵活、生态最丰富的开源扩散模型工具之一，帮助用户将创意高效转化为现实。",107662,"2026-04-03T11:11:01",[13,14,15],{"id":36,"name":37,"github_repo":38,"description_zh":39,"stars":40,"difficulty_score":23,"last_commit_at":41,"category_tags":42,"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,26],{"id":44,"name":45,"github_repo":46,"description_zh":47,"stars":48,"difficulty_score":23,"last_commit_at":49,"category_tags":50,"status":16},2268,"ML-For-Beginners","microsoft\u002FML-For-Beginners","ML-For-Beginners 是由微软推出的一套系统化机器学习入门课程，旨在帮助零基础用户轻松掌握经典机器学习知识。这套课程将学习路径规划为 12 周，包含 26 节精炼课程和 52 道配套测验，内容涵盖从基础概念到实际应用的完整流程，有效解决了初学者面对庞大知识体系时无从下手、缺乏结构化指导的痛点。\n\n无论是希望转型的开发者、需要补充算法背景的研究人员，还是对人工智能充满好奇的普通爱好者，都能从中受益。课程不仅提供了清晰的理论讲解，还强调动手实践，让用户在循序渐进中建立扎实的技能基础。其独特的亮点在于强大的多语言支持，通过自动化机制提供了包括简体中文在内的 50 多种语言版本，极大地降低了全球不同背景用户的学习门槛。此外，项目采用开源协作模式，社区活跃且内容持续更新，确保学习者能获取前沿且准确的技术资讯。如果你正寻找一条清晰、友好且专业的机器学习入门之路，ML-For-Beginners 将是理想的起点。",84991,"2026-04-05T10:45:23",[14,51,52,53,15,54,26,13,55],"数据工具","视频","插件","其他","音频",{"id":57,"name":58,"github_repo":59,"description_zh":60,"stars":61,"difficulty_score":10,"last_commit_at":62,"category_tags":63,"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",[15,14,13,26,54],{"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":83,"owner_website":84,"owner_url":85,"languages":86,"stars":95,"forks":96,"last_commit_at":97,"license":98,"difficulty_score":99,"env_os":100,"env_gpu":100,"env_ram":100,"env_deps":101,"category_tags":106,"github_topics":107,"view_count":23,"oss_zip_url":84,"oss_zip_packed_at":84,"status":16,"created_at":117,"updated_at":118,"faqs":119,"releases":155},2490,"graykode\u002Fnlp-tutorial","nlp-tutorial","Natural Language Processing Tutorial for Deep Learning Researchers","nlp-tutorial 是一个专为深度学习研究者打造的自然语言处理（NLP）入门教程，主要基于 PyTorch 框架编写。对于许多希望深入理解 NLP 底层逻辑但被复杂代码劝退的学习者来说，它提供了一个极佳的解决方案。传统的 NLP 实现往往代码冗长、结构复杂，而 nlp-tutorial 的核心理念是“极简”，它将大多数经典模型的核心实现压缩在 100 行代码以内（不含注释和空行），极大地降低了阅读门槛，帮助用户快速抓住算法精髓。\n\n这份教程内容系统且全面，涵盖了从基础到进阶的多个关键领域。它不仅包括 NNLM、Word2Vec 和 FastText 等基础嵌入模型，还深入讲解了 CNN、RNN、LSTM 以及 Bi-LSTM 等神经网络架构在文本分类、自动补全等任务中的应用。此外，针对当前热门的注意力机制（Attention Mechanism），教程也提供了 Seq2Seq 及其变体的详细实现案例，涉及机器翻译和情感分析等实际场景。\n\nnlp-tutorial 特别适合人工智能领域的初学者、高校学生以及希望巩固基础的开发者使用。如果你正在寻找一份代码清晰、逻辑直观且附带原始论文","nlp-tutorial 是一个专为深度学习研究者打造的自然语言处理（NLP）入门教程，主要基于 PyTorch 框架编写。对于许多希望深入理解 NLP 底层逻辑但被复杂代码劝退的学习者来说，它提供了一个极佳的解决方案。传统的 NLP 实现往往代码冗长、结构复杂，而 nlp-tutorial 的核心理念是“极简”，它将大多数经典模型的核心实现压缩在 100 行代码以内（不含注释和空行），极大地降低了阅读门槛，帮助用户快速抓住算法精髓。\n\n这份教程内容系统且全面，涵盖了从基础到进阶的多个关键领域。它不仅包括 NNLM、Word2Vec 和 FastText 等基础嵌入模型，还深入讲解了 CNN、RNN、LSTM 以及 Bi-LSTM 等神经网络架构在文本分类、自动补全等任务中的应用。此外，针对当前热门的注意力机制（Attention Mechanism），教程也提供了 Seq2Seq 及其变体的详细实现案例，涉及机器翻译和情感分析等实际场景。\n\nnlp-tutorial 特别适合人工智能领域的初学者、高校学生以及希望巩固基础的开发者使用。如果你正在寻找一份代码清晰、逻辑直观且附带原始论文引用的学习资料，或者希望通过动手实践来验证理论假设，那么 nlp-tutorial 将是你不可多得的帮手。所有示例均提供 Colab 笔记本链接，支持在线运行与调试，让学习过程更加流畅高效。需要注意的是，该项目已归档旧的 TensorFlow v1 代码，目前专注于支持 PyTorch 1.0 及以上版本，确保了技术栈的现代性与易用性。","## nlp-tutorial\n\n\u003Cp align=\"center\">\u003Cimg width=\"100\" src=\"https:\u002F\u002Fupload.wikimedia.org\u002Fwikipedia\u002Fcommons\u002Fthumb\u002F1\u002F11\u002FTensorFlowLogo.svg\u002F225px-TensorFlowLogo.svg.png\" \u002F>  \u003Cimg width=\"100\" src=\"https:\u002F\u002Fmedia-thumbs.golden.com\u002FOLqzmrmwAzY1P7Sl29k2T9WjJdM=\u002F200x200\u002Fsmart\u002Fgolden-storage-production.s3.amazonaws.com\u002Ftopic_images\u002Fe08914afa10a4179893eeb07cb5e4713.png\" \u002F>\u003C\u002Fp>\n\n`nlp-tutorial` is a tutorial for who is studying NLP(Natural Language Processing) using **Pytorch**. Most of the models in NLP were implemented with less than **100 lines** of code.(except comments or blank lines)\n\n- [08-14-2020] Old TensorFlow v1 code is archived in [the archive folder](archive). For beginner readability, only pytorch version 1.0 or higher is supported.\n\n\n## Curriculum - (Example Purpose)\n\n#### 1. Basic Embedding Model\n\n- 1-1. [NNLM(Neural Network Language Model)](1-1.NNLM) - **Predict Next Word**\n  - Paper -  [A Neural Probabilistic Language Model(2003)](http:\u002F\u002Fwww.jmlr.org\u002Fpapers\u002Fvolume3\u002Fbengio03a\u002Fbengio03a.pdf)\n  - Colab - [NNLM.ipynb](https:\u002F\u002Fcolab.research.google.com\u002Fgithub\u002Fgraykode\u002Fnlp-tutorial\u002Fblob\u002Fmaster\u002F1-1.NNLM\u002FNNLM.ipynb)\n- 1-2. [Word2Vec(Skip-gram)](1-2.Word2Vec) - **Embedding Words and Show Graph**\n  - Paper - [Distributed Representations of Words and Phrases\n    and their Compositionality(2013)](https:\u002F\u002Fpapers.nips.cc\u002Fpaper\u002F5021-distributed-representations-of-words-and-phrases-and-their-compositionality.pdf)\n  - Colab - [Word2Vec.ipynb](https:\u002F\u002Fcolab.research.google.com\u002Fgithub\u002Fgraykode\u002Fnlp-tutorial\u002Fblob\u002Fmaster\u002F1-2.Word2Vec\u002FWord2Vec_Skipgram(Softmax).ipynb)\n- 1-3. [FastText(Application Level)](1-3.FastText) - **Sentence Classification**\n  - Paper - [Bag of Tricks for Efficient Text Classification(2016)](https:\u002F\u002Farxiv.org\u002Fpdf\u002F1607.01759.pdf)\n  - Colab - [FastText.ipynb](https:\u002F\u002Fcolab.research.google.com\u002Fgithub\u002Fgraykode\u002Fnlp-tutorial\u002Fblob\u002Fmaster\u002F1-3.FastText\u002FFastText.ipynb)\n\n\n\n#### 2. CNN(Convolutional Neural Network)\n\n- 2-1. [TextCNN](2-1.TextCNN) - **Binary Sentiment Classification**\n  - Paper - [Convolutional Neural Networks for Sentence Classification(2014)](http:\u002F\u002Fwww.aclweb.org\u002Fanthology\u002FD14-1181)\n  - [TextCNN.ipynb](https:\u002F\u002Fcolab.research.google.com\u002Fgithub\u002Fgraykode\u002Fnlp-tutorial\u002Fblob\u002Fmaster\u002F2-1.TextCNN\u002FTextCNN.ipynb)\n\n\n\n#### 3. RNN(Recurrent Neural Network)\n\n- 3-1. [TextRNN](3-1.TextRNN) - **Predict Next Step**\n  - Paper - [Finding Structure in Time(1990)](http:\u002F\u002Fpsych.colorado.edu\u002F~kimlab\u002FElman1990.pdf)\n  - Colab - [TextRNN.ipynb](https:\u002F\u002Fcolab.research.google.com\u002Fgithub\u002Fgraykode\u002Fnlp-tutorial\u002Fblob\u002Fmaster\u002F3-1.TextRNN\u002FTextRNN.ipynb)\n- 3-2. [TextLSTM](https:\u002F\u002Fgithub.com\u002Fgraykode\u002Fnlp-tutorial\u002Ftree\u002Fmaster\u002F3-2.TextLSTM) - **Autocomplete**\n  - Paper - [LONG SHORT-TERM MEMORY(1997)](https:\u002F\u002Fwww.bioinf.jku.at\u002Fpublications\u002Folder\u002F2604.pdf)\n  - Colab - [TextLSTM.ipynb](https:\u002F\u002Fcolab.research.google.com\u002Fgithub\u002Fgraykode\u002Fnlp-tutorial\u002Fblob\u002Fmaster\u002F3-2.TextLSTM\u002FTextLSTM.ipynb)\n- 3-3. [Bi-LSTM](3-3.Bi-LSTM) - **Predict Next Word in Long Sentence**\n  - Colab - [Bi_LSTM.ipynb](https:\u002F\u002Fcolab.research.google.com\u002Fgithub\u002Fgraykode\u002Fnlp-tutorial\u002Fblob\u002Fmaster\u002F3-3.Bi-LSTM\u002FBi_LSTM.ipynb)\n\n\n\n#### 4. Attention Mechanism\n\n- 4-1. [Seq2Seq](4-1.Seq2Seq) - **Change Word**\n  - Paper - [Learning Phrase Representations using RNN Encoder–Decoder\n    for Statistical Machine Translation(2014)](https:\u002F\u002Farxiv.org\u002Fpdf\u002F1406.1078.pdf)\n  - Colab - [Seq2Seq.ipynb](https:\u002F\u002Fcolab.research.google.com\u002Fgithub\u002Fgraykode\u002Fnlp-tutorial\u002Fblob\u002Fmaster\u002F4-1.Seq2Seq\u002FSeq2Seq.ipynb)\n- 4-2. [Seq2Seq with Attention](4-2.Seq2Seq(Attention)) - **Translate**\n  - Paper - [Neural Machine Translation by Jointly Learning to Align and Translate(2014)](https:\u002F\u002Farxiv.org\u002Fabs\u002F1409.0473)\n  - Colab - [Seq2Seq(Attention).ipynb](https:\u002F\u002Fcolab.research.google.com\u002Fgithub\u002Fgraykode\u002Fnlp-tutorial\u002Fblob\u002Fmaster\u002F4-2.Seq2Seq(Attention)\u002FSeq2Seq(Attention).ipynb)\n- 4-3. [Bi-LSTM with Attention](4-3.Bi-LSTM(Attention)) - **Binary Sentiment Classification**\n  - Colab - [Bi_LSTM(Attention).ipynb](https:\u002F\u002Fcolab.research.google.com\u002Fgithub\u002Fgraykode\u002Fnlp-tutorial\u002Fblob\u002Fmaster\u002F4-3.Bi-LSTM(Attention)\u002FBi_LSTM(Attention).ipynb)\n\n\n\n#### 5. Model based on Transformer\n\n- 5-1.  [The Transformer](5-1.Transformer) - **Translate**\n  - Paper - [Attention Is All You Need(2017)](https:\u002F\u002Farxiv.org\u002Fabs\u002F1706.03762)\n  - Colab - [Transformer.ipynb](https:\u002F\u002Fcolab.research.google.com\u002Fgithub\u002Fgraykode\u002Fnlp-tutorial\u002Fblob\u002Fmaster\u002F5-1.Transformer\u002FTransformer.ipynb), [Transformer(Greedy_decoder).ipynb](https:\u002F\u002Fcolab.research.google.com\u002Fgithub\u002Fgraykode\u002Fnlp-tutorial\u002Fblob\u002Fmaster\u002F5-1.Transformer\u002FTransformer(Greedy_decoder).ipynb)\n- 5-2. [BERT](5-2.BERT) - **Classification Next Sentence & Predict Masked Tokens**\n  - Paper - [BERT: Pre-training of Deep Bidirectional Transformers for Language Understanding(2018)](https:\u002F\u002Farxiv.org\u002Fabs\u002F1810.04805)\n  - Colab - [BERT.ipynb](https:\u002F\u002Fcolab.research.google.com\u002Fgithub\u002Fgraykode\u002Fnlp-tutorial\u002Fblob\u002Fmaster\u002F5-2.BERT\u002FBERT.ipynb)\n\n\n\n## Dependencies\n\n- Python 3.5+\n- Pytorch 1.0.0+\n\n\n\n## Author\n\n- Tae Hwan Jung(Jeff Jung) @graykode\n- Author Email : nlkey2022@gmail.com\n- Acknowledgements to [mojitok](http:\u002F\u002Fmojitok.com\u002F) as NLP Research Internship.\n","## nlp-tutorial\n\n\u003Cp align=\"center\">\u003Cimg width=\"100\" src=\"https:\u002F\u002Fupload.wikimedia.org\u002Fwikipedia\u002Fcommons\u002Fthumb\u002F1\u002F11\u002FTensorFlowLogo.svg\u002F225px-TensorFlowLogo.svg.png\" \u002F>  \u003Cimg width=\"100\" src=\"https:\u002F\u002Fmedia-thumbs.golden.com\u002FOLqzmrmwAzY1P7Sl29k2T9WjJdM=\u002F200x200\u002Fsmart\u002Fgolden-storage-production.s3.amazonaws.com\u002Ftopic_images\u002Fe08914afa10a4179893eeb07cb5e4713.png\" \u002F>\u003C\u002Fp>\n\n`nlp-tutorial` 是一个使用 **Pytorch** 学习自然语言处理（NLP）的教程。NLP 中的大多数模型都用不到 **100 行** 的代码实现。（不包括注释和空行）\n\n- [2020年8月14日] 旧版 TensorFlow v1 的代码已归档至 [archive 文件夹](archive)。为便于初学者阅读，仅支持 Pytorch 1.0 及以上版本。\n\n\n## 课程大纲 - （示例用途）\n\n#### 1. 基础嵌入模型\n\n- 1-1. [NNLM（神经网络语言模型）](1-1.NNLM) - **预测下一个词**\n  - 论文 -  [A Neural Probabilistic Language Model（2003）](http:\u002F\u002Fwww.jmlr.org\u002Fpapers\u002Fvolume3\u002Fbengio03a\u002Fbengio03a.pdf)\n  - Colab - [NNLM.ipynb](https:\u002F\u002Fcolab.research.google.com\u002Fgithub\u002Fgraykode\u002Fnlp-tutorial\u002Fblob\u002Fmaster\u002F1-1.NNLM\u002FNNLM.ipynb)\n- 1-2. [Word2Vec（Skip-gram）](1-2.Word2Vec) - **词嵌入并可视化图谱**\n  - 论文 - [Distributed Representations of Words and Phrases\n    and their Compositionality（2013）](https:\u002F\u002Fpapers.nips.cc\u002Fpaper\u002F5021-distributed-representations-of-words-and-phrases-and-their-compositionality.pdf)\n  - Colab - [Word2Vec.ipynb](https:\u002F\u002Fcolab.research.google.com\u002Fgithub\u002Fgraykode\u002Fnlp-tutorial\u002Fblob\u002Fmaster\u002F1-2.Word2Vec\u002FWord2Vec_Skipgram(Softmax).ipynb)\n- 1-3. [FastText（应用级）](1-3.FastText) - **句子分类**\n  - 论文 - [Bag of Tricks for Efficient Text Classification（2016）](https:\u002F\u002Farxiv.org\u002Fpdf\u002F1607.01759.pdf)\n  - Colab - [FastText.ipynb](https:\u002F\u002Fcolab.research.google.com\u002Fgithub\u002Fgraykode\u002Fnlp-tutorial\u002Fblob\u002Fmaster\u002F1-3.FastText\u002FFastText.ipynb)\n\n\n\n#### 2. CNN（卷积神经网络）\n\n- 2-1. [TextCNN](2-1.TextCNN) - **二元情感分类**\n  - 论文 - [Convolutional Neural Networks for Sentence Classification（2014）](http:\u002F\u002Fwww.aclweb.org\u002Fanthology\u002FD14-1181)\n  - [TextCNN.ipynb](https:\u002F\u002Fcolab.research.google.com\u002Fgithub\u002Fgraykode\u002Fnlp-tutorial\u002Fblob\u002Fmaster\u002F2-1.TextCNN\u002FTextCNN.ipynb)\n\n\n\n#### 3. RNN（循环神经网络）\n\n- 3-1. [TextRNN](3-1.TextRNN) - **预测下一步**\n  - 论文 - [Finding Structure in Time（1990）](http:\u002F\u002Fpsych.colorado.edu\u002F~kimlab\u002FElman1990.pdf)\n  - Colab - [TextRNN.ipynb](https:\u002F\u002Fcolab.research.google.com\u002Fgithub\u002Fgraykode\u002Fnlp-tutorial\u002Fblob\u002Fmaster\u002F3-1.TextRNN\u002FTextRNN.ipynb)\n- 3-2. [TextLSTM](https:\u002F\u002Fgithub.com\u002Fgraykode\u002Fnlp-tutorial\u002Ftree\u002Fmaster\u002F3-2.TextLSTM) - **自动补全**\n  - 论文 - [LONG SHORT-TERM MEMORY（1997）](https:\u002F\u002Fwww.bioinf.jku.at\u002Fpublications\u002Folder\u002F2604.pdf)\n  - Colab - [TextLSTM.ipynb](https:\u002F\u002Fcolab.research.google.com\u002Fgithub\u002Fgraykode\u002Fnlp-tutorial\u002Fblob\u002Fmaster\u002F3-2.TextLSTM\u002FTextLSTM.ipynb)\n- 3-3. [Bi-LSTM](3-3.Bi-LSTM) - **在长句中预测下一个词**\n  - Colab - [Bi_LSTM.ipynb](https:\u002F\u002Fcolab.research.google.com\u002Fgithub\u002Fgraykode\u002Fnlp-tutorial\u002Fblob\u002Fmaster\u002F3-3.Bi-LSTM\u002FBi_LSTM.ipynb)\n\n\n\n#### 4. 注意力机制\n\n- 4-1. [Seq2Seq](4-1.Seq2Seq) - **单词转换**\n  - 论文 - [Learning Phrase Representations using RNN Encoder–Decoder\n    for Statistical Machine Translation（2014）](https:\u002F\u002Farxiv.org\u002Fpdf\u002F1406.1078.pdf)\n  - Colab - [Seq2Seq.ipynb](https:\u002F\u002Fcolab.research.google.com\u002Fgithub\u002Fgraykode\u002Fnlp-tutorial\u002Fblob\u002Fmaster\u002F4-1.Seq2Seq\u002FSeq2Seq.ipynb)\n- 4-2. [带有注意力机制的 Seq2Seq](4-2.Seq2Seq(Attention)) - **翻译**\n  - 论文 - [Neural Machine Translation by Jointly Learning to Align and Translate（2014）](https:\u002F\u002Farxiv.org\u002Fabs\u002F1409.0473)\n  - Colab - [Seq2Seq(Attention).ipynb](https:\u002F\u002Fcolab.research.google.com\u002Fgithub\u002Fgraykode\u002Fnlp-tutorial\u002Fblob\u002Fmaster\u002F4-2.Seq2Seq(Attention)\u002FSeq2Seq(Attention).ipynb)\n- 4-3. [带有注意力机制的 Bi-LSTM](4-3.Bi-LSTM(Attention)) - **二元情感分类**\n  - Colab - [Bi_LSTM(Attention).ipynb](https:\u002F\u002Fcolab.research.google.com\u002Fgithub\u002Fgraykode\u002Fnlp-tutorial\u002Fblob\u002Fmaster\u002F4-3.Bi-LSTM(Attention)\u002FBi_LSTM(Attention).ipynb)\n\n\n\n#### 5. 基于 Transformer 的模型\n\n- 5-1. [Transformer](5-1.Transformer) - **翻译**\n  - 论文 - [Attention Is All You Need（2017）](https:\u002F\u002Farxiv.org\u002Fabs\u002F1706.03762)\n  - Colab - [Transformer.ipynb](https:\u002F\u002Fcolab.research.google.com\u002Fgithub\u002Fgraykode\u002Fnlp-tutorial\u002Fblob\u002Fmaster\u002F5-1.Transformer\u002FTransformer.ipynb), [Transformer(Greedy_decoder).ipynb](https:\u002F\u002Fcolab.research.google.com\u002Fgithub\u002Fgraykode\u002Fnlp-tutorial\u002Fblob\u002Fmaster\u002F5-1.Transformer\u002FTransformer(Greedy_decoder).ipynb)\n- 5-2. [BERT](5-2.BERT) - **下一句分类与掩码标记预测**\n  - 论文 - [BERT: Pre-training of Deep Bidirectional Transformers for Language Understanding（2018）](https:\u002F\u002Farxiv.org\u002Fabs\u002F1810.04805)\n  - Colab - [BERT.ipynb](https:\u002F\u002Fcolab.research.google.com\u002Fgithub\u002Fgraykode\u002Fnlp-tutorial\u002Fblob\u002Fmaster\u002F5-2.BERT\u002FBERT.ipynb)\n\n\n\n## 依赖项\n\n- Python 3.5+\n- Pytorch 1.0.0+\n\n\n\n## 作者\n\n- 郑泰焕（Jeff Jung）@graykode\n- 作者邮箱：nlkey2022@gmail.com\n- 感谢 [mojitok](http:\u002F\u002Fmojitok.com\u002F) 在 NLP 研究实习期间的支持。","# nlp-tutorial 快速上手指南\n\n`nlp-tutorial` 是一个基于 **PyTorch** 的自然语言处理（NLP）学习教程。该项目的核心特点是代码精简，大多数经典 NLP 模型的实现均控制在 **100 行代码以内**（不含注释和空行），非常适合初学者理解模型底层原理。\n\n> **注意**：旧版 TensorFlow v1 代码已归档至 `archive` 文件夹。本项目仅支持 PyTorch 1.0 及以上版本，以确保代码的可读性和现代性。\n\n## 环境准备\n\n在开始之前，请确保您的开发环境满足以下要求：\n\n*   **操作系统**：Windows \u002F macOS \u002F Linux\n*   **Python 版本**：3.5 或更高版本\n*   **深度学习框架**：PyTorch 1.0.0 或更高版本\n\n## 安装步骤\n\n### 1. 克隆项目仓库\n\n使用 Git 将项目代码下载到本地：\n\n```bash\ngit clone https:\u002F\u002Fgithub.com\u002Fgraykode\u002Fnlp-tutorial.git\ncd nlp-tutorial\n```\n\n### 2. 安装依赖\n\n建议先创建并激活一个虚拟环境，然后安装 PyTorch。\n\n**安装 PyTorch：**\n请访问 [PyTorch 官网](https:\u002F\u002Fpytorch.org\u002Fget-started\u002Flocally\u002F) 获取适合您系统的安装命令。例如，使用 pip 安装 CPU 版本的 PyTorch：\n\n```bash\npip install torch torchvision torchaudio\n```\n\n*(注：本教程主要依赖 PyTorch 基础库，其他常见数据处理库如 `numpy`、`matplotlib` 等通常随 PyTorch 自动安装或需根据具体 Notebook 需求另行安装)*\n\n## 基本使用\n\n本教程以 Jupyter Notebook (`.ipynb`) 形式组织，每个模型对应一个独立的 Notebook 文件。您可以直接在 Google Colab 上运行，也可以在本地启动 Jupyter 服务进行学习和调试。\n\n### 方式一：本地运行\n\n1.  安装 Jupyter Notebook：\n    ```bash\n    pip install jupyter\n    ```\n\n2.  启动 Jupyter 服务：\n    ```bash\n    jupyter notebook\n    ```\n\n3.  在浏览器中打开任意模型目录下的 `.ipynb` 文件即可开始学习。例如，进入 `1-1.NNLM` 文件夹并打开 `NNLM.ipynb`。\n\n### 方式二：Google Colab 在线运行（推荐）\n\n如果您不想配置本地环境，可以直接点击各章节提供的 Colab 链接在线运行代码。以下是最基础的入门示例路径：\n\n#### 示例 1：基础嵌入模型 - NNLM\n*   **目标**：预测下一个单词\n*   **论文**：[A Neural Probabilistic Language Model (2003)](http:\u002F\u002Fwww.jmlr.org\u002Fpapers\u002Fvolume3\u002Fbengio03a\u002Fbengio03a.pdf)\n*   **运行**：[打开 NNLM.ipynb in Colab](https:\u002F\u002Fcolab.research.google.com\u002Fgithub\u002Fgraykode\u002Fnlp-tutorial\u002Fblob\u002Fmaster\u002F1-1.NNLM\u002FNNLM.ipynb)\n\n#### 示例 2：词向量 - Word2Vec (Skip-gram)\n*   **目标**：词嵌入并可视化展示\n*   **论文**：[Distributed Representations of Words and Phrases (2013)](https:\u002F\u002Fpapers.nips.cc\u002Fpaper\u002F5021-distributed-representations-of-words-and-phrases-and-their-compositionality.pdf)\n*   **运行**：[打开 Word2Vec.ipynb in Colab](https:\u002F\u002Fcolab.research.google.com\u002Fgithub\u002Fgraykode\u002Fnlp-tutorial\u002Fblob\u002Fmaster\u002F1-2.Word2Vec\u002FWord2Vec_Skipgram(Softmax).ipynb)\n\n#### 示例 3：Transformer 模型\n*   **目标**：机器翻译\n*   **论文**：[Attention Is All You Need (2017)](https:\u002F\u002Farxiv.org\u002Fabs\u002F1706.03762)\n*   **运行**：[打开 Transformer.ipynb in Colab](https:\u002F\u002Fcolab.research.google.com\u002Fgithub\u002Fgraykode\u002Fnlp-tutorial\u002Fblob\u002Fmaster\u002F5-1.Transformer\u002FTransformer.ipynb)\n\n### 学习路线建议\n\n建议按照以下顺序逐步深入：\n\n1.  **Basic Embedding Model**: 理解词向量的基本概念 (NNLM, Word2Vec, FastText)。\n2.  **CNN**: 学习卷积神经网络在文本分类中的应用 (TextCNN)。\n3.  **RNN**: 掌握循环神经网络及其变体 (TextRNN, TextLSTM, Bi-LSTM)。\n4.  **Attention Mechanism**: 理解注意力机制及其在序列到序列模型中的作用 (Seq2Seq, Attention)。\n5.  **Transformer & BERT**: 深入学习当前主流的预训练模型架构 (The Transformer, BERT)。","某高校人工智能专业的研究生李明，正着手进行自然语言处理（NLP）的入门研究，计划复现经典的文本分类和机器翻译模型以夯实理论基础。\n\n### 没有 nlp-tutorial 时\n- **代码实现门槛高**：面对复杂的深度学习架构，李明需要从零编写数百行 PyTorch 代码，极易因维度不匹配或逻辑错误陷入调试困境，耗费大量时间在底层实现而非算法理解上。\n- **理论与实践脱节**：虽然阅读了 Bengio 或 Seq2Seq 的经典论文，但难以将抽象的数学公式转化为可运行的代码，导致对模型内部机制（如 Attention 权重计算）的理解停留在表面。\n- **环境配置混乱**：网络上流传的教程多基于过时的 TensorFlow v1 版本，依赖库冲突频繁，且代码风格不一，缺乏统一的标准，增加了学习曲线和环境搭建的难度。\n- **缺乏直观验证**：难以快速看到模型效果，例如 Word2Vec 的词向量可视化或 LSTM 的自动补全效果，导致学习过程枯燥且缺乏正向反馈。\n\n### 使用 nlp-tutorial 后\n- **极简代码快速上手**：借助 nlp-tutorial 中少于 100 行的精简 PyTorch 实现，李明能迅速跑通 NNLM、TextCNN 等核心模型，将精力集中在理解数据流和模型结构上，而非纠结于工程细节。\n- **代码与论文精准对应**：每个模块都明确标注了对应的经典论文（如 TextCNN 对应 2014 年 ACL 论文），李明可以边看代码边对照论文公式，彻底理清了从 Embedding 到 Attention 的每一步推导。\n- **现代化技术栈支持**：完全基于 PyTorch 1.0+ 构建，摒弃了陈旧的 TensorFlow v1 代码，确保了环境的稳定性和代码的可维护性，让李明能专注于现代 NLP 开发流程。\n- **即时可视化反馈**：通过内置的 Colab 笔记本，李明能直接生成 Word2Vec 的词关系图谱或查看 Seq2Seq 的翻译结果，直观感受模型性能，极大地提升了学习兴趣和效率。\n\nnlp-tutorial 通过“百行代码”的极致精简，架起了经典 NLP 理论与现代 PyTorch 实践之间的桥梁，让研究者能高效掌握核心算法精髓。","https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Fgraykode_nlp-tutorial_96f6d532.png","graykode","Tae Hwan Jung","https:\u002F\u002Foss.gittoolsai.com\u002Favatars\u002Fgraykode_3b700990.png","Former AI Engineer | Web3 Developer & Degen","@clober-dex","Seoul, South Korea","nlkey2022@gmail.com","graykoder",null,"https:\u002F\u002Fgithub.com\u002Fgraykode",[87,91],{"name":88,"color":89,"percentage":90},"Jupyter Notebook","#DA5B0B",61,{"name":92,"color":93,"percentage":94},"Python","#3572A5",39,14874,3959,"2026-04-02T08:38:20","MIT",1,"未说明",{"notes":102,"python":103,"dependencies":104},"该项目为 NLP 学习教程，代码已归档旧的 TensorFlow v1 版本，仅支持 Pytorch 1.0 及以上版本以保证初学者的可读性。大多数模型实现代码少于 100 行。","3.5+",[105],"Pytorch>=1.0.0",[26,13],[108,109,110,111,112,113,114,115,116],"nlp","natural-language-processing","tutorial","pytorch","tensorflow","transformer","attention","paper","bert","2026-03-27T02:49:30.150509","2026-04-06T06:55:13.324110",[120,125,130,135,140,145,150],{"id":121,"question_zh":122,"answer_zh":123,"source_url":124},11475,"Transformer 模型中位置编码表的大小为什么是 (src_vocab_size, d_model) 而不是 (src_len, d_model)？","这是一个代码错误。在 Encoder 中，位置编码表的大小应该是 (src_len + 1, d_model)，在 Decoder 中应该是 (tgt_len + 1, d_model)。维护者已确认并将修复此问题。","https:\u002F\u002Fgithub.com\u002Fgraykode\u002Fnlp-tutorial\u002Fissues\u002F30",{"id":126,"question_zh":127,"answer_zh":128,"source_url":129},11476,"Seq2Seq 模型输出维度的注释是否有误？","注释可能存在误导，但代码逻辑是正确的。虽然 RNN 输出的维度是 [max_len+1, batch_size, n_hidden]，但在经过最后的全连接层（Fully Connected Layer）后，维度会从 hidden_size 转换为 n_class（类别数\u002F词汇表大小）。因此，最终输出的维度确实是 n_class，而不是 n_hidden。","https:\u002F\u002Fgithub.com\u002Fgraykode\u002Fnlp-tutorial\u002Fissues\u002F53",{"id":131,"question_zh":132,"answer_zh":133,"source_url":134},11477,"在训练 Transformer 或 Seq2Seq 模型时，应该使用 Teacher Forcing 还是 Greedy Decoder？","Teacher Forcing 和 Non-Teacher Forcing 有区别。在训练阶段，使用 Teacher Forcing 可以使模型收敛得更快。Greedy Decoder（贪心解码）通常用于推理\u002F测试阶段，而不是训练阶段。","https:\u002F\u002Fgithub.com\u002Fgraykode\u002Fnlp-tutorial\u002Fissues\u002F27",{"id":136,"question_zh":137,"answer_zh":138,"source_url":139},11478,"PyTorch 中的 LSTM 模型为什么不设置 batch_first=True？","这主要是作者个人的编码习惯，并非出于性能考虑。作者建议在阅读代码时注意张量维度的转换（使用 permute 和 transpose 函数）。如果你更喜欢 batch_first 格式，可以自行修改以提高代码可读性，但这不影响模型功能。","https:\u002F\u002Fgithub.com\u002Fgraykode\u002Fnlp-tutorial\u002Fissues\u002F13",{"id":141,"question_zh":142,"answer_zh":143,"source_url":144},11479,"Word2Vec Skip-gram 实现中，从不同句子中提取邻居单词是否会影响结果？","理论上，N-gram 或上下文窗口操作应在同一句子内进行，跨句子提取邻居单词是不正确的。但在该示例代码中，为了简化演示，作者并未严格处理句子边界。在实际生产环境或严谨的训练中，应确保上下文窗口不跨越句子边界。","https:\u002F\u002Fgithub.com\u002Fgraykode\u002Fnlp-tutorial\u002Fissues\u002F24",{"id":146,"question_zh":147,"answer_zh":148,"source_url":149},11480,"NNLM（神经概率语言模型）实现中似乎缺少嵌入矩阵（Embedding Matrix\u002FC matrix）？","在早期的 TensorFlow 实现中，可能没有显式地命名为 'C' 矩阵。标准的 NNLM 包含一个查找表 C (n_class, m)，用于将输入词映射为特征向量。如果需要显式添加，可以参考以下修改：\n```python\nm = 5\nC = tf.Variable(tf.random_normal([1, n_class, m]))\nC_shared = tf.tile(C, [tf.shape(X)[0], 1, 1]) # 共享参数\nvecs = tf.matmul(X, C_shared) # [batch_size, n_step, m], 获取每个词的特征向量\ninput = tf.reshape(vecs, shape=[-1, n_step * m]) # [batch_size, n_step * m]\n```\n维护者后续已更新代码以包含明确的 Embedding 层。","https:\u002F\u002Fgithub.com\u002Fgraykode\u002Fnlp-tutorial\u002Fissues\u002F10",{"id":151,"question_zh":152,"answer_zh":153,"source_url":154},11481,"TextCNN 代码中在循环内部创建 Conv2d 层是否正确？","在 PyTorch 中，通常在 __init__ 中定义层，在 forward 中调用。如果在 forward 的循环中每次迭代都实例化 nn.Conv2d，会导致无法正确注册参数和复用权重。正确的做法是为每种 filter_size 在 __init__ 中预先定义好 Conv2d 层，或者使用 ModuleList 管理多个卷积层。评论指出原作者可能受 TensorFlow 1.x 风格影响，建议在 PyTorch 中重构为标准写法。","https:\u002F\u002Fgithub.com\u002Fgraykode\u002Fnlp-tutorial\u002Fissues\u002F33",[]]