[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"similar-ChenRocks--UNITER":3,"tool-ChenRocks--UNITER":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 真正成长为懂上",151918,2,"2026-04-12T11:33:05",[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":66,"readme_en":67,"readme_zh":68,"quickstart_zh":69,"use_case_zh":70,"hero_image_url":71,"owner_login":72,"owner_name":73,"owner_avatar_url":74,"owner_bio":75,"owner_company":76,"owner_location":77,"owner_email":78,"owner_twitter":78,"owner_website":79,"owner_url":80,"languages":81,"stars":93,"forks":94,"last_commit_at":95,"license":78,"difficulty_score":10,"env_os":96,"env_gpu":97,"env_ram":98,"env_deps":99,"category_tags":109,"github_topics":110,"view_count":32,"oss_zip_url":78,"oss_zip_packed_at":78,"status":17,"created_at":115,"updated_at":116,"faqs":117,"releases":147},6917,"ChenRocks\u002FUNITER","UNITER","Research code for ECCV 2020 paper \"UNITER: UNiversal Image-TExt Representation Learning\"","UNITER 是一款专注于“通用图像 - 文本表示学习”的开源深度学习模型，源自 ECCV 2020 的研究成果。它的核心目标是让机器像人类一样，同时理解图片内容和文字描述，并掌握两者之间的深层关联。\n\n传统 AI 往往单独处理视觉或语言任务，而 UNITER 通过统一的架构解决了跨模态理解的难题。它能够广泛应用于视觉问答（VQA）、图文检索、视觉常识推理以及指代性表达理解等多个复杂场景。该项目不仅发布了经过大规模预训练的 Base 和 Large 版本模型，还提供了完整的微调代码，支持在 NLVR2、COCO、Flickr30k 等主流数据集上快速复现和实验。\n\nUNITER 特别适合人工智能研究人员、算法工程师及高校开发者使用。对于希望深入探索多模态技术或需要构建图文交互应用的技术团队，它提供了一个高起点的研究基线。其技术亮点在于采用了先进的预训练策略，并结合了混合精度训练与 Docker 容器化部署方案，显著提升了在 NVIDIA GPU 上的训练效率与环境复现的便捷性。虽然上手需要一定的深度学习基础，但其模块化的设计和详尽的文档大大降低了二次开发的门槛。","# UNITER: UNiversal Image-TExt Representation Learning\nThis is the official repository of [UNITER](https:\u002F\u002Farxiv.org\u002Fabs\u002F1909.11740) (ECCV 2020).\nThis repository currently supports finetuning UNITER on\n[NLVR2](http:\u002F\u002Flil.nlp.cornell.edu\u002Fnlvr\u002F), [VQA](https:\u002F\u002Fvisualqa.org\u002F), [VCR](https:\u002F\u002Fvisualcommonsense.com\u002F),\n[SNLI-VE](https:\u002F\u002Fgithub.com\u002Fnecla-ml\u002FSNLI-VE), \nImage-Text Retrieval for [COCO](https:\u002F\u002Fcocodataset.org\u002F#home) and\n[Flickr30k](http:\u002F\u002Fshannon.cs.illinois.edu\u002FDenotationGraph\u002F), and\n[Referring Expression Comprehensions](https:\u002F\u002Fgithub.com\u002Flichengunc\u002Frefer) (RefCOCO, RefCOCO+, and RefCOCO-g).\nBoth UNITER-base and UNITER-large pre-trained checkpoints are released.\nUNITER-base pre-training with in-domain data is also available.\n\n![Overview of UNITER](https:\u002F\u002Facvrpublicycchen.blob.core.windows.net\u002Funiter\u002Funiter_overview_v2.png)\n\nSome code in this repo are copied\u002Fmodified from opensource implementations made available by\n[PyTorch](https:\u002F\u002Fgithub.com\u002Fpytorch\u002Fpytorch),\n[HuggingFace](https:\u002F\u002Fgithub.com\u002Fhuggingface\u002Ftransformers),\n[OpenNMT](https:\u002F\u002Fgithub.com\u002FOpenNMT\u002FOpenNMT-py),\nand [Nvidia](https:\u002F\u002Fgithub.com\u002FNVIDIA\u002FDeepLearningExamples\u002Ftree\u002Fmaster\u002FPyTorch).\nThe image features are extracted using [BUTD](https:\u002F\u002Fgithub.com\u002Fpeteanderson80\u002Fbottom-up-attention).\n\n\n## Requirements\nWe provide Docker image for easier reproduction. Please install the following:\n  - [nvidia driver](https:\u002F\u002Fdocs.nvidia.com\u002Fcuda\u002Fcuda-installation-guide-linux\u002Findex.html#package-manager-installation) (418+), \n  - [Docker](https:\u002F\u002Fdocs.docker.com\u002Finstall\u002Flinux\u002Fdocker-ce\u002Fubuntu\u002F) (19.03+), \n  - [nvidia-container-toolkit](https:\u002F\u002Fgithub.com\u002FNVIDIA\u002Fnvidia-docker#quickstart).\n\nOur scripts require the user to have the [docker group membership](https:\u002F\u002Fdocs.docker.com\u002Finstall\u002Flinux\u002Flinux-postinstall\u002F)\nso that docker commands can be run without sudo.\nWe only support Linux with NVIDIA GPUs. We test on Ubuntu 18.04 and V100 cards.\nWe use mixed-precision training hence GPUs with Tensor Cores are recommended.\n\n## Quick Start\n*NOTE*: Please run `bash scripts\u002Fdownload_pretrained.sh $PATH_TO_STORAGE` to get our latest pretrained\ncheckpoints. This will download both the base and large models.\n\nWe use NLVR2 as an end-to-end example for using this code base.\n\n1. Download processed data and pretrained models with the following command.\n    ```bash\n    bash scripts\u002Fdownload_nlvr2.sh $PATH_TO_STORAGE\n    ```\n    After downloading you should see the following folder structure:\n    ```\n    ├── ann\n    │   ├── dev.json\n    │   └── test1.json\n    ├── finetune\n    │   ├── nlvr-base\n    │   └── nlvr-base.tar\n    ├── img_db\n    │   ├── nlvr2_dev\n    │   ├── nlvr2_dev.tar\n    │   ├── nlvr2_test\n    │   ├── nlvr2_test.tar\n    │   ├── nlvr2_train\n    │   └── nlvr2_train.tar\n    ├── pretrained\n    │   └── uniter-base.pt\n    └── txt_db\n        ├── nlvr2_dev.db\n        ├── nlvr2_dev.db.tar\n        ├── nlvr2_test1.db\n        ├── nlvr2_test1.db.tar\n        ├── nlvr2_train.db\n        └── nlvr2_train.db.tar\n    ```\n\n2. Launch the Docker container for running the experiments.\n    ```bash\n    # docker image should be automatically pulled\n    source launch_container.sh $PATH_TO_STORAGE\u002Ftxt_db $PATH_TO_STORAGE\u002Fimg_db \\\n        $PATH_TO_STORAGE\u002Ffinetune $PATH_TO_STORAGE\u002Fpretrained\n    ```\n    The launch script respects $CUDA_VISIBLE_DEVICES environment variable.\n    Note that the source code is mounted into the container under `\u002Fsrc` instead \n    of built into the image so that user modification will be reflected without\n    re-building the image. (Data folders are mounted into the container separately\n    for flexibility on folder structures.)\n\n\n3. Run finetuning for the NLVR2 task.\n    ```bash\n    # inside the container\n    python train_nlvr2.py --config config\u002Ftrain-nlvr2-base-1gpu.json\n\n    # for more customization\n    horovodrun -np $N_GPU python train_nlvr2.py --config $YOUR_CONFIG_JSON\n    ```\n\n4. Run inference for the NLVR2 task and then evaluate.\n    ```bash\n    # inference\n    python inf_nlvr2.py --txt_db \u002Ftxt\u002Fnlvr2_test1.db\u002F --img_db \u002Fimg\u002Fnlvr2_test\u002F \\\n        --train_dir \u002Fstorage\u002Fnlvr-base\u002F --ckpt 6500 --output_dir . --fp16\n\n    # evaluation\n    # run this command outside docker (tested with python 3.6)\n    # or copy the annotation json into mounted folder\n    python scripts\u002Feval_nlvr2.py .\u002Fresults.csv $PATH_TO_STORAGE\u002Fann\u002Ftest1.json\n    ```\n    The above command runs inference on the model we trained. Feel free to replace\n    `--train_dir` and `--ckpt` with your own model trained in step 3.\n    Currently we only support single GPU inference.\n\n\n5. Customization\n    ```bash\n    # training options\n    python train_nlvr2.py --help\n    ```\n    - command-line argument overwrites JSON config files\n    - JSON config overwrites `argparse` default value.\n    - use horovodrun to run multi-GPU training\n    - `--gradient_accumulation_steps` emulates multi-gpu training\n\n\n6. Misc.\n    ```bash\n    # text annotation preprocessing\n    bash scripts\u002Fcreate_txtdb.sh $PATH_TO_STORAGE\u002Ftxt_db $PATH_TO_STORAGE\u002Fann\n\n    # image feature extraction (Tested on Titan-Xp; may not run on latest GPUs)\n    bash scripts\u002Fextract_imgfeat.sh $PATH_TO_IMG_FOLDER $PATH_TO_IMG_NPY\n\n    # image preprocessing\n    bash scripts\u002Fcreate_imgdb.sh $PATH_TO_IMG_NPY $PATH_TO_STORAGE\u002Fimg_db\n    ```\n    In case you would like to reproduce the whole preprocessing pipeline.\n\n## Downstream Tasks Finetuning\n\n### VQA\nNOTE: train and inference should be ran inside the docker container\n1. download data\n    ```\n    bash scripts\u002Fdownload_vqa.sh $PATH_TO_STORAGE\n    ```\n2. train\n    ```\n    horovodrun -np 4 python train_vqa.py --config config\u002Ftrain-vqa-base-4gpu.json \\\n        --output_dir $VQA_EXP\n    ```\n3. inference\n    ```\n    python inf_vqa.py --txt_db \u002Ftxt\u002Fvqa_test.db --img_db \u002Fimg\u002Fcoco_test2015 \\\n        --output_dir $VQA_EXP --checkpoint 6000 --pin_mem --fp16\n    ```\n    The result file will be written at `$VQA_EXP\u002Fresults_test\u002Fresults_6000_all.json`, which can be\n    submitted to the evaluation server\n\n### VCR\nNOTE: train and inference should be ran inside the docker container\n1. download data\n    ```\n    bash scripts\u002Fdownload_vcr.sh $PATH_TO_STORAGE\n    ```\n2. train\n    ```\n    horovodrun -np 4 python train_vcr.py --config config\u002Ftrain-vcr-base-4gpu.json \\\n        --output_dir $VCR_EXP\n    ```\n3. inference\n    ```\n    horovodrun -np 4 python inf_vcr.py --txt_db \u002Ftxt\u002Fvcr_test.db \\\n        --img_db \"\u002Fimg\u002Fvcr_gt_test\u002F;\u002Fimg\u002Fvcr_test\u002F\" \\\n        --split test --output_dir $VCR_EXP --checkpoint 8000 \\\n        --pin_mem --fp16\n    ```\n    The result file will be written at `$VCR_EXP\u002Fresults_test\u002Fresults_8000_all.csv`, which can be\n    submitted to VCR leaderboard for evluation.\n\n### VCR 2nd Stage Pre-training\nNOTE: pretrain should be ran inside the docker container\n1. download VCR data if you haven't\n    ```\n    bash scripts\u002Fdownload_vcr.sh $PATH_TO_STORAGE\n    ```\n2. 2nd stage pre-train\n    ```\n    horovodrun -np 4 python pretrain_vcr.py --config config\u002Fpretrain-vcr-base-4gpu.json \\\n        --output_dir $PRETRAIN_VCR_EXP\n    ```\n\n### Visual Entailment (SNLI-VE)\nNOTE: train should be ran inside the docker container\n1. download data\n    ```\n    bash scripts\u002Fdownload_ve.sh $PATH_TO_STORAGE\n    ```\n2. train\n    ```\n    horovodrun -np 2 python train_ve.py --config config\u002Ftrain-ve-base-2gpu.json \\\n        --output_dir $VE_EXP\n    ```\n\n### Image-Text Retrieval\ndownload data\n```\nbash scripts\u002Fdownload_itm.sh $PATH_TO_STORAGE\n```\nNOTE: Image-Text Retrieval is computationally heavy, especially on COCO.\n#### Zero-shot Image-Text Retrieval (Flickr30k)\n```\n# every image-text pair has to be ranked; please use as many GPUs as possible\nhorovodrun -np $NGPU python inf_itm.py \\\n    --txt_db \u002Ftxt\u002Fitm_flickr30k_test.db --img_db \u002Fimg\u002Fflickr30k \\\n    --checkpoint \u002Fpretrain\u002Funiter-base.pt --model_config \u002Fsrc\u002Fconfig\u002Funiter-base.json \\\n    --output_dir $ZS_ITM_RESULT --fp16 --pin_mem\n```\n#### Image-Text Retrieval (Flickr30k)\n- normal finetune\n    ```\n    horovodrun -np 8 python train_itm.py --config config\u002Ftrain-itm-flickr-base-8gpu.json\n    ```\n- finetune with hard negatives\n    ```\n    horovodrun -np 16 python train_itm_hard_negatives.py \\\n        --config config\u002Ftrain-itm-flickr-base-16gpu-hn.jgon\n    ```\n#### Image-Text Retrieval (COCO)\n- finetune with hard negatives\n    ```\n    horovodrun -np 16 python train_itm_hard_negatives.py \\\n        --config config\u002Ftrain-itm-coco-base-16gpu-hn.json\n    ```\n### Referring Expressions\n1. download data\n    ```\n    bash scripts\u002Fdownload_re.sh $PATH_TO_STORAGE\n    ```\n2. train\n    ```\n    python train_re.py --config config\u002Ftrain-refcoco-base-1gpu.json \\\n        --output_dir $RE_EXP\n    ```\n3. inference and evaluation\n    ```\n    source scripts\u002Feval_refcoco.sh $RE_EXP\n    ```\n    The result files will be written under `$RE_EXP\u002Fresults_test\u002F`\n\nSimilarly, change corresponding configs\u002Fscripts for running RefCOCO+\u002FRefCOCOg.\n\n\n## Pre-tranining\ndownload\n```\nbash scripts\u002Fdownload_indomain.sh $PATH_TO_STORAGE\n```\npre-train\n```\nhorovodrun -np 8 python pretrain.py --config config\u002Fpretrain-indomain-base-8gpu.json \\\n    --output_dir $PRETRAIN_EXP\n```\nUnfortunately, we cannot host CC\u002FSBU features due to their large size. Users will need to process\nthem on their own. We will provide a smaller sample for easier reference to the expected format soon.\n\n\n## Citation\n\nIf you find this code useful for your research, please consider citing:\n```\n@inproceedings{chen2020uniter,\n  title={Uniter: Universal image-text representation learning},\n  author={Chen, Yen-Chun and Li, Linjie and Yu, Licheng and Kholy, Ahmed El and Ahmed, Faisal and Gan, Zhe and Cheng, Yu and Liu, Jingjing},\n  booktitle={ECCV},\n  year={2020}\n}\n```\n\n## License\n\nMIT\n","# UNITER: 通用图像-文本表示学习\n这是 [UNITER](https:\u002F\u002Farxiv.org\u002Fabs\u002F1909.11740)（ECCV 2020）的官方仓库。\n目前该仓库支持在以下数据集上对 UNITER 进行微调：\n[NLVR2](http:\u002F\u002Flil.nlp.cornell.edu\u002Fnlvr\u002F)、[VQA](https:\u002F\u002Fvisualqa.org\u002F)、[VCR](https:\u002F\u002Fvisualcommonsense.com\u002F)、\n[SNLI-VE](https:\u002F\u002Fgithub.com\u002Fnecla-ml\u002FSNLI-VE)、针对 [COCO](https:\u002F\u002Fcocodataset.org\u002F#home) 和\n[Flickr30k](http:\u002F\u002Fshannon.cs.illinois.edu\u002FDenotationGraph\u002F) 的图像-文本检索任务，\n以及 [Referring Expression Comprehensions](https:\u002F\u002Fgithub.com\u002Flichengunc\u002Frefer)（RefCOCO、RefCOCO+ 和 RefCOCO-g）。\n我们同时发布了 UNITER-base 和 UNITER-large 的预训练检查点。\n此外，还提供了使用领域内数据进行预训练的 UNITER-base 模型。\n\n![UNITER 概览](https:\u002F\u002Facvrpublicycchen.blob.core.windows.net\u002Funiter\u002Funiter_overview_v2.png)\n\n本仓库中的部分代码源自并修改自以下开源实现：\n[PyTorch](https:\u002F\u002Fgithub.com\u002Fpytorch\u002Fpytorch)、\n[HuggingFace](https:\u002F\u002Fgithub.com\u002Fhuggingface\u002Ftransformers)、\n[OpenNMT](https:\u002F\u002Fgithub.com\u002FOpenNMT\u002FOpenNMT-py) 和\n[Nvidia](https:\u002F\u002Fgithub.com\u002FNVIDIA\u002FDeepLearningExamples\u002Ftree\u002Fmaster\u002FPyTorch)。\n图像特征则使用 [BUTD](https:\u002F\u002Fgithub.com\u002Fpeteanderson80\u002Fbottom-up-attention) 提取。\n\n## 环境要求\n为了便于复现，我们提供了 Docker 镜像。请安装以下软件：\n- [NVIDIA 驱动程序](https:\u002F\u002Fdocs.nvidia.com\u002Fcuda\u002Fcuda-installation-guide-linux\u002Findex.html#package-manager-installation)（418 及以上版本）；\n- [Docker](https:\u002F\u002Fdocs.docker.com\u002Finstall\u002Flinux\u002Fdocker-ce\u002Fubuntu\u002F)（19.03 及以上版本）；\n- [NVIDIA 容器工具包](https:\u002F\u002Fgithub.com\u002FNVIDIA\u002Fnvidia-docker#quickstart)。\n\n我们的脚本要求用户属于 `docker` 用户组，以便无需使用 `sudo` 即可运行 Docker 命令。\n我们仅支持配备 NVIDIA GPU 的 Linux 系统。我们已在 Ubuntu 18.04 和 V100 显卡上进行了测试。\n由于采用了混合精度训练，建议使用具备 Tensor Core 的 GPU。\n\n## 快速入门\n*注意*：请运行 `bash scripts\u002Fdownload_pretrained.sh $PATH_TO_STORAGE` 来获取我们最新的预训练检查点。这将下载基础模型和大型模型。\n\n我们以 NLVR2 作为使用本代码库的端到端示例。\n\n1. 使用以下命令下载处理好的数据和预训练模型：\n    ```bash\n    bash scripts\u002Fdownload_nlvr2.sh $PATH_TO_STORAGE\n    ```\n    下载完成后，您应看到如下文件夹结构：\n    ```\n    ├── ann\n    │   ├── dev.json\n    │   └── test1.json\n    ├── finetune\n    │   ├── nlvr-base\n    │   └── nlvr-base.tar\n    ├── img_db\n    │   ├── nlvr2_dev\n    │   ├── nlvr2_dev.tar\n    │   ├── nlvr2_test\n    │   ├── nlvr2_test.tar\n    │   ├── nlvr2_train\n    │   └── nlvr2_train.tar\n    ├── pretrained\n    │   └── uniter-base.pt\n    └── txt_db\n        ├── nlvr2_dev.db\n        ├── nlvr2_dev.db.tar\n        ├── nlvr2_test1.db\n        ├── nlvr2_test1.db.tar\n        ├── nlvr2_train.db\n        └── nlvr2_train.db.tar\n    ```\n\n2. 启动用于运行实验的 Docker 容器：\n    ```bash\n    # Docker 镜像应自动拉取\n    source launch_container.sh $PATH_TO_STORAGE\u002Ftxt_db $PATH_TO_STORAGE\u002Fimg_db \\\n        $PATH_TO_STORAGE\u002Ffinetune $PATH_TO_STORAGE\u002Fpretrained\n    ```\n    启动脚本会尊重 `$CUDA_VISIBLE_DEVICES` 环境变量。请注意，源代码被挂载到容器内的 `\u002Fsrc` 目录下，而不是直接构建到镜像中，这样用户修改后无需重新构建镜像即可生效。（数据文件夹则单独挂载到容器中，以提高文件夹结构的灵活性。）\n\n3. 对 NLVR2 任务进行微调：\n    ```bash\n    # 在容器内\n    python train_nlvr2.py --config config\u002Ftrain-nlvr2-base-1gpu.json\n\n    # 更多自定义选项\n    horovodrun -np $N_GPU python train_nlvr2.py --config $YOUR_CONFIG_JSON\n    ```\n\n4. 对 NLVR2 任务进行推理并评估：\n    ```bash\n    # 推理\n    python inf_nlvr2.py --txt_db \u002Ftxt\u002Fnlvr2_test1.db\u002F --img_db \u002Fimg\u002Fnlvr2_test\u002F \\\n        --train_dir \u002Fstorage\u002Fnlvr-base\u002F --ckpt 6500 --output_dir . --fp16\n\n    # 评估\n    # 在 Docker 外部运行此命令（经测试适用于 Python 3.6）\n    # 或将标注 JSON 文件复制到挂载的文件夹中\n    python scripts\u002Feval_nlvr2.py .\u002Fresults.csv $PATH_TO_STORAGE\u002Fann\u002Ftest1.json\n    ```\n    上述命令将对我们训练的模型进行推理。您可以根据需要替换 `--train_dir` 和 `--ckpt` 参数，使用第 3 步中训练的自有模型。目前我们仅支持单 GPU 推理。\n\n5. 自定义设置：\n    ```bash\n    # 训练选项\n    python train_nlvr2.py --help\n    ```\n    - 命令行参数会覆盖 JSON 配置文件；\n    - JSON 配置会覆盖 `argparse` 的默认值。\n    - 使用 `horovodrun` 运行多 GPU 训练；\n    - `--gradient_accumulation_steps` 可模拟多 GPU 训练。\n\n6. 其他操作：\n    ```bash\n    # 文本标注预处理\n    bash scripts\u002Fcreate_txtdb.sh $PATH_TO_STORAGE\u002Ftxt_db $PATH_TO_STORAGE\u002Fann\n\n    # 图像特征提取（经测试可在 Titan-Xp 上运行；可能无法在最新 GPU 上运行）\n    bash scripts\u002Fextract_imgfeat.sh $PATH_TO_IMG_FOLDER $PATH_TO_IMG_NPY\n\n    # 图像预处理\n    bash scripts\u002Fcreate_imgdb.sh $PATH_TO_IMG_NPY $PATH_TO_STORAGE\u002Fimg_db\n    ```\n    如果您希望完整复现整个预处理流程，可以参考这些脚本。\n\n## 下游任务微调\n\n### VQA\n*注意*：训练和推理应在 Docker 容器内进行。\n1. 下载数据：\n    ```\n    bash scripts\u002Fdownload_vqa.sh $PATH_TO_STORAGE\n    ```\n2. 训练：\n    ```\n    horovodrun -np 4 python train_vqa.py --config config\u002Ftrain-vqa-base-4gpu.json \\\n        --output_dir $VQA_EXP\n    ```\n3. 推理：\n    ```\n    python inf_vqa.py --txt_db \u002Ftxt\u002Fvqa_test.db --img_db \u002Fimg\u002Fcoco_test2015 \\\n        --output_dir $VQA_EXP --checkpoint 6000 --pin_mem --fp16\n    ```\n    结果文件将保存至 `$VQA_EXP\u002Fresults_test\u002Fresults_6000_all.json`，可用于提交至评估服务器。\n\n### VCR\n*注意*：训练和推理应在 Docker 容器内进行。\n1. 下载数据：\n    ```\n    bash scripts\u002Fdownload_vcr.sh $PATH_TO_STORAGE\n    ```\n2. 训练：\n    ```\n    horovodrun -np 4 python train_vcr.py --config config\u002Ftrain-vcr-base-4gpu.json \\\n        --output_dir $VCR_EXP\n    ```\n3. 推理：\n    ```\n    horovodrun -np 4 python inf_vcr.py --txt_db \u002Ftxt\u002Fvcr_test.db \\\n        --img_db \"\u002Fimg\u002Fvcr_gt_test\u002F;\u002Fimg\u002Fvcr_test\u002F\" \\\n        --split test --output_dir $VCR_EXP --checkpoint 8000 \\\n        --pin_mem --fp16\n    ```\n    结果文件将保存至 `$VCR_EXP\u002Fresults_test\u002Fresults_8000_all.csv`，可用于提交至 VCR 排行榜进行评估。\n\n### VCR 第二阶段预训练\n注意：预训练应在 Docker 容器内运行\n1. 如果尚未下载 VCR 数据，请先下载：\n    ```\n    bash scripts\u002Fdownload_vcr.sh $PATH_TO_STORAGE\n    ```\n2. 第二阶段预训练：\n    ```\n    horovodrun -np 4 python pretrain_vcr.py --config config\u002Fpretrain-vcr-base-4gpu.json \\\n        --output_dir $PRETRAIN_VCR_EXP\n    ```\n\n### 视觉蕴含（SNLI-VE）\n注意：训练应在 Docker 容器内运行\n1. 下载数据：\n    ```\n    bash scripts\u002Fdownload_ve.sh $PATH_TO_STORAGE\n    ```\n2. 训练：\n    ```\n    horovodrun -np 2 python train_ve.py --config config\u002Ftrain-ve-base-2gpu.json \\\n        --output_dir $VE_EXP\n    ```\n\n### 图像-文本检索\n下载数据：\n```\nbash scripts\u002Fdownload_itm.sh $PATH_TO_STORAGE\n```\n注意：图像-文本检索计算量较大，尤其是在 COCO 数据集上。\n#### 零样本图像-文本检索（Flickr30k）\n```\n# 每个图像-文本对都需要进行排序；请尽可能使用多张 GPU\nhorovodrun -np $NGPU python inf_itm.py \\\n    --txt_db \u002Ftxt\u002Fitm_flickr30k_test.db --img_db \u002Fimg\u002Fflickr30k \\\n    --checkpoint \u002Fpretrain\u002Funiter-base.pt --model_config \u002Fsrc\u002Fconfig\u002Funiter-base.json \\\n    --output_dir $ZS_ITM_RESULT --fp16 --pin_mem\n```\n#### 图像-文本检索（Flickr30k）\n- 普通微调：\n    ```\n    horovodrun -np 8 python train_itm.py --config config\u002Ftrain-itm-flickr-base-8gpu.json\n    ```\n- 使用难负样本的微调：\n    ```\n    horovodrun -np 16 python train_itm_hard_negatives.py \\\n        --config config\u002Ftrain-itm-flickr-base-16gpu-hn.jgon\n    ```\n#### 图像-文本检索（COCO）\n- 使用难负样本的微调：\n    ```\n    horovodrun -np 16 python train_itm_hard_negatives.py \\\n        --config config\u002Ftrain-itm-coco-base-16gpu-hn.json\n    ```\n### 指代表达\n1. 下载数据：\n    ```\n    bash scripts\u002Fdownload_re.sh $PATH_TO_STORAGE\n    ```\n2. 训练：\n    ```\n    python train_re.py --config config\u002Ftrain-refcoco-base-1gpu.json \\\n        --output_dir $RE_EXP\n    ```\n3. 推理与评估：\n    ```\n    source scripts\u002Feval_refcoco.sh $RE_EXP\n    ```\n    结果文件将被写入 `$RE_EXP\u002Fresults_test\u002F` 目录下。\n\n同样地，运行 RefCOCO+\u002FRefCOCOg 时需更改相应的配置文件和脚本。\n\n\n## 预训练\n下载：\n```\nbash scripts\u002Fdownload_indomain.sh $PATH_TO_STORAGE\n```\n预训练：\n```\nhorovodrun -np 8 python pretrain.py --config config\u002Fpretrain-indomain-base-8gpu.json \\\n    --output_dir $PRETRAIN_EXP\n```\n遗憾的是，由于 CC\u002FSBU 特征数据体积过大，我们无法托管这些数据。用户需要自行处理这些数据。我们将在近期提供一个较小的样本，以便于参考预期的格式。\n\n\n## 引用\n\n如果您在研究中使用了本代码，请考虑引用以下文献：\n```\n@inproceedings{chen2020uniter,\n  title={Uniter: Universal image-text representation learning},\n  author={Chen, Yen-Chun and Li, Linjie and Yu, Licheng and Kholy, Ahmed El and Ahmed, Faisal and Gan, Zhe and Cheng, Yu and Liu, Jingjing},\n  booktitle={ECCV},\n  year={2020}\n}\n```\n\n## 许可证\n\nMIT","# UNITER 快速上手指南\n\nUNITER 是一个通用的图像 - 文本表示学习模型，支持视觉问答 (VQA)、图像 - 文本检索、视觉蕴含等多种多模态任务。本指南基于官方仓库整理，帮助开发者快速在 Linux 环境下部署并运行示例。\n\n## 环境准备\n\n本项目依赖 Docker 容器化运行，仅支持 **Linux + NVIDIA GPU** 环境（推荐 Ubuntu 18.04 + V100\u002FA100 等具备 Tensor Cores 的显卡以启用混合精度训练）。\n\n请确保宿主机已安装以下组件：\n- **NVIDIA Driver**: 版本 418+\n- **Docker**: 版本 19.03+\n- **NVIDIA Container Toolkit**: 用于在 Docker 中调用 GPU\n\n此外，当前用户需加入 `docker` 用户组，以便无需 `sudo` 执行 docker 命令：\n```bash\nsudo usermod -aG docker $USER\n# 执行后需重新登录或重启终端生效\n```\n\n## 安装步骤\n\n### 1. 获取预训练模型与示例数据\n以 **NLVR2** 任务为例，首先下载处理好的数据及预训练权重。请将 `$PATH_TO_STORAGE` 替换为你本地的存储路径。\n\n```bash\n# 下载最新预训练检查点 (包含 base 和 large 模型)\nbash scripts\u002Fdownload_pretrained.sh $PATH_TO_STORAGE\n\n# 下载 NLVR2 任务所需的数据和微调配置\nbash scripts\u002Fdownload_nlvr2.sh $PATH_TO_STORAGE\n```\n\n下载完成后，目录结构应如下所示：\n```\n$PATH_TO_STORAGE\n├── ann             # 标注文件\n├── finetune        # 微调配置\n├── img_db          # 图像特征数据库\n├── pretrained      # 预训练模型 (.pt)\n└── txt_db          # 文本数据库\n```\n\n### 2. 启动 Docker 容器\n使用官方提供的脚本启动容器，该脚本会自动拉取镜像并将代码和数据挂载到容器中。\n\n```bash\nsource launch_container.sh $PATH_TO_STORAGE\u002Ftxt_db $PATH_TO_STORAGE\u002Fimg_db \\\n    $PATH_TO_STORAGE\u002Ffinetune $PATH_TO_STORAGE\u002Fpretrained\n```\n*注意：脚本会尊重 `$CUDA_VISIBLE_DEVICES` 环境变量来指定使用的 GPU。*\n\n## 基本使用\n\n以下演示如何在容器内完成 NLVR2 任务的**微调训练**与**推理评估**。\n\n### 1. 开始微调训练\n单卡训练示例：\n```bash\n# 进入容器后执行\npython train_nlvr2.py --config config\u002Ftrain-nlvr2-base-1gpu.json\n```\n\n多卡训练示例（需安装 Horovod）：\n```bash\nhorovodrun -np $N_GPU python train_nlvr2.py --config $YOUR_CONFIG_JSON\n```\n\n### 2. 运行推理与评估\n使用训练好的模型（或默认提供的检查点）进行测试集推理：\n\n```bash\n# 推理阶段 (在容器内运行)\npython inf_nlvr2.py --txt_db \u002Ftxt\u002Fnlvr2_test1.db\u002F --img_db \u002Fimg\u002Fnlvr2_test\u002F \\\n    --train_dir \u002Fstorage\u002Fnlvr-base\u002F --ckpt 6500 --output_dir . --fp16\n```\n\n评估阶段需在容器外运行（需 Python 3.6+），或将标注文件复制到挂载目录：\n```bash\n# 评估阶段 (在宿主机运行)\npython scripts\u002Feval_nlvr2.py .\u002Fresults.csv $PATH_TO_STORAGE\u002Fann\u002Ftest1.json\n```\n\n### 3. 其他任务\n对于 VQA、VCR、图像 - 文本检索等其他任务，流程类似：\n1. 运行对应的 `scripts\u002Fdownload_*.sh` 下载数据。\n2. 在容器内运行 `train_*.py` 进行微调。\n3. 运行 `inf_*.py` 进行推理。\n\n具体命令可参考项目根目录下的 `Downstream Tasks Finetuning` 章节。","某电商平台的算法团队正在构建一个智能客服系统，需要让机器准确理解用户上传的商品故障图片及其文字描述，以自动匹配解决方案。\n\n### 没有 UNITER 时\n- **模态割裂严重**：图像识别模型与文本处理模型独立运行，无法捕捉“图片中屏幕碎裂”与文字“手机摔了”之间的深层语义关联，导致误判率高。\n- **开发周期漫长**：团队需从零搭建多模态融合架构，手动对齐特征向量，耗时数月仍难以在垂直领域（如 NLVR2 类任务）达到可用精度。\n- **推理资源浪费**：由于缺乏统一的预训练表征，系统需维护庞大的独立特征库，显存占用高且响应延迟大，难以支撑高并发场景。\n- **泛化能力不足**：面对用户千奇百怪的拍摄角度或非标准描述，传统规则引擎或单模态模型频繁失效，需大量人工标注数据重新训练。\n\n### 使用 UNITER 后\n- **图文深度对齐**：UNITER 利用通用的图文表示学习，直接理解图像区域与文本词汇的细粒度对应关系，精准判断用户意图，显著提升故障诊断准确率。\n- **快速落地验证**：借助官方提供的预训练权重（如 UNITER-base）和成熟的微调脚本，团队仅需数天即可完成在私有数据集上的适配与部署。\n- **高效推理体验**：基于混合精度训练优化的架构，在保持高精度的同时大幅降低计算开销，实现了毫秒级的多模态检索与响应速度。\n- **强鲁棒性表现**：得益于在 VQA、RefCOCO 等多样化任务上的预训练，UNITER 能轻松应对模糊图片或口语化描述，减少了 80% 的人工干预需求。\n\nUNITER 通过统一的图文表征学习，将原本割裂的多模态处理流程转化为端到端的高效智能服务，极大降低了复杂视觉语言任务的落地门槛。","https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002FChenRocks_UNITER_b38cbeb9.png","ChenRocks","Yen-Chun Chen","https:\u002F\u002Foss.gittoolsai.com\u002Favatars\u002FChenRocks_fab2477b.jpg","synthesizing tokens @ poolside AI |\r\nex-Microsoft researcher (Phi);\r\nM.Sc. @ UNC AI\u002FNLP","poolside","Seattle, WA",null,"https:\u002F\u002Fscholar.google.com\u002Fcitations?user=Gptgy4YAAAAJ","https:\u002F\u002Fgithub.com\u002FChenRocks",[82,86,89],{"name":83,"color":84,"percentage":85},"Python","#3572A5",96.7,{"name":87,"color":88,"percentage":10},"Shell","#89e051",{"name":90,"color":91,"percentage":92},"Dockerfile","#384d54",0.3,800,112,"2026-03-03T01:14:22","Linux","必需 NVIDIA GPU，推荐带有 Tensor Cores 的显卡（测试环境为 V100），需安装 NVIDIA Driver 418+ 及支持 Docker 的 nvidia-container-toolkit","未说明",{"notes":100,"python":101,"dependencies":102},"官方仅提供 Docker 镜像以简化复现，不支持直接在宿主机运行训练脚本；必须将用户加入 docker 组以免 sudo 运行；推荐使用混合精度训练（需 Tensor Cores）；部分图像特征提取脚本在最新 GPU 上可能无法运行（仅在 Titan-Xp 上测试过）；推理目前仅支持单 GPU。","3.6+ (评估脚本明确测试于 Python 3.6，Docker 环境隐含版本)",[103,104,105,106,107,108],"PyTorch","HuggingFace Transformers","OpenNMT-py","Horovod","nvidia-docker","Docker",[35,14],[111,112,113,114],"transformers","pre-training","vision-and-language","pytorch","2026-03-27T02:49:30.150509","2026-04-13T00:23:11.781696",[118,123,128,133,138,143],{"id":119,"question_zh":120,"answer_zh":121,"source_url":122},31170,"预处理脚本（如 convert_imgdir.py 或 VQA 的 prepro.py）缺失怎么办？","维护者明确表示目前无法提供预处理脚本的文档，用户需自行承担风险使用。对于 VQA 任务，社区用户分享了修改 `process_nlvr2()` 函数的代码片段来处理 VQA 数据：需要读取标注文件，提取 question_id 和 img_id（注意将 'COCO' 替换为 'coco'），并使用 tokenizer 处理问题文本，最后构建包含 labels 和 scores 的目标字典。","https:\u002F\u002Fgithub.com\u002FChenRocks\u002FUNITER\u002Fissues\u002F4",{"id":124,"question_zh":125,"answer_zh":126,"source_url":127},31171,"训练时遇到 'RuntimeError: CUDA error: device-side assert triggered' 错误如何解决？","该错误通常是因为使用的分词器（Tokenizer）与预训练模型不匹配。UNITER 的词汇表大小与 `bert-base-cased` 或 `bert-large-cased` 匹配。如果使用了 `bert-base-uncased` 或其他分词器，生成的 token ID 可能会超出模型嵌入层的范围。解决方案是：1. 确保使用正确的分词器（cased 版本）；2. 或者修改配置文件中的词汇表大小以匹配当前分词器。调试时建议设置环境变量 `CUDA_LAUNCH_BLOCKING=1` 来定位具体出错位置。","https:\u002F\u002Fgithub.com\u002FChenRocks\u002FUNITER\u002Fissues\u002F29",{"id":129,"question_zh":130,"answer_zh":131,"source_url":132},31172,"运行推理脚本时出现 'TypeError: forward() got an unexpected keyword argument input_ids' 错误？","这通常是由于环境依赖或代码版本不匹配导致的。虽然具体修复步骤在截断的评论中未完全显示，但此类错误常发生在 `apex` 混合精度训练库与模型定义参数不一致时。检查点加载是否正确、模型类定义是否包含 `input_ids` 参数、以及 `apex` 库的版本兼容性是关键排查方向。部分用户提到需要先解决 `hvd` (Horovod) 初始化问题（在 data.py 中添加 `hvd.init()`）。","https:\u002F\u002Fgithub.com\u002FChenRocks\u002FUNITER\u002Fissues\u002F35",{"id":134,"question_zh":135,"answer_zh":136,"source_url":137},31173,"代码中的 sampler 为什么要添加 size_mul？它的作用是什么？","`self._size_mul` 用于控制采样器每次向当前批次添加的新样本数量。其目的是确保形成的批次总 token 数不超过配置文件中设定的 `batch_size` (即 `self._max_tok`)。这是一个经验值，需要根据显存大小调整。例如，在 12GB 显存上训练 UNITER Large：若配置 batch_size 为 1024，size_mul 可设为 8；若配置为 3072，size_mul 可设为 24 或 32。如果设得过大（如 5120），可能会因显存不足导致崩溃。","https:\u002F\u002Fgithub.com\u002FChenRocks\u002FUNITER\u002Fissues\u002F53",{"id":139,"question_zh":140,"answer_zh":141,"source_url":142},31174,"是否有针对 VQA 任务的微调模型或单图问答的演示代码？","官方 Azure Blob 容器中可能未直接列出所有任务的微调模型（如 VQA），用户曾反馈找不到相关文件。关于单图单问的演示代码，官方仓库主要侧重于批量推理和评估脚本（如 `inf_nlvr2.py`），暂未提供类似 MAttNet 那样的交互式 Demo。用户通常需要自行修改推理脚本，构造单个样本的 batch 来进行测试。","https:\u002F\u002Fgithub.com\u002FChenRocks\u002FUNITER\u002Fissues\u002F67",{"id":144,"question_zh":145,"answer_zh":146,"source_url":137},31175,"如何在自定义数据集上调整 BUCKET_SIZE 和 max_tok 参数？","这些参数通常是经验性选择的，取决于具体的数据集特征和硬件资源（显存大小）。在不同数据集上运行时，可能需要重新调整。建议参考 VQA 任务的经验：先设定一个目标配置 batch_size，然后观察采样器生成的实际批次大小（由 size_mul 决定），通过实验找到在不触发显存溢出（OOM）前提下的最大效率组合。",[]]