[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"similar-Shark-NLP--DiffuSeq":3,"tool-Shark-NLP--DiffuSeq":61},[4,18,26,36,44,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":10,"last_commit_at":24,"category_tags":25,"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":27,"name":28,"github_repo":29,"description_zh":30,"stars":31,"difficulty_score":32,"last_commit_at":33,"category_tags":34,"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 真正成长为懂上",160015,2,"2026-04-18T11:30:52",[14,13,35],"语言模型",{"id":37,"name":38,"github_repo":39,"description_zh":40,"stars":41,"difficulty_score":32,"last_commit_at":42,"category_tags":43,"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":45,"name":46,"github_repo":47,"description_zh":48,"stars":49,"difficulty_score":32,"last_commit_at":50,"category_tags":51,"status":17},6121,"gemini-cli","google-gemini\u002Fgemini-cli","gemini-cli 是一款由谷歌推出的开源 AI 命令行工具，它将强大的 Gemini 大模型能力直接集成到用户的终端环境中。对于习惯在命令行工作的开发者而言，它提供了一条从输入提示词到获取模型响应的最短路径，无需切换窗口即可享受智能辅助。\n\n这款工具主要解决了开发过程中频繁上下文切换的痛点，让用户能在熟悉的终端界面内直接完成代码理解、生成、调试以及自动化运维任务。无论是查询大型代码库、根据草图生成应用，还是执行复杂的 Git 操作，gemini-cli 都能通过自然语言指令高效处理。\n\n它特别适合广大软件工程师、DevOps 人员及技术研究人员使用。其核心亮点包括支持高达 100 万 token 的超长上下文窗口，具备出色的逻辑推理能力；内置 Google 搜索、文件操作及 Shell 命令执行等实用工具；更独特的是，它支持 MCP（模型上下文协议），允许用户灵活扩展自定义集成，连接如图像生成等外部能力。此外，个人谷歌账号即可享受免费的额度支持，且项目基于 Apache 2.0 协议完全开源，是提升终端工作效率的理想助手。",100752,"2026-04-10T01:20:03",[52,13,15,14],"插件",{"id":54,"name":55,"github_repo":56,"description_zh":57,"stars":58,"difficulty_score":10,"last_commit_at":59,"category_tags":60,"status":17},4487,"LLMs-from-scratch","rasbt\u002FLLMs-from-scratch","LLMs-from-scratch 是一个基于 PyTorch 的开源教育项目，旨在引导用户从零开始一步步构建一个类似 ChatGPT 的大型语言模型（LLM）。它不仅是同名技术著作的官方代码库，更提供了一套完整的实践方案，涵盖模型开发、预训练及微调的全过程。\n\n该项目主要解决了大模型领域“黑盒化”的学习痛点。许多开发者虽能调用现成模型，却难以深入理解其内部架构与训练机制。通过亲手编写每一行核心代码，用户能够透彻掌握 Transformer 架构、注意力机制等关键原理，从而真正理解大模型是如何“思考”的。此外，项目还包含了加载大型预训练权重进行微调的代码，帮助用户将理论知识延伸至实际应用。\n\nLLMs-from-scratch 特别适合希望深入底层原理的 AI 开发者、研究人员以及计算机专业的学生。对于不满足于仅使用 API，而是渴望探究模型构建细节的技术人员而言，这是极佳的学习资源。其独特的技术亮点在于“循序渐进”的教学设计：将复杂的系统工程拆解为清晰的步骤，配合详细的图表与示例，让构建一个虽小但功能完备的大模型变得触手可及。无论你是想夯实理论基础，还是为未来研发更大规模的模型做准备",90106,"2026-04-06T11:19:32",[35,15,13,14],{"id":62,"github_repo":63,"name":64,"description_en":65,"description_zh":66,"ai_summary_zh":66,"readme_en":67,"readme_zh":68,"quickstart_zh":69,"use_case_zh":70,"hero_image_url":71,"owner_login":72,"owner_name":72,"owner_avatar_url":73,"owner_bio":72,"owner_company":74,"owner_location":74,"owner_email":74,"owner_twitter":74,"owner_website":74,"owner_url":75,"languages":76,"stars":85,"forks":86,"last_commit_at":87,"license":88,"difficulty_score":10,"env_os":89,"env_gpu":90,"env_ram":91,"env_deps":92,"category_tags":99,"github_topics":100,"view_count":32,"oss_zip_url":74,"oss_zip_packed_at":74,"status":17,"created_at":104,"updated_at":105,"faqs":106,"releases":135},9144,"Shark-NLP\u002FDiffuSeq","DiffuSeq","[ICLR'23] DiffuSeq: Sequence to Sequence Text Generation with Diffusion Models","DiffuSeq 是一款基于扩散模型的创新序列到序列文本生成工具，旨在为自然语言处理领域提供超越传统方法的生成范式。它主要解决了传统自回归模型生成速度慢、非自回归模型质量难以保证的痛点，通过在离散文本空间与连续向量空间之间建立桥梁，实现了高质量与高多样性的文本生成。\n\n该工具特别适合人工智能研究人员、算法工程师以及对前沿生成式 AI 技术感兴趣的开发者使用。无论是进行开放域对话、问题生成、文本简化还是改写任务，DiffuSeq 都能提供强大的支持。其核心技术亮点在于采用无分类器的端到端训练方式，并在理论上打通了自回归、非自回归与扩散模型之间的联系。尤其是升级版的 DiffuSeq-v2，通过引入离散噪声和混合精度训练等优化策略，将训练收敛速度提升了 4 倍，采样速度更是提高了 800 倍，在保持生成质量的同时显著降低了应用门槛，使扩散模型在文本生成领域的实际落地成为可能。","# \u003Cimg src=\"https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002FShark-NLP_DiffuSeq_readme_cfe6f4f83566.jpg\" width=\"8%\" alt=\"\" align=center \u002F> DiffuSeq\n\nOfficial Codebase for [*__*DiffuSeq*__: Sequence to Sequence Text Generation With Diffusion Models*](https:\u002F\u002Farxiv.org\u002Fabs\u002F2210.08933) and \n[*__*DiffuSeq-v2*__: Bridging Discrete and Continuous Text Spaces for Accelerated Seq2Seq Diffusion Models*](https:\u002F\u002Farxiv.org\u002Fabs\u002F2310.05793).\n\n\u003Cp align = \"center\">\n\u003Cimg src=\"https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002FShark-NLP_DiffuSeq_readme_9443f8d4528e.png\" width=\"95%\" alt=\"\" align=center \u002F>\n\u003C\u002Fp>\n\u003Cp align = \"center\">\nThe diffusion process of our conditional diffusion language model DiffuSeq.\n\u003C\u002Fp>\n\n\u003Cp align = \"center\">\n\u003Cimg src=\"https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002FShark-NLP_DiffuSeq_readme_40d8cccea7b9.png\" width=\"40%\" alt=\"\" align=center \u002F>\n\u003C\u002Fp>\n\u003Cp align = \"center\">\nThe diffusion process of accelerated DiffuSeq.\n\u003C\u002Fp>\n\n## Highlights\n- Our proposed __*DiffuSeq*__ as a conditional language model is trained end-to-end in a classifier-free manner.\n- We establish a theoretical\nconnection among AR, NAR and __*DiffuSeq*__ models (refer to our original paper).\n- __*DiffuSeq*__ is a powerful model for text\ngeneration, matching or even surpassing competitive AR, iterative NAR,\nand large-PLMs on quality and diversity.\n\nOur study addresses promising achievements by such a new\nsequence-to-sequence learning paradigm.\n\n\u003Cp align = \"center\">\n\u003Cimg src=\"https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002FShark-NLP_DiffuSeq_readme_188ab0cbb8b6.png\" width=\"80%\" alt=\"\" align=center \u002F>\n\u003C\u002Fp>\n\u003Cp align = \"center\">\n\u003Cimg src=\"https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002FShark-NLP_DiffuSeq_readme_c374e2f1c27f.png\" width=80%\" alt=\"\" align=center \u002F>\n\u003C\u002Fp>\n\nUpdate: Our enhanced version effectively accelerates the training convergence by 4x and generates samples of similar quality 800x faster, rendering it significantly closer to practical application.\n\n\u003Cp align = \"center\">\n\u003Cimg src=\"https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002FShark-NLP_DiffuSeq_readme_61afb1deb8bb.png\" width=80%\" alt=\"\" align=center \u002F>\n\u003C\u002Fp>\n\n## Setup:\nThe code is based on PyTorch and HuggingFace `transformers`.\n```bash \npip install -r requirements.txt \n```\n\n## Datasets\nPrepare datasets and put them under the `datasets` folder. Take `datasets\u002FCommonsenseConversation\u002Ftrain.jsonl` as an example. We use four datasets in our paper.\n\n| Task | Datasets | Training Samples | Source | Used in __*DiffuSeq*__\n|-|-|-|-|-|\n| Open-domain Dialogue | Commonsense Conversation | 3382k | [CCM](https:\u002F\u002Fgithub.com\u002Fthu-coai\u002Fccm) | [download](https:\u002F\u002Fdrive.google.com\u002Fdrive\u002Ffolders\u002F1exENF9Qc5UtXnHlNl9fvaxP3zyyH32qp?usp=sharing) |\n| Question Generation | Quasar-T | 117k | [OpenQA](https:\u002F\u002Fgithub.com\u002Fthunlp\u002FOpenQA) | [download](https:\u002F\u002Fdrive.google.com\u002Fdrive\u002Ffolders\u002F122YK0IElSnGZbPMigXrduTVL1geB4wEW?usp=sharing) |\n| Text Simplification | Wiki-alignment | 677k | [Wiki-auto](https:\u002F\u002Fgithub.com\u002Fchaojiang06\u002Fwiki-auto) | [download](https:\u002F\u002Fdrive.google.com\u002Fdrive\u002Ffolders\u002F1BlWtD1UbnL_ef06Riq-gABlL0Zb50s-d?usp=sharing)|\n| Paraphrase | QQP | 144k|  [Kaggle](https:\u002F\u002Fwww.kaggle.com\u002Fc\u002Fquora-question-pairs) | [download](https:\u002F\u002Fdrive.google.com\u002Fdrive\u002Ffolders\u002F1BHGCeHRZU7MQF3rsqXBIOCU2WIC3W6fb?usp=sharing) |\n\n## DiffuSeq Training\n```bash\ncd scripts\nbash train.sh\n```\nArguments explanation:\n- ```--dataset```: the name of datasets, just for notation\n- ```--data_dir```: the path to the saved datasets folder, containing ```train.jsonl,test.jsonl,valid.jsonl```\n- ```--seq_len```: the max length of sequence $z$ ($x\\oplus y$)\n- ```--resume_checkpoint```: if not none, restore this checkpoint and continue training\n- ```--vocab```: the tokenizer is initialized using bert or load your own preprocessed vocab dictionary (e.g. using BPE)\n\nIt will take 2 more days to train a __*DiffuSeq*__ model on 4 NVIDIA A100 80G GPUs for QG and QQP, and the training steps should be increased accordingly along with the size of the training set. To reproduce the results of Table 1 in our paper, we suggest the following configuration for each dataset when training.\n\n### Update: \nAdditional argument:\n- ```--learned_mean_embed```: set whether to use the learned soft absorbing state.\n- ```--denoise```: set whether to add discrete noise\n- ```--use_fp16```: set whether to use mixed precision training\n- ```--denoise_rate```: set the denoise rate, with 0.5 as the default\n\nIt only take around 11 hours to train a model on 2 NVIDIA A100 80G GPUs for QQP.\n\n```\npython -m torch.distributed.launch --nproc_per_node=4 --master_port=12233 --use_env run_train.py --diff_steps 2000 --lr 0.0001 --learning_steps 50000 --save_interval 10000 --seed 102 --noise_schedule sqrt --hidden_dim 128 --bsz 2048 --dataset qqp --data_dir {datasets\u002FQQP} --vocab bert --seq_len 128 --schedule_sampler lossaware --notes qqp\n\npython -m torch.distributed.launch --nproc_per_node=4 --master_port=12233 --use_env run_train.py --diff_steps 2000 --lr 0.0001 --learning_steps 40000 --save_interval 2000 --seed 102 --noise_schedule sqrt --hidden_dim 128 --bsz 2048 --microbatch 64 --dataset qg --data_dir {datasets\u002FQG} --vocab bert --seq_len 128 --schedule_sampler lossaware --notes qg\n\npython -m torch.distributed.launch --nproc_per_node=7 --master_port=12233 --use_env run_train.py --diff_steps 2000 --lr 0.0001 --learning_steps 140000 --save_interval 20000 --seed 102 --noise_schedule sqrt --hidden_dim 128 --bsz 2048 --microbatch 64 --dataset dialogue --data_dir {datasets\u002FConversation} --vocab bert --seq_len 128 --schedule_sampler lossaware --notes dialogue\n\npython -m torch.distributed.launch --nproc_per_node=8 --master_port=12233 --use_env run_train.py --diff_steps 2000 --lr 0.0001 --learning_steps 80000 --save_interval 20000 --seed 102 --noise_schedule sqrt --hidden_dim 128 --bsz 2048 --microbatch 64 --dataset dialogue --data_dir {datasets\u002FTS} --vocab bert --seq_len 128 --schedule_sampler lossaware --notes ts\n```\nEmpirically, larger batchsize (larger `microbatch` here) can achieve higher BLEU score (without MBR). If you want to sync training loss to wandb, please customize your wandb setting in `train.py` (add your own API KEY).\n\n## DiffuSeq Decoding\nYou need to modify the path to ```model_dir```, which is obtained in the training stage.\n```bash\ncd scripts\nbash run_decode.sh\n```\nTo reproduce the results of Table 1 in our paper, we suggest the size of MBR candidate set to be 10 (run 10 times using different seeds). Empirically, larger size can achieve higher BLEU score. For diversity metrics, the size of MBR candidate set is 3 when computing.\n\n## Speed-up Decoding\nWe customize the implementation of [DPM-Solver++](https:\u002F\u002Fgithub.com\u002FLuChengTHU\u002Fdpm-solver) to DiffuSeq to accelerate its sampling speed.\n```bash\ncd scripts\nbash run_decode_solver.sh\n```\n\n## Evaluation & MBR\nYou need to specify the folder of decoded texts. This folder should contain the decoded files from the same model but sampling with different random seeds. If ```mbr``` is not attached, we will compute the diversity score from the files in the folder, otherwise we will do MBR decoding:\n```bash\ncd scripts\npython eval_seq2seq.py --folder ..\u002F{your-path-to-outputs} --mbr\n```\nNote: if you want to use this evaluation script for output files from other models, please make sure the same line from these output files refers to the same piece of data. Otherwise the diversity score could be incorrect.\n\n## Update\n- Update 10 Oct 2023: We update the DiffuSeq-v2, targeting the training\u002Fsampling speed up. Details in new branch [`diffuseq-v2`](https:\u002F\u002Fgithub.com\u002FShark-NLP\u002FDiffuSeq\u002Ftree\u002Fdiffuseq-v2).\n- Update 22 May 2023: We prepare the checkpoint and sampling results for remaining tasks in this [link](https:\u002F\u002Fdrive.google.com\u002Fdrive\u002Ffolders\u002F1lHPp-T-ytp-YVptiokeYK-Lth48EGQ12?usp=sharing).\n- Update 28 Nov 2022: We prepare the checkpoint and sampling results of 10 seeds for QQP dataset in this [link](https:\u002F\u002Fdrive.google.com\u002Fdrive\u002Ffolders\u002F1vnhJIUqPQva_x_sH2h5a0moCc1NYmEpr?usp=sharing).\n- Update 14 Feb 2023: We update the evaluation scripts and camera ready version of the paper.\n\nWelcome to discuss if you have any questions.\n\n## Citation\nPlease add the citation if our paper or code helps you.\n\n```\n@inproceedings{gong2022diffuseq,\n  author = {Gong, Shansan and Li, Mukai and Feng, Jiangtao and Wu, Zhiyong and Kong, Lingpeng},\n  booktitle = {International Conference on Learning Representations, ICLR},\n  title = {{DiffuSeq}: Sequence to Sequence Text Generation with Diffusion Models},\n  year = 2023\n}\n\n@article{gong2023diffuseqv2,\n  title={DiffuSeq-v2: Bridging Discrete and Continuous Text Spaces for Accelerated Seq2Seq Diffusion Models},\n  author={Gong, Shansan and Li, Mukai and Feng, Jiangtao and Wu, Zhiyong and Kong, Lingpeng},\n  journal={arXiv preprint arXiv:2310.05793},\n  year={2023}\n}\n\n```\n\u003Cp align = \"center\">\n\u003Cimg src=\"https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002FShark-NLP_DiffuSeq_readme_a771b601dca4.png\" width=\"100%\" alt=\"\" align=center \u002F>\n\u003C\u002Fp>\n\u003Cp align = \"center\">\nDiffuSeq poster for ICLR 2023.\n\u003C\u002Fp>","# \u003Cimg src=\"https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002FShark-NLP_DiffuSeq_readme_cfe6f4f83566.jpg\" width=\"8%\" alt=\"\" align=center \u002F> DiffuSeq\n\n[*__*DiffuSeq*__: 基于扩散模型的序列到序列文本生成*](https:\u002F\u002Farxiv.org\u002Fabs\u002F2210.08933) 和 \n[*__*DiffuSeq-v2*__: 桥接离散与连续文本空间以加速 Seq2Seq 扩散模型*](https:\u002F\u002Farxiv.org\u002Fabs\u002F2310.05793) 的官方代码库。\n\n\u003Cp align = \"center\">\n\u003Cimg src=\"https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002FShark-NLP_DiffuSeq_readme_9443f8d4528e.png\" width=\"95%\" alt=\"\" align=center \u002F>\n\u003C\u002Fp>\n\u003Cp align = \"center\">\n我们条件扩散语言模型 DiffuSeq 的扩散过程。\n\u003C\u002Fp>\n\n\u003Cp align = \"center\">\n\u003Cimg src=\"https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002FShark-NLP_DiffuSeq_readme_40d8cccea7b9.png\" width=\"40%\" alt=\"\" align=center \u002F>\n\u003C\u002Fp>\n\u003Cp align = \"center\">\n加速版 DiffuSeq 的扩散过程。\n\u003C\u002Fp>\n\n## 亮点\n- 我们提出的 __*DiffuSeq*__ 作为一种条件语言模型，以无分类器的方式进行端到端训练。\n- 我们建立了 AR、NAR 和 __*DiffuSeq*__ 模型之间的理论联系（参见我们的原始论文）。\n- __*DiffuSeq*__ 是一种强大的文本生成模型，在质量和多样性方面可媲美甚至超越具有竞争力的 AR、迭代式 NAR 以及大型 PLM 模型。\n\n我们的研究通过这种新的序列到序列学习范式取得了令人鼓舞的成果。\n\n\u003Cp align = \"center\">\n\u003Cimg src=\"https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002FShark-NLP_DiffuSeq_readme_188ab0cbb8b6.png\" width=\"80%\" alt=\"\" align=center \u002F>\n\u003C\u002Fp>\n\u003Cp align = \"center\">\n\u003Cimg src=\"https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002FShark-NLP_DiffuSeq_readme_c374e2f1c27f.png\" width=80%\" alt=\"\" align=center \u002F>\n\u003C\u002Fp>\n\n更新：我们的增强版本有效地将训练收敛速度提升了 4 倍，并且能够在 800 倍更快的时间内生成质量相近的样本，使其更接近实际应用。\n\n\u003Cp align = \"center\">\n\u003Cimg src=\"https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002FShark-NLP_DiffuSeq_readme_61afb1deb8bb.png\" width=80%\" alt=\"\" align=center \u002F>\n\u003C\u002Fp>\n\n## 环境搭建：\n该代码基于 PyTorch 和 HuggingFace `transformers`。\n```bash \npip install -r requirements.txt \n```\n\n## 数据集\n准备数据集并将其放置在 `datasets` 文件夹下。以 `datasets\u002FCommonsenseConversation\u002Ftrain.jsonl` 为例。我们在论文中使用了四个数据集。\n\n| 任务 | 数据集 | 训练样本 | 来源 | 是否用于 __*DiffuSeq*__\n|-|-|-|-|-|\n| 开放域对话 | Commonsense Conversation | 338.2万 | [CCM](https:\u002F\u002Fgithub.com\u002Fthu-coai\u002Fccm) | [下载](https:\u002F\u002Fdrive.google.com\u002Fdrive\u002Ffolders\u002F1exENF9Qc5UtXnHlNl9fvaxP3zyyH32qp?usp=sharing) |\n| 问题生成 | Quasar-T | 11.7万 | [OpenQA](https:\u002F\u002Fgithub.com\u002Fthunlp\u002FOpenQA) | [下载](https:\u002F\u002Fdrive.google.com\u002Fdrive\u002Ffolders\u002F122YK0IElSnGZbPMigXrduTVL1geB4wEW?usp=sharing) |\n| 文本简化 | Wiki-alignment | 67.7万 | [Wiki-auto](https:\u002F\u002Fgithub.com\u002Fchaojiang06\u002Fwiki-auto) | [下载](https:\u002F\u002Fdrive.google.com\u002Fdrive\u002Ffolders\u002F1BlWtD1UbnL_ef06Riq-gABlL0Zb50s-d?usp=sharing)|\n| 同义句改写 | QQP | 14.4万|  [Kaggle](https:\u002F\u002Fwww.kaggle.com\u002Fc\u002Fquora-question-pairs) | [下载](https:\u002F\u002Fdrive.google.com\u002Fdrive\u002Ffolders\u002F1BHGCeHRZU7MQF3rsqXBIOCU2WIC3W6fb?usp=sharing) |\n\n## DiffuSeq 训练\n```bash\ncd scripts\nbash train.sh\n```\n参数说明：\n- ```--dataset```: 数据集名称，仅用于标注\n- ```--data_dir```: 已保存数据集文件夹的路径，包含 ```train.jsonl,test.jsonl,valid.jsonl```\n- ```--seq_len```: 序列 $z$ ($x\\oplus y$) 的最大长度\n- ```--resume_checkpoint```: 若不为空，则恢复该检查点并继续训练\n- ```--vocab```: 使用 bert 初始化分词器，或加载您自己预处理过的词汇表（例如使用 BPE）\n\n在 4 张 NVIDIA A100 80G 显卡上训练 QG 和 QQP 的 __*DiffuSeq*__ 模型大约需要 2 天时间，训练步数应根据训练集的大小相应增加。为了复现我们论文中表 1 的结果，我们建议在训练每个数据集时采用以下配置。\n\n### 更新：\n新增参数：\n- ```--learned_mean_embed```: 设置是否使用学习得到的软吸收态。\n- ```--denoise```: 设置是否添加离散噪声\n- ```--use_fp16```: 设置是否使用混合精度训练\n- ```--denoise_rate```: 设置去噪率，默认为 0.5\n\n在 2 张 NVIDIA A100 80G 显卡上训练 QQP 模型仅需约 11 小时。\n\n```\npython -m torch.distributed.launch --nproc_per_node=4 --master_port=12233 --use_env run_train.py --diff_steps 2000 --lr 0.0001 --learning_steps 50000 --save_interval 10000 --seed 102 --noise_schedule sqrt --hidden_dim 128 --bsz 2048 --dataset qqp --data_dir {datasets\u002FQQP} --vocab bert --seq_len 128 --schedule_sampler lossaware --notes qqp\n\npython -m torch.distributed.launch --nproc_per_node=4 --master_port=12233 --use_env run_train.py --diff_steps 2000 --lr 0.0001 --learning_steps 40000 --save_interval 2000 --seed 102 --noise_schedule sqrt --hidden_dim 128 --bsz 2048 --microbatch 64 --dataset qg --data_dir {datasets\u002FQG} --vocab bert --seq_len 128 --schedule_sampler lossaware --notes qg\n\npython -m torch.distributed.launch --nproc_per_node=7 --master_port=12233 --use_env run_train.py --diff_steps 2000 --lr 0.0001 --learning_steps 140000 --save_interval 20000 --seed 102 --noise_schedule sqrt --hidden_dim 128 --bsz 2048 --microbatch 64 --dataset dialogue --data_dir {datasets\u002FConversation} --vocab bert --seq_len 128 --schedule_sampler lossaware --notes dialogue\n\npython -m torch.distributed.launch --nproc_per_node=8 --master_port=12233 --use_env run_train.py --diff_steps 2000 --lr 0.0001 --learning_steps 80000 --save_interval 20000 --seed 102 --noise_schedule sqrt --hidden_dim 128 --bsz 2048 --microbatch 64 --dataset dialogue --data_dir {datasets\u002FTS} --vocab bert --seq_len 128 --schedule_sampler lossaware --notes ts\n```\n经验表明，较大的批次大小（此处为更大的 `microbatch`）可以获得更高的 BLEU 分数（无需 MBR）。如果您希望将训练损失同步到 wandb，请在 `train.py` 中自定义您的 wandb 设置（添加您自己的 API KEY）。\n\n## DiffuSeq 解码\n您需要修改在训练阶段获得的 ```model_dir``` 路径。\n```bash\ncd scripts\nbash run_decode.sh\n```\n为了复现我们论文中表 1 的结果，我们建议将 MBR 候选集的大小设置为 10（使用不同的随机种子运行 10 次）。经验表明，更大的规模可以获得更高的 BLEU 分数。对于多样性指标，在计算时 MBR 候选集的大小应为 3。\n\n## 加速解码\n我们针对 DiffuSeq 定制了 [DPM-Solver++](https:\u002F\u002Fgithub.com\u002FLuChengTHU\u002Fdpm-solver) 的实现，以加快其采样速度。\n```bash\ncd scripts\nbash run_decode_solver.sh\n```\n\n## 评估 & MBR\n您需要指定解码文本的文件夹。该文件夹应包含来自同一模型但使用不同随机种子进行采样的解码文件。如果未附加 ```mbr```，我们将从该文件夹中的文件计算多样性分数；否则我们将进行 MBR 解码：\n```bash\ncd scripts\npython eval_seq2seq.py --folder ..\u002F{your-path-to-outputs} --mbr\n```\n注意：如果您想将此评估脚本用于其他模型的输出文件，请确保这些输出文件中的同一条记录对应相同的数据。否则多样性分数可能会不准确。\n\n## 更新\n- 2023年10月10日更新：我们对DiffuSeq-v2进行了更新，重点提升了训练和采样的速度。详细信息请参见新分支[`diffuseq-v2`](https:\u002F\u002Fgithub.com\u002FShark-NLP\u002FDiffuSeq\u002Ftree\u002Fdiffuseq-v2)。\n- 2023年5月22日更新：我们已在该[链接](https:\u002F\u002Fdrive.google.com\u002Fdrive\u002Ffolders\u002F1lHPp-T-ytp-YVptiokeYK-Lth48EGQ12?usp=sharing)中准备好了剩余任务的检查点及采样结果。\n- 2022年11月28日更新：我们已在该[链接](https:\u002F\u002Fdrive.google.com\u002Fdrive\u002Ffolders\u002F1vnhJIUqPQva_x_sH2h5a0moCc1NYmEpr?usp=sharing)中准备好了QQP数据集10个随机种子的检查点及采样结果。\n- 2023年2月14日更新：我们更新了评估脚本以及论文的最终定稿版本。\n\n如果您有任何问题，欢迎交流讨论。\n\n## 引用\n若我们的论文或代码对您的研究有所帮助，请添加以下引用：\n\n```\n@inproceedings{gong2022diffuseq,\n  author = {Gong, Shansan and Li, Mukai and Feng, Jiangtao and Wu, Zhiyong and Kong, Lingpeng},\n  booktitle = {国际表征学习大会, ICLR},\n  title = {{DiffuSeq}: 基于扩散模型的序列到序列文本生成},\n  year = 2023\n}\n\n@article{gong2023diffuseqv2,\n  title={DiffuSeq-v2: 桥接离散与连续文本空间以加速Seq2Seq扩散模型},\n  author={Gong, Shansan and Li, Mukai and Feng, Jiangtao and Wu, Zhiyong and Kong, Lingpeng},\n  journal={arXiv预印本 arXiv:2310.05793},\n  year={2023}\n}\n\n```\n\u003Cp align = \"center\">\n\u003Cimg src=\"https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002FShark-NLP_DiffuSeq_readme_a771b601dca4.png\" width=\"100%\" alt=\"\" align=center \u002F>\n\u003C\u002Fp>\n\u003Cp align = \"center\">\nICLR 2023的DiffuSeq海报。\n\u003C\u002Fp>","# DiffuSeq 快速上手指南\n\nDiffuSeq 是一个基于扩散模型（Diffusion Models）的序列到序列（Seq2Seq）文本生成工具。它支持端到端训练，无需分类器引导，并在文本生成的质量和多样性上媲美甚至超越传统的自回归（AR）和非自回归（NAR）模型。最新版本 DiffuSeq-v2 显著提升了训练收敛速度和采样效率。\n\n## 1. 环境准备\n\n在开始之前，请确保您的开发环境满足以下要求：\n\n*   **操作系统**: Linux (推荐 Ubuntu)\n*   **Python**: 3.8 或更高版本\n*   **深度学习框架**: PyTorch (需支持 CUDA)\n*   **硬件要求**: \n    *   训练建议使用多张 NVIDIA GPU (如 A100)。\n    *   原文示例中使用了 4-8 张 A100 80G 进行大规模训练，小规模实验可适当减少显存需求。\n*   **前置依赖库**:\n    *   `transformers` (HuggingFace)\n    *   其他依赖详见项目 `requirements.txt`\n\n> **提示**：国内用户安装 Python 包时，建议指定清华或阿里镜像源以加速下载：\n> `pip install -r requirements.txt -i https:\u002F\u002Fpypi.tuna.tsinghua.edu.cn\u002Fsimple`\n\n## 2. 安装步骤\n\n### 2.1 克隆代码与安装依赖\n首先克隆仓库并安装必要的 Python 包：\n\n```bash\ngit clone https:\u002F\u002Fgithub.com\u002FShark-NLP\u002FDiffuSeq.git\ncd DiffuSeq\npip install -r requirements.txt\n```\n\n### 2.2 准备数据集\n将处理好的数据集放置在 `datasets` 文件夹下。数据文件需包含 `train.jsonl`, `test.jsonl`, `valid.jsonl`。\n\n项目论文中使用的四个主要数据集及下载方式如下（需自行下载并放入对应目录）：\n\n| 任务 | 数据集名称 | 说明 | 下载链接 |\n| :--- | :--- | :--- | :--- |\n| 开放域对话 | Commonsense Conversation | CCM 数据集 | [Google Drive](https:\u002F\u002Fdrive.google.com\u002Fdrive\u002Ffolders\u002F1exENF9Qc5UtXnHlNl9fvaxP3zyyH32qp?usp=sharing) |\n| 问题生成 | Quasar-T | OpenQA 数据集 | [Google Drive](https:\u002F\u002Fdrive.google.com\u002Fdrive\u002Ffolders\u002F122YK0IElSnGZbPMigXrduTVL1geB4wEW?usp=sharing) |\n| 文本简化 | Wiki-alignment | Wiki-auto 数据集 | [Google Drive](https:\u002F\u002Fdrive.google.com\u002Fdrive\u002Ffolders\u002F1BlWtD1UbnL_ef06Riq-gABlL0Zb50s-d?usp=sharing) |\n| 复述生成 | QQP | Kaggle 数据集 | [Google Drive](https:\u002F\u002Fdrive.google.com\u002Fdrive\u002Ffolders\u002F1BHGCeHRZU7MQF3rsqXBIOCU2WIC3W6fb?usp=sharing) |\n\n*注：由于原链接为 Google Drive，国内用户可能需要借助代理或寻找国内镜像资源。*\n\n## 3. 基本使用\n\n### 3.1 模型训练 (Training)\n\n进入 `scripts` 目录并运行训练脚本。以下以 **QQP (复述生成)** 任务为例，展示如何在 4 张 GPU 上启动训练：\n\n```bash\ncd scripts\nbash train.sh\n```\n\n若需自定义参数（如数据集路径、序列长度、优化器等），可直接使用 `torch.distributed.launch` 调用 `run_train.py`。以下是复现论文结果的推荐配置示例：\n\n**QQP 数据集训练命令：**\n```bash\npython -m torch.distributed.launch --nproc_per_node=4 --master_port=12233 --use_env run_train.py --diff_steps 2000 --lr 0.0001 --learning_steps 50000 --save_interval 10000 --seed 102 --noise_schedule sqrt --hidden_dim 128 --bsz 2048 --dataset qqp --data_dir {datasets\u002FQQP} --vocab bert --seq_len 128 --schedule_sampler lossaware --notes qqp\n```\n\n**关键参数说明：**\n*   `--dataset`: 数据集名称标识。\n*   `--data_dir`: 数据集所在路径（需包含 train\u002Ftest\u002Fvalid.jsonl）。\n*   `--seq_len`: 序列最大长度 ($x\\oplus y$)。\n*   `--vocab`: 分词器类型，推荐使用 `bert` 或加载预处理的 BPE 词表。\n*   `--learned_mean_embed`: (DiffuSeq-v2) 是否使用学习的软吸收状态。\n*   `--use_fp16`: (DiffuSeq-v2) 是否开启混合精度训练以加速。\n\n> **注意**：完整训练耗时较长（QQP\u002FQG 任务在 4 张 A100 上约需 2 天）。DiffuSeq-v2 版本通过优化可将训练时间缩短至约 11 小时（2 张 A100）。\n\n### 3.2 模型推理 (Decoding)\n\n训练完成后，修改脚本中的 `model_dir` 指向保存的模型检查点路径，然后运行推理脚本：\n\n```bash\ncd scripts\nbash run_decode.sh\n```\n\n*   **MBR (Minimum Bayes Risk) 解码**：为了获得最佳 BLEU 分数，建议设置 MBR 候选集大小为 10（即使用不同随机种子运行 10 次）。\n*   **多样性评估**：计算多样性指标时，MBR 候选集大小通常设为 3。\n\n### 3.3 加速推理 (Speed-up Decoding)\n\nDiffuSeq 集成了定制的 [DPM-Solver++](https:\u002F\u002Fgithub.com\u002FLuChengTHU\u002Fdpm-solver) 以大幅加速采样过程。使用以下命令启动加速推理：\n\n```bash\ncd scripts\nbash run_decode_solver.sh\n```\n\n### 3.4 结果评估 (Evaluation)\n\n对生成的文本进行评估。指定包含不同种子采样结果的输出文件夹路径：\n\n```bash\ncd scripts\npython eval_seq2seq.py --folder ..\u002F{your-path-to-outputs} --mbr\n```\n\n*   若添加 `--mbr` 参数，则执行 MBR 解码评估。\n*   若不加该参数，则直接计算文件夹内文件的多样性得分。\n\n> **提示**：若评估其他模型的输出，请确保不同文件中的同一行对应相同的数据样本，否则多样性评分可能不准确。","某在线教育平台的技术团队正致力于升级其“智能习题解析”系统，旨在根据学生输入的简短题目描述，自动生成多样化且逻辑严密的解题步骤与变式提问。\n\n### 没有 DiffuSeq 时\n- **回答模式单一僵化**：传统的自回归（AR）模型倾向于生成概率最高的“标准答案”，导致对同一题目的解析千篇一律，缺乏启发性的多角度讲解。\n- **长文本生成效率低**：在处理需要长篇推导的数学或物理题时，串行生成机制导致响应延迟高，难以满足高并发下的实时互动需求。\n- **多样性与质量难兼得**：若强行通过采样增加回答多样性，往往会导致逻辑断裂或事实性错误，无法在保证准确性的同时提供丰富的变式训练。\n- **训练收敛缓慢**：针对特定教育语料微调大型模型时，传统架构需要极长的训练周期才能稳定收敛，拖慢了业务迭代速度。\n\n### 使用 DiffuSeq 后\n- **生成内容丰富多元**：DiffuSeq 利用扩散模型特性，能一次性生成多个逻辑通顺但表述各异的解题方案，为学生提供“一题多解”的个性化辅导。\n- **推理速度显著提升**：借助 DiffuSeq-v2 的加速机制，样本生成速度提升了 800 倍，实现了毫秒级的习题解析响应，流畅支撑大规模在线课堂。\n- **质量与多样性平衡**：模型在保持高准确率的同时，有效避免了重复输出，能够自动生成高质量的变式提问，帮助学生举一反三。\n- **训练效率大幅优化**：端到端的无分类器训练方式使收敛速度加快 4 倍，团队能在更短时间内完成针对新教材数据的模型适配。\n\nDiffuSeq 通过革新序列生成范式，成功解决了教育场景下对高质量、多样化且低延迟文本生成的核心痛点。","https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002FShark-NLP_DiffuSeq_5cd9150b.png","Shark-NLP","https:\u002F\u002Foss.gittoolsai.com\u002Favatars\u002FShark-NLP_6c8f9739.png",null,"https:\u002F\u002Fgithub.com\u002FShark-NLP",[77,81],{"name":78,"color":79,"percentage":80},"Python","#3572A5",99.6,{"name":82,"color":83,"percentage":84},"Shell","#89e051",0.4,836,108,"2026-04-16T13:47:32","MIT","Linux","必需。基于 PyTorch 分布式训练 (torch.distributed.launch)。原文实验环境：NVIDIA A100 80G (2-8 卡)。根据批次大小 (bsz 2048) 和模型维度推断，建议显存 40GB+ (如 A100\u002FA800)，若使用 microbatch 或减小 batch size 可在 24GB-32GB 显卡上运行。CUDA 版本未明确说明，需匹配安装的 PyTorch 版本。","未说明 (建议 64GB+ 以处理大规模数据集和分布式训练)",{"notes":93,"python":94,"dependencies":95},"1. 代码基于 PyTorch 和 HuggingFace transformers，需通过 pip install -r requirements.txt 安装依赖。\n2. 训练脚本使用 torch.distributed.launch，主要面向多卡 Linux 环境。\n3. 原文提到在 4 张 A100 80G 上训练需 2 天以上，优化版 (DiffuSeq-v2) 在 2 张 A100 80G 上仅需约 11 小时。\n4. 支持混合精度训练 (--use_fp16) 以减少显存占用。\n5. 需自行准备数据集并放置于 datasets 文件夹下。","未说明 (建议 3.8+ 以兼容 PyTorch 和 Transformers)",[96,97,98],"torch","transformers","datasets (隐含，用于加载 jsonl)",[15,35],[101,102,103],"diffusion-models","sequence-to-sequence","text-generation","2026-03-27T02:49:30.150509","2026-04-18T22:31:46.290132",[107,112,117,122,127,131],{"id":108,"question_zh":109,"answer_zh":110,"source_url":111},41046,"多 GPU 训练时数据是否会在每个 GPU 上重复？","是的，原始代码中所有进程使用相同的种子，但进程 0 在初始化 `RandomSampler` 之前多执行了一次随机操作（`torch.nn.init.normal_(model.weight)`）。这导致即使种子相同，进程 0 生成的随机数序列与其他进程不同，从而使得数据加载器的行为不一致。虽然代码未显式使用 `DistributedSampler`，但这种随机种子的微小差异实际上导致了数据的非重复采样。","https:\u002F\u002Fgithub.com\u002FShark-NLP\u002FDiffuSeq\u002Fissues\u002F37",{"id":113,"question_zh":114,"answer_zh":115,"source_url":116},41047,"为什么实际训练时间远超文档中提到的 2 天？","训练时间受硬件配置影响较大。虽然文档提到在 2 张 A100 GPU 上训练 QQP 任务约需 2 天，但如果使用 40GB 显存的 A100 或 batch size 设置不当，时间会显著延长。建议检查显存是否充足，若不足可尝试减小 `batchsize` 或 `microbatch`。实验表明结果对不同 batch size 具有鲁棒性。此外，采样过程本身也会消耗数小时。","https:\u002F\u002Fgithub.com\u002FShark-NLP\u002FDiffuSeq\u002Fissues\u002F5",{"id":118,"question_zh":119,"answer_zh":120,"source_url":121},41048,"训练中遇到 'probabilities contain NaN' 错误如何解决？","该错误通常由 batch size 过大导致权重计算出现 NaN。最有效的解决方法是将 batch size 减半（例如从 128 改为 64），这通常能消除 NaN 错误。虽然可以在代码中手动过滤 NaN 值（如 `p = [0 if np.isnan(i) else i for i in p]`），但调整 batch size 是更根本的解决方案。","https:\u002F\u002Fgithub.com\u002FShark-NLP\u002FDiffuSeq\u002Fissues\u002F57",{"id":123,"question_zh":124,"answer_zh":125,"source_url":126},41049,"计算损失时，Zt 中保持不变的 Xt 部分（值为 0）会影响 MSE 损失结果吗？","理论上将 0 计入损失计算不够严谨，但在实际应用中影响可忽略。因为整个序列长度固定（如 128），且有效内容 x 的长度变化不大，所以包含 0 的损失结果是可接受的。模型主要关注变化部分的梯度更新，固定部分的 0 值不会显著干扰训练效果。","https:\u002F\u002Fgithub.com\u002FShark-NLP\u002FDiffuSeq\u002Fissues\u002F26",{"id":128,"question_zh":129,"answer_zh":130,"source_url":126},41050,"代码中的 'Embedding(W)' 是做什么用的？训练时会用到吗？","`Embedding(W)` 是早期工作的遗留代码，用于支持用户自定义初始化词嵌入（如 GloVe）。在实际的训练和采样过程中，该项目并未使用它，而是直接使用 `model.word_embedding`。普通用户无需关心此接口，除非需要加载特定的预训练词向量。",{"id":132,"question_zh":133,"answer_zh":134,"source_url":116},41051,"如何获取预训练模型权重或推理结果以快速验证？","维护者已准备了 10 个随机种子的检查点（ckpt）和采样结果，可以通过 Google Drive 链接下载：https:\u002F\u002Fdrive.google.com\u002Fdrive\u002Ffolders\u002F1vnhJIUqPQva_x_sH2h5a0moCc1NYmEpr?usp=sharing。下载后可直接用于推理测试，无需从头训练。",[]]