[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"similar-harvardnlp--pytorch-struct":3,"tool-harvardnlp--pytorch-struct":61},[4,18,28,37,45,53],{"id":5,"name":6,"github_repo":7,"description_zh":8,"stars":9,"difficulty_score":10,"last_commit_at":11,"category_tags":12,"status":17},4358,"openclaw","openclaw\u002Fopenclaw","OpenClaw 是一款专为个人打造的本地化 AI 助手，旨在让你在自己的设备上拥有完全可控的智能伙伴。它打破了传统 AI 助手局限于特定网页或应用的束缚，能够直接接入你日常使用的各类通讯渠道，包括微信、WhatsApp、Telegram、Discord、iMessage 等数十种平台。无论你在哪个聊天软件中发送消息，OpenClaw 都能即时响应，甚至支持在 macOS、iOS 和 Android 设备上进行语音交互，并提供实时的画布渲染功能供你操控。\n\n这款工具主要解决了用户对数据隐私、响应速度以及“始终在线”体验的需求。通过将 AI 部署在本地，用户无需依赖云端服务即可享受快速、私密的智能辅助，真正实现了“你的数据，你做主”。其独特的技术亮点在于强大的网关架构，将控制平面与核心助手分离，确保跨平台通信的流畅性与扩展性。\n\nOpenClaw 非常适合希望构建个性化工作流的技术爱好者、开发者，以及注重隐私保护且不愿被单一生态绑定的普通用户。只要具备基础的终端操作能力（支持 macOS、Linux 及 Windows WSL2），即可通过简单的命令行引导完成部署。如果你渴望拥有一个懂你",349277,3,"2026-04-06T06:32:30",[13,14,15,16],"Agent","开发框架","图像","数据工具","ready",{"id":19,"name":20,"github_repo":21,"description_zh":22,"stars":23,"difficulty_score":24,"last_commit_at":25,"category_tags":26,"status":17},9989,"n8n","n8n-io\u002Fn8n","n8n 是一款面向技术团队的公平代码（fair-code）工作流自动化平台，旨在让用户在享受低代码快速构建便利的同时，保留编写自定义代码的灵活性。它主要解决了传统自动化工具要么过于封闭难以扩展、要么完全依赖手写代码效率低下的痛点，帮助用户轻松连接 400 多种应用与服务，实现复杂业务流程的自动化。\n\nn8n 特别适合开发者、工程师以及具备一定技术背景的业务人员使用。其核心亮点在于“按需编码”：既可以通过直观的可视化界面拖拽节点搭建流程，也能随时插入 JavaScript 或 Python 代码、调用 npm 包来处理复杂逻辑。此外，n8n 原生集成了基于 LangChain 的 AI 能力，支持用户利用自有数据和模型构建智能体工作流。在部署方面，n8n 提供极高的自由度，支持完全自托管以保障数据隐私和控制权，也提供云端服务选项。凭借活跃的社区生态和数百个现成模板，n8n 让构建强大且可控的自动化系统变得简单高效。",184740,2,"2026-04-19T23:22:26",[16,14,13,15,27],"插件",{"id":29,"name":30,"github_repo":31,"description_zh":32,"stars":33,"difficulty_score":10,"last_commit_at":34,"category_tags":35,"status":17},10095,"AutoGPT","Significant-Gravitas\u002FAutoGPT","AutoGPT 是一个旨在让每个人都能轻松使用和构建 AI 的强大平台，核心功能是帮助用户创建、部署和管理能够自动执行复杂任务的连续型 AI 智能体。它解决了传统 AI 应用中需要频繁人工干预、难以自动化长流程工作的痛点，让用户只需设定目标，AI 即可自主规划步骤、调用工具并持续运行直至完成任务。\n\n无论是开发者、研究人员，还是希望提升工作效率的普通用户，都能从 AutoGPT 中受益。开发者可利用其低代码界面快速定制专属智能体；研究人员能基于开源架构探索多智能体协作机制；而非技术背景用户也可直接选用预置的智能体模板，立即投入实际工作场景。\n\nAutoGPT 的技术亮点在于其模块化“积木式”工作流设计——用户通过连接功能块即可构建复杂逻辑，每个块负责单一动作，灵活且易于调试。同时，平台支持本地自托管与云端部署两种模式，兼顾数据隐私与使用便捷性。配合完善的文档和一键安装脚本，即使是初次接触的用户也能在几分钟内启动自己的第一个 AI 智能体。AutoGPT 正致力于降低 AI 应用门槛，让人人都能成为 AI 的创造者与受益者。",183572,"2026-04-20T04:47:55",[13,36,27,14,15],"语言模型",{"id":38,"name":39,"github_repo":40,"description_zh":41,"stars":42,"difficulty_score":10,"last_commit_at":43,"category_tags":44,"status":17},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,"2026-04-05T11:01:52",[14,15,13],{"id":46,"name":47,"github_repo":48,"description_zh":49,"stars":50,"difficulty_score":24,"last_commit_at":51,"category_tags":52,"status":17},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 真正成长为懂上",161147,"2026-04-19T23:31:47",[14,13,36],{"id":54,"name":55,"github_repo":56,"description_zh":57,"stars":58,"difficulty_score":24,"last_commit_at":59,"category_tags":60,"status":17},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 都能提供强大的支持。其独特的模块化架构允许社区不断扩展新功能，使其成为当前最灵活、生态最丰富的开源扩散模型工具之一，帮助用户将创意高效转化为现实。",109154,"2026-04-18T11:18:24",[14,15,13],{"id":62,"github_repo":63,"name":64,"description_en":65,"description_zh":66,"ai_summary_zh":67,"readme_en":68,"readme_zh":69,"quickstart_zh":70,"use_case_zh":71,"hero_image_url":72,"owner_login":73,"owner_name":74,"owner_avatar_url":75,"owner_bio":76,"owner_company":77,"owner_location":77,"owner_email":78,"owner_twitter":77,"owner_website":79,"owner_url":80,"languages":81,"stars":90,"forks":91,"last_commit_at":92,"license":93,"difficulty_score":24,"env_os":94,"env_gpu":95,"env_ram":94,"env_deps":96,"category_tags":102,"github_topics":77,"view_count":24,"oss_zip_url":77,"oss_zip_packed_at":77,"status":17,"created_at":103,"updated_at":104,"faqs":105,"releases":106},8091,"harvardnlp\u002Fpytorch-struct","pytorch-struct","Fast, general, and tested differentiable structured prediction in PyTorch","pytorch-struct 是一个专为深度学习设计的结构化预测库，由哈佛 NLP 团队开发。它提供了一系列经过严格测试且高度优化的 GPU 加速算法，旨在解决神经网络在处理序列标注、依存句法分析、隐马尔可夫模型等复杂结构输出时的效率与实现难题。\n\n传统方法往往需要手动推导繁琐的动态规划公式并编写低效代码，而 pytorch-struct 将这些核心算法（如 LinearChain-CRF、Dependency-CRF、PCFG 等）封装为标准的 PyTorch 层。开发者只需几行代码，即可在模型中直接调用这些模块，轻松实现边缘概率计算、最优路径搜索（Argmax）、采样及熵计算等功能，且天然支持批量处理和掩码操作。\n\n该工具特别适合从事自然语言处理的研究人员和深度学习工程师使用，尤其是那些需要在端到端系统中集成复杂结构化约束的场景。其独特的技术亮点在于基于“半环动态规划”的统一底层架构，不仅保证了数学上的严谨性，还通过自定义 CUDA 内核实现了极致的运行速度。无论是构建基于 BERT 的句法分析器，还是探索无监督生成模型，pytorch-struct 都能让复杂的结构化预测变得像普","pytorch-struct 是一个专为深度学习设计的结构化预测库，由哈佛 NLP 团队开发。它提供了一系列经过严格测试且高度优化的 GPU 加速算法，旨在解决神经网络在处理序列标注、依存句法分析、隐马尔可夫模型等复杂结构输出时的效率与实现难题。\n\n传统方法往往需要手动推导繁琐的动态规划公式并编写低效代码，而 pytorch-struct 将这些核心算法（如 LinearChain-CRF、Dependency-CRF、PCFG 等）封装为标准的 PyTorch 层。开发者只需几行代码，即可在模型中直接调用这些模块，轻松实现边缘概率计算、最优路径搜索（Argmax）、采样及熵计算等功能，且天然支持批量处理和掩码操作。\n\n该工具特别适合从事自然语言处理的研究人员和深度学习工程师使用，尤其是那些需要在端到端系统中集成复杂结构化约束的场景。其独特的技术亮点在于基于“半环动态规划”的统一底层架构，不仅保证了数学上的严谨性，还通过自定义 CUDA 内核实现了极致的运行速度。无论是构建基于 BERT 的句法分析器，还是探索无监督生成模型，pytorch-struct 都能让复杂的结构化预测变得像普通神经网络层一样简单易用。","# Torch-Struct: Structured Prediction Library \n\n\n![Tests](https:\u002F\u002Fgithub.com\u002Fharvardnlp\u002Fpytorch-struct\u002Fworkflows\u002FTests\u002Fbadge.svg)\n[![Coverage Status](https:\u002F\u002Fcoveralls.io\u002Frepos\u002Fgithub\u002Fharvardnlp\u002Fpytorch-struct\u002Fbadge.svg?branch=master)](https:\u002F\u002Fcoveralls.io\u002Fgithub\u002Fharvardnlp\u002Fpytorch-struct?branch=master)\n\n\u003Cp align=\"center\">\n  \u003Cimg src=\"https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Fharvardnlp_pytorch-struct_readme_77cc24b7bc2b.png\">\n  \u003C\u002Fp>\n\n\nA library of tested, GPU implementations of core structured prediction algorithms for deep learning applications.\n\n* HMM \u002F LinearChain-CRF \n* HSMM \u002F SemiMarkov-CRF \n* Dependency Tree-CRF \n* PCFG Binary Tree-CRF \n* ...\n\nDesigned to be used as efficient batched layers in other PyTorch code. \n\n[Tutorial paper](https:\u002F\u002Farxiv.org\u002Fabs\u002F2002.00876) describing methodology.\n\n## Getting Started\n\n\n```python\n!pip install -qU git+https:\u002F\u002Fgithub.com\u002Fharvardnlp\u002Fpytorch-struct\n# Optional CUDA kernels for FastLogSemiring\n!pip install -qU git+https:\u002F\u002Fgithub.com\u002Fharvardnlp\u002Fgenbmm\n# For plotting.\n!pip install -q matplotlib\n```\n\n\n```python\nimport torch\nfrom torch_struct import DependencyCRF, LinearChainCRF\nimport matplotlib.pyplot as plt\ndef show(x): plt.imshow(x.detach())\n```\n\n\n```python\n# Make some data.\nvals = torch.zeros(2, 10, 10) + 1e-5\nvals[:, :5, :5] = torch.rand(5)\nvals[:, 5:, 5:] = torch.rand(5) \ndist = DependencyCRF(vals.log())\nshow(dist.log_potentials[0])\n```\n\n\n![png](https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Fharvardnlp_pytorch-struct_readme_4223d4790779.png)\n\n\n\n```python\n# Compute marginals\nshow(dist.marginals[0])\n```\n\n\n![png](https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Fharvardnlp_pytorch-struct_readme_132bca09a62b.png)\n\n\n\n```python\n# Compute argmax\nshow(dist.argmax.detach()[0])\n```\n\n\n![png](https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Fharvardnlp_pytorch-struct_readme_d1fb721c6546.png)\n\n\n\n```python\n# Compute scoring and enumeration (forward \u002F inside)\nlog_partition = dist.partition\nmax_score = dist.log_prob(dist.argmax)\n```\n\n\n```python\n# Compute samples \nshow(dist.sample((1,)).detach()[0, 0])\n```\n\n\n![png](https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Fharvardnlp_pytorch-struct_readme_d24ac7c8e64d.png)\n\n\n\n```python\n# Padding\u002FMasking built into library.\ndist = DependencyCRF(vals, lengths=torch.tensor([10, 7]))\nshow(dist.marginals[0])\nplt.show()\nshow(dist.marginals[1])\n```\n\n\n![png](https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Fharvardnlp_pytorch-struct_readme_9621e8502148.png)\n\n\n\n![png](https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Fharvardnlp_pytorch-struct_readme_de1edea0ac88.png)\n\n\n\n```python\n# Many other structured prediction approaches\nchain = torch.zeros(2, 10, 10, 10) + 1e-5\nchain[:, :, :, :] = vals.unsqueeze(-1).exp()\nchain[:, :, :, :] += torch.eye(10, 10).view(1, 1, 10, 10) \nchain[:, 0, :, 0] = 1\nchain[:, -1,9, :] = 1\nchain = chain.log()\n\ndist = LinearChainCRF(chain)\nshow(dist.marginals.detach()[0].sum(-1))\n```\n\n\n![png](https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Fharvardnlp_pytorch-struct_readme_c454b0e63cd4.png)\n\n\n## Library\n\nFull docs: http:\u002F\u002Fnlp.seas.harvard.edu\u002Fpytorch-struct\u002F\n\nCurrent distributions implemented:\n\n* LinearChainCRF \n* SemiMarkovCRF \n* DependencyCRF \n* NonProjectiveDependencyCRF\n* TreeCRF \n* NeuralPCFG \u002F NeuralHMM\n\nEach distribution includes: \n\n* Argmax, sampling, entropy, partition, masking, log_probs, k-max\n\nExtensions:\n\n* Integration with `torchtext`, `pytorch-transformers`, `dgl`\n* Adapters for generative structured models (CFG \u002F HMM \u002F HSMM)\n* Common tree structured parameterizations TreeLSTM \u002F SpanLSTM\n\n\n## Low-level API: \n\nEverything implemented through semiring dynamic programming. \n\n* Log Marginals\n* Max and MAP computation\n* Sampling through specialized backprop\n* Entropy and first-order semirings. \n\n\n## Examples\n\n* BERT \u003Ca href=\"https:\u002F\u002Fgithub.com\u002Fharvardnlp\u002Fpytorch-struct\u002Fblob\u002Fmaster\u002Fnotebooks\u002FBertTagger.ipynb\">Part-of-Speech\u003C\u002Fa> \n* BERT \u003Ca href=\"https:\u002F\u002Fgithub.com\u002Fharvardnlp\u002Fpytorch-struct\u002Fblob\u002Fmaster\u002Fnotebooks\u002FBertDependencies.ipynb\">Dependency Parsing\u003C\u002Fa>\n* \u003Ca href=\"https:\u002F\u002Fgithub.com\u002Fharvardnlp\u002Fpytorch-struct\u002Fblob\u002Fmaster\u002Fnotebooks\u002FUnsupervised_CFG.ipynb\">Unsupervised Learning\u003C\u002Fa> \n* \u003Ca href=\"https:\u002F\u002Fgithub.com\u002Fharvardnlp\u002Fpytorch-struct\u002Fblob\u002Fmaster\u002Fexamples\u002Ftree.py\">Structured VAE \u003C\u002Fa>\n\n\u003Cimg src=\"https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Fharvardnlp_pytorch-struct_readme_7f5826eec663.gif\">\n\n\n\n## Citation\n\n```\n@misc{alex2020torchstruct,\n    title={Torch-Struct: Deep Structured Prediction Library},\n    author={Alexander M. Rush},\n    year={2020},\n    eprint={2002.00876},\n    archivePrefix={arXiv},\n    primaryClass={cs.CL}\n}\n```\n\nThis work was partially supported by NSF grant IIS-1901030. \n","# Torch-Struct：结构化预测库\n\n\n![测试](https:\u002F\u002Fgithub.com\u002Fharvardnlp\u002Fpytorch-struct\u002Fworkflows\u002FTests\u002Fbadge.svg)\n[![覆盖率](https:\u002F\u002Fcoveralls.io\u002Frepos\u002Fgithub\u002Fharvardnlp\u002Fpytorch-struct\u002Fbadge.svg?branch=master)](https:\u002F\u002Fcoveralls.io\u002Fgithub\u002Fharvardnlp\u002Fpytorch-struct?branch=master)\n\n\u003Cp align=\"center\">\n  \u003Cimg src=\"https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Fharvardnlp_pytorch-struct_readme_77cc24b7bc2b.png\">\n  \u003C\u002Fp>\n\n\n一个为深度学习应用提供核心结构化预测算法的、经过充分测试且支持 GPU 的实现库。\n\n* HMM \u002F 线性链 CRF\n* HSMM \u002F 半马尔可夫 CRF\n* 依存句法树 CRF\n* PCFG 二叉树 CRF\n* ...\n\n设计用于作为高效批处理层集成到其他 PyTorch 代码中。\n\n描述该方法论的[教程论文](https:\u002F\u002Farxiv.org\u002Fabs\u002F2002.00876)。\n\n## 快速入门\n\n\n```python\n!pip install -qU git+https:\u002F\u002Fgithub.com\u002Fharvardnlp\u002Fpytorch-struct\n# 可选的 CUDA 内核，用于 FastLogSemiring\n!pip install -qU git+https:\u002F\u002Fgithub.com\u002Fharvardnlp\u002Fgenbmm\n# 用于绘图。\n!pip install -q matplotlib\n```\n\n\n```python\nimport torch\nfrom torch_struct import DependencyCRF, LinearChainCRF\nimport matplotlib.pyplot as plt\ndef show(x): plt.imshow(x.detach())\n```\n\n\n```python\n# 生成一些数据。\nvals = torch.zeros(2, 10, 10) + 1e-5\nvals[:, :5, :5] = torch.rand(5)\nvals[:, 5:, 5:] = torch.rand(5) \ndist = DependencyCRF(vals.log())\nshow(dist.log_potentials[0])\n```\n\n\n![png](https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Fharvardnlp_pytorch-struct_readme_4223d4790779.png)\n\n\n\n```python\n# 计算边缘概率\nshow(dist.marginals[0])\n```\n\n\n![png](https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Fharvardnlp_pytorch-struct_readme_132bca09a62b.png)\n\n\n\n```python\n# 计算最大值\nshow(dist.argmax.detach()[0])\n```\n\n\n![png](https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Fharvardnlp_pytorch-struct_readme_d1fb721c6546.png)\n\n\n\n```python\n# 计算评分和枚举（前向\u002F内部）\nlog_partition = dist.partition\nmax_score = dist.log_prob(dist.argmax)\n```\n\n\n```python\n# 计算样本 \nshow(dist.sample((1,)).detach()[0, 0])\n```\n\n\n![png](https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Fharvardnlp_pytorch-struct_readme_d24ac7c8e64d.png)\n\n\n\n```python\n# 库内置了填充\u002F掩码功能。\ndist = DependencyCRF(vals, lengths=torch.tensor([10, 7]))\nshow(dist.marginals[0])\nplt.show()\nshow(dist.marginals[1])\n```\n\n\n![png](https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Fharvardnlp_pytorch-struct_readme_9621e8502148.png)\n\n\n\n![png](https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Fharvardnlp_pytorch-struct_readme_de1edea0ac88.png)\n\n\n\n```python\n# 其他多种结构化预测方法\nchain = torch.zeros(2, 10, 10, 10) + 1e-5\nchain[:, :, :, :] = vals.unsqueeze(-1).exp()\nchain[:, :, :, :] += torch.eye(10, 10).view(1, 1, 10, 10) \nchain[:, 0, :, 0] = 1\nchain[:, -1,9, :] = 1\nchain = chain.log()\n\ndist = LinearChainCRF(chain)\nshow(dist.marginals.detach()[0].sum(-1))\n```\n\n\n![png](https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Fharvardnlp_pytorch-struct_readme_c454b0e63cd4.png)\n\n\n## 库\n\n完整文档：http:\u002F\u002Fnlp.seas.harvard.edu\u002Fpytorch-struct\u002F\n\n当前实现的分布包括：\n\n* LinearChainCRF\n* 半马尔可夫 CRF\n* 依存句法 CRF\n* 非投影视图依存句法 CRF\n* 树状 CRF\n* 神经 PCFG \u002F 神经 HMM\n\n每个分布都包含：\n\n* 最大值、采样、熵、归一化常数、掩码、对数概率、k 最大值\n\n扩展功能：\n\n* 与 `torchtext`、`pytorch-transformers`、`dgl` 的集成\n* 生成式结构化模型（CFG \u002F HMM \u002F HSMM）的适配器\n* 常见的树结构参数化方法，如 TreeLSTM \u002F SpanLSTM\n\n\n## 低层 API：\n\n所有功能均通过半环动态规划实现。\n\n* 对数边缘概率\n* 最大值和 MAP 计算\n* 通过专用反向传播进行采样\n* 熵及一阶半环计算。\n\n\n## 示例\n\n* BERT \u003Ca href=\"https:\u002F\u002Fgithub.com\u002Fharvardnlp\u002Fpytorch-struct\u002Fblob\u002Fmaster\u002Fnotebooks\u002FBertTagger.ipynb\">词性标注\u003C\u002Fa>\n* BERT \u003Ca href=\"https:\u002F\u002Fgithub.com\u002Fharvardnlp\u002Fpytorch-struct\u002Fblob\u002Fmaster\u002Fnotebooks\u002FBertDependencies.ipynb\">依存句法分析\u003C\u002Fa>\n* \u003Ca href=\"https:\u002F\u002Fgithub.com\u002Fharvardnlp\u002Fpytorch-struct\u002Fblob\u002Fmaster\u002Fnotebooks\u002FUnsupervised_CFG.ipynb\">无监督学习\u003C\u002Fa>\n* \u003Ca href=\"https:\u002F\u002Fgithub.com\u002Fharvardnlp\u002Fpytorch-struct\u002Fblob\u002Fmaster\u002Fexamples\u002Ftree.py\">结构化变分自编码器\u003C\u002Fa>\n\n\u003Cimg src=\"https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Fharvardnlp_pytorch-struct_readme_7f5826eec663.gif\">\n\n\n\n## 引用\n\n```\n@misc{alex2020torchstruct,\n    title={Torch-Struct: 深度结构化预测库},\n    author={Alexander M. Rush},\n    year={2020},\n    eprint={2002.00876},\n    archivePrefix={arXiv},\n    primaryClass={cs.CL}\n}\n```\n\n本研究部分得到了 NSF IIS-1901030 资助。","# pytorch-struct 快速上手指南\n\n`pytorch-struct` 是一个专为深度学习应用设计的结构化预测库，提供了经过测试且支持 GPU 加速的核心算法实现（如 HMM、CRF、依存句法树、PCFG 等）。它旨在作为高效的批处理层嵌入到其他 PyTorch 代码中。\n\n## 环境准备\n\n*   **系统要求**：Linux \u002F macOS \u002F Windows\n*   **前置依赖**：\n    *   Python >= 3.6\n    *   PyTorch >= 1.4 (推荐最新稳定版)\n    *   CUDA (可选，用于 GPU 加速)\n*   **可选依赖**：\n    *   `genbmm`：用于加速 `FastLogSemiring` 的 CUDA 内核。\n    *   `matplotlib`：用于可视化结果。\n\n## 安装步骤\n\n推荐使用 pip 直接从 GitHub 安装最新版本。国内用户若遇到连接问题，可配置 pip 使用国内镜像源（如清华源或阿里源）。\n\n```bash\n# 基础安装\npip install -qU git+https:\u002F\u002Fgithub.com\u002Fharvardnlp\u002Fpytorch-struct\n\n# (可选) 安装高性能 CUDA 内核 (需要编译环境)\npip install -qU git+https:\u002F\u002Fgithub.com\u002Fharvardnlp\u002Fgenbmm\n\n# (可选) 安装绘图工具\npip install -q matplotlib\n```\n\n> **提示**：若下载速度慢，可使用国内镜像加速：\n> `pip install -qU git+https:\u002F\u002Fgithub.com\u002Fharvardnlp\u002Fpytorch-struct -i https:\u002F\u002Fpypi.tuna.tsinghua.edu.cn\u002Fsimple`\n\n## 基本使用\n\n以下示例演示如何构建一个依存句法 CRF (`DependencyCRF`) 模型，并计算边缘概率、最优解及采样。\n\n### 1. 导入库与初始化\n\n```python\nimport torch\nfrom torch_struct import DependencyCRF, LinearChainCRF\nimport matplotlib.pyplot as plt\n\ndef show(x): \n    \"\"\"辅助函数：显示张量图像\"\"\"\n    plt.imshow(x.detach().cpu())\n    plt.show()\n\n# 构造模拟数据 (Batch=2, Length=10, Length=10)\nvals = torch.zeros(2, 10, 10) + 1e-5\nvals[:, :5, :5] = torch.rand(5)\nvals[:, 5:, 5:] = torch.rand(5) \n\n# 初始化分布 (输入通常为 log potentials)\ndist = DependencyCRF(vals.log())\n```\n\n### 2. 核心功能演示\n\n**查看对数势函数：**\n```python\nshow(dist.log_potentials[0])\n```\n\n**计算边缘概率 (Marginals)：**\n```python\nshow(dist.marginals[0])\n```\n\n**计算最优解 (Argmax \u002F Viterbi)：**\n```python\nshow(dist.argmax.detach()[0])\n```\n\n**计算配分函数与得分：**\n```python\n# 计算配分函数 (Forward \u002F Inside algorithm)\nlog_partition = dist.partition\n\n# 计算最优路径的对数概率\nmax_score = dist.log_prob(dist.argmax)\n```\n\n**采样 (Sampling)：**\n```python\n# 采样一个结构\nshow(dist.sample((1,)).detach()[0, 0])\n```\n\n### 3. 处理变长序列 (Masking)\n\n库内置了对 Padding 和 Masking 的支持，只需传入 `lengths` 参数。\n\n```python\n# 指定序列长度 [10, 7]，第二个序列后 3 个位置将被自动掩码\ndist = DependencyCRF(vals, lengths=torch.tensor([10, 7]))\n\n# 观察不同长度的边缘概率\nshow(dist.marginals[0])\nshow(dist.marginals[1])\n```\n\n### 4. 其他结构支持\n\n除了依存树，库还支持线性链 CRF (`LinearChainCRF`) 等多种结构：\n\n```python\n# 构建线性链数据\nchain = torch.zeros(2, 10, 10, 10) + 1e-5\nchain[:, :, :, :] = vals.unsqueeze(-1).exp()\nchain[:, :, :, :] += torch.eye(10, 10).view(1, 1, 10, 10) \nchain[:, 0, :, 0] = 1\nchain[:, -1, 9, :] = 1\nchain = chain.log()\n\n# 使用 LinearChainCRF\ndist_chain = LinearChainCRF(chain)\nshow(dist_chain.marginals.detach()[0].sum(-1))\n```\n\n更多高级用法（如结合 BERT、无监督学习、结构化 VAE 等）请参考官方 Notebook 示例。","某 NLP 团队正在基于 BERT 构建一个高精度的依存句法分析系统，需要模型输出符合语言学规则的树状结构而非简单的标签序列。\n\n### 没有 pytorch-struct 时\n- **算法实现复杂且易错**：开发者需手动编写 CRF 的前向 - 后向动态规划算法，代码冗长且难以处理复杂的树结构约束，极易引入逻辑 Bug。\n- **GPU 加速困难**：传统的结构化预测代码多基于 CPU 循环，难以利用 PyTorch 的批量矩阵运算，导致在大规模数据训练时速度极慢。\n- **缺乏端到端可微性**：由于无法高效计算结构的梯度或熵，模型难以通过反向传播直接优化结构化损失，只能退而求其次使用近似代理任务。\n- **掩码处理繁琐**：针对不同长度的句子进行 Padding 和 Masking 需要大量额外的样板代码，稍有不慎就会导致梯度计算错误。\n\n### 使用 pytorch-struct 后\n- **开箱即用的高效层**：直接调用 `DependencyCRF` 等预置模块，几行代码即可替换复杂的自定义算法，且经过严格测试，保证了数学实现的正确性。\n- **原生 GPU 批量加速**：底层基于半环动态规划（Semiring DP）优化，支持高效的 Batch 并行计算，训练吞吐量提升数倍，显著缩短实验周期。\n- **完美的端到端集成**：天然支持 Argmax、采样、熵及配分函数的可微计算，让模型能直接以结构化概率为目标进行端到端优化，提升解析准确率。\n- **内置智能掩码机制**：库内部自动处理变长序列的 Masking 逻辑，开发者无需关心填充细节，只需传入长度张量即可安全计算。\n\npytorch-struct 将复杂的结构化预测数学转化为高效的 PyTorch 图层，让研究者能专注于模型架构创新而非重复造轮子。","https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Fharvardnlp_pytorch-struct_37041962.png","harvardnlp","HNLP","https:\u002F\u002Foss.gittoolsai.com\u002Favatars\u002Fharvardnlp_ad65452a.jpg","",null,"arush@cornell.edu","rush-nlp.com","https:\u002F\u002Fgithub.com\u002Fharvardnlp",[82,86],{"name":83,"color":84,"percentage":85},"Jupyter Notebook","#DA5B0B",58.9,{"name":87,"color":88,"percentage":89},"Python","#3572A5",41.1,1128,94,"2026-04-10T04:55:49","MIT","未说明","可选（支持 GPU 加速），需安装 genbmm 以启用快速 CUDA 内核，具体显存和 CUDA 版本未说明",{"notes":97,"python":94,"dependencies":98},"该库设计为作为其他 PyTorch 代码中的高效批处理层使用。若需使用 FastLogSemiring 的 CUDA 加速功能，需额外安装 genbmm 库。支持多种结构化预测算法（如 CRF、HMM、PCFG 等），内置填充和掩码功能。",[99,100,101],"torch","genbmm (可选，用于 CUDA 加速)","matplotlib (用于绘图)",[36,14],"2026-03-27T02:49:30.150509","2026-04-20T16:33:25.139753",[],[107,112],{"id":108,"version":109,"summary_zh":110,"released_at":111},289012,"v0.5","* 更好的自动化测试\n* 移除一些较少使用的功能\n* 放弃对 genbmm 的依赖要求","2021-02-15T20:20:59",{"id":113,"version":114,"summary_zh":77,"released_at":115},289013,"v0.4","2019-11-25T04:08:05"]