[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"tool-kuleshov-group--mdlm":3,"similar-kuleshov-group--mdlm":99},{"id":4,"github_repo":5,"name":6,"description_en":7,"description_zh":8,"ai_summary_zh":9,"readme_en":10,"readme_zh":11,"quickstart_zh":12,"use_case_zh":13,"hero_image_url":14,"owner_login":15,"owner_name":16,"owner_avatar_url":17,"owner_bio":18,"owner_company":19,"owner_location":19,"owner_email":19,"owner_twitter":20,"owner_website":21,"owner_url":22,"languages":23,"stars":32,"forks":33,"last_commit_at":34,"license":35,"difficulty_score":36,"env_os":37,"env_gpu":38,"env_ram":39,"env_deps":40,"category_tags":48,"github_topics":53,"view_count":58,"oss_zip_url":19,"oss_zip_packed_at":19,"status":59,"created_at":60,"updated_at":61,"faqs":62,"releases":98},7604,"kuleshov-group\u002Fmdlm","mdlm","[NeurIPS 2024] Simple and Effective Masked Diffusion Language Model","mdlm 是一款基于掩码扩散机制的语言模型，旨在为文本生成提供一种高效且强大的新范式。传统自回归模型在生成文本时速度受限，而早期的扩散模型往往结构复杂且效果不佳。mdlm 通过引入创新的“基于替换（SUBS）”参数化方法，巧妙地将复杂的扩散损失简化为经典掩码语言建模损失的组合，从而在保持高质量生成的同时大幅提升了效率。\n\n该工具主要解决了离散文本扩散模型难以兼顾性能与速度的痛点。实验表明，mdlm 在 LM1B 和 OpenWebText 等基准测试中，取得了扩散模型领域的最佳 perplexity（困惑度）成绩，并在零样本评估中与顶尖的自回归模型旗鼓相当。其独特的采样器设计更是让生成速度比现有扩散模型快了 3 到 4 倍，并支持半自回归生成模式。\n\nmdlm 非常适合自然语言处理领域的研究人员、AI 开发者以及对生成式模型底层机制感兴趣的技术人员使用。项目不仅提供了完整的训练与评估框架，还包含了复现主流基线模型（如 SEDD、D3PM）的代码及多种采样策略，并支持在 Colab 或 Lightning Studio 中快速上手体验。无论是希望探索扩散模型在文本领域潜力的研究者，还是寻","mdlm 是一款基于掩码扩散机制的语言模型，旨在为文本生成提供一种高效且强大的新范式。传统自回归模型在生成文本时速度受限，而早期的扩散模型往往结构复杂且效果不佳。mdlm 通过引入创新的“基于替换（SUBS）”参数化方法，巧妙地将复杂的扩散损失简化为经典掩码语言建模损失的组合，从而在保持高质量生成的同时大幅提升了效率。\n\n该工具主要解决了离散文本扩散模型难以兼顾性能与速度的痛点。实验表明，mdlm 在 LM1B 和 OpenWebText 等基准测试中，取得了扩散模型领域的最佳 perplexity（困惑度）成绩，并在零样本评估中与顶尖的自回归模型旗鼓相当。其独特的采样器设计更是让生成速度比现有扩散模型快了 3 到 4 倍，并支持半自回归生成模式。\n\nmdlm 非常适合自然语言处理领域的研究人员、AI 开发者以及对生成式模型底层机制感兴趣的技术人员使用。项目不仅提供了完整的训练与评估框架，还包含了复现主流基线模型（如 SEDD、D3PM）的代码及多种采样策略，并支持在 Colab 或 Lightning Studio 中快速上手体验。无论是希望探索扩散模型在文本领域潜力的研究者，还是寻求高效文本生成方案的工程师，mdlm 都是一个值得关注的开源选择。","# [Simple and Effective Masked Diffusion Language Models](http:\u002F\u002Farxiv.org\u002Fabs\u002F2406.07524) (NeurIPS 2024)\nBy [Subham Sekhar Sahoo](https:\u002F\u002Fs-sahoo.github.io), [Marianne Arriola](https:\u002F\u002Fmariannearriola.github.io), [Yair Schiff](https:\u002F\u002Fyair-schiff.github.io), [Aaron Gokaslan](https:\u002F\u002Fskylion007.github.io), [Edgar Marroquin](https:\u002F\u002Femarro.github.io),\n[Justin T Chiu](https:\u002F\u002Fjustinchiu.netlify.app), [Alexander Rush](https:\u002F\u002Frush-nlp.com), [Volodymyr Kuleshov](https:\u002F\u002Fwww.cs.cornell.edu\u002F~kuleshov\u002F)\n\n[![arXiv](https:\u002F\u002Fimg.shields.io\u002Fbadge\u002FarXiv-2406.07524-red.svg)](https:\u002F\u002Farxiv.org\u002Fabs\u002F2406.07524)\n[![Open In Colab](https:\u002F\u002Fcolab.research.google.com\u002Fassets\u002Fcolab-badge.svg)](https:\u002F\u002Fcolab.research.google.com\u002Fdrive\u002F18nC6q7dWq154fI1BXPLwmtnS7Zvbrv6p?usp=sharing\u002F)\n[![YouTube](https:\u002F\u002Fimg.shields.io\u002Fbadge\u002FYouTube-%23FF0000.svg?logo=YouTube&logoColor=white)](https:\u002F\u002Fyoutu.be\u002FWjAUX23vgfg?si=lI-qiDFqh25qtnQ8)\n[![deploy](https:\u002F\u002Fimg.shields.io\u002Fbadge\u002FBlog%20%20-8A2BE2)](https:\u002F\u002Fs-sahoo.com\u002Fmdlm\u002F)\n[![deploy](https:\u002F\u002Fimg.shields.io\u002Fbadge\u002FHuggingface%20-MDLM%20-blue)](https:\u002F\u002Fhuggingface.co\u002Fcollections\u002Fkuleshov-group\u002Fmdlm-6671bee1cc71f0dce4f2d00a)\n[![Open In Studio](https:\u002F\u002Fpl-bolts-doc-images.s3.us-east-2.amazonaws.com\u002Fapp-2\u002Fstudio-badge.svg)](https:\u002F\u002Flightning.ai\u002Flightning-ai\u002Fstudios\u002Fsimple-and-effective-masked-diffusion-language-models)\n\n[**Update April 14, 2025: An improved implementation is available here:** [DUO Github repo](https:\u002F\u002Fgithub.com\u002Fs-sahoo\u002Fduo).]\n\n[**Update Jun 3, 2025: MDMs with KV caching:** [Eso-LMs Github repo](https:\u002F\u002Fgithub.com\u002Fs-sahoo\u002FEso-LMs).]\n\n![graphical_abstract_updated_2](https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Fkuleshov-group_mdlm_readme_e53dfc76a553.png)\n\nWe introduce *MDLM*, a **M**asked discrete **D**iffusion **L**anguage **M**odel that features\na novel (SUBS)titution based\nparameterization which simplifies the absorbing state diffusion\nloss to a mixture of\nclassical masked language modeling losses. In doing so, we achieve\nSOTA perplexity numbers on LM1B and OpenWebText among diffusion models while achiving competitive zero-shot perplexity with SOTA AR models on numerous datasets. We provide a demo in this [![Open In Colab](https:\u002F\u002Fcolab.research.google.com\u002Fassets\u002Fcolab-badge.svg)](https:\u002F\u002Fcolab.research.google.com\u002Fdrive\u002F18nC6q7dWq154fI1BXPLwmtnS7Zvbrv6p?usp=sharing\u002F) notebook or [![Open In Studio](https:\u002F\u002Fpl-bolts-doc-images.s3.us-east-2.amazonaws.com\u002Fapp-2\u002Fstudio-badge.svg)](https:\u002F\u002Flightning.ai\u002Flightning-ai\u002Fstudios\u002Fsimple-and-effective-masked-diffusion-language-models) and a video tutorial here:\n\u003Cp align=\"center\">\n  \u003Ca href=\"https:\u002F\u002Fyoutu.be\u002FWjAUX23vgfg?si=bM1E-Bt-nwOmsVif\" title=\"Click\">\n    \u003Cimg src=\"https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Fkuleshov-group_mdlm_readme_eed9e432dd49.png\" alt=\"Everything Is AWESOME\" style=\"width:50%;\">\n  \u003C\u002Fa>\n\u003C\u002Fp>\n\n\nIn this repo, we release:\n* **The MDLM framework.**\n  1. SUBStitution based parameterization\n  2. Simplified loss calculation for masked diffusion processes\n* **Baseline implementations** [[Examples]](#baselines):\n  1. Autoregressive model that matches the SOTA AR performance on LM1B.\n  2. Score Entropy Based Discrete Diffusion [SEDD](https:\u002F\u002Farxiv.org\u002Fabs\u002F2310.16834).\n  3. An efficient implementation of the absorbing state [D3PM](https:\u002F\u002Farxiv.org\u002Fabs\u002F2107.03006) that beats the previous SOTA text diffusion model SEDD on LM1B.\n* **Samplers**\n  1. Ancestral sampling as proposed in D3PM.\n  2. Analytic sampler as proposed in SEDD.\n  3. Our proposed efficient sampler that\n     - makes MDLM **~3-4x** faster than the existing diffusion models. [[Example]](#sample-gen)\n     - supports semi-autoregressive (SAR) generation.  [[Example]](#semi-ar-gen)\n\n\u003Ca name=\"code-organization\">\u003C\u002Fa>\n## Code Organization\n1. ```main.py```: Routines for training and evaluation\n2. ```noise_schedule.py```: Noise schedules\n3. ```diffusion.py```: Forward\u002Freverse diffusion\n4. ```dataloader.py```: Dataloaders\n5. ```utils.py```: LR scheduler, logging, `fsspec` handling\n6. ```models\u002F```: Denoising network architectures. Supports [DiT](https:\u002F\u002Farxiv.org\u002Fabs\u002F2212.09748), AR transformer, and [Mamba](https:\u002F\u002Farxiv.org\u002Fabs\u002F2312.00752)\n7. ```configs\u002F```: Config files for datasets\u002Fdenoising networks\u002Fnoise schedules\u002FLR schedules\n8. ```scripts\u002F```: Shell scripts for training\u002Fevaluation\n\n\n\u003Ca name=\"getting_started\">\u003C\u002Fa>\n\n## Getting started in this repository\n\nTo get started, create a conda environment containing the required dependencies.\n\n```bash\nconda env create -f requirements.yaml\nconda activate mdlm\n```\n\nCreate the following directories to store saved models and slurm logs:\n```bash\nmkdir outputs\nmkdir watch_folder\n```\nand run the training as a batch job:\n```bash\nsbatch scripts\u002Ftrain_owt_mdlm.sh\n```\n\n### Checkpoints\n\nWe have uploaded MDLM model trained on OpenWebText for 1M training steps to the Huggingface hub 🤗:\n[kuleshov-group\u002Fmdlm-owt](https:\u002F\u002Fhuggingface.co\u002Fkuleshov-group\u002Fmdlm-owt)\nFurthermore, we have released the checkpoints for the AR and SEDD baselines trained on OpenWebText in this [Google Drive folder](https:\u002F\u002Fdrive.google.com\u002Fdrive\u002Ffolders\u002F16LuuptK7Xfk-vzhQYZBZ0SA-B-BFluau?usp=sharing).\n\n## Reproducing Experiments\n\nBelow, we describe the steps required for reproducing the experiments in the paper.\nThroughout, the main entry point for running experiments is the [`main.py`](.\u002Fmain.py) script.\nWe also provide sample `slurm` scripts for launching pre-training and downstream fine-tuning experiments in the [`scrips\u002F`](.\u002Fscripts) directory.\n\n\n### Generate Samples\n\u003Ca name=\"sample-gen\">\u003C\u002Fa>\nThe argument to `sampling.predictor` specifies the sampler which takes one of the following values:\n* `ddpm_cache`: our proposed sampler that's **~3-4x** faster than the samplers propsed in D3PM and SEDD.\n* `ddpm`: Ancestral sampling proposed in D3PM.\n* `analytic`: Analytic sampler proposed in SEDD.\n\nIn the following table we report wall clock time to generate 64 samples on a single A5000 GPU with `batch_size=1`. $T$ denotes the time discretization of the reverse process.\n|                         | $T=5k (\\downarrow)$ | $T=10k (\\downarrow)$ |\n|-------------------------|---------------------|----------------------|\n| **SEDD**                | 127.1               | 229.3                |\n| **MDLM** + `ddpm`       | 113.8               | 206.6                |\n| **MDLM** +`ddpm_cache`  | **40.1**            | **60.4**             |\n\n\nTo generate samples from a pre-trained model use one of the following commands:\n#### Huggingface model\n```bash\npython main.py \\\n  mode=sample_eval \\\n  eval.checkpoint_path=kuleshov-group\u002Fmdlm-owt \\\n  data=openwebtext-split  \\\n  model.length=1024  \\\n  sampling.predictor=ddpm_cache  \\\n  sampling.steps=1000 \\\n  loader.eval_batch_size=1 \\\n  sampling.num_sample_batches=10 \\\n  backbone=hf_dit\n```\n#### Local checkpoint\n```bash\npython main.py \\\n  mode=sample_eval \\\n  eval.checkpoint_path=\u002Fpath\u002Fto\u002Fcheckpoint\u002Fmdlm.ckpt \\\n  data=openwebtext-split  \\\n  model.length=1024  \\\n  sampling.predictor=ddpm_cache  \\\n  sampling.steps=10000 \\\n  loader.eval_batch_size=1 \\\n  sampling.num_sample_batches=1 \\\n  backbone=dit\n```\n\n### Semi-AR sample generation\n\u003Ca name=\"semi-ar-gen\">\u003C\u002Fa>\nMDLM can also generate samples of arbitrary length in a semi-autoregressive (SAR) manner.\nWe generate 200 sequences of length 2048 tokens on a single `3090` GPU and evaluate generative perplexity under a pre-trained GPT-2 model. In the below table we find that in addition to achieving better generative perplexity, MDLM enables **25-30x** faster SAR decoding relative to [SSD-LM](https:\u002F\u002Farxiv.org\u002Fabs\u002F2210.17432).\n\n|                     | Gen. PPL ($\\downarrow$) | Sec\u002FSeq ($\\downarrow$) |\n|---------------------|-------------------------|------------------------|\n| **SSD-LM**          | 35.43                   | 2473.9                 |\n| **MDLM** +`ddpm_cache`  | **27.18**               | **89.3**               |\n\n*Gen. PPL: Generation Perplexity, Sec\u002FSeq: Seconds per Sequence*\n\n```bash\npython main.py \\\n  mode=sample_eval \\\n  eval.checkpoint_path=kuleshov-group\u002Fmdlm-owt \\\n  data=openwebtext-split \\\n  parameterization=subs \\\n  model.length=1024  \\\n  sampling.predictor=ddpm_cache  \\\n  sampling.steps=1000 \\\n  loader.eval_batch_size=1 \\\n  sampling.num_sample_batches=2 \\\n  sampling.semi_ar=True \\\n  sampling.stride_length=512 \\\n  sampling.num_strides=2 \\\n  backbone=hf_dit\n```\n\n### Train\nTo train MDLM from scratch on OpenWebText use the following command:\n```\npython main.py \\\n  model=small \\\n  data=openwebtext-split \\\n  wandb.name=mdlm-owt \\\n  parameterization=subs \\\n  model.length=1024 \\\n  eval.compute_generative_perplexity=True \\\n  sampling.steps=1000\n```\nThe arguments `loader.batch_size` and `loader.eval_batch_size` allow you to control the global batch size and the batch size per GPU. If `loader.batch_size * num_gpus` is less than the global batch size, PyTorch Lightning will resort to gradient accumulation. You can also launch a training job on Slurm using the command: `sbatch scripts\u002Ftrain_owt_mdlm.sh`. The slurm scripts to train the Auto-regressive and SEDD baselines are as follows respectively: [`scripts\u002Ftrain_lm1b_ar.sh`](scripts\u002Ftrain_lm1b_ar.sh), [`scripts\u002Ftrain_owt_sedd.sh`](scripts\u002Ftrain_owt_sedd.sh).\n\n### Eval \nTo compute test perplexity, use `mode=ppl_eval`. Example scripts provided in `scripts\u002F`. An example command for perplexity evaluation on OpenWebText is:\n```\npython main.py \\\n  mode=ppl_eval \\\n  loader.batch_size=16 \\\n  loader.eval_batch_size=16 \\\n  data=openwebtext-split \\\n  model=small \\\n  parameterization=subs \\\n  backbone=dit \\\n  model.length=1024 \\\n  eval.checkpoint_path=\u002Fpath\u002Fto\u002Fcheckpoint\u002Fmdlm.ckpt \\\n  +wandb.offline=true\n```\n\n### Baseline evaluation\n\u003Ca name=\"baselines\">\u003C\u002Fa>\nWe release the checkpoints for the baselines: SEDD and AR trained on OpenWebText in this [Google Drive folder](https:\u002F\u002Fdrive.google.com\u002Fdrive\u002Ffolders\u002F16LuuptK7Xfk-vzhQYZBZ0SA-B-BFluau?usp=sharing). Download the checkpoints: `ar.ckpt`, `sedd.ckpt` and use the following commands to compute test perplexity:\n#### AR\n```bash\npython main.py \\\n  mode=ppl_eval \\\n  loader.batch_size=16 \\\n  loader.eval_batch_size=16 \\\n  data=openwebtext-split \\\n  model=small-ar \\\n  parameterization=ar \\\n  backbone=ar \\\n  model.length=1024 \\\n  eval.checkpoint_path=\u002Fpath\u002Fto\u002Fcheckpoint\u002Far.ckpt \\\n  +wandb.offline=true\n```\n#### SEDD\n```bash\npython main.py \\\n  mode=ppl_eval \\\n  loader.batch_size=16 \\\n  loader.eval_batch_size=16 \\\n  data=openwebtext-split \\\n  model=small \\\n  parameterization=sedd \\\n  backbone=dit \\\n  model.length=1024 \\\n  eval.checkpoint_path=\u002Fpath\u002Fto\u002Fcheckpoint\u002Fsedd.ckpt \\\n  time_conditioning=True \\\n  sampling.predictor=analytic \\\n  +wandb.offline=true\n```\n\n### Acknowledgements\nThis repository was built off of [SEDD](https:\u002F\u002Fgithub.com\u002Flouaaron\u002FScore-Entropy-Discrete-Diffusion).\n\n## Citation\n```\n@inproceedings{\nsahoo2024simple,\ntitle={Simple and Effective Masked Diffusion Language Models},\nauthor={Subham Sekhar Sahoo and Marianne Arriola and Aaron Gokaslan and Edgar Mariano Marroquin and Alexander M Rush and Yair Schiff and Justin T Chiu and Volodymyr Kuleshov},\nbooktitle={The Thirty-eighth Annual Conference on Neural Information Processing Systems},\nyear={2024},\nurl={https:\u002F\u002Fopenreview.net\u002Fforum?id=L4uaAR4ArM}\n}\n```\n","# [简单有效的掩码扩散语言模型](http:\u002F\u002Farxiv.org\u002Fabs\u002F2406.07524) (NeurIPS 2024)\n作者：[Subham Sekhar Sahoo](https:\u002F\u002Fs-sahoo.github.io)、[Marianne Arriola](https:\u002F\u002Fmariannearriola.github.io)、[Yair Schiff](https:\u002F\u002Fyair-schiff.github.io)、[Aaron Gokaslan](https:\u002F\u002Fskylion007.github.io)、[Edgar Marroquin](https:\u002F\u002Femarro.github.io)、\n[Justin T Chiu](https:\u002F\u002Fjustinchiu.netlify.app)、[Alexander Rush](https:\u002F\u002Frush-nlp.com)、[Volodymyr Kuleshov](https:\u002F\u002Fwww.cs.cornell.edu\u002F~kuleshov\u002F)\n\n[![arXiv](https:\u002F\u002Fimg.shields.io\u002Fbadge\u002FarXiv-2406.07524-red.svg)](https:\u002F\u002Farxiv.org\u002Fabs\u002F2406.07524)\n[![Open In Colab](https:\u002F\u002Fcolab.research.google.com\u002Fassets\u002Fcolab-badge.svg)](https:\u002F\u002Fcolab.research.google.com\u002Fdrive\u002F18nC6q7dWq154fI1BXPLwmtnS7Zvbrv6p?usp=sharing\u002F)\n[![YouTube](https:\u002F\u002Fimg.shields.io\u002Fbadge\u002FYouTube-%23FF0000.svg?logo=YouTube&logoColor=white)](https:\u002F\u002Fyoutu.be\u002FWjAUX23vgfg?si=lI-qiDFqh25qtnQ8)\n[![deploy](https:\u002F\u002Fimg.shields.io\u002Fbadge\u002FBlog%20%20-8A2BE2)](https:\u002F\u002Fs-sahoo.com\u002Fmdlm\u002F)\n[![deploy](https:\u002F\u002Fimg.shields.io\u002Fbadge\u002FHuggingface%20-MDLM%20-blue)](https:\u002F\u002Fhuggingface.co\u002Fcollections\u002Fkuleshov-group\u002Fmdlm-6671bee1cc71f0dce4f2d00a)\n[![Open In Studio](https:\u002F\u002Fpl-bolts-doc-images.s3.us-east-2.amazonaws.com\u002Fapp-2\u002Fstudio-badge.svg)](https:\u002F\u002Flightning.ai\u002Flightning-ai\u002Fstudios\u002Fsimple-and-effective-masked-diffusion-language-models)\n\n[**更新日期：2025年4月14日：改进后的实现已在此处提供：** [DUO Github仓库](https:\u002F\u002Fgithub.com\u002Fs-sahoo\u002Fduo)。]\n\n[**更新日期：2025年6月3日：带有KV缓存的MDM：** [Eso-LMs Github仓库](https:\u002F\u002Fgithub.com\u002Fs-sahoo\u002FEso-LMs)。]\n\n![graphical_abstract_updated_2](https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Fkuleshov-group_mdlm_readme_e53dfc76a553.png)\n\n我们提出了*MDLM*，一种基于掩码的离散扩散语言模型，其特点是采用了一种新颖的（SUBS）替换参数化方法，将吸收态扩散损失简化为经典掩码语言建模损失的混合形式。通过这种方式，我们在LM1B和OpenWebText数据集上实现了扩散模型中的SOTA困惑度指标，同时在多个数据集上与SOTA自回归模型相比也达到了具有竞争力的零样本困惑度。我们在此提供了演示：可在该[![Open In Colab](https:\u002F\u002Fcolab.research.google.com\u002Fassets\u002Fcolab-badge.svg)](https:\u002F\u002Fcolab.research.google.com\u002Fdrive\u002F18nC6q7dWq154fI1BXPLwmtnS7Zvbrv6p?usp=sharing\u002F)笔记本或[![Open In Studio](https:\u002F\u002Fpl-bolts-doc-images.s3.us-east-2.amazonaws.com\u002Fapp-2\u002Fstudio-badge.svg)](https:\u002F\u002Flightning.ai\u002Flightning-ai\u002Fstudios\u002Fsimple-and-effective-masked-diffusion-language-models)中查看，还有一个视频教程如下：\n\u003Cp align=\"center\">\n  \u003Ca href=\"https:\u002F\u002Fyoutu.be\u002FWjAUX23vgfg?si=bM1E-Bt-nwOmsVif\" title=\"点击\">\n    \u003Cimg src=\"https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Fkuleshov-group_mdlm_readme_eed9e432dd49.png\" alt=\"Everything Is AWESOME\" style=\"width:50%;\">\n  \u003C\u002Fa>\n\u003C\u002Fp>\n\n\n在这个仓库中，我们发布了：\n* **MDLM框架。**\n  1. 基于替换的参数化方法\n  2. 简化的掩码扩散过程损失计算\n* **基线实现** [[示例]](#baselines)：\n  1. 自回归模型，在LM1B数据集上达到SOTA自回归性能。\n  2. 基于分数熵的离散扩散[SEDD](https:\u002F\u002Farxiv.org\u002Fabs\u002F2310.16834)。\n  3. 吸收态[D3PM](https:\u002F\u002Farxiv.org\u002Fabs\u002F2107.03006)的高效实现，在LM1B数据集上超越了之前的SOTA文本扩散模型SEDD。\n* **采样器**\n  1. D3PM中提出的祖先采样法。\n  2. SEDD中提出的解析采样法。\n  3. 我们提出的高效采样器，它\n     - 使MDLM的速度比现有扩散模型快约3到4倍。[[示例]](#sample-gen)\n     - 支持半自回归(SAR)生成。[[示例]](#semi-ar-gen)\n\n\u003Ca name=\"code-organization\">\u003C\u002Fa>\n## 代码组织\n1. ```main.py```: 训练和评估流程\n2. ```noise_schedule.py```: 噪声调度\n3. ```diffusion.py```: 正向\u002F反向扩散\n4. ```dataloader.py```: 数据加载器\n5. ```utils.py```: 学习率调度器、日志记录、`fsspec`处理\n6. ```models\u002F```: 去噪网络架构。支持[DiT](https:\u002F\u002Farxiv.org\u002Fabs\u002F2212.09748)、AR变换器和[Mamba](https:\u002F\u002Farxiv.org\u002Fabs\u002F2312.00752)\n7. ```configs\u002F```: 数据集\u002F去噪网络\u002F噪声调度\u002F学习率调度的配置文件\n8. ```scripts\u002F```: 用于训练\u002F评估的Shell脚本\n\n\n\u003Ca name=\"getting_started\">\u003C\u002Fa>\n\n## 在此仓库中开始使用\n\n要开始使用，请创建一个包含所需依赖项的conda环境。\n\n```bash\nconda env create -f requirements.yaml\nconda activate mdlm\n```\n\n创建以下目录以存储保存的模型和slurm日志：\n```bash\nmkdir outputs\nmkdir watch_folder\n```\n然后以批处理作业的形式运行训练：\n```bash\nsbatch scripts\u002Ftrain_owt_mdlm.sh\n```\n\n### 检查点\n\n我们已将基于OpenWebText数据集训练了100万步的MDLM模型上传至Huggingface Hub 🤗：\n[kuleshov-group\u002Fmdlm-owt](https:\u002F\u002Fhuggingface.co\u002Fkuleshov-group\u002Fmdlm-owt)\n此外，我们还在这个[Google Drive文件夹](https:\u002F\u002Fdrive.google.com\u002Fdrive\u002Ffolders\u002F16LuuptK7Xfk-vzhQYZBZ0SA-B-BFluau?usp=sharing)中发布了在OpenWebText数据集上训练的AR和SEDD基线的检查点。\n\n## 实验复现\n\n下面我们将描述复现论文中实验所需的步骤。\n在整个过程中，运行实验的主要入口是[`main.py`](.\u002Fmain.py)脚本。我们还在[`scrips\u002F`](.\u002Fscripts)目录中提供了用于启动预训练和下游微调实验的示例`slurm`脚本。\n\n### 生成样本\n\u003Ca name=\"sample-gen\">\u003C\u002Fa>\n`sampling.predictor` 参数指定了采样器，其取值如下：\n* `ddpm_cache`: 我们提出的采样器，比 D3PM 和 SEDD 中提出的采样器快 **~3-4 倍**。\n* `ddpm`: D3PM 中提出的祖先采样法。\n* `analytic`: SEDD 中提出的解析采样器。\n\n下表报告了在单块 A5000 GPU 上以 `batch_size=1` 生成 64 个样本的壁时。$T$ 表示逆向过程的时间离散化步数。\n|                         | $T=5k (\\downarrow)$ | $T=10k (\\downarrow)$ |\n|-------------------------|---------------------|----------------------|\n| **SEDD**                | 127.1               | 229.3                |\n| **MDLM** + `ddpm`       | 113.8               | 206.6                |\n| **MDLM** +`ddpm_cache`  | **40.1**            | **60.4**             |\n\n\n要从预训练模型生成样本，请使用以下命令之一：\n#### Huggingface 模型\n```bash\npython main.py \\\n  mode=sample_eval \\\n  eval.checkpoint_path=kuleshov-group\u002Fmdlm-owt \\\n  data=openwebtext-split  \\\n  model.length=1024  \\\n  sampling.predictor=ddpm_cache  \\\n  sampling.steps=1000 \\\n  loader.eval_batch_size=1 \\\n  sampling.num_sample_batches=10 \\\n  backbone=hf_dit\n```\n#### 本地检查点\n```bash\npython main.py \\\n  mode=sample_eval \\\n  eval.checkpoint_path=\u002Fpath\u002Fto\u002Fcheckpoint\u002Fmdlm.ckpt \\\n  data=openwebtext-split  \\\n  model.length=1024  \\\n  sampling.predictor=ddpm_cache  \\\n  sampling.steps=10000 \\\n  loader.eval_batch_size=1 \\\n  sampling.num_sample_batches=1 \\\n  backbone=dit\n```\n\n### 半自回归样本生成\n\u003Ca name=\"semi-ar-gen\">\u003C\u002Fa>\nMDLM 还可以以半自回归 (SAR) 方式生成任意长度的样本。我们在单块 `3090` GPU 上生成了 200 条长度为 2048 个标记的序列，并在预训练的 GPT-2 模型下评估生成困惑度。下表显示，除了获得更好的生成困惑度外，与 [SSD-LM](https:\u002F\u002Farxiv.org\u002Fabs\u002F2210.17432) 相比，MDLM 的 SAR 解码速度还快了 **25-30 倍**。\n\n|                     | 生成困惑度 ($\\downarrow$) | 每序列秒数 ($\\downarrow$) |\n|---------------------|-------------------------|------------------------|\n| **SSD-LM**          | 35.43                   | 2473.9                 |\n| **MDLM** +`ddpm_cache`  | **27.18**               | **89.3**               |\n\n*生成困惑度：Generation Perplexity，每序列秒数：Seconds per Sequence*\n\n```bash\npython main.py \\\n  mode=sample_eval \\\n  eval.checkpoint_path=kuleshov-group\u002Fmdlm-owt \\\n  data=openwebtext-split \\\n  parameterization=subs \\\n  model.length=1024  \\\n  sampling.predictor=ddpm_cache  \\\n  sampling.steps=1000 \\\n  loader.eval_batch_size=1 \\\n  sampling.num_sample_batches=2 \\\n  sampling.semi_ar=True \\\n  sampling.stride_length=512 \\\n  sampling.num_strides=2 \\\n  backbone=hf_dit\n```\n\n### 训练\n要在 OpenWebText 数据集上从头开始训练 MDLM，请使用以下命令：\n```\npython main.py \\\n  model=small \\\n  data=openwebtext-split \\\n  wandb.name=mdlm-owt \\\n  parameterization=subs \\\n  model.length=1024 \\\n  eval.compute_generative_perplexity=True \\\n  sampling.steps=1000\n```\n参数 `loader.batch_size` 和 `loader.eval_batch_size` 允许您控制全局批量大小和每 GPU 的批量大小。如果 `loader.batch_size * num_gpus` 小于全局批量大小，PyTorch Lightning 将采用梯度累积策略。您也可以使用 `sbatch scripts\u002Ftrain_owt_mdlm.sh` 命令在 Slurm 上启动训练任务。用于训练自回归和 SEDD 基线的 Slurm 脚本分别为：[`scripts\u002Ftrain_lm1b_ar.sh`](scripts\u002Ftrain_lm1b_ar.sh)、[`scripts\u002Ftrain_owt_sedd.sh`](scripts\u002Ftrain_owt_sedd.sh)。\n\n### 评估\n要计算测试困惑度，请使用 `mode=ppl_eval`。示例脚本见 `scripts\u002F` 目录。以下是在 OpenWebText 上进行困惑度评估的示例命令：\n```\npython main.py \\\n  mode=ppl_eval \\\n  loader.batch_size=16 \\\n  loader.eval_batch_size=16 \\\n  data=openwebtext-split \\\n  model=small \\\n  parameterization=subs \\\n  backbone=dit \\\n  model.length=1024 \\\n  eval.checkpoint_path=\u002Fpath\u002Fto\u002Fcheckpoint\u002Fmdlm.ckpt \\\n  +wandb.offline=true\n```\n\n### 基线评估\n\u003Ca name=\"baselines\">\u003C\u002Fa>\n我们在此 [Google Drive 文件夹](https:\u002F\u002Fdrive.google.com\u002Fdrive\u002Ffolders\u002F16LuuptK7Xfk-vzhQYZBZ0SA-B-BFluau?usp=sharing) 中发布了在 OpenWebText 上训练的 SEDD 和 AR 基线的检查点。请下载检查点：`ar.ckpt`、`sedd.ckpt`，并使用以下命令计算测试困惑度：\n#### 自回归\n```bash\npython main.py \\\n  mode=ppl_eval \\\n  loader.batch_size=16 \\\n  loader.eval_batch_size=16 \\\n  data=openwebtext-split \\\n  model=small-ar \\\n  parameterization=ar \\\n  backbone=ar \\\n  model.length=1024 \\\n  eval.checkpoint_path=\u002Fpath\u002Fto\u002Fcheckpoint\u002Far.ckpt \\\n  +wandb.offline=true\n```\n#### SEDD\n```bash\npython main.py \\\n  mode=ppl_eval \\\n  loader.batch_size=16 \\\n  loader.eval_batch_size=16 \\\n  data=openwebtext-split \\\n  model=small \\\n  parameterization=sedd \\\n  backbone=dit \\\n  model.length=1024 \\\n  eval.checkpoint_path=\u002Fpath\u002Fto\u002Fcheckpoint\u002Fsedd.ckpt \\\n  time_conditioning=True \\\n  sampling.predictor=analytic \\\n  +wandb.offline=true\n```\n\n### 致谢\n本仓库基于 [SEDD](https:\u002F\u002Fgithub.com\u002Flouaaron\u002FScore-Entropy-Discrete-Diffusion) 构建。\n\n## 引用\n```\n@inproceedings{\nsahoo2024simple,\ntitle={Simple and Effective Masked Diffusion Language Models},\nauthor={Subham Sekhar Sahoo and Marianne Arriola and Aaron Gokaslan and Edgar Mariano Marroquin and Alexander M Rush and Yair Schiff and Justin T Chiu and Volodymyr Kuleshov},\nbooktitle={The Thirty-eighth Annual Conference on Neural Information Processing Systems},\nyear={2024},\nurl={https:\u002F\u002Fopenreview.net\u002Fforum?id=L4uaAR4ArM}\n}\n```","# MDLM 快速上手指南\n\nMDLM (Masked Diffusion Language Models) 是一个基于掩码扩散机制的语言模型框架，通过创新的 SUBS 参数化方法，在保持生成质量的同时显著提升了推理速度（比现有扩散模型快 3-4 倍）。\n\n## 环境准备\n\n*   **操作系统**: Linux (推荐 Ubuntu 18.04+)\n*   **硬件要求**: NVIDIA GPU (支持 CUDA)，显存建议 16GB 以上以进行训练或长序列生成。\n*   **软件依赖**:\n    *   Python 3.8+\n    *   Conda (推荐用于环境管理)\n    *   PyTorch (需匹配你的 CUDA 版本)\n    *   Slurm (可选，仅用于集群批量训练)\n\n## 安装步骤\n\n1.  **克隆仓库**\n    ```bash\n    git clone https:\u002F\u002Fgithub.com\u002Fs-sahoo\u002Fmdlm.git\n    cd mdlm\n    ```\n\n2.  **创建并激活 Conda 环境**\n    使用项目提供的 `requirements.yaml` 文件安装所有依赖。\n    *(注：若下载速度慢，可配置 conda 使用清华或中科大镜像源)*\n    ```bash\n    conda env create -f requirements.yaml\n    conda activate mdlm\n    ```\n\n3.  **创建必要目录**\n    创建用于存储模型输出和日志的文件夹：\n    ```bash\n    mkdir outputs\n    mkdir watch_folder\n    ```\n\n## 基本使用\n\n### 1. 快速生成文本样本 (使用预训练模型)\n\n最简单的使用方式是从 Hugging Face 加载已在 OpenWebText 上预训练的模型进行采样。以下命令使用高效的 `ddpm_cache` 采样器生成文本：\n\n```bash\npython main.py \\\n  mode=sample_eval \\\n  eval.checkpoint_path=kuleshov-group\u002Fmdlm-owt \\\n  data=openwebtext-split  \\\n  model.length=1024  \\\n  sampling.predictor=ddpm_cache  \\\n  sampling.steps=1000 \\\n  loader.eval_batch_size=1 \\\n  sampling.num_sample_batches=10 \\\n  backbone=hf_dit\n```\n\n**参数说明：**\n*   `sampling.predictor=ddpm_cache`: 推荐使用此采样器，速度比标准 DDPM 快 3-4 倍。\n*   `sampling.steps`: 去噪步数，步数越少速度越快，步数越多质量通常越高。\n*   `backbone=hf_dit`: 指定从 Hugging Face 加载 DiT 架构模型。\n\n### 2. 半自回归生成长文本 (Semi-Autoregressive)\n\nMDLM 支持以半自回归方式生成任意长度的序列，且速度极快。以下示例生成长度为 2048 的文本：\n\n```bash\npython main.py \\\n  mode=sample_eval \\\n  eval.checkpoint_path=kuleshov-group\u002Fmdlm-owt \\\n  data=openwebtext-split \\\n  parameterization=subs \\\n  model.length=1024  \\\n  sampling.predictor=ddpm_cache  \\\n  sampling.steps=1000 \\\n  loader.eval_batch_size=1 \\\n  sampling.num_sample_batches=2 \\\n  sampling.semi_ar=True \\\n  sampling.stride_length=512 \\\n  sampling.num_strides=2 \\\n  backbone=hf_dit\n```\n\n### 3. 从头开始训练 (可选)\n\n若需在 OpenWebText 数据集上从头训练模型，可运行以下命令：\n\n```bash\npython main.py \\\n  model=small \\\n  data=openwebtext-split \\\n  wandb.name=mdlm-owt \\\n  parameterization=subs \\\n  model.length=1024 \\\n  eval.compute_generative_perplexity=True \\\n  sampling.steps=1000\n```\n\n*提示：如需在 Slurm 集群上运行训练任务，可使用 `sbatch scripts\u002Ftrain_owt_mdlm.sh`。*","某大型电商平台的算法团队正在构建一个能够实时生成个性化商品评论摘要的系统，以应对海量用户反馈的处理需求。\n\n### 没有 mdlm 时\n- **生成速度缓慢**：传统的离散扩散模型采样步骤繁琐，生成一段摘要需要数秒，无法满足高并发下的实时响应要求。\n- **文本质量不稳定**：现有扩散模型在长文本生成中容易出现语义断裂或重复，导致生成的摘要可读性差，难以直接展示给用户。\n- **训练与调优复杂**：基于分数熵（Score Entropy）的旧式扩散模型损失函数计算复杂，研究人员花费大量时间调整噪声调度而非优化业务逻辑。\n- **资源消耗巨大**：为了达到可用的 perplexity（困惑度）指标，不得不堆叠更多的计算资源进行自回归建模，推高了云端推理成本。\n\n### 使用 mdlm 后\n- **推理效率倍增**：借助 mdlm 提出的高效采样器，生成速度比传统扩散模型提升了 3-4 倍，实现了毫秒级的摘要生成响应。\n- **内容流畅自然**：利用其独特的基于替换（SUBS）的参数化机制，生成的评论摘要语义连贯，零样本测试效果媲美顶尖自回归模型。\n- **开发流程简化**：mdlm 将复杂的扩散损失简化为经典掩码语言建模损失的混合形式，大幅降低了训练代码的复杂度，让团队能快速迭代模型。\n- **性能成本双优**：在 LM1B 和 OpenWebText 数据集上以更低的计算开销达到了最先进的困惑度表现，显著降低了服务器负载。\n\nmdlm 通过革新性的掩码扩散架构，成功打破了扩散模型在文本生成领域“速度慢、质量低”的瓶颈，让实时高质量的 NLP 应用落地成为可能。","https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Fkuleshov-group_mdlm_64d939a3.png","kuleshov-group","Kuleshov Group @ Cornell Tech","https:\u002F\u002Foss.gittoolsai.com\u002Favatars\u002Fkuleshov-group_c5928176.png","Research group at Cornell focused on machine learning, generative models, AI for science",null,"volokuleshov","https:\u002F\u002Fwww.cs.cornell.edu\u002F~kuleshov\u002F","https:\u002F\u002Fgithub.com\u002Fkuleshov-group",[24,28],{"name":25,"color":26,"percentage":27},"Python","#3572A5",94.3,{"name":29,"color":30,"percentage":31},"Shell","#89e051",5.7,675,95,"2026-04-12T01:29:32","Apache-2.0",3,"Linux","需要 NVIDIA GPU（文中测试使用了 A5000 和 RTX 3090），显存需求未明确说明，需支持 CUDA","未说明",{"notes":41,"python":42,"dependencies":43},"1. 必须使用 Conda 管理环境，通过 `requirements.yaml` 文件安装依赖。\n2. 训练和评估脚本默认使用 Slurm 作业调度系统（如 `sbatch` 命令）。\n3. 支持多种骨干网络架构，包括 DiT、AR Transformer 和 Mamba。\n4. 提供预训练的 OpenWebText 模型权重，可通过 HuggingFace 直接加载。","未说明 (需通过 requirements.yaml 创建 conda 环境)",[44,45,46,47],"PyTorch Lightning","fsspec","wandb","transformers (用于 HuggingFace 模型加载)",[49,50,51,52],"图像","语言模型","视频","音频",[54,55,56,57],"diffusion-models","language-model","text","diffusion-language-models",2,"ready","2026-03-27T02:49:30.150509","2026-04-15T08:21:54.842154",[63,68,73,78,83,88,93],{"id":64,"question_zh":65,"answer_zh":66,"source_url":67},34058,"训练过程中出现 NaN 或段错误（Segmentation Fault）如何解决？","维护者确认代码在 A5000、A100 和 H100 GPU 上运行正常。如果遇到 NaN，一个可行的变通方法是将 `self.neg_infinity` 设置为 `-1000`，但这可能会导致困惑度（perplexity）指标有约 3% 的偏差。对于段错误，建议检查是否使用了混合精度训练，并尝试上述调整。","https:\u002F\u002Fgithub.com\u002Fkuleshov-group\u002Fmdlm\u002Fissues\u002F7",{"id":69,"question_zh":70,"answer_zh":71,"source_url":72},34059,"如何使用 Hugging Face Trainer 进行微调时避免 'is_encoded_sample' 参数错误？","目前不支持直接从 Hugging Face 检查点进行微调，这会导致 `TypeError: MDLM.forward() got an unexpected keyword argument 'is_encoded_sample'` 错误。建议使用项目提供的 Google Drive 链接中的检查点进行微调，而不是使用 HF 仓库中的检查点。","https:\u002F\u002Fgithub.com\u002Fkuleshov-group\u002Fmdlm\u002Fissues\u002F27",{"id":74,"question_zh":75,"answer_zh":76,"source_url":77},34060,"扩散模型每个采样步骤可以生成多个 token 吗？增加采样步数会影响性能吗？","可以增加采样步数，但实验数据显示，随着采样步数（T）的增加，各项指标（Precision, Recall, F1, Exact Match）反而会下降。例如，从 T=2 增加到 T=10，精确匹配率从 80.32% 降至 72.72%。因此，较少的采样步数通常能获得更好的生成质量。","https:\u002F\u002Fgithub.com\u002Fkuleshov-group\u002Fmdlm\u002Fissues\u002F36",{"id":79,"question_zh":80,"answer_zh":81,"source_url":82},34061,"如何使用该模型进行文本填充（Infilling）任务？","正确的做法是将包含掩码的序列（例如 `[A, B, BLANK, C, BLANK]`） tokenize 为 `[A_token, B_token, MASK, C_token, MASK]`。将其视为从先验分布中抽取的样本，然后执行从 `t=1` 到 `t=0` 的逆向去噪过程。不要直接使用无条件采样接口，而应模拟去噪步骤来填充已知 token 之间的空白。","https:\u002F\u002Fgithub.com\u002Fkuleshov-group\u002Fmdlm\u002Fissues\u002F18",{"id":84,"question_zh":85,"answer_zh":86,"source_url":87},34062,"如何在显存较小的显卡（如 RTX 3090）上预训练模型？","虽然官方实验是在 A100 节点上进行的，但在 RTX 3090 上训练是可行的。关键是要通过调整 `loader.batch_size` 参数来设置合适的每 GPU 批大小，以确保模型能够适应 GPU 的显存限制。具体的训练时间取决于数据集大小和批大小设置。","https:\u002F\u002Fgithub.com\u002Fkuleshov-group\u002Fmdlm\u002Fissues\u002F15",{"id":89,"question_zh":90,"answer_zh":91,"source_url":92},34063,"使用基于置信度或熵的逐 token 采样策略效果不佳（出现重复句子），如何解决？","这种现象可能与训练方式有关。建议在训练去噪器时引入可变长度上下文策略：即以较小的概率（例如 1%），使用变量上下文长度 `L' ~ U[1, L]` 代替固定的上下文长度 `L` 进行训练。可以尝试使用这种训练配方微调现有的 MDLM 检查点来改善采样质量。","https:\u002F\u002Fgithub.com\u002Fkuleshov-group\u002Fmdlm\u002Fissues\u002F35",{"id":94,"question_zh":95,"answer_zh":96,"source_url":97},34064,"安装时遇到 Torch 版本依赖或 causal conv1d 安装失败的问题怎么办？","如果在本项目中遇到难以解决的依赖问题（特别是涉及 `causal conv1d` 和 Torch 版本冲突），维护者推荐使用其他实现了改进版 MDLM 的项目，例如 DUO (https:\u002F\u002Fgithub.com\u002Fs-sahoo\u002Fduo) 或 BD3LM，这些项目可能具有更好的兼容性和安装体验。","https:\u002F\u002Fgithub.com\u002Fkuleshov-group\u002Fmdlm\u002Fissues\u002F31",[],[100,111,119,127,135,144],{"id":101,"name":102,"github_repo":103,"description_zh":104,"stars":105,"difficulty_score":36,"last_commit_at":106,"category_tags":107,"status":59},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,"2026-04-06T06:32:30",[108,109,49,110],"Agent","开发框架","数据工具",{"id":112,"name":113,"github_repo":114,"description_zh":115,"stars":116,"difficulty_score":36,"last_commit_at":117,"category_tags":118,"status":59},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",[109,49,108],{"id":120,"name":121,"github_repo":122,"description_zh":123,"stars":124,"difficulty_score":58,"last_commit_at":125,"category_tags":126,"status":59},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 真正成长为懂上",156033,"2026-04-14T23:32:00",[109,108,50],{"id":128,"name":129,"github_repo":130,"description_zh":131,"stars":132,"difficulty_score":58,"last_commit_at":133,"category_tags":134,"status":59},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 都能提供强大的支持。其独特的模块化架构允许社区不断扩展新功能，使其成为当前最灵活、生态最丰富的开源扩散模型工具之一，帮助用户将创意高效转化为现实。",108322,"2026-04-10T11:39:34",[109,49,108],{"id":136,"name":137,"github_repo":138,"description_zh":139,"stars":140,"difficulty_score":58,"last_commit_at":141,"category_tags":142,"status":59},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",[143,108,49,109],"插件",{"id":145,"name":146,"github_repo":147,"description_zh":148,"stars":149,"difficulty_score":36,"last_commit_at":150,"category_tags":151,"status":59},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",[50,49,108,109]]