[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"similar-mlfoundations--wise-ft":3,"tool-mlfoundations--wise-ft":62},[4,18,26,35,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},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,2,"2026-04-10T11:39:34",[14,15,13],{"id":36,"name":37,"github_repo":38,"description_zh":39,"stars":40,"difficulty_score":32,"last_commit_at":41,"category_tags":42,"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",[43,13,15,14],"插件",{"id":45,"name":46,"github_repo":47,"description_zh":48,"stars":49,"difficulty_score":10,"last_commit_at":50,"category_tags":51,"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",[52,15,13,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},4292,"Deep-Live-Cam","hacksider\u002FDeep-Live-Cam","Deep-Live-Cam 是一款专注于实时换脸与视频生成的开源工具，用户仅需一张静态照片，即可通过“一键操作”实现摄像头画面的即时变脸或制作深度伪造视频。它有效解决了传统换脸技术流程繁琐、对硬件配置要求极高以及难以实时预览的痛点，让高质量的数字内容创作变得触手可及。\n\n这款工具不仅适合开发者和技术研究人员探索算法边界，更因其极简的操作逻辑（仅需三步：选脸、选摄像头、启动），广泛适用于普通用户、内容创作者、设计师及直播主播。无论是为了动画角色定制、服装展示模特替换，还是制作趣味短视频和直播互动，Deep-Live-Cam 都能提供流畅的支持。\n\n其核心技术亮点在于强大的实时处理能力，支持口型遮罩（Mouth Mask）以保留使用者原始的嘴部动作，确保表情自然精准；同时具备“人脸映射”功能，可同时对画面中的多个主体应用不同面孔。此外，项目内置了严格的内容安全过滤机制，自动拦截涉及裸露、暴力等不当素材，并倡导用户在获得授权及明确标注的前提下合规使用，体现了技术发展与伦理责任的平衡。",88924,"2026-04-06T03:28:53",[14,15,13,61],"视频",{"id":63,"github_repo":64,"name":65,"description_en":66,"description_zh":67,"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":73,"owner_avatar_url":74,"owner_bio":75,"owner_company":76,"owner_location":76,"owner_email":76,"owner_twitter":76,"owner_website":77,"owner_url":78,"languages":79,"stars":84,"forks":85,"last_commit_at":86,"license":87,"difficulty_score":10,"env_os":88,"env_gpu":89,"env_ram":88,"env_deps":90,"category_tags":98,"github_topics":76,"view_count":32,"oss_zip_url":76,"oss_zip_packed_at":76,"status":17,"created_at":100,"updated_at":101,"faqs":102,"releases":137},7582,"mlfoundations\u002Fwise-ft","wise-ft","Robust fine-tuning of zero-shot models","wise-ft 是一个专注于提升零样本（zero-shot）模型鲁棒性的开源微调工具。在人工智能领域，大型预训练模型（如 CLIP）虽然具备出色的泛化能力，但传统的微调方法往往在提升特定数据集准确率的同时，牺牲了模型面对未知分布数据时的稳定性。wise-ft 巧妙地解决了这一矛盾，它通过一种名为“权重集成”（WiSE-FT）的技术，将零样本模型与微调后模型的权重进行线性插值融合。\n\n这种方法的核心亮点在于极简与高效：无需额外的计算成本，仅需几行代码即可在微调过程或推理阶段实现。实验表明，wise-ft 不仅能保持甚至提升模型在原始任务上的高精度，还能显著增强其在各种分布偏移场景下的泛化表现，例如在 ImageNet 及其变体测试中，其鲁棒性提升了 4 到 6 个百分点。\n\nwise-ft 非常适合 AI 研究人员和开发者使用，特别是那些希望在不增加推理延迟的前提下，优化预训练模型在实际复杂环境中表现的用户。无论是进行迁移学习研究，还是部署需要高稳定性的视觉应用，wise-ft 都提供了一个简单而强大的解决方案，帮助模型在“专精”与“通用”之间找到最佳平衡点。","# Robust fine-tuning of zero-shot models\n\nThis repository contains code for the paper [Robust fine-tuning of zero-shot models](https:\u002F\u002Farxiv.org\u002Fabs\u002F2109.01903) by Mitchell Wortsman*, Gabriel Ilharco*,  Jong Wook Kim, Mike Li, Simon Kornblith, Rebecca Roelofs, Raphael Gontijo-Lopes, Hannaneh Hajishirzi, Ali Farhadi, Hongseok Namkoong, Ludwig Schmidt.\n\nTLDR: We fine-tune zero-shot models while preserving or improving OOD accuracy at no extra computational cost during fine-tuning or inference.\n\n### Abstract\n*Large pre-trained models such as CLIP or ALIGN offer consistent accuracy across a range of data distributions when performing zero-shot inference (i.e., without fine-tuning on a specific dataset). Although existing fine-tuning approaches substantially improve accuracy in-distribution, they often reduce out-of-distribution robustness. We address this tension by introducing a simple and effective method for improving robustness:  ensembling the weights of the zero-shot and fine-tuned models (WiSE-FT). Compared to standard fine-tuning, WiSE-FT provides large accuracy improvements out-of-distribution, while  preserving high in-distribution accuracy. On ImageNet (in-distribution) and five derived distribution shifts, WiSE-FT improves out-of-distribution accuracy by 4 to 6 percentage points (pp) over prior work while increasing in-distribution accuracy by 1.6 pp. WiSE-FT achieves similarly large robustness improvements (2 to 23 pp) on a diverse set of six further distribution shifts, and in-distribution accuracy gains of 0.8 to 3.3 pp compared to standard fine-tuning on seven commonly used transfer learning datasets. These improvements come at no additional computational cost during fine-tuning or inference.*\n\n### Summary figure\n\n\u003Cp align=\"center\">\n\u003Cimg src=\"https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Fmlfoundations_wise-ft_readme_452d41d4f6c9.png\" alt=\"figure1\"\u002F>\n\u003C\u002Fp>\n\n## Code\n\n### Overview\n\nWiSE-FT can be implemented in a few lines of code in addition to standard fine-tuning, as shown below. See [src\u002Fwise_ft.py](src\u002Fwise_ft.py) for more details.\n\n```python\n# Load models\nzeroshot = ImageClassifier.load(zeroshot_checkpoint)\nfinetuned = ImageClassifier.load(finetuned_checkpoint)\ntheta_0 = zeroshot.state_dict()\ntheta_1 = finetuned.state_dict()\n\n# make sure checkpoints are compatible\nassert set(theta_0.keys()) == set(theta_1.keys())\n\n# interpolate between checkpoints with mixing coefficient alpha\ntheta = {\n    key: (1-alpha) * theta_0[key] + alpha * theta_1[key]\n    for key in theta_0.keys()\n}\n\n# update the model acccording to the new weights\nfinetuned.load_state_dict(theta)\n\n# evaluate\nevaluate(finetuned, args)\n```\n\n### Install dependencies\n\n```bash\nconda env create\nconda activate wiseft\n```\n\n### Add directory to PYTHONPATH:\n\n```bash\ncd wise-ft\nexport PYTHONPATH=\"$PYTHONPATH:$PWD\"\n```\n\n### Download data\n\nWhen necessary, please refer to [datasets.md](datasets.md) for instructions on how to download datasets.\n\n### Run WiSE-FT\n\nSample command when zeroshot and fine-tuned models are available:\n\n```\npython src\u002Fwise_ft.py   \\\n    --eval-datasets=ImageNet,ImageNetV2,ImageNetR,ImageNetA,ImageNetSketch  \\\n    --load=models\u002Fzeroshot.pt,models\u002Ffinetuned.pt  \\\n    --results-db=results.jsonl  \\\n    --save=models\u002Fwiseft  \\\n    --data-location=~\u002Fdata \\\n    --alpha 0 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9 1.0\n```\n\nSample command for running WiSE-FT from scratch using ViT-B\u002F32:\n\n```\npython src\u002Fwise_ft.py   \\\n    --train-dataset=ImageNet  \\\n    --epochs=10  \\\n    --lr=0.00003  \\\n    --batch-size=512  \\\n    --cache-dir=cache  \\\n    --model=ViT-B\u002F32  \\\n    --eval-datasets=ImageNet,ImageNetV2,ImageNetR,ImageNetA,ImageNetSketch  \\\n    --template=openai_imagenet_template  \\\n    --results-db=results.jsonl  \\\n    --save=models\u002Fwiseft\u002FViTB32  \\\n    --data-location=~\u002Fdata \\\n    --alpha 0 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9 1.0\n```\n\nNote: the flag `--freeze-encoder` controls whether only a linear classifier is fine-tuned, or if all weights are fine-tuned (end-to-end).\n\n### Plotting results\n\nSample command for generating a scatter plot:\n\n```\npython src\u002Fscatter_plot.py  \\\n    --eval-datasets=ImageNetV2,ImageNetR,ImageNetA,ImageNetSketch  \\\n    --results-db=results.jsonl  \\\n    --save plots\n```\n\nWe show samples of expected behavior below when running the commands above using ViT-B\u002F16 (models can be downloaded  [here](https:\u002F\u002Fdrive.google.com\u002Fdrive\u002Ffolders\u002F1f56kjpRKPiNSaUxNDtETEDRkbDkZnpCQ?usp=sharing)):\n\n\u003Cp align=\"center\">\n  \u003Cimg alt=\"ImageNet-Sketch\" src=\"https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Fmlfoundations_wise-ft_readme_abd2dc5d38ae.png\" width=\"45%\">\n    &nbsp; &nbsp; &nbsp; &nbsp;\n  \u003Cimg alt=\"ImageNet-A\" src=\"https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Fmlfoundations_wise-ft_readme_e64b366509b1.png\" width=\"45%\">\n\u003C\u002Fp>\n\u003Cp align=\"center\">\n  \u003Cimg alt=\"ImageNet-R\" src=\"https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Fmlfoundations_wise-ft_readme_dee64c004754.png\" width=\"45%\">\n    &nbsp; &nbsp; &nbsp; &nbsp;\n  \u003Cimg alt=\"ImageNetV2\" src=\"https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Fmlfoundations_wise-ft_readme_7c1da8476d7c.png\" width=\"45%\">\n\u003C\u002Fp>\n\u003Cp align=\"center\">\n  \u003Cimg alt=\"ObjectNet\" src=\"https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Fmlfoundations_wise-ft_readme_8fffc9f08ab5.png\" width=\"45%\">\n\u003C\u002Fp>\n\n## Citing\n\nIf you found this repository useful, please consider citing:\n```bibtex\n@article{wortsman2021robust,\n  title={Robust fine-tuning of zero-shot models},\n  author={Wortsman, Mitchell and Ilharco, Gabriel and Kim, Jong Wook and Li, Mike and Kornblith, Simon and Roelofs, Rebecca and Gontijo-Lopes, Raphael and Hajishirzi, Hannaneh and Farhadi, Ali and Namkoong, Hongseok and Schmidt, Ludwig},\n  journal={arXiv preprint arXiv:2109.01903},\n  note={\\url{https:\u002F\u002Farxiv.org\u002Fabs\u002F2109.01903}},\n  year={2021}\n}\n```\n","# 零样本模型的鲁棒微调\n\n本仓库包含论文《零样本模型的鲁棒微调》（Robust fine-tuning of zero-shot models）的代码，该论文由 Mitchell Wortsman*、Gabriel Ilharco*、Jong Wook Kim、Mike Li、Simon Kornblith、Rebecca Roelofs、Raphael Gontijo-Lopes、Hannaneh Hajishirzi、Ali Farhadi、Hongseok Namkoong 和 Ludwig Schmidt 共同撰写，发表于 arXiv：https:\u002F\u002Farxiv.org\u002Fabs\u002F2109.01903。\n\n简而言之：我们在不增加微调或推理阶段计算开销的情况下，对零样本模型进行微调，同时保持或提升其 OOD 准确率。\n\n### 摘要\n大型预训练模型，如 CLIP 或 ALIGN，在执行零样本推理时（即无需针对特定数据集进行微调），能够在多种数据分布上提供一致的准确率。尽管现有的微调方法可以显著提升分布内准确率，但往往会降低分布外的鲁棒性。为解决这一矛盾，我们提出了一种简单而有效的方法来提升鲁棒性：将零样本模型和微调后模型的权重进行集成（WiSE-FT）。与标准微调相比，WiSE-FT 在保持高分布内准确率的同时，大幅提升了分布外准确率。在 ImageNet（分布内）以及五个衍生的分布偏移数据集上，WiSE-FT 相较于先前工作，将分布外准确率提高了 4 至 6 个百分点（pp），同时使分布内准确率提升了 1.6 个百分点。此外，WiSE-FT 在另外六组多样化的分布偏移数据集上也实现了类似的鲁棒性提升（2 至 23 个百分点），并且在七个常用的迁移学习数据集上，相比标准微调，分布内准确率提升了 0.8 至 3.3 个百分点。这些改进均未带来额外的计算成本。\n\n### 总结图\n\n\u003Cp align=\"center\">\n\u003Cimg src=\"https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Fmlfoundations_wise-ft_readme_452d41d4f6c9.png\" alt=\"figure1\"\u002F>\n\u003C\u002Fp>\n\n## 代码\n\n### 概述\n\nWiSE-FT 可以在标准微调的基础上，通过几行代码实现，如下所示。更多细节请参阅 [src\u002Fwise_ft.py](src\u002Fwise_ft.py)。\n\n```python\n# 加载模型\nzeroshot = ImageClassifier.load(zeroshot_checkpoint)\nfinetuned = ImageClassifier.load(finetuned_checkpoint)\ntheta_0 = zeroshot.state_dict()\ntheta_1 = finetuned.state_dict()\n\n# 确保检查点兼容\nassert set(theta_0.keys()) == set(theta_1.keys())\n\n# 使用混合系数 alpha 在检查点之间插值\ntheta = {\n    key: (1-alpha) * theta_0[key] + alpha * theta_1[key]\n    for key in theta_0.keys()\n}\n\n# 根据新权重更新模型\nfinetuned.load_state_dict(theta)\n\n# 评估\nevaluate(finetuned, args)\n```\n\n### 安装依赖\n\n```bash\nconda env create\nconda activate wiseft\n```\n\n### 将目录添加到 PYTHONPATH：\n\n```bash\ncd wise-ft\nexport PYTHONPATH=\"$PYTHONPATH:$PWD\"\n```\n\n### 下载数据\n\n必要时，请参考 [datasets.md](datasets.md)，了解如何下载数据集。\n\n### 运行 WiSE-FT\n\n当零样本模型和微调后模型均已准备就绪时，示例命令如下：\n\n```\npython src\u002Fwise_ft.py   \\\n    --eval-datasets=ImageNet,ImageNetV2,ImageNetR,ImageNetA,ImageNetSketch  \\\n    --load=models\u002Fzeroshot.pt,models\u002Ffinetuned.pt  \\\n    --results-db=results.jsonl  \\\n    --save=models\u002Fwiseft  \\\n    --data-location=~\u002Fdata \\\n    --alpha 0 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9 1.0\n```\n\n从头开始使用 ViT-B\u002F32 运行 WiSE-FT 的示例命令如下：\n\n```\npython src\u002Fwise_ft.py   \\\n    --train-dataset=ImageNet  \\\n    --epochs=10  \\\n    --lr=0.00003  \\\n    --batch-size=512  \\\n    --cache-dir=cache  \\\n    --model=ViT-B\u002F32  \\\n    --eval-datasets=ImageNet,ImageNetV2,ImageNetR,ImageNetA,ImageNetSketch  \\\n    --template=openai_imagenet_template  \\\n    --results-db=results.jsonl  \\\n    --save=models\u002Fwiseft\u002FViTB32  \\\n    --data-location=~\u002Fdata \\\n    --alpha 0 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9 1.0\n```\n\n注意：标志 `--freeze-encoder` 用于控制是仅微调线性分类器，还是对所有权重进行端到端微调。\n\n### 结果绘图\n\n生成散点图的示例命令如下：\n\n```\npython src\u002Fscatter_plot.py  \\\n    --eval-datasets=ImageNetV2,ImageNetR,ImageNetA,ImageNetSketch  \\\n    --results-db=results.jsonl  \\\n    --save plots\n```\n\n以下展示了使用 ViT-B\u002F16 运行上述命令时的预期效果（模型可在此下载：[链接](https:\u002F\u002Fdrive.google.com\u002Fdrive\u002Ffolders\u002F1f56kjpRKPiNSaUxNDtETEDRkbDkZnpCQ?usp=sharing)）：\n\n\u003Cp align=\"center\">\n  \u003Cimg alt=\"ImageNet-Sketch\" src=\"https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Fmlfoundations_wise-ft_readme_abd2dc5d38ae.png\" width=\"45%\">\n    &nbsp; &nbsp; &nbsp; &nbsp;\n  \u003Cimg alt=\"ImageNet-A\" src=\"https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Fmlfoundations_wise-ft_readme_e64b366509b1.png\" width=\"45%\">\n\u003C\u002Fp>\n\u003Cp align=\"center\">\n  \u003Cimg alt=\"ImageNet-R\" src=\"https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Fmlfoundations_wise-ft_readme_dee64c004754.png\" width=\"45%\">\n    &nbsp; &nbsp; &nbsp; &nbsp;\n  \u003Cimg alt=\"ImageNetV2\" src=\"https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Fmlfoundations_wise-ft_readme_7c1da8476d7c.png\" width=\"45%\">\n\u003C\u002Fp>\n\u003Cp align=\"center\">\n  \u003Cimg alt=\"ObjectNet\" src=\"https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Fmlfoundations_wise-ft_readme_8fffc9f08ab5.png\" width=\"45%\">\n\u003C\u002Fp>\n\n## 引用\n\n如果您觉得本仓库有所帮助，请考虑引用以下文献：\n\n```bibtex\n@article{wortsman2021robust,\n  title={Robust fine-tuning of zero-shot models},\n  author={Wortsman, Mitchell and Ilharco, Gabriel and Kim, Jong Wook and Li, Mike and Kornblith, Simon and Roelofs, Rebecca and Gontijo-Lopes, Raphael and Hajishirzi, Hannaneh and Farhadi, Ali and Namkoong, Hongseok and Schmidt, Ludwig},\n  journal={arXiv preprint arXiv:2109.01903},\n  note={\\url{https:\u002F\u002Farxiv.org\u002Fabs\u002F2109.01903}},\n  year={2021}\n}\n```","# wise-ft 快速上手指南\n\nwise-ft (WiSE-FT) 是一种用于零样本模型（如 CLIP）的鲁棒微调方法。它通过将零样本模型权重与微调后的模型权重进行混合（Ensembling），在无需额外计算成本的情况下，显著提升模型的分布外（OOD）鲁棒性，同时保持甚至提高分布内（ID）的准确率。\n\n## 环境准备\n\n*   **系统要求**: Linux 或 macOS 环境（Windows 需使用 WSL）。\n*   **前置依赖**:\n    *   Python 3.8+\n    *   Conda (推荐用于环境管理)\n    *   GPU (推荐 NVIDIA GPU 以加速训练和推理)\n*   **网络建议**: 由于需要下载预训练模型和数据集，建议确保网络连接通畅。如有条件，可配置国内镜像源加速 `pip` 或 `conda` 包的安装。\n\n## 安装步骤\n\n1.  **克隆仓库并创建环境**\n    首先克隆代码库，并使用项目提供的配置文件创建 Conda 环境：\n    ```bash\n    git clone https:\u002F\u002Fgithub.com\u002Fmlfoundations\u002Fwise-ft.git\n    cd wise-ft\n    conda env create\n    conda activate wiseft\n    ```\n\n2.  **配置环境变量**\n    将当前目录添加到 `PYTHONPATH`，以便 Python 能正确导入模块：\n    ```bash\n    export PYTHONPATH=\"$PYTHONPATH:$PWD\"\n    ```\n\n3.  **准备数据集**\n    根据任务需求下载数据集（如 ImageNet 及其变体）。具体下载说明请参考项目内的 `datasets.md` 文件。\n    > 提示：国内用户可尝试通过阿里云盘、百度网盘等渠道寻找公开数据集资源，或使用学术加速服务下载。\n\n## 基本使用\n\nWiSE-FT 的核心逻辑非常简单：加载零样本模型和微调模型的权重，按系数 $\\alpha$ 进行线性插值混合。\n\n### 场景一：已有模型权重，直接混合评估\n\n如果你已经拥有了零样本模型（zeroshot）和微调后模型（finetuned）的检查点文件，可以直接运行以下命令进行混合评估。该命令会遍历不同的 $\\alpha$ 值（从 0.0 到 1.0）以寻找最佳效果：\n\n```bash\npython src\u002Fwise_ft.py   \\\n    --eval-datasets=ImageNet,ImageNetV2,ImageNetR,ImageNetA,ImageNetSketch  \\\n    --load=models\u002Fzeroshot.pt,models\u002Ffinetuned.pt  \\\n    --results-db=results.jsonl  \\\n    --save=models\u002Fwiseft  \\\n    --data-location=~\u002Fdata \\\n    --alpha 0 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9 1.0\n```\n\n### 场景二：从零开始训练并应用 WiSE-FT\n\n如果你需要从头开始微调模型（例如使用 ViT-B\u002F32），可以使用以下命令。该流程会自动执行微调，并在不同 $\\alpha$ 值下评估混合后的模型效果：\n\n```bash\npython src\u002Fwise_ft.py   \\\n    --train-dataset=ImageNet  \\\n    --epochs=10  \\\n    --lr=0.00003  \\\n    --batch-size=512  \\\n    --cache-dir=cache  \\\n    --model=ViT-B\u002F32  \\\n    --eval-datasets=ImageNet,ImageNetV2,ImageNetR,ImageNetA,ImageNetSketch  \\\n    --template=openai_imagenet_template  \\\n    --results-db=results.jsonl  \\\n    --save=models\u002Fwiseft\u002FViTB32  \\\n    --data-location=~\u002Fdata \\\n    --alpha 0 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9 1.0\n```\n\n**参数说明：**\n*   `--freeze-encoder`: 可选标志。若添加此标志，则仅微调线性分类器；若不添加，则对整个模型进行端到端微调。\n*   `--alpha`: 混合系数。`0` 代表纯零样本模型，`1` 代表纯微调模型，中间值代表两者的权重混合。\n\n### 可视化结果\n\n实验完成后，可使用以下命令生成散点图以直观展示分布内与分布外准确率的变化关系：\n\n```bash\npython src\u002Fscatter_plot.py  \\\n    --eval-datasets=ImageNetV2,ImageNetR,ImageNetA,ImageNetSketch  \\\n    --results-db=results.jsonl  \\\n    --save plots\n```","某医疗影像初创团队正基于 CLIP 大模型开发肺炎 X 光分类系统，需将通用的零样本模型适配到特定医院的数据分布上。\n\n### 没有 wise-ft 时\n- 团队发现标准微调虽提升了本院数据（分布内）的准确率，但模型在面对其他医院设备拍摄的图像（分布外）时，鲁棒性急剧下降，误诊率飙升。\n- 为了兼顾不同来源数据的稳定性，工程师不得不花费数周时间尝试复杂的数据增强策略或集成多个模型，导致研发周期严重滞后。\n- 现有的解决方案往往需要在推理阶段增加额外的计算开销，使得部署在边缘医疗设备上的延迟无法满足临床实时性的要求。\n\n### 使用 wise-ft 后\n- 通过简单插值融合零样本模型与微调模型的权重，系统在保持本院数据高准确率的同时，对外部医院图像的识别精度提升了 4-6 个百分点。\n- 无需编写复杂的训练代码或调整架构，仅需几行脚本即可完成权重混合，大幅降低了算法迭代门槛，让团队能快速响应新数据挑战。\n- 整个优化过程未增加任何额外的训练或推理计算成本，模型依然轻量高效，完美适配资源受限的床边诊断终端。\n\nwise-ft 以极低的工程成本打破了“高精度”与“高鲁棒性”不可兼得的僵局，让医疗 AI 模型在真实多变的环境中更加可靠。","https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Fmlfoundations_wise-ft_abd2dc5d.png","mlfoundations","https:\u002F\u002Foss.gittoolsai.com\u002Favatars\u002Fmlfoundations_a182ca1f.png","",null,"https:\u002F\u002Fpeople.csail.mit.edu\u002Fludwigs\u002F","https:\u002F\u002Fgithub.com\u002Fmlfoundations",[80],{"name":81,"color":82,"percentage":83},"Python","#3572A5",100,763,75,"2026-04-10T09:53:04","NOASSERTION","未说明","未说明（但涉及 ViT-B\u002F32、ViT-B\u002F16 等大模型训练与推理，通常建议配备 NVIDIA GPU）",{"notes":91,"python":88,"dependencies":92},"README 中未明确列出具体的版本号和硬件要求。项目使用 conda 管理环境（通过 'conda env create'），需手动将项目目录添加到 PYTHONPATH。支持从零开始微调或使用预训练的 Zero-shot 和微调模型进行权重插值。主要依赖 PyTorch 生态，具体依赖库需在创建的 conda 环境中查看 environment.yml 文件（文中未直接列出内容）。运行示例涉及 ImageNet 及其变体数据集，需自行下载。",[93,94,95,96,97],"torch","torchvision","ftfy","regex","tqdm",[15,99],"其他","2026-03-27T02:49:30.150509","2026-04-15T07:11:23.633501",[103,108,113,117,122,127,132],{"id":104,"question_zh":105,"answer_zh":106,"source_url":107},33980,"运行 wise_ft.py 时遇到 'undefined symbol: free_gemm_select' OSError 错误如何解决？","该错误通常是由于 PyTorch 与 CUDA 版本不兼容导致的。解决方案是使用 pip 安装特定版本的 torch、torchvision 和 torchaudio，以匹配您的 CUDA 环境（例如 cu110）。请运行以下命令：\npip install torch==1.7.1+cu110 torchvision==0.8.2+cu110 torchaudio==0.7.2 -f https:\u002F\u002Fdownload.pytorch.org\u002Fwhl\u002Ftorch_stable.html\n安装完成后重试运行脚本。","https:\u002F\u002Fgithub.com\u002Fmlfoundations\u002Fwise-ft\u002Fissues\u002F18",{"id":109,"question_zh":110,"answer_zh":111,"source_url":112},33979,"如何在自定义数据集上微调 CLIP 模型？","如果您拥有分类数据集，可以使用此仓库进行微调。对于自定义数据集（如草图 - 文本对或图像分类），请确保数据格式符合分类任务要求。维护者指出，如果是为了在下游分类任务（如 ImageNet 或自定义数据集）上微调预训练的零样本模型，应参考 WiSE-FT 仓库。如果数据集较小（例如总共 5000 张图像，5 个类别），可以直接使用该代码库进行微调。","https:\u002F\u002Fgithub.com\u002Fmlfoundations\u002Fwise-ft\u002Fissues\u002F3",{"id":114,"question_zh":115,"answer_zh":116,"source_url":107},33981,"使用 --load 参数进行模型插值时，应该传入什么样的 .pt 文件？","--load 参数需要传入由 ImageClassifier.save 函数保存的模型文件，而不是直接使用 clip.load 下载的原始预训练权重文件（如 ViT-L-14-336px.pt）。如果您使用的是自定义训练脚本保存的模型，请确保保存方式与加载方式兼容。如果直接加载原始 CLIP 权重导致 UnpicklingError，说明文件格式不匹配，需要先将其转换为项目所需的格式或使用项目提供的加载逻辑。",{"id":118,"question_zh":119,"answer_zh":120,"source_url":121},33982,"如何在 CIFAR10 或 CIFAR100 上评估针对 ImageNet 优化的 CLIP 模型？","可以通过在微调过程中冻结分类层来实现跨数据集评估。这样您可以保留任意数据集的分类头。该项目在其他代码库（https:\u002F\u002Fgithub.com\u002Fmlfoundations\u002Fpatching）中支持此功能，并在论文中讨论了细节。CIFAR10 和 CIFAR100 均受支持，使用该代码库微调只需几分钟即可完成。","https:\u002F\u002Fgithub.com\u002Fmlfoundations\u002Fwise-ft\u002Fissues\u002F16",{"id":123,"question_zh":124,"answer_zh":125,"source_url":126},33983,"能否将 ImageNet-A 作为分布内（IN）数据集训练，并在 ImageNet 上作为分布外（OOD）进行评估？","这不可行。与 ImageNet 不同，ImageNet-A 数据集没有官方提供的训练集，仅包含测试集。虽然理论上可以将测试集拆分为训练集和测试集，但由于数据集本身较小，这种拆分可能导致训练困难并增加评估结果的噪声，因此不建议这样做。","https:\u002F\u002Fgithub.com\u002Fmlfoundations\u002Fwise-ft\u002Fissues\u002F15",{"id":128,"question_zh":129,"answer_zh":130,"source_url":131},33984,"在 CIFAR100 上微调时，预热步数（warmup steps）设置为 500 是否合理？","这是一个值得注意的问题。论文中提到的预热长度为 500 步，但在 CIFAR100 数据集上（batch size=512），一个 epoch 仅需约 98 步。如果总训练轮数为 10 个 epoch，那么 500 步的预热阶段将占据近一半的总训练时间。用户需根据实际数据集大小调整预热策略，或者确认论文中的设置是否针对特定配置，必要时可减少预热步数以适应较小的数据集。","https:\u002F\u002Fgithub.com\u002Fmlfoundations\u002Fwise-ft\u002Fissues\u002F17",{"id":133,"question_zh":134,"answer_zh":135,"source_url":136},33985,"如何为自定义数据集创建 Dataset 类用于微调？","您可以继承 torch.utils.data.Dataset 创建自定义类。关键步骤包括：1) 在 __init__ 中遍历文件夹结构，收集图像路径和对应的标签整数；2) 实现 __len__ 返回数据总量；3) 实现 __getitem__ 读取图像、应用 transform 并返回 (image, label)。确保标签映射（label_dict）正确，且图像预处理（transform）与模型输入要求一致（如 CLIP 所需的 preprocess）。","https:\u002F\u002Fgithub.com\u002Fmlfoundations\u002Fwise-ft\u002Fissues\u002F12",[]]