[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"similar-google-research--uda":3,"tool-google-research--uda":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 真正成长为懂上",159636,2,"2026-04-17T23:33:34",[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 都能提供强大的支持。其独特的模块化架构允许社区不断扩展新功能，使其成为当前最灵活、生态最丰富的开源扩散模型工具之一，帮助用户将创意高效转化为现实。",108322,"2026-04-10T11:39:34",[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":32,"last_commit_at":59,"category_tags":60,"status":17},4721,"markitdown","microsoft\u002Fmarkitdown","MarkItDown 是一款由微软 AutoGen 团队打造的轻量级 Python 工具，专为将各类文件高效转换为 Markdown 格式而设计。它支持 PDF、Word、Excel、PPT、图片（含 OCR）、音频（含语音转录）、HTML 乃至 YouTube 链接等多种格式的解析，能够精准提取文档中的标题、列表、表格和链接等关键结构信息。\n\n在人工智能应用日益普及的今天，大语言模型（LLM）虽擅长处理文本，却难以直接读取复杂的二进制办公文档。MarkItDown 恰好解决了这一痛点，它将非结构化或半结构化的文件转化为模型“原生理解”且 Token 效率极高的 Markdown 格式，成为连接本地文件与 AI 分析 pipeline 的理想桥梁。此外，它还提供了 MCP（模型上下文协议）服务器，可无缝集成到 Claude Desktop 等 LLM 应用中。\n\n这款工具特别适合开发者、数据科学家及 AI 研究人员使用，尤其是那些需要构建文档检索增强生成（RAG）系统、进行批量文本分析或希望让 AI 助手直接“阅读”本地文件的用户。虽然生成的内容也具备一定可读性，但其核心优势在于为机器",93400,"2026-04-06T19:52:38",[52,14],{"id":62,"github_repo":63,"name":64,"description_en":65,"description_zh":66,"ai_summary_zh":67,"readme_en":68,"readme_zh":69,"quickstart_zh":70,"use_case_zh":71,"hero_image_url":72,"owner_login":73,"owner_name":74,"owner_avatar_url":75,"owner_bio":76,"owner_company":77,"owner_location":77,"owner_email":77,"owner_twitter":77,"owner_website":78,"owner_url":79,"languages":80,"stars":89,"forks":90,"last_commit_at":91,"license":92,"difficulty_score":93,"env_os":94,"env_gpu":95,"env_ram":96,"env_deps":97,"category_tags":105,"github_topics":106,"view_count":32,"oss_zip_url":77,"oss_zip_packed_at":77,"status":17,"created_at":113,"updated_at":114,"faqs":115,"releases":146},8765,"google-research\u002Fuda","uda","Unsupervised Data Augmentation (UDA)","uda（Unsupervised Data Augmentation）是一种先进的半监督学习框架，旨在通过高效利用未标记数据来显著提升模型性能。在人工智能训练中，获取大量高质量标注数据往往成本高昂且耗时，而 uda 正是为了解决这一痛点而生。它能够在标注样本极少的情况下，结合大量无标签数据，达到甚至超越传统全监督学习的效果。例如，在仅使用 20 个标注样本的电影评论情感分析任务中，uda 的准确率便超越了此前使用 2.5 万个标注样本的最优模型；在图像分类领域，它也能将错误率降低 30% 以上。\n\n该工具的核心技术亮点在于其独特的“无监督数据增强”策略，通过对未标记数据进行精心设计的变换（如文本的回译或图像的增强），生成一致性约束，从而引导模型学习到更鲁棒的特征表示。uda 非常适合 AI 研究人员和开发者使用，特别是那些面临数据标注资源有限、希望挖掘海量无标签数据价值的团队。项目提供了基于 BERT 的文本分类以及 CIFAR-10、SVHN 等图像分类的完整代码与预训练模型，并原生支持 GPU 和 Google Cloud TPU，开箱即用，能帮助使用者快速复现业界领先的实验结果，","uda（Unsupervised Data Augmentation）是一种先进的半监督学习框架，旨在通过高效利用未标记数据来显著提升模型性能。在人工智能训练中，获取大量高质量标注数据往往成本高昂且耗时，而 uda 正是为了解决这一痛点而生。它能够在标注样本极少的情况下，结合大量无标签数据，达到甚至超越传统全监督学习的效果。例如，在仅使用 20 个标注样本的电影评论情感分析任务中，uda 的准确率便超越了此前使用 2.5 万个标注样本的最优模型；在图像分类领域，它也能将错误率降低 30% 以上。\n\n该工具的核心技术亮点在于其独特的“无监督数据增强”策略，通过对未标记数据进行精心设计的变换（如文本的回译或图像的增强），生成一致性约束，从而引导模型学习到更鲁棒的特征表示。uda 非常适合 AI 研究人员和开发者使用，特别是那些面临数据标注资源有限、希望挖掘海量无标签数据价值的团队。项目提供了基于 BERT 的文本分类以及 CIFAR-10、SVHN 等图像分类的完整代码与预训练模型，并原生支持 GPU 和 Google Cloud TPU，开箱即用，能帮助使用者快速复现业界领先的实验结果，大幅降低高性能模型的开发门槛。","# Unsupervised Data Augmentation\n\n## Overview\n\nUnsupervised Data Augmentation or UDA is a semi-supervised learning method which\nachieves state-of-the-art results on a wide variety of language and vision\ntasks.\n\nWith only 20 labeled examples, UDA outperforms the previous state-of-the-art on\nIMDb trained on 25,000 labeled examples.\n\nModel                  | Number of labeled examples | Error rate\n---------------------- | :------------------------: | :--------:\nMixed VAT (Prev. SOTA) | 25,000                     | 4.32\nBERT                   | 25,000                     | 4.51\nUDA                    | **20**                     | **4.20**\n\nIt reduces more than 30% of the error rate of state-of-the-art methods on\nCIFAR-10 with 4,000 labeled examples and SVHN with 1,000 labeled examples:\n\nModel            | CIFAR-10     | SVHN\n---------------- | :----------: | :----------:\nICT (Prev. SOTA) | 7.66±.17     | 3.53±.07\nUDA              | **4.31±.08** | **2.28±.10**\n\nIt leads to significant improvements on ImageNet with 10% labeled data.\n\nModel     | top-1 accuracy | top-5 accuracy\n--------- | :------------: | :------------:\nResNet-50 | 55.09          | 77.26\nUDA       | **68.78**      | **88.80**\n\n## How it works\n\nUDA is a method of *semi-supervised learning*, that reduces the need for labeled\nexamples and better utilizes unlabeled ones.\n\n## What we are releasing\n\nWe are releasing the following:\n\n*   Code for text classifications based on BERT.\n*   Code for image classifications on CIFAR-10 and SVHN.\n*   Code and checkpoints for our back translation augmentation system.\n\nAll of the code in this repository works out-of-the-box with GPU and Google\nCloud TPU.\n\n## Requirements\n\nThe code is tested on Python 2.7 and Tensorflow 1.13. After installing\nTensorflow, run the following command to install dependencies:\n```shell\npip install --user absl-py\n```\n\n## Image classification\n\n### Preprocessing\n\nWe generate 100 augmented examples for every original example. To download all\nthe augmented data, go to the *image* directory and run\n\n```shell\nAUG_COPY=100\nbash scripts\u002Fdownload_cifar10.sh ${AUG_COPY}\n```\n\nNote that you need 120G disk space for all the augmented data. To save space,\nyou can set AUG_COPY to a smaller number such as 30.\n\nAlternatively, you can generate the augmented examples yourself by running\n\n```shell\nAUG_COPY=100\nbash scripts\u002Fpreprocess.sh --aug_copy=${AUG_COPY}\n```\n\n### CIFAR-10 with 250, 500, 1000, 2000, 4000 examples on GPUs\n\nGPU command:\n\n```shell\n# UDA accuracy: \n# 4000: 95.68 +- 0.08\n# 2000: 95.27 +- 0.14\n# 1000: 95.25 +- 0.10\n# 500: 95.20 +- 0.09\n# 250: 94.57 +- 0.96\nbash scripts\u002Frun_cifar10_gpu.sh --aug_copy=${AUG_COPY}\n```\n\n### SVHN with 250, 500, 1000, 2000, 4000 examples on GPUs\n\n\n```shell\n# UDA accuracy:\n# 4000: 97.72 +- 0.10\n# 2000: 97.80 +- 0.06\n# 1000: 97.77 +- 0.07\n# 500: 97.73 +- 0.09\n# 250: 97.28 +- 0.40\n\nbash scripts\u002Frun_svhn_gpu.sh --aug_copy=${AUG_COPY}\n```\n\n## Text classifiation\n\n### Run on GPUs\n\n#### Memory issues\n\nThe movie review texts in IMDb are longer than many classification tasks so\nusing a longer sequence length leads to better performances. The sequence\nlengths are limited by the TPU\u002FGPU memory when using BERT (See the\n[Out-of-memory issues of BERT](https:\u002F\u002Fgithub.com\u002Fgoogle-research\u002Fbert#out-of-memory-issues)).\nAs such, we provide scripts to run with shorter sequence lengths and smaller\nbatch sizes.\n\n#### Instructions\n\nIf you want to run UDA with BERT base on a GPU with 11 GB memory, go to the\n*text* directory and run the following commands:\n\n```shell\n# Set a larger max_seq_length if your GPU has a memory larger than 11GB\nMAX_SEQ_LENGTH=128\n\n# Download data and pretrained BERT checkpoints\nbash scripts\u002Fdownload.sh\n\n# Preprocessing\nbash scripts\u002Fprepro.sh --max_seq_length=${MAX_SEQ_LENGTH}\n\n# Baseline accuracy: around 68%\nbash scripts\u002Frun_base.sh --max_seq_length=${MAX_SEQ_LENGTH}\n\n# UDA accuracy: around 90%\n# Set a larger train_batch_size to achieve better performance if your GPU has a larger memory.\nbash scripts\u002Frun_base_uda.sh --train_batch_size=8 --max_seq_length=${MAX_SEQ_LENGTH}\n\n```\n\n### Run on Cloud TPU v3-32 Pod to achieve SOTA performance\n\nThe best performance in the paper is achieved by using a max_seq_length of 512\nand initializing with BERT large finetuned on in-domain unsupervised data. If\nyou have access to Google Cloud TPU v3-32 Pod, try:\n\n```shell\nMAX_SEQ_LENGTH=512\n\n# Download data and pretrained BERT checkpoints\nbash scripts\u002Fdownload.sh\n\n# Preprocessing\nbash scripts\u002Fprepro.sh --max_seq_length=${MAX_SEQ_LENGTH}\n\n# UDA accuracy: 95.3% - 95.9%\nbash train_large_ft_uda_tpu.sh\n```\n\n## Run back translation data augmentation for your dataset\n\nFirst of all, install the following dependencies:\n\n```shell\npip install --user nltk\npython -c \"import nltk; nltk.download('punkt')\"\npip install --user tensor2tensor==1.13.4\n```\n\nThe following command translates the provided example file. It automatically\nsplits paragraphs into sentences, translates English sentences to French and\nthen translates them back into English. Finally, it composes the paraphrased\nsentences into paragraphs. Go to the *back_translate* directory and run:\n\n```shell\nbash download.sh\nbash run.sh\n```\n\n### Guidelines for hyperparameters:\n\nThere is a variable *sampling_temp* in the bash file. It is used to control the\ndiversity and quality of the paraphrases. Increasing sampling_temp will lead to\nincreased diversity but worse quality. Surprisingly, diversity is more important\nthan quality for many tasks we tried.\n\nWe suggest trying to set sampling_temp to 0.7, 0.8 and 0.9. If your task is very\nrobust to noise, sampling_temp=0.9 or 0.8 should lead to improved performance.\nIf your task is not robust to noise, setting sampling temp to 0.7 or 0.6 should\nbe better.\n\nIf you want to do back translation to a large file, you can change the replicas\nand worker_id arguments in run.sh. For example, when replicas=3, we divide the\ndata into three parts, and each run.sh will only process one part according to\nthe worker_id.\n\n\n## General guidelines for setting hyperparameters:\n\nUDA works out-of-box and does not require extensive hyperparameter tuning, but\nto really push the performance, here are suggestions about hyperparamters:\n\n*   It works well to set the weight on unsupervised objective *'unsup_coeff'*\n    to 1.\n*   Use a lower learning rate than pure supervised learning because there are\n    two loss terms computed on labeled data and unlabeled data respecitively.\n*   If your have an extremely small amount of data, try to tweak\n    'uda_softmax_temp' and 'uda_confidence_thresh' a bit. For more details about\n    these two hyperparameters, search the \"Confidence-based masking\" and\n    \"Softmax temperature control\" in the paper.\n*   Effective augmentation for supervised learning usually works well for UDA.\n*   For some tasks, we observed that increasing the batch size for the\n    unsupervised objective leads to better performance. For other tasks, small\n    batch sizes also work well. For example, when we run UDA with GPU on\n    CIFAR-10, the best batch size for the unsupervised objective is 160.\n\n## Acknowledgement\n\nA large portion of the code is taken from\n[BERT](https:\u002F\u002Fgithub.com\u002Fgoogle-research\u002Fbert) and\n[RandAugment](https:\u002F\u002Fgithub.com\u002Ftensorflow\u002Fmodels\u002Ftree\u002Fmaster\u002Fresearch\u002Fautoaugment).\nThanks!\n\n## Citation\n\nPlease cite this paper if you use UDA.\n\n```\n@article{xie2019unsupervised,\n  title={Unsupervised Data Augmentation for Consistency Training},\n  author={Xie, Qizhe and Dai, Zihang and Hovy, Eduard and Luong, Minh-Thang and Le, Quoc V},\n  journal={arXiv preprint arXiv:1904.12848},\n  year={2019}\n}\n```\n\nPlease also cite this paper if you use UDA for images.\n\n```\n@article{cubuk2019randaugment,\n  title={RandAugment: Practical data augmentation with no separate search},\n  author={Cubuk, Ekin D and Zoph, Barret and Shlens, Jonathon and Le, Quoc V},\n  journal={arXiv preprint arXiv:1909.13719},\n  year={2019}\n}\n```\n\n## Disclaimer\n\nThis is not an officially supported Google product.\n","# 无监督数据增强\n\n## 概述\n\n无监督数据增强（UDA）是一种半监督学习方法，在多种语言和视觉任务上均取得了最先进的结果。\n\n仅使用20个标注样本，UDA在IMDb上的表现就超过了此前的最先进水平，而后者是在25,000个标注样本上训练得到的。\n\n模型                  | 标注样本数量 | 错误率\n---------------------- | :------------------------: | :--------:\n混合VAT（先前SOTA）   | 25,000                     | 4.32\nBERT                   | 25,000                     | 4.51\nUDA                    | **20**                     | **4.20**\n\n在CIFAR-10数据集上，使用4,000个标注样本时，UDA将错误率降低了超过30%；而在SVHN数据集上，使用1,000个标注样本时，同样实现了显著的性能提升：\n\n模型            | CIFAR-10     | SVHN\n---------------- | :----------: | :----------:\nICT（先前SOTA） | 7.66±.17     | 3.53±.07\nUDA              | **4.31±.08** | **2.28±.10**\n\n在ImageNet数据集上，使用10%的标注数据时，UDA也带来了显著的性能提升。\n\n模型     | top-1准确率 | top-5准确率\n--------- | :------------: | :------------:\nResNet-50 | 55.09          | 77.26\nUDA       | **68.78**      | **88.80**\n\n## 工作原理\n\nUDA是一种*半监督学习*方法，它减少了对标注样本的需求，并更好地利用未标注的数据。\n\n## 我们发布的内容\n\n我们发布了以下内容：\n\n* 基于BERT的文本分类代码。\n* 针对CIFAR-10和SVHN的图像分类代码。\n* 我们的反向翻译增强系统代码及检查点。\n\n本仓库中的所有代码均可在GPU和Google Cloud TPU上开箱即用。\n\n## 环境要求\n\n代码已在Python 2.7和TensorFlow 1.13上测试通过。安装TensorFlow后，请运行以下命令以安装依赖项：\n```shell\npip install --user absl-py\n```\n\n## 图像分类\n\n### 预处理\n\n我们为每个原始样本生成100个增强样本。要下载所有增强数据，请进入*image*目录并运行：\n\n```shell\nAUG_COPY=100\nbash scripts\u002Fdownload_cifar10.sh ${AUG_COPY}\n```\n\n请注意，所有增强数据需要120G的磁盘空间。为了节省空间，您可以将AUG_COPY设置为较小的值，例如30。\n\n或者，您也可以自行生成增强样本，运行以下命令：\n\n```shell\nAUG_COPY=100\nbash scripts\u002Fpreprocess.sh --aug_copy=${AUG_COPY}\n```\n\n### 在GPU上使用250、500、1,000、2,000、4,000个样本进行CIFAR-10分类\n\nGPU命令：\n\n```shell\n# UDA准确率： \n# 4000：95.68 ± 0.08\n# 2000：95.27 ± 0.14\n# 1000：95.25 ± 0.10\n# 500：95.20 ± 0.09\n# 250：94.57 ± 0.96\nbash scripts\u002Frun_cifar10_gpu.sh --aug_copy=${AUG_COPY}\n```\n\n### 在GPU上使用250、500、1,000、2,000、4,000个样本进行SVHN分类\n\n```shell\n# UDA准确率：\n# 4000：97.72 ± 0.10\n# 2000：97.80 ± 0.06\n# 1000：97.77 ± 0.07\n# 500：97.73 ± 0.09\n# 250：97.28 ± 0.40\n\nbash scripts\u002Frun_svhn_gpu.sh --aug_copy=${AUG_COPY}\n```\n\n## 文本分类\n\n### 在GPU上运行\n\n#### 内存问题\n\nIMDb中的电影评论文本比许多分类任务的文本更长，因此使用较长的序列长度可以获得更好的性能。然而，在使用BERT时，序列长度会受到TPU\u002FGPU内存的限制（参见[BERT的内存不足问题](https:\u002F\u002Fgithub.com\u002Fgoogle-research\u002Fbert#out-of-memory-issues)）。为此，我们提供了使用较短序列长度和较小批量大小运行的脚本。\n\n#### 指令\n\n如果您想在具有11GB内存的GPU上使用BERT运行UDA，请进入*text*目录并执行以下命令：\n\n```shell\n# 如果您的GPU内存大于11GB，请设置更大的max_seq_length\nMAX_SEQ_LENGTH=128\n\n# 下载数据和预训练的BERT检查点\nbash scripts\u002Fdownload.sh\n\n# 预处理\nbash scripts\u002Fprepro.sh --max_seq_length=${MAX_SEQ_LENGTH}\n\n# 基线准确率：约68%\nbash scripts\u002Frun_base.sh --max_seq_length=${MAX_SEQ_LENGTH}\n\n# UDA准确率：约90%\n# 如果您的GPU内存更大，可以设置更大的train_batch_size以获得更好的性能。\nbash scripts\u002Frun_base_uda.sh --train_batch_size=8 --max_seq_length=${MAX_SEQ_LENGTH}\n\n```\n\n### 在Cloud TPU v3-32 Pod上运行以达到SOTA性能\n\n论文中最好的性能是通过使用512的max_seq_length，并从在领域内无监督数据上微调过的BERT large模型初始化得到的。如果您可以访问Google Cloud TPU v3-32 Pod，请尝试：\n\n```shell\nMAX_SEQ_LENGTH=512\n\n# 下载数据和预训练的BERT检查点\nbash scripts\u002Fdownload.sh\n\n# 预处理\nbash scripts\u002Fprepro.sh --max_seq_length=${MAX_SEQ_LENGTH}\n\n# UDA准确率：95.3% - 95.9%\nbash train_large_ft_uda_tpu.sh\n```\n\n## 为您的数据集运行反向翻译数据增强\n\n首先，请安装以下依赖项：\n\n```shell\npip install --user nltk\npython -c \"import nltk; nltk.download('punkt')\"\npip install --user tensor2tensor==1.13.4\n```\n\n以下命令将翻译提供的示例文件。它会自动将段落分割成句子，将英语句子翻译成法语，然后再翻译回英语。最后，它会将改写的句子重新组合成段落。请进入*back_translate*目录并运行：\n\n```shell\nbash download.sh\nbash run.sh\n```\n\n### 超参数指南：\n\nbash脚本中有一个变量*sampling_temp*，用于控制改写句子的多样性和质量。提高sampling_temp会增加多样性，但会降低质量。令人惊讶的是，在我们尝试的许多任务中，多样性比质量更为重要。\n\n我们建议尝试将sampling_temp设置为0.7、0.8和0.9。如果您的任务对噪声具有很强的鲁棒性，则sampling_temp=0.9或0.8可能会带来性能提升。如果您的任务对噪声不那么鲁棒，则将sampling_temp设置为0.7或0.6可能更好。\n\n如果您想对大型文件进行反向翻译，可以修改run.sh中的replicas和worker_id参数。例如，当replicas=3时，我们会将数据分成三份，每份run.sh将根据worker_id只处理其中一部分。\n\n## 超参数设置的一般指南：\n\nUDA 开箱即用，无需进行大量的超参数调优，但若想进一步提升性能，可参考以下建议：\n\n*   将无监督目标的权重 *'unsup_coeff'* 设置为 1 效果较好。\n*   由于同时计算有标签数据和无标签数据上的两个损失项，建议使用比纯监督学习更低的学习率。\n*   如果数据量非常少，可以适当调整 *'uda_softmax_temp'* 和 *'uda_confidence_thresh'*。关于这两个超参数的详细说明，请参阅论文中的“基于置信度的掩码”和“Softmax 温度控制”部分。\n*   针对监督学习的有效数据增强方法通常也适用于 UDA。\n*   对于某些任务，我们观察到增大无监督目标的批次大小能够带来更好的性能；而对于另一些任务，则小批次同样有效。例如，在 CIFAR-10 数据集上使用 GPU 运行 UDA 时，无监督目标的最佳批次大小为 160。\n\n## 致谢\n\n代码的大部分内容源自 [BERT](https:\u002F\u002Fgithub.com\u002Fgoogle-research\u002Fbert) 和 [RandAugment](https:\u002F\u002Fgithub.com\u002Ftensorflow\u002Fmodels\u002Ftree\u002Fmaster\u002Fresearch\u002Fautoaugment)。在此表示感谢！\n\n## 引用\n\n如果您使用了 UDA，请引用本文：\n\n```\n@article{xie2019unsupervised,\n  title={Unsupervised Data Augmentation for Consistency Training},\n  author={Xie, Qizhe and Dai, Zihang and Hovy, Eduard and Luong, Minh-Thang and Le, Quoc V},\n  journal={arXiv preprint arXiv:1904.12848},\n  year={2019}\n}\n```\n\n如果您将 UDA 应用于图像任务，也请引用以下论文：\n\n```\n@article{cubuk2019randaugment,\n  title={RandAugment: Practical data augmentation with no separate search},\n  author={Cubuk, Ekin D and Zoph, Barret and Shlens, Jonathon and Le, Quoc V},\n  journal={arXiv preprint arXiv:1909.13719},\n  year={2019}\n}\n```\n\n## 免责声明\n\n本项目并非 Google 官方支持的产品。","# UDA (Unsupervised Data Augmentation) 快速上手指南\n\nUDA 是一种半监督学习方法，能够利用大量未标记数据显著提升模型性能。即使在仅有少量标记样本（如 20 个）的情况下，也能在文本分类和图像分类任务中达到业界领先（SOTA）的效果。\n\n## 环境准备\n\n### 系统要求\n- **操作系统**: Linux (推荐)\n- **硬件**: 支持 GPU 或 Google Cloud TPU\n- **Python 版本**: 2.7 (官方测试版本，建议兼容环境)\n- **框架版本**: TensorFlow 1.13\n\n### 前置依赖\n安装 TensorFlow 后，需安装以下 Python 依赖包：\n\n```shell\npip install --user absl-py\n```\n\n> **注意**：若需使用回译（Back Translation）数据增强功能，还需额外安装：\n> ```shell\n> pip install --user nltk\n> python -c \"import nltk; nltk.download('punkt')\"\n> pip install --user tensor2tensor==1.13.4\n> ```\n\n## 安装步骤\n\n本项目代码无需编译，克隆仓库即可直接使用。确保已安装上述依赖。\n\n```shell\ngit clone https:\u002F\u002Fgithub.com\u002Fgoogle-research\u002Fuda.git\ncd uda\n```\n\n## 基本使用\n\n以下提供图像分类和文本分类的最简运行示例。\n\n### 场景一：图像分类 (CIFAR-10)\n\n此示例展示如何在 GPU 上运行 CIFAR-10 数据集的 UDA 训练。\n\n**1. 数据预处理**\n下载并生成增强数据（默认每个原图生成 100 个增强样本，需约 120G 空间。若空间不足，可将 `AUG_COPY` 设为 30）。\n\n```shell\ncd image\nAUG_COPY=100\nbash scripts\u002Fdownload_cifar10.sh ${AUG_COPY}\n```\n\n*或者手动生成增强数据：*\n```shell\nAUG_COPY=100\nbash scripts\u002Fpreprocess.sh --aug_copy=${AUG_COPY}\n```\n\n**2. 启动训练**\n运行以下脚本开始在 GPU 上训练（支持 250 至 4000 个标记样本）：\n\n```shell\nbash scripts\u002Frun_cifar10_gpu.sh --aug_copy=${AUG_COPY}\n```\n\n### 场景二：文本分类 (IMDb)\n\n此示例展示如何在显存为 11GB 的 GPU 上运行基于 BERT 的 IMDb 情感分析。\n\n**1. 进入目录并配置参数**\n```shell\ncd text\n# 若显存大于 11GB，可适当增大 MAX_SEQ_LENGTH\nMAX_SEQ_LENGTH=128\n```\n\n**2. 下载数据与预训练模型**\n```shell\nbash scripts\u002Fdownload.sh\n```\n\n**3. 数据预处理**\n```shell\nbash scripts\u002Fprepro.sh --max_seq_length=${MAX_SEQ_LENGTH}\n```\n\n**4. 启动 UDA 训练**\n```shell\n# train_batch_size 可根据显存大小调整，显存越大可设越大以提升性能\nbash scripts\u002Frun_base_uda.sh --train_batch_size=8 --max_seq_length=${MAX_SEQ_LENGTH}\n```\n\n### 场景三：自定义数据的回译增强\n\n若需为自己的数据集生成回译增强数据（英->法->英），请进入 `back_translate` 目录：\n\n```shell\ncd back_translate\nbash download.sh\nbash run.sh\n```\n\n> **调参建议**：在 `run.sh` 中可通过调整 `sampling_temp` 控制生成多样性。\n> - 任务对噪声鲁棒性强：尝试 `0.8` 或 `0.9`\n> - 任务对噪声敏感：尝试 `0.6` 或 `0.7`\n\n## 核心超参数建议\n\nUDA 通常开箱即用，但若需进一步压榨性能，可参考以下调整策略：\n- **unsup_coeff**: 无监督损失权重，建议设为 `1`。\n- **Learning Rate**: 由于同时计算有标签和无标签损失，建议使用比纯监督学习更低的学习率。\n- **小样本场景**: 微调 `uda_softmax_temp` 和 `uda_confidence_thresh`。\n- **Batch Size**: 对于无监督目标，增大 Batch Size 在某些任务（如 CIFAR-10）中能提升效果（最佳值约为 160）。","某电商初创公司的算法团队急需构建一个商品评论情感分析模型，但面临人工标注数据极度匮乏且预算有限的困境。\n\n### 没有 uda 时\n- **标注成本高昂**：为了达到可用的准确率，团队不得不雇佣外包团队标注数万条评论，导致项目启动资金迅速耗尽。\n- **冷启动周期长**：在等待大量标注数据到位期间，模型无法训练，产品上线时间被迫推迟数月。\n- **小样本效果差**：若仅使用手头仅有的几百条种子数据进行监督学习，模型泛化能力极弱，对新出现的评论句式识别准确率不足 70%。\n- **数据浪费严重**：数据库中沉淀的百万级未标注用户评论完全被闲置，无法转化为模型训练的有效养分。\n\n### 使用 uda 后\n- **极低数据依赖**：利用 UDA 的半监督学习特性，团队仅用 20 条精心标注的种子样本，配合海量无标签数据，便训练出了高性能模型。\n- **准确率逆势超越**：在 IMDb 等基准测试中，UDA 仅用 20 个标签就达到了 4.20% 的错误率，优于此前使用 25,000 个标签的最先进模型。\n- **开发效率倍增**：无需等待漫长的人工标注流程，直接调用现有的回译增强系统处理无标签文本，模型迭代周期从数月缩短至数天。\n- **资源利用率最大化**：成功激活了沉睡的百万级无标签评论数据，通过一致性正则化技术显著降低了过拟合风险，提升了模型鲁棒性。\n\nUDA 的核心价值在于打破了“高质量模型必须依赖大规模标注数据”的传统瓶颈，让企业在极低数据成本下也能实现业界领先的 AI 落地效果。","https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Fgoogle-research_uda_df5f4450.png","google-research","Google Research","https:\u002F\u002Foss.gittoolsai.com\u002Favatars\u002Fgoogle-research_c23b2adf.png","",null,"https:\u002F\u002Fresearch.google","https:\u002F\u002Fgithub.com\u002Fgoogle-research",[81,85],{"name":82,"color":83,"percentage":84},"Python","#3572A5",92.5,{"name":86,"color":87,"percentage":88},"Shell","#89e051",7.5,2205,312,"2026-04-14T09:16:53","Apache-2.0",4,"未说明","必需（支持 GPU 和 Google Cloud TPU）。文本分类任务在 11GB 显存 GPU 上可运行（需减小序列长度和 batch size）；图像分类未明确具体型号但需 GPU 支持。","未说明（图像增强数据预处理需 120GB 磁盘空间）",{"notes":98,"python":99,"dependencies":100},"1. 代码已在 Python 2.7 和 TensorFlow 1.13 上测试通过。2. 图像分类预处理若下载全部增强数据需 120GB 磁盘空间，可通过设置 AUG_COPY 参数减少占用。3. 支持 Google Cloud TPU v3-32 Pod 以达到最佳性能。4. 回译数据增强功能需额外安装 nltk 和 tensor2tensor。5. 显存不足时（如 11GB），需调整最大序列长度（max_seq_length）和训练批次大小（train_batch_size）。","2.7",[101,102,103,104],"tensorflow==1.13","absl-py","nltk","tensor2tensor==1.13.4",[14,35,15],[107,108,109,110,111,112],"semi-supervised-learning","nlp","cv","tensorflow","computer-vision","natural-language-processing","2026-03-27T02:49:30.150509","2026-04-18T09:20:11.223423",[116,121,126,131,136,141],{"id":117,"question_zh":118,"answer_zh":119,"source_url":120},39314,"在 GPU 上训练 SVHN 数据集时，如何设置 train_steps 以避免过拟合？","如果在 GPU 上运行 SVHN 数据集且发现模型过拟合（例如在 200,000 步时），建议减少训练步数。有用户反馈最佳准确率出现在第 110,000 步（96.43%）。维护者已更新代码和脚本以复现 GPU 上的 SVHN 性能，建议参考最新的官方脚本配置。如果结果仍不理想，可以尝试修改 TSA（Thresholding Sharpness Aware）调度策略。","https:\u002F\u002Fgithub.com\u002Fgoogle-research\u002Fuda\u002Fissues\u002F19",{"id":122,"question_zh":123,"answer_zh":124,"source_url":125},39315,"代码中的 Cutout 操作顺序与论文描述是否一致？预处理的具体流程是什么？","是的，代码实现与论文报告的性能一致，但操作顺序有所调整以适应 NumPy\u002FPIL 实现而非 TF 计算图。具体的预处理顺序为：先进行两次随机增强操作 -> 接着是 Cutout -> 最后是翻转（Flip）和裁剪（Crop）。其中，翻转和裁剪是在训练过程中（data.py）应用的，以确保模型看到更多样化的图像。完整流程可概括为：Flip -> Crop -> 两次随机操作 -> Cutout。","https:\u002F\u002Fgithub.com\u002Fgoogle-research\u002Fuda\u002Fissues\u002F59",{"id":127,"question_zh":128,"answer_zh":129,"source_url":130},39316,"在 Python 3.6+ 环境下运行时遇到 'contextlib' 错误（AttributeError: module 'contextlib' has no attribute 'nested'）如何解决？","这是因为 Python 3 中移除了 `contextlib.nested`。解决方法是修改 `image\u002Fmain.py` 文件（约第 221 行），添加兼容性代码。具体代码如下：\n\n```python\nscopes = setup_arg_scopes(is_training)\n\ntry:\n    from contextlib import nested\nexcept ImportError:\n    from contextlib import ExitStack, contextmanager\n\n    @contextmanager\n    def nested(*contexts):\n        with ExitStack() as stack:\n            for ctx in contexts:\n                stack.enter_context(ctx)\n            yield contexts\n\nwith nested(*scopes):\n    # 后续模型构建代码...\n```\n\n此外，确保 CUDA toolkit 版本正确，并建议使用 TensorFlow 1.13.1 及以上版本。","https:\u002F\u002Fgithub.com\u002Fgoogle-research\u002Fuda\u002Fissues\u002F50",{"id":132,"question_zh":133,"answer_zh":134,"source_url":135},39317,"RandAugment 的策略是如何设计的？为什么参数值从 0.5 开始且每次应用两个策略？","RandAugment 的设计旨在简化超参数搜索。关于参数值从 0.5 开始：这是为了简化搜索空间，实验发现即使不精细调整起始概率也能获得良好效果，因此未像 AutoAugment 那样搜索低于 0.5 的值。关于应用两个策略：代码中构造了成对的随机策略 `policies += [[op_1, op_2]]`，这是一种启发式选择，旨在平衡增强的多样性和计算效率。维护者表示该设置在首次尝试中表现良好，因此未进一步微调超参数。","https:\u002F\u002Fgithub.com\u002Fgoogle-research\u002Fuda\u002Fissues\u002F49",{"id":137,"question_zh":138,"answer_zh":139,"source_url":140},39318,"训练日志中有监督损失（sup_loss）和无监督损失（unsup_loss）数量级差异巨大是否正常？","这是正常现象。总损失由 `sup_loss + unsup_loss` 组成，两者通常不在同一数量级。无监督损失较小并不意味着需要手动调整 `uda_coeff`（除非你有特定的调优需求）。对于文本分类任务，如果发现无监督损失随训练步数增加而上升，这可能是因为模型尚未完全收敛或数据增强导致的分布差异；通常情况下，随着模型学习到更稳定的特征，无监督损失应在一定步数后趋于稳定或下降，表明模型对原始样本及其增强版本输出了相似的概率分布。","https:\u002F\u002Fgithub.com\u002Fgoogle-research\u002Fuda\u002Fissues\u002F36",{"id":142,"question_zh":143,"answer_zh":144,"source_url":145},39319,"论文中提到的“域相关数据过滤”（Domain-relevance Data Filtering）具体是如何筛选类平衡数据的？","该方法使用在域内数据（in-domain data）上训练的基线模型，对一个大型域外数据集（如 JFT-1M）进行推理预测。筛选过程是：选出模型置信度最高的样本，并确保这些样本在各个类别中是均匀分布的（equally distributed among classes）。换句话说，你会创建一个无标签集合，其中的图像是根据基线模型的预测结果进行“类平衡”挑选出来的，以防止某些类别占据主导地位。","https:\u002F\u002Fgithub.com\u002Fgoogle-research\u002Fuda\u002Fissues\u002F27",[]]