[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"similar-idiap--fast-transformers":3,"tool-idiap--fast-transformers":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":80,"owner_email":80,"owner_twitter":81,"owner_website":82,"owner_url":83,"languages":84,"stars":97,"forks":98,"last_commit_at":99,"license":80,"difficulty_score":10,"env_os":100,"env_gpu":101,"env_ram":102,"env_deps":103,"category_tags":109,"github_topics":80,"view_count":23,"oss_zip_url":80,"oss_zip_packed_at":80,"status":16,"created_at":110,"updated_at":111,"faqs":112,"releases":141},3963,"idiap\u002Ffast-transformers","fast-transformers","Pytorch library for fast transformer implementations","fast-transformers 是一个基于 PyTorch 构建的开源库，旨在提供高效运行的 Transformer 模型实现。它主要解决了传统 Transformer 在处理长序列文本时面临的性能瓶颈：由于自注意力机制的计算复杂度随序列长度呈二次方增长，导致处理长文本时速度缓慢且显存占用极高。\n\n通过引入线性注意力（Linear Attention）和聚类注意力（Clustered Attention）等创新算法，fast-transformers 成功将计算复杂度降低为线性级别。实测数据显示，在处理千元素序列时，其线性注意力模型的速度可比传统 Softmax 注意力模型提升一倍以上，同时保持具有竞争力的准确率。这使得训练和部署超长上下文模型变得更加可行。\n\n该工具特别适合 AI 研究人员、深度学习工程师以及需要处理长文档、长代码或高分辨率图像序列的开发者使用。它不仅提供了易于使用的构建器来快速切换不同的注意力机制，还包含了相关前沿论文的复现代码，是探索高效 Transformer 架构、进行大规模自然语言处理任务研究的得力助手。无论是希望优化现有模型推理速度，还是致力于下一代高","fast-transformers 是一个基于 PyTorch 构建的开源库，旨在提供高效运行的 Transformer 模型实现。它主要解决了传统 Transformer 在处理长序列文本时面临的性能瓶颈：由于自注意力机制的计算复杂度随序列长度呈二次方增长，导致处理长文本时速度缓慢且显存占用极高。\n\n通过引入线性注意力（Linear Attention）和聚类注意力（Clustered Attention）等创新算法，fast-transformers 成功将计算复杂度降低为线性级别。实测数据显示，在处理千元素序列时，其线性注意力模型的速度可比传统 Softmax 注意力模型提升一倍以上，同时保持具有竞争力的准确率。这使得训练和部署超长上下文模型变得更加可行。\n\n该工具特别适合 AI 研究人员、深度学习工程师以及需要处理长文档、长代码或高分辨率图像序列的开发者使用。它不仅提供了易于使用的构建器来快速切换不同的注意力机制，还包含了相关前沿论文的复现代码，是探索高效 Transformer 架构、进行大规模自然语言处理任务研究的得力助手。无论是希望优化现有模型推理速度，还是致力于下一代高效架构研究的专业人士，都能从中获益。","Fast Transformers\n=================\n\nTransformers are very successful models that achieve state of the art\nperformance in many natural language tasks. However, it is very difficult to\nscale them to long sequences due to the quadratic scaling of self-attention.\n\nThis library was developed for our research on fast attention for transformers.\nYou can find a list of our papers `in the docs\n\u003Chttps:\u002F\u002Ffast-transformers.github.io>`_ as well as related papers and papers\nthat we have implemented.\n\nQuick-start\n-----------\n\nThe following code builds a transformer with softmax attention and one with\nlinear attention and compares the time required by each to encode a sequence\nwith 1000 elements.\n\n.. code:: python\n\n    import torch\n    from fast_transformers.builders import TransformerEncoderBuilder\n\n    # Create the builder for our transformers\n    builder = TransformerEncoderBuilder.from_kwargs(\n        n_layers=8,\n        n_heads=8,\n        query_dimensions=64,\n        value_dimensions=64,\n        feed_forward_dimensions=1024\n    )\n\n    # Build a transformer with softmax attention\n    builder.attention_type = \"full\"\n    softmax_model = builder.get()\n\n    # Build a transformer with linear attention\n    builder.attention_type = \"linear\"\n    linear_model = builder.get()\n\n    # Construct the dummy input\n    X = torch.rand(10, 1000, 8*64)\n\n    # Prepare everythin for CUDA\n    X = X.cuda()\n    softmax_model.cuda()\n    softmax_model.eval()\n    linear_model.cuda()\n    linear_model.eval()\n\n    # Warmup the GPU\n    with torch.no_grad():\n        softmax_model(X)\n        linear_model(X)\n    torch.cuda.synchronize()\n\n    # Measure the execution time\n    softmax_start = torch.cuda.Event(enable_timing=True)\n    softmax_end = torch.cuda.Event(enable_timing=True)\n    linear_start = torch.cuda.Event(enable_timing=True)\n    linear_end = torch.cuda.Event(enable_timing=True)\n\n    with torch.no_grad():\n        softmax_start.record()\n        y = softmax_model(X)\n        softmax_end.record()\n        torch.cuda.synchronize()\n        print(\"Softmax: \", softmax_start.elapsed_time(softmax_end), \"ms\")\n        # Softmax: 144 ms (on a GTX1080Ti)\n\n    with torch.no_grad():\n        linear_start.record()\n        y = linear_model(X)\n        linear_end.record()\n        torch.cuda.synchronize()\n        print(\"Linear: \", linear_start.elapsed_time(linear_end), \"ms\")\n        # Linear: 68 ms (on a GTX1080Ti)\n\nDependencies & Installation\n---------------------------\n\nThe fast transformers library has the following dependencies:\n\n* PyTorch\n* C++ toolchain\n* CUDA toolchain (if you want to compile for GPUs)\n\nFor most machines installation should be as simple as:\n\n.. code:: bash\n\n    pip install --user pytorch-fast-transformers\n\nNote: macOS users should ensure they have `llvm` and `libomp` installed.\nUsing the `homebrew \u003Chttps:\u002F\u002Fbrew.sh>`_ package manager, this can be\naccomplished by running `brew install llvm libomp`.\n\nDocumentation\n-------------\n\nThere exists a dedicated `documentation site\n\u003Chttps:\u002F\u002Ffast-transformers.github.io\u002F>`_ but you are also encouraged to read\nthe `source code \u003Chttps:\u002F\u002Fgithub.com\u002Fidiap\u002Ffast-transformers>`_.\n\nResearch\n--------\n\nOurs\n~~~~\n\nTo read about the theory behind some attention implementations in this library\nwe encourage you to follow our research.\n\n* Transformers are RNNs: Fast Autoregressive Transformers with\n  Linear Attention (`2006.16236 \u003Chttps:\u002F\u002Farxiv.org\u002Fabs\u002F2006.16236>`_)\n* Fast Transformers with Clustered Attention\n  (`2007.04825 \u003Chttps:\u002F\u002Farxiv.org\u002Fabs\u002F2007.04825>`_)\n\nIf you found our research helpful or influential please consider citing\n\n.. code::\n\n    @inproceedings{katharopoulos_et_al_2020,\n        author = {Katharopoulos, A. and Vyas, A. and Pappas, N. and Fleuret, F.},\n        title = {Transformers are RNNs: Fast Autoregressive Transformers with Linear Attention},\n        booktitle = {Proceedings of the International Conference on Machine Learning (ICML)},\n        year = {2020}\n    }\n\n    @article{vyas_et_al_2020,\n        author={Vyas, A. and Katharopoulos, A. and Fleuret, F.},\n        title={Fast Transformers with Clustered Attention},\n        booktitle = {Proceedings of the International Conference on Neural Information Processing Systems (NeurIPS)},\n        year={2020}\n    }\n\nBy others\n~~~~~~~~~\n\n* Efficient Attention: Attention with Linear Complexities (`1812.01243\n  \u003Chttps:\u002F\u002Farxiv.org\u002Fabs\u002F1812.01243>`_)\n* Linformer: Self-Attention with Linear Complexity (`2006.04768\n  \u003Chttps:\u002F\u002Farxiv.org\u002Fabs\u002F2006.04768>`_)\n* Reformer: The Efficient Transformer (`2001.04451\n  \u003Chttps:\u002F\u002Farxiv.org\u002Fabs\u002F2001.04451>`_)\n\nSupport, License and Copyright\n------------------------------\n\nThis software is distributed with the **MIT** license which pretty much means that\nyou can use it however you want and for whatever reason you want. All the\ninformation regarding support, copyright and the license can be found in the\n`LICENSE \u003Chttps:\u002F\u002Fgithub.com\u002Fidiap\u002Ffast-transformers\u002Fblob\u002Fmaster\u002FLICENSE>`_\nfile in the repository.\n","快速 Transformer\n=================\n\nTransformer 是非常成功的模型，在许多自然语言处理任务中达到了最先进 的性能。然而，由于自注意力机制的时间复杂度呈二次方增长，将其扩展到 长序列上非常困难。\n\n本库是我们针对 Transformer 的快速注意力机制研究而开发的。您可以在文 档中找到我们的论文列表 `https:\u002F\u002Ffast-transformers.github.io`_，以及相关 论文和我们已实现的论文。\n\n快速入门\n---------\n\n以下代码构建了一个使用 softmax 注意力的 Transformer 和一个使用线性注 意力的 Transformer，并比较了它们对包含 1000 个元素的序列进行编码所 需的时间。\n\n.. code:: python\n\n    import torch\n    from fast_transformers.builders import TransformerEncoderBuilder\n\n    # 创建 Transformer 构建器\n    builder = TransformerEncoderBuilder.from_kwargs(\n        n_layers=8,\n        n_heads=8,\n        query_dimensions=64,\n        value_dimensions=64,\n        feed_forward_dimensions=1024\n    )\n\n    # 构建一个使用 softmax 注意力的 Transformer\n    builder.attention_type = \"full\"\n    softmax_model = builder.get()\n\n    # 构建一个使用线性注意力的 Transformer\n    builder.attention_type = \"linear\"\n    linear_model = builder.get()\n\n    # 构造虚拟输入\n    X = torch.rand(10, 1000, 8*64)\n\n    # 为 CUDA 准备一切\n    X = X.cuda()\n    softmax_model.cuda()\n    softmax_model.eval()\n    linear_model.cuda()\n    linear_model.eval()\n\n    # 预热 GPU\n    with torch.no_grad():\n        softmax_model(X)\n        linear_model(X)\n    torch.cuda.synchronize()\n\n    # 测量执行时间\n    softmax_start = torch.cuda.Event(enable_timing=True)\n    softmax_end = torch.cuda.Event(enable_timing=True)\n    linear_start = torch.cuda.Event(enable_timing=True)\n    linear_end = torch.cuda.Event(enable_timing=True)\n\n    with torch.no_grad():\n        softmax_start.record()\n        y = softmax_model(X)\n        softmax_end.record()\n        torch.cuda.synchronize()\n        print(\"Softmax: \", softmax_start.elapsed_time(softmax_end), \"ms\")\n        # Softmax: 144 ms（在 GTX1080Ti 上）\n\n    with torch.no_grad():\n        linear_start.record()\n        y = linear_model(X)\n        linear_end.record()\n        torch.cuda.synchronize()\n        print(\"Linear: \", linear_start.elapsed_time(linear_end), \"ms\")\n        # Linear: 68 ms（在 GTX1080Ti 上）\n\n依赖与安装\n-----------\n\nFast Transformers 库有以下依赖项：\n\n* PyTorch\n* C++ 工具链\n* CUDA 工具链（如果您希望编译用于 GPU）\n\n对于大多数机器来说，安装非常简单：\n\n.. code:: bash\n\n    pip install --user pytorch-fast-transformers\n\n注意：macOS 用户应确保已安装 `llvm` 和 `libomp`。可以使用 `homebrew \u003Chttps:\u002F\u002Fbrew.sh>`_ 包管理器运行 `brew install llvm libomp` 来完成安装。\n\n文档\n----\n\n我们有一个专门的 `文档网站 \u003Chttps:\u002F\u002Ffast-transformers.github.io\u002F>`_，但也鼓 励您阅读 `源代码 \u003Chttps:\u002F\u002Fgithub.com\u002Fidiap\u002Ffast-transformers>`_。\n\n研究\n----\n\n我们的研究\n~~~~\n\n要了解本库中一些注意力机制实现背后的理论，我们鼓励您关注我们的研 究成果。\n\n* Transformer 就是 RNN：具有线性注意力的快速自回归 Transformer (`2006.16236 \u003Chttps:\u002F\u002Farxiv.org\u002Fabs\u002F2006.16236>`_)\n* 具有聚类注意力的快速 Transformer (`2007.04825 \u003Chttps:\u002F\u002Farxiv.org\u002Fabs\u002F2007.04825>`_)\n\n如果您觉得我们的研究有所帮助或产生了影响，请考虑引用以下文献：\n\n.. code::\n\n    @inproceedings{katharopoulos_et_al_2020,\n        author = {Katharopoulos, A. and Vyas, A. and Pappas, N. and Fleuret, F.},\n        title = {Transformers are RNNs: Fast Autoregressive Transformers with Linear Attention},\n        booktitle = {国际机器学习大会（ICML）论文集},\n        year = {2020}\n    }\n\n    @article{vyas_et_al_2020,\n        author={Vyas, A. and Katharopoulos, A. and Fleuret, F.},\n        title={Fast Transformers with Clustered Attention},\n        booktitle = {神经信息处理系统国际会议（NeurIPS）论文集},\n        year={2020}\n    }\n\n其他人的研究\n~~~~~~~~~\n\n* Efficient Attention：具有线性复杂度的注意力机制 (`1812.01243 \u003Chttps:\u002F\u002Farxiv.org\u002Fabs\u002F1812.01243>`_)\n* Linformer：线性复杂度的自注意力机制 (`2006.04768 \u003Chttps:\u002F\u002Farxiv.org\u002Fabs\u002F2006.04768>`_)\n* Reformer：高效的 Transformer (`2001.04451 \u003Chttps:\u002F\u002Farxiv.org\u002Fabs\u002F2001.04451>`_)\n\n支持、许可与版权\n------------------\n\n本软件采用 **MIT** 许可证发布，这意味着您可以按照自己的意愿和目的使 用它。有关支持、版权和许可证的所有信息都可以在仓库中的 `LICENSE \u003Chttps:\u002F\u002Fgithub.com\u002Fidiap\u002Ffast-transformers\u002Fblob\u002Fmaster\u002FLICENSE>`_ 文件中找到。","# fast-transformers 快速上手指南\n\n`fast-transformers` 是一个专注于加速 Transformer 模型注意力机制的开源库，旨在解决标准自注意力机制在处理长序列时计算量呈二次方增长的问题。它提供了线性注意力（Linear Attention）等多种高效实现。\n\n## 环境准备\n\n在开始之前，请确保您的系统满足以下要求：\n\n*   **操作系统**：Linux 或 macOS（Windows 支持可能受限，建议优先使用 Linux）。\n*   **核心依赖**：\n    *   Python 3.6+\n    *   PyTorch (需与您的 CUDA 版本匹配)\n*   **编译工具链**（用于构建自定义 CUDA\u002FC++ 算子）：\n    *   **Linux**: GCC, CUDA Toolkit。\n    *   **macOS**: 必须安装 `llvm` 和 `libomp`。\n        *   使用 Homebrew 安装命令：`brew install llvm libomp`\n\n> **提示**：如果您在中国大陆，建议在安装 PyTorch 时使用国内镜像源以加速下载。\n\n## 安装步骤\n\n### 方法一：通过 PyPI 安装（推荐）\n\n对于大多数用户，直接使用 pip 安装是最简单的方式：\n\n```bash\npip install --user pytorch-fast-transformers\n```\n\n**国内加速方案**：\n如果使用官方源下载缓慢，推荐使用清华大学或阿里云镜像源：\n\n```bash\npip install --user pytorch-fast-transformers -i https:\u002F\u002Fpypi.tuna.tsinghua.edu.cn\u002Fsimple\n```\n\n### 方法二：从源码安装（适用于开发者）\n\n如果您需要最新的功能或进行二次开发：\n\n```bash\ngit clone https:\u002F\u002Fgithub.com\u002Fidiap\u002Ffast-transformers.git\ncd fast-transformers\npip install --user .\n```\n\n## 基本使用\n\n以下示例展示了如何使用 `TransformerEncoderBuilder` 快速构建一个标准 Softmax 注意力模型和一个线性注意力（Linear Attention）模型，并对比它们在处理长度为 1000 的序列时的推理速度。\n\n```python\nimport torch\nfrom fast_transformers.builders import TransformerEncoderBuilder\n\n# 1. 创建 Transformer 构建器\nbuilder = TransformerEncoderBuilder.from_kwargs(\n    n_layers=8,\n    n_heads=8,\n    query_dimensions=64,\n    value_dimensions=64,\n    feed_forward_dimensions=1024\n)\n\n# 2. 构建标准 Softmax 注意力模型\nbuilder.attention_type = \"full\"\nsoftmax_model = builder.get()\n\n# 3. 构建线性注意力模型 (Fast Transformer)\nbuilder.attention_type = \"linear\"\nlinear_model = builder.get()\n\n# 4. 构造虚拟输入数据 (Batch=10, Seq_Len=1000, Features=8*64)\nX = torch.rand(10, 1000, 8*64)\n\n# 5. 将数据和模型移至 GPU 并设置为评估模式\nX = X.cuda()\nsoftmax_model.cuda()\nsoftmax_model.eval()\nlinear_model.cuda()\nlinear_model.eval()\n\n# 6. GPU 预热 (Warmup)\nwith torch.no_grad():\n    softmax_model(X)\n    linear_model(X)\ntorch.cuda.synchronize()\n\n# 7. 测量执行时间\nsoftmax_start = torch.cuda.Event(enable_timing=True)\nsoftmax_end = torch.cuda.Event(enable_timing=True)\nlinear_start = torch.cuda.Event(enable_timing=True)\nlinear_end = torch.cuda.Event(enable_timing=True)\n\n# 测试 Softmax 注意力\nwith torch.no_grad():\n    softmax_start.record()\n    y = softmax_model(X)\n    softmax_end.record()\n    torch.cuda.synchronize()\n    print(\"Softmax: \", softmax_start.elapsed_time(softmax_end), \"ms\")\n\n# 测试线性注意力\nwith torch.no_grad():\n    linear_start.record()\n    y = linear_model(X)\n    linear_end.record()\n    torch.cuda.synchronize()\n    print(\"Linear: \", linear_start.elapsed_time(linear_end), \"ms\")\n```\n\n**预期结果**：\n在相同的硬件环境下（如 GTX 1080 Ti），线性注意力模型的推理时间通常显著低于标准 Softmax 模型（例如：Softmax 约 144ms vs Linear 约 68ms），尤其在序列长度增加时优势更加明显。","某生物科技公司研发团队正试图利用 Transformer 模型分析长达数千个碱基对的 DNA 序列，以预测基因突变风险。\n\n### 没有 fast-transformers 时\n- **显存爆炸导致无法运行**：传统自注意力机制的计算复杂度随序列长度呈平方级增长，处理长序列时显存迅速耗尽，程序直接崩溃。\n- **推理延迟过高**：即使勉强在短序列上运行，单次编码耗时极长（如千元素序列需 144ms），无法满足实时分析需求。\n- **被迫牺牲精度**：为了适配硬件限制，团队不得不将长序列强行截断或分块处理，导致丢失关键的远程依赖信息，模型准确率大幅下降。\n- **实验迭代缓慢**：每次调整超参数都需要漫长的等待时间，严重拖慢了算法验证和模型优化的节奏。\n\n### 使用 fast-transformers 后\n- **线性扩展支持长序列**：通过切换为线性注意力机制（linear attention），计算复杂度降为线性，轻松处理超长 DNA 序列而不爆显存。\n- **推理速度显著提升**：在同等硬件下，千元素序列的编码时间从 144ms 骤降至 68ms，效率提升超过一倍，实现准实时响应。\n- **保留完整上下文信息**：不再需要截断输入，模型能够捕捉序列首尾的全局关联，大幅提高了基因突变预测的准确性。\n- **研发效率飞跃**：快速的反馈循环让研究人员能在相同时间内尝试更多架构变体，加速了从理论到落地的转化过程。\n\nfast-transformers 通过突破传统注意力机制的计算瓶颈，让长序列深度学习任务在有限算力下变得高效且可行。","https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Fidiap_fast-transformers_70f3d45a.png","idiap","Idiap Research Institute","https:\u002F\u002Foss.gittoolsai.com\u002Favatars\u002Fidiap_061e97ca.png","",null,"Idiap_ch","http:\u002F\u002Fwww.idiap.ch","https:\u002F\u002Fgithub.com\u002Fidiap",[85,89,93],{"name":86,"color":87,"percentage":88},"Python","#3572A5",74.8,{"name":90,"color":91,"percentage":92},"Cuda","#3A4E3A",19.3,{"name":94,"color":95,"percentage":96},"C++","#f34b7d",5.9,1766,190,"2026-03-31T12:35:14","Linux, macOS","非必需（仅用于加速），需 NVIDIA GPU 及 CUDA 工具链；示例测试基于 GTX1080Ti，具体显存和 CUDA 版本未说明","未说明",{"notes":104,"python":102,"dependencies":105},"macOS 用户必须通过 Homebrew 安装 llvm 和 libomp (运行 'brew install llvm libomp')。若需编译 GPU 版本，必须安装 CUDA 工具链。可通过 'pip install --user pytorch-fast-transformers' 进行安装。",[106,107,108],"PyTorch","C++ toolchain","CUDA toolchain (可选)",[26,13],"2026-03-27T02:49:30.150509","2026-04-06T05:17:32.395456",[113,118,123,128,133,137],{"id":114,"question_zh":115,"answer_zh":116,"source_url":117},18091,"如何在 Windows 上解决安装时的 wheel 构建错误？","在 Windows 上直接通过 pip 安装可能会遇到编译错误。目前的解决方案是克隆修复了该问题的 Fork 仓库并从源码构建。维护者已提交相关 PR，但在正式合并发布前，用户可以暂时使用社区提供的 Fork 版本进行安装。具体步骤为：克隆仓库，然后运行源码构建命令（如 python setup.py install 或 pip install .）。","https:\u002F\u002Fgithub.com\u002Fidiap\u002Ffast-transformers\u002Fissues\u002F121",{"id":119,"question_zh":120,"answer_zh":121,"source_url":122},18092,"如何在训练过程中进行循环采样（Recurrent Sampling）或实现 Professor Forcing？","目前库中没有直接的标志位来切换循环模式和平行模式。用户可能需要将 FullAttention、RecurrentFullAttention 等类合并，或通过自定义标志位来控制行为。关于内存差异，全注意力机制（Full Attention）的内存需求随序列长度呈 O(N^2) 增长，而线性注意力（Linear Attention）呈 O(N) 增长，因此在长序列下全注意力机制消耗的内存会显著更多（例如在特定输入下可能多 4 倍）。","https:\u002F\u002Fgithub.com\u002Fidiap\u002Ffast-transformers\u002Fissues\u002F31",{"id":124,"question_zh":125,"answer_zh":126,"source_url":127},18093,"如何可视化注意力权重（Attention Weights）？","可以使用库中的事件分发器（EventDispatcher）来捕获注意力矩阵。通过监听特定层发出的 AttentionEvent，可以将注意力矩阵保存下来用于绘图。示例代码如下：\n\nfrom collections import defaultdict\nfrom fast_transformers.events import EventDispatcher, AttentionEvent\nfrom fast_transformers.events.filters import from_layer\n\n# 监听特定层\nevent_dispatcher = EventDispatcher.get()\nevent_dispatcher.listen(\n    from_layer(net.encoder.layers[2].attention.inner_attention),\n    lambda ev: print(ev.attention_matrix)\n)\n\n# 或者收集所有层的注意力矩阵\nlayer_names = {m: n for n, m in net.named_modules()}\nattentions = defaultdict(list)\nevent_dispatcher.listen(\n    AttentionEvent,\n    lambda ev: attentions[layer_names[ev.source]].append(ev.attention_matrix)\n)\n\n之后可以通过 attentions[\"层名称\"] 获取对应的矩阵进行可视化。","https:\u002F\u002Fgithub.com\u002Fidiap\u002Ffast-transformers\u002Fissues\u002F20",{"id":129,"question_zh":130,"answer_zh":131,"source_url":132},18094,"该库是否支持 Encoder-Decoder 架构（如机器翻译任务）？","是的，该库现在支持 Encoder-Decoder 架构。维护者已经推送了 Decoder 模块以及用于构建循环和非循环 Transformer Decoder 的新构建器（builders）。虽然早期文档可能未提及，但最新代码和更新后的文档中已包含相关功能。用户可以利用新的 builders 来构建适用于机器翻译等任务的模型。","https:\u002F\u002Fgithub.com\u002Fidiap\u002Ffast-transformers\u002Fissues\u002F3",{"id":134,"question_zh":135,"answer_zh":136,"source_url":122},18095,"全注意力机制（Full Attention）为什么比线性注意力机制（Linear Attention）消耗更多内存？","这是因为它们的复杂度不同。全注意力机制的内存需求相对于序列长度 N 是 O(N^2) 级别的，因为它需要存储完整的 N x N 注意力矩阵。而线性注意力机制的内存需求是 O(N) 级别的。因此，随着序列长度增加，全注意力机制占用的内存会急剧增加，通常在相同输入下，全注意力机制的内存消耗可能是线性注意力机制的数倍（例如 4 倍或更多，取决于具体序列长度）。",{"id":138,"question_zh":139,"answer_zh":140,"source_url":127},18096,"如何在 TensorBoard 中分类记录不同层（Encoder\u002FDecoder）的注意力图？","可以通过事件监听器收集所有注意力矩阵，并利用 net.named_modules() 获取层的可读名称。在收集数据时，可以根据层名称判断其属于 Encoder 还是 Decoder，以及是自注意力还是交叉注意力。然后将这些数据按类别整理，再写入 TensorBoard。示例逻辑是建立一个字典，键为层名称，值为注意力矩阵列表，遍历该字典时根据名称字符串特征（如包含 'encoder' 或 'decoder'）进行分类记录。",[]]