[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"similar-jackroos--VL-BERT":3,"tool-jackroos--VL-BERT":61},[4,18,26,36,44,53],{"id":5,"name":6,"github_repo":7,"description_zh":8,"stars":9,"difficulty_score":10,"last_commit_at":11,"category_tags":12,"status":17},4358,"openclaw","openclaw\u002Fopenclaw","OpenClaw 是一款专为个人打造的本地化 AI 助手，旨在让你在自己的设备上拥有完全可控的智能伙伴。它打破了传统 AI 助手局限于特定网页或应用的束缚，能够直接接入你日常使用的各类通讯渠道，包括微信、WhatsApp、Telegram、Discord、iMessage 等数十种平台。无论你在哪个聊天软件中发送消息，OpenClaw 都能即时响应，甚至支持在 macOS、iOS 和 Android 设备上进行语音交互，并提供实时的画布渲染功能供你操控。\n\n这款工具主要解决了用户对数据隐私、响应速度以及“始终在线”体验的需求。通过将 AI 部署在本地，用户无需依赖云端服务即可享受快速、私密的智能辅助，真正实现了“你的数据，你做主”。其独特的技术亮点在于强大的网关架构，将控制平面与核心助手分离，确保跨平台通信的流畅性与扩展性。\n\nOpenClaw 非常适合希望构建个性化工作流的技术爱好者、开发者，以及注重隐私保护且不愿被单一生态绑定的普通用户。只要具备基础的终端操作能力（支持 macOS、Linux 及 Windows WSL2），即可通过简单的命令行引导完成部署。如果你渴望拥有一个懂你",349277,3,"2026-04-06T06:32:30",[13,14,15,16],"Agent","开发框架","图像","数据工具","ready",{"id":19,"name":20,"github_repo":21,"description_zh":22,"stars":23,"difficulty_score":10,"last_commit_at":24,"category_tags":25,"status":17},3808,"stable-diffusion-webui","AUTOMATIC1111\u002Fstable-diffusion-webui","stable-diffusion-webui 是一个基于 Gradio 构建的网页版操作界面，旨在让用户能够轻松地在本地运行和使用强大的 Stable Diffusion 图像生成模型。它解决了原始模型依赖命令行、操作门槛高且功能分散的痛点，将复杂的 AI 绘图流程整合进一个直观易用的图形化平台。\n\n无论是希望快速上手的普通创作者、需要精细控制画面细节的设计师，还是想要深入探索模型潜力的开发者与研究人员，都能从中获益。其核心亮点在于极高的功能丰富度：不仅支持文生图、图生图、局部重绘（Inpainting）和外绘（Outpainting）等基础模式，还独创了注意力机制调整、提示词矩阵、负向提示词以及“高清修复”等高级功能。此外，它内置了 GFPGAN 和 CodeFormer 等人脸修复工具，支持多种神经网络放大算法，并允许用户通过插件系统无限扩展能力。即使是显存有限的设备，stable-diffusion-webui 也提供了相应的优化选项，让高质量的 AI 艺术创作变得触手可及。",162132,"2026-04-05T11:01:52",[14,15,13],{"id":27,"name":28,"github_repo":29,"description_zh":30,"stars":31,"difficulty_score":32,"last_commit_at":33,"category_tags":34,"status":17},1381,"everything-claude-code","affaan-m\u002Feverything-claude-code","everything-claude-code 是一套专为 AI 编程助手（如 Claude Code、Codex、Cursor 等）打造的高性能优化系统。它不仅仅是一组配置文件，而是一个经过长期实战打磨的完整框架，旨在解决 AI 代理在实际开发中面临的效率低下、记忆丢失、安全隐患及缺乏持续学习能力等核心痛点。\n\n通过引入技能模块化、直觉增强、记忆持久化机制以及内置的安全扫描功能，everything-claude-code 能显著提升 AI 在复杂任务中的表现，帮助开发者构建更稳定、更智能的生产级 AI 代理。其独特的“研究优先”开发理念和针对 Token 消耗的优化策略，使得模型响应更快、成本更低，同时有效防御潜在的攻击向量。\n\n这套工具特别适合软件开发者、AI 研究人员以及希望深度定制 AI 工作流的技术团队使用。无论您是在构建大型代码库，还是需要 AI 协助进行安全审计与自动化测试，everything-claude-code 都能提供强大的底层支持。作为一个曾荣获 Anthropic 黑客大奖的开源项目，它融合了多语言支持与丰富的实战钩子（hooks），让 AI 真正成长为懂上",160015,2,"2026-04-18T11:30:52",[14,13,35],"语言模型",{"id":37,"name":38,"github_repo":39,"description_zh":40,"stars":41,"difficulty_score":32,"last_commit_at":42,"category_tags":43,"status":17},2271,"ComfyUI","Comfy-Org\u002FComfyUI","ComfyUI 是一款功能强大且高度模块化的视觉 AI 引擎，专为设计和执行复杂的 Stable Diffusion 图像生成流程而打造。它摒弃了传统的代码编写模式，采用直观的节点式流程图界面，让用户通过连接不同的功能模块即可构建个性化的生成管线。\n\n这一设计巧妙解决了高级 AI 绘图工作流配置复杂、灵活性不足的痛点。用户无需具备编程背景，也能自由组合模型、调整参数并实时预览效果，轻松实现从基础文生图到多步骤高清修复等各类复杂任务。ComfyUI 拥有极佳的兼容性，不仅支持 Windows、macOS 和 Linux 全平台，还广泛适配 NVIDIA、AMD、Intel 及苹果 Silicon 等多种硬件架构，并率先支持 SDXL、Flux、SD3 等前沿模型。\n\n无论是希望深入探索算法潜力的研究人员和开发者，还是追求极致创作自由度的设计师与资深 AI 绘画爱好者，ComfyUI 都能提供强大的支持。其独特的模块化架构允许社区不断扩展新功能，使其成为当前最灵活、生态最丰富的开源扩散模型工具之一，帮助用户将创意高效转化为现实。",109154,"2026-04-18T11:18:24",[14,15,13],{"id":45,"name":46,"github_repo":47,"description_zh":48,"stars":49,"difficulty_score":32,"last_commit_at":50,"category_tags":51,"status":17},6121,"gemini-cli","google-gemini\u002Fgemini-cli","gemini-cli 是一款由谷歌推出的开源 AI 命令行工具，它将强大的 Gemini 大模型能力直接集成到用户的终端环境中。对于习惯在命令行工作的开发者而言，它提供了一条从输入提示词到获取模型响应的最短路径，无需切换窗口即可享受智能辅助。\n\n这款工具主要解决了开发过程中频繁上下文切换的痛点，让用户能在熟悉的终端界面内直接完成代码理解、生成、调试以及自动化运维任务。无论是查询大型代码库、根据草图生成应用，还是执行复杂的 Git 操作，gemini-cli 都能通过自然语言指令高效处理。\n\n它特别适合广大软件工程师、DevOps 人员及技术研究人员使用。其核心亮点包括支持高达 100 万 token 的超长上下文窗口，具备出色的逻辑推理能力；内置 Google 搜索、文件操作及 Shell 命令执行等实用工具；更独特的是，它支持 MCP（模型上下文协议），允许用户灵活扩展自定义集成，连接如图像生成等外部能力。此外，个人谷歌账号即可享受免费的额度支持，且项目基于 Apache 2.0 协议完全开源，是提升终端工作效率的理想助手。",100752,"2026-04-10T01:20:03",[52,13,15,14],"插件",{"id":54,"name":55,"github_repo":56,"description_zh":57,"stars":58,"difficulty_score":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":79,"owner_website":80,"owner_url":81,"languages":82,"stars":111,"forks":112,"last_commit_at":113,"license":114,"difficulty_score":115,"env_os":116,"env_gpu":117,"env_ram":118,"env_deps":119,"category_tags":127,"github_topics":128,"view_count":32,"oss_zip_url":79,"oss_zip_packed_at":79,"status":17,"created_at":137,"updated_at":138,"faqs":139,"releases":170},9279,"jackroos\u002FVL-BERT","VL-BERT","Code for ICLR 2020 paper \"VL-BERT: Pre-training of Generic Visual-Linguistic Representations\".","VL-BERT 是一款专为视觉与语言跨模态任务设计的预训练模型，由微软亚洲研究院等团队开发并发表于 ICLR 2020。它旨在解决机器如何同时“看懂”图像并“理解”文字这一核心难题。通过在海量图文对数据和纯文本语料上进行预训练，VL-BERT 能够学习通用的视觉 - 语言表示，进而轻松迁移到视觉常识推理、视觉问答（VQA）以及指代性表达理解等多种下游任务中，显著提升了模型对图文关联的理解能力。\n\n这款工具主要面向人工智能领域的研究人员和开发者。如果你正在从事多模态学习、自然语言处理或计算机视觉相关的算法研究，VL-BERT 提供了一个强大且灵活的基线框架。其技术亮点在于架构简洁而高效，支持分布式训练、FP16 混合精度加速以及梯度累积等先进特性，能够在有限算力下优化训练效率。此外，项目代码基于 PyTorch 构建，不仅复现了论文核心逻辑，还集成了 TensorboardX 监控和可视化功能，方便用户深入分析模型的注意力机制。无论是希望探索前沿多模态算法的学者，还是需要构建高精度图文应用的技术团队，VL-BERT 都是一个值得尝试的开源选择。","# VL-BERT\n\nBy \n[Weijie Su](https:\u002F\u002Fwww.weijiesu.com\u002F), \n[Xizhou Zhu](https:\u002F\u002Fscholar.google.com\u002Fcitations?user=02RXI00AAAAJ&hl=en), \n[Yue Cao](http:\u002F\u002Fyue-cao.me\u002F), \n[Bin Li](http:\u002F\u002Fstaff.ustc.edu.cn\u002F~binli\u002F), \n[Lewei Lu](https:\u002F\u002Fwww.linkedin.com\u002Fin\u002Flewei-lu-94015977\u002F), \n[Furu Wei](http:\u002F\u002Fmindio.org\u002F), \n[Jifeng Dai](https:\u002F\u002Fjifengdai.org\u002F).\n\nThis repository is an official implementation of the paper \n[VL-BERT: Pre-training of Generic Visual-Linguistic Representations](https:\u002F\u002Farxiv.org\u002Fabs\u002F1908.08530).\n\n\n\n*Update on 2020\u002F01\u002F16* Add code of visualization.\n\n\n\n*Update on 2019\u002F12\u002F20* Our VL-BERT got accepted by ICLR 2020.\n\n## Introduction\n\nVL-BERT is a simple yet powerful pre-trainable generic representation for visual-linguistic tasks. \nIt is pre-trained on the massive-scale caption dataset and text-only corpus, \nand can be fine-tuned for various down-stream visual-linguistic tasks, \nsuch as Visual Commonsense Reasoning, Visual Question Answering and Referring Expression Comprehension.\n\n![](https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Fjackroos_VL-BERT_readme_b5b0235f8775.png)\n\n![](https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Fjackroos_VL-BERT_readme_69c30fd5e0be.png)\n\nThanks to PyTorch and its 3rd-party libraries, this codebase also contains following features:\n* Distributed Training\n* FP16 Mixed-Precision Training\n* Various Optimizers and Learning Rate Schedulers\n* Gradient Accumulation\n* Monitoring the Training Using TensorboardX\n\n## Citing VL-BERT\n```bibtex\n@inproceedings{\n  Su2020VL-BERT:,\n  title={VL-BERT: Pre-training of Generic Visual-Linguistic Representations},\n  author={Weijie Su and Xizhou Zhu and Yue Cao and Bin Li and Lewei Lu and Furu Wei and Jifeng Dai},\n  booktitle={International Conference on Learning Representations},\n  year={2020},\n  url={https:\u002F\u002Fopenreview.net\u002Fforum?id=SygXPaEYvH}\n}\n```\n\n## Prepare\n\n### Environment\n* Ubuntu 16.04, CUDA 9.0, GCC 4.9.4\n* Python 3.6.x\n    ```bash\n    # We recommend you to use Anaconda\u002FMiniconda to create a conda environment\n    conda create -n vl-bert python=3.6 pip\n    conda activate vl-bert\n    ```\n* PyTorch 1.0.0 or 1.1.0\n    ```bash\n    conda install pytorch=1.1.0 cudatoolkit=9.0 -c pytorch\n    ```\n* Apex (optional, for speed-up and fp16 training)\n    ```bash\n    git clone https:\u002F\u002Fgithub.com\u002Fjackroos\u002Fapex\n    cd .\u002Fapex\n    pip install -v --no-cache-dir --global-option=\"--cpp_ext\" --global-option=\"--cuda_ext\" .\u002F  \n    ```\n* Other requirements:\n    ```bash\n    pip install Cython\n    pip install -r requirements.txt\n    ```\n* Compile\n    ```bash\n    .\u002Fscripts\u002Finit.sh\n    ```\n\n### Data\n\nSee [PREPARE_DATA.md](data\u002FPREPARE_DATA.md).\n\n### Pre-trained Models\n\nSee [PREPARE_PRETRAINED_MODELS.md](model\u002Fpretrained_model\u002FPREPARE_PRETRAINED_MODELS.md).\n\n\n\n## Training\n\n### Distributed Training on Single-Machine\n\n```\n.\u002Fscripts\u002Fdist_run_single.sh \u003Cnum_gpus> \u003Ctask>\u002Ftrain_end2end.py \u003Cpath_to_cfg> \u003Cdir_to_store_checkpoint>\n```\n* ```\u003Cnum_gpus>```: number of gpus to use.\n* ```\u003Ctask>```: pretrain\u002Fvcr\u002Fvqa\u002Frefcoco.\n* ```\u003Cpath_to_cfg>```: config yaml file under ```.\u002Fcfgs\u002F\u003Ctask>```.\n* ```\u003Cdir_to_store_checkpoint>```: root directory to store checkpoints.\n\n\nFollowing is a more concrete example:\n```\n.\u002Fscripts\u002Fdist_run_single.sh 4 vcr\u002Ftrain_end2end.py .\u002Fcfgs\u002Fvcr\u002Fbase_q2a_4x16G_fp32.yaml .\u002F\n```\n\n### Distributed Training on Multi-Machine\n\nFor example, on 2 machines (A and B), each with 4 GPUs, \n\nrun following command on machine A:\n```\n.\u002Fscripts\u002Fdist_run_multi.sh 2 0 \u003Cip_addr_of_A> 4 \u003Ctask>\u002Ftrain_end2end.py \u003Cpath_to_cfg> \u003Cdir_to_store_checkpoint>\n```\n\nrun following command on machine B:\n```\n.\u002Fscripts\u002Fdist_run_multi.sh 2 1 \u003Cip_addr_of_A> 4 \u003Ctask>\u002Ftrain_end2end.py \u003Cpath_to_cfg> \u003Cdir_to_store_checkpoint>\n```\n\n\n### Non-Distributed Training\n```\n.\u002Fscripts\u002Fnondist_run.sh \u003Ctask>\u002Ftrain_end2end.py \u003Cpath_to_cfg> \u003Cdir_to_store_checkpoint>\n```\n\n***Note***:\n\n1. In yaml files under ```.\u002Fcfgs```, we set batch size for GPUs with at least 16G memory, you may need to adapt the batch size and \ngradient accumulation steps according to your actual case, e.g., if you decrease the batch size, you should also \nincrease the gradient accumulation steps accordingly to keep 'actual' batch size for SGD unchanged.\n\n2. For efficiency, we recommend you to use distributed training even on single-machine. But for RefCOCO+, you may meet deadlock\nusing distributed training due to unknown reason (it may be related to [PyTorch dataloader deadloack](https:\u002F\u002Fgithub.com\u002Fpytorch\u002Fpytorch\u002Fissues\u002F1355)), you can simply use\nnon-distributed training to solve this problem.\n\n## Evaluation\n\n### VCR\n* Local evaluation on val set:\n  ```\n  python vcr\u002Fval.py \\\n    --a-cfg \u003Ccfg_of_q2a> --r-cfg \u003Ccfg_of_qa2r> \\\n    --a-ckpt \u003Ccheckpoint_of_q2a> --r-ckpt \u003Ccheckpoint_of_qa2r> \\\n    --gpus \u003Cindexes_of_gpus_to_use> \\\n    --result-path \u003Cdir_to_save_result> --result-name \u003Cresult_file_name>\n  ```\n  ***Note***: ```\u003Cindexes_of_gpus_to_use>``` is gpu indexes, e.g., ```0 1 2 3```.\n\n* Generate prediction results on test set for [leaderboard submission](https:\u002F\u002Fvisualcommonsense.com\u002Fleaderboard\u002F):\n  ```\n  python vcr\u002Ftest.py \\\n    --a-cfg \u003Ccfg_of_q2a> --r-cfg \u003Ccfg_of_qa2r> \\\n    --a-ckpt \u003Ccheckpoint_of_q2a> --r-ckpt \u003Ccheckpoint_of_qa2r> \\\n    --gpus \u003Cindexes_of_gpus_to_use> \\\n    --result-path \u003Cdir_to_save_result> --result-name \u003Cresult_file_name>\n  ```\n\n### VQA\n* Generate prediction results on test set for [EvalAI submission](https:\u002F\u002Fevalai.cloudcv.org\u002Fweb\u002Fchallenges\u002Fchallenge-page\u002F163\u002Foverview):\n  ```\n  python vqa\u002Ftest.py \\\n    --cfg \u003Ccfg_file> \\\n    --ckpt \u003Ccheckpoint> \\\n    --gpus \u003Cindexes_of_gpus_to_use> \\\n    --result-path \u003Cdir_to_save_result> --result-name \u003Cresult_file_name>\n  ```\n\n### RefCOCO+\n\n* Local evaluation on val\u002FtestA\u002FtestB set:\n  ```\n  python refcoco\u002Ftest.py \\\n    --split \u003Cval|testA|testB> \\\n    --cfg \u003Ccfg_file> \\\n    --ckpt \u003Ccheckpoint> \\\n    --gpus \u003Cindexes_of_gpus_to_use> \\\n    --result-path \u003Cdir_to_save_result> --result-name \u003Cresult_file_name>\n  ```\n\n## Visualization\nSee [VISUALIZATION.md](.\u002Fviz\u002FVISUALIZATION.md).\n\n## Acknowledgements\n\nMany thanks to following codes that help us a lot in building this codebase:\n* [transformers (pytorch-pretrained-bert)](https:\u002F\u002Fgithub.com\u002Fhuggingface\u002Ftransformers) \n* [Deformable-ConvNets](https:\u002F\u002Fgithub.com\u002Fmsracver\u002FDeformable-ConvNets\u002F)\n* [maskrcnn-benchmark](https:\u002F\u002Fgithub.com\u002Ffacebookresearch\u002Fmaskrcnn-benchmark)\n* [mmdetection](https:\u002F\u002Fgithub.com\u002Fopen-mmlab\u002Fmmdetection)\n* [r2c](https:\u002F\u002Fgithub.com\u002Frowanz\u002Fr2c)\n* [allennlp](https:\u002F\u002Fgithub.com\u002Fallenai\u002Fallennlp)\n* [bottom-up-attention](https:\u002F\u002Fgithub.com\u002Fpeteanderson80\u002Fbottom-up-attention)\n* [pythia](https:\u002F\u002Fgithub.com\u002Ffacebookresearch\u002Fpythia)\n* [MAttNet](https:\u002F\u002Fgithub.com\u002Flichengunc\u002FMAttNet)\n* [bertviz](https:\u002F\u002Fgithub.com\u002Fjessevig\u002Fbertviz)\n","# VL-BERT\n\n作者：\n[苏伟杰](https:\u002F\u002Fwww.weijiesu.com\u002F)、\n[朱锡洲](https:\u002F\u002Fscholar.google.com\u002Fcitations?user=02RXI00AAAAJ&hl=en)、\n[曹悦](http:\u002F\u002Fyue-cao.me\u002F)、\n[李斌](http:\u002F\u002Fstaff.ustc.edu.cn\u002F~binli\u002F)、\n[陆乐威](https:\u002F\u002Fwww.linkedin.com\u002Fin\u002Flewei-lu-94015977\u002F)、\n[魏福儒](http:\u002F\u002Fmindio.org\u002F)、\n[戴继峰](https:\u002F\u002Fjifengdai.org\u002F)。\n\n本仓库是论文\n[VL-BERT：通用视觉-语言表示的预训练](https:\u002F\u002Farxiv.org\u002Fabs\u002F1908.08530)\n的官方实现。\n\n\n\n*更新于2020年1月16日* 添加可视化代码。\n\n\n\n*更新于2019年12月20日* 我们的VL-BERT已被ICLR 2020接收。\n\n## 简介\n\nVL-BERT是一种简单而强大的可预训练的通用视觉-语言表示模型。它在大规模的图像描述数据集和纯文本语料库上进行预训练，随后可以针对各种下游视觉-语言任务进行微调，例如视觉常识推理、视觉问答和指代表达理解等。\n\n![](https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Fjackroos_VL-BERT_readme_b5b0235f8775.png)\n\n![](https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Fjackroos_VL-BERT_readme_69c30fd5e0be.png)\n\n得益于PyTorch及其第三方库，该代码库还具备以下特性：\n* 分布式训练\n* FP16混合精度训练\n* 多种优化器和学习率调度器\n* 梯度累积\n* 使用TensorboardX监控训练过程\n\n## 引用VL-BERT\n```bibtex\n@inproceedings{\n  Su2020VL-BERT:,\n  title={VL-BERT: Pre-training of Generic Visual-Linguistic Representations},\n  author={Weijie Su and Xizhou Zhu and Yue Cao and Bin Li and Lewei Lu and Furu Wei and Jifeng Dai},\n  booktitle={International Conference on Learning Representations},\n  year={2020},\n  url={https:\u002F\u002Fopenreview.net\u002Fforum?id=SygXPaEYvH}\n}\n```\n\n## 准备\n\n### 环境\n* Ubuntu 16.04, CUDA 9.0, GCC 4.9.4\n* Python 3.6.x\n    ```bash\n    # 我们建议使用Anaconda\u002FMiniconda创建一个conda环境\n    conda create -n vl-bert python=3.6 pip\n    conda activate vl-bert\n    ```\n* PyTorch 1.0.0 或 1.1.0\n    ```bash\n    conda install pytorch=1.1.0 cudatoolkit=9.0 -c pytorch\n    ```\n* Apex（可选，用于加速和fp16训练）\n    ```bash\n    git clone https:\u002F\u002Fgithub.com\u002Fjackroos\u002Fapex\n    cd .\u002Fapex\n    pip install -v --no-cache-dir --global-option=\"--cpp_ext\" --global-option=\"--cuda_ext\" .\u002F  \n    ```\n* 其他要求：\n    ```bash\n    pip install Cython\n    pip install -r requirements.txt\n    ```\n* 编译\n    ```bash\n    .\u002Fscripts\u002Finit.sh\n    ```\n\n### 数据\n\n请参阅 [PREPARE_DATA.md](data\u002FPREPARE_DATA.md)。\n\n### 预训练模型\n\n请参阅 [PREPARE_PRETRAINED_MODELS.md](model\u002Fpretrained_model\u002FPREPARE_PRETRAINED_MODELS.md)。\n\n\n\n## 训练\n\n### 单机分布式训练\n```\n.\u002Fscripts\u002Fdist_run_single.sh \u003Cnum_gpus> \u003Ctask>\u002Ftrain_end2end.py \u003Cpath_to_cfg> \u003Cdir_to_store_checkpoint>\n```\n* ```\u003Cnum_gpus>```: 使用的GPU数量。\n* ```\u003Ctask>```: pretrain\u002Fvcr\u002Fvqa\u002Frefcoco。\n* ```\u003Cpath_to_cfg>```: 位于```.\u002Fcfgs\u002F\u003Ctask>```下的配置yaml文件。\n* ```\u003Cdir_to_store_checkpoint>```: 存储检查点的根目录。\n\n\n以下是一个更具体的示例：\n```\n.\u002Fscripts\u002Fdist_run_single.sh 4 vcr\u002Ftrain_end2end.py .\u002Fcfgs\u002Fvcr\u002Fbase_q2a_4x16G_fp32.yaml .\u002F\n```\n\n### 多机分布式训练\n例如，在两台机器（A和B）上，每台机器配备4个GPU，\n\n在机器A上运行以下命令：\n```\n.\u002Fscripts\u002Fdist_run_multi.sh 2 0 \u003Cip_addr_of_A> 4 \u003Ctask>\u002Ftrain_end2end.py \u003Cpath_to_cfg> \u003Cdir_to_store_checkpoint>\n```\n\n在机器B上运行以下命令：\n```\n.\u002Fscripts\u002Fdist_run_multi.sh 2 1 \u003Cip_addr_of_A> 4 \u003Ctask>\u002Ftrain_end2end.py \u003Cpath_to_cfg> \u003Cdir_to_store_checkpoint>\n```\n\n\n### 非分布式训练\n```\n.\u002Fscripts\u002Fnondist_run.sh \u003Ctask>\u002Ftrain_end2end.py \u003Cpath_to_cfg> \u003Cdir_to_store_checkpoint>\n```\n\n***注意***：\n\n1. 在位于```.\u002Fcfgs```下的yaml文件中，我们为至少拥有16G显存的GPU设置了批大小。您可能需要根据实际情况调整批大小和梯度累积步数，例如，如果减小批大小，也应相应增加梯度累积步数，以保持SGD的实际批大小不变。\n\n2. 为了提高效率，我们建议即使在单机上也使用分布式训练。但对于RefCOCO+，由于未知原因（可能与[PyTorch dataloader死锁问题](https:\u002F\u002Fgithub.com\u002Fpytorch\u002Fpytorch\u002Fissues\u002F1355)有关），使用分布式训练时可能会遇到死锁问题。此时您可以简单地使用非分布式训练来解决这一问题。\n\n## 评估\n\n### VCR\n* 在验证集上的本地评估：\n  ```\n  python vcr\u002Fval.py \\\n    --a-cfg \u003Ccfg_of_q2a> --r-cfg \u003Ccfg_of_qa2r> \\\n    --a-ckpt \u003Ccheckpoint_of_q2a> --r-ckpt \u003Ccheckpoint_of_qa2r> \\\n    --gpus \u003Cindexes_of_gpus_to_use> \\\n    --result-path \u003Cdir_to_save_result> --result-name \u003Cresult_file_name>\n  ```\n  ***注意***：```\u003Cindexes_of_gpus_to_use>```是指定使用的GPU索引，例如```0 1 2 3```。\n\n* 为[leaderboard提交](https:\u002F\u002Fvisualcommonsense.com\u002Fleaderboard\u002F)生成测试集上的预测结果：\n  ```\n  python vcr\u002Ftest.py \\\n    --a-cfg \u003Ccfg_of_q2a> --r-cfg \u003Ccfg_of_qa2r> \\\n    --a-ckpt \u003Ccheckpoint_of_q2a> --r-ckpt \u003Ccheckpoint_of_qa2r> \\\n    --gpus \u003Cindexes_of_gpus_to_use> \\\n    --result-path \u003Cdir_to_save_result> --result-name \u003Cresult_file_name>\n  ```\n\n### VQA\n* 为[EvalAI提交](https:\u002F\u002Fevalai.cloudcv.org\u002Fweb\u002Fchallenges\u002Fchallenge-page\u002F163\u002Foverview)生成测试集上的预测结果：\n  ```\n  python vqa\u002Ftest.py \\\n    --cfg \u003Ccfg_file> \\\n    --ckpt \u003Ccheckpoint> \\\n    --gpus \u003Cindexes_of_gpus_to_use> \\\n    --result-path \u003Cdir_to_save_result> --result-name \u003Cresult_file_name>\n  ```\n\n### RefCOCO+\n\n* 在验证集\u002F测试集A\u002F测试集B上的本地评估：\n  ```\n  python refcoco\u002Ftest.py \\\n    --split \u003Cval|testA|testB> \\\n    --cfg \u003Ccfg_file> \\\n    --ckpt \u003Ccheckpoint> \\\n    --gpus \u003Cindexes_of_gpus_to_use> \\\n    --result-path \u003Cdir_to_save_result> --result-name \u003Cresult_file_name>\n  ```\n\n## 可视化\n请参阅 [VISUALIZATION.md](.\u002Fviz\u002FVISUALIZATION.md)。\n\n## 致谢\n\n非常感谢以下项目在构建本代码库过程中给予我们的极大帮助：\n* [transformers (pytorch-pretrained-bert)](https:\u002F\u002Fgithub.com\u002Fhuggingface\u002Ftransformers) \n* [Deformable-ConvNets](https:\u002F\u002Fgithub.com\u002Fmsracver\u002FDeformable-ConvNets\u002F)\n* [maskrcnn-benchmark](https:\u002F\u002Fgithub.com\u002Ffacebookresearch\u002Fmaskrcnn-benchmark)\n* [mmdetection](https:\u002F\u002Fgithub.com\u002Fopen-mmlab\u002Fmmdetection)\n* [r2c](https:\u002F\u002Fgithub.com\u002Frowanz\u002Fr2c)\n* [allennlp](https:\u002F\u002Fgithub.com\u002Fallenai\u002Fallennlp)\n* [bottom-up-attention](https:\u002F\u002Fgithub.com\u002Fpeteanderson80\u002Fbottom-up-attention)\n* [pythia](https:\u002F\u002Fgithub.com\u002Ffacebookresearch\u002Fpythia)\n* [MAttNet](https:\u002F\u002Fgithub.com\u002Flichengunc\u002FMAttNet)\n* [bertviz](https:\u002F\u002Fgithub.com\u002Fjessevig\u002Fbertviz)","# VL-BERT 快速上手指南\n\nVL-BERT 是一个用于视觉 - 语言任务的通用预训练模型，支持视觉常识推理（VCR）、视觉问答（VQA）和指代性表达理解（RefCOCO）等下游任务。本指南将帮助你快速搭建环境并运行模型。\n\n## 1. 环境准备\n\n### 系统要求\n- **操作系统**: Ubuntu 16.04\n- **CUDA**: 9.0\n- **编译器**: GCC 4.9.4\n- **Python**: 3.6.x\n\n### 前置依赖\n建议使用 Anaconda\u002FMiniconda 创建独立环境。国内用户可使用清华或中科大镜像源加速下载。\n\n```bash\n# 创建并激活 conda 环境\nconda create -n vl-bert python=3.6 pip\nconda activate vl-bert\n\n# 安装 PyTorch (指定 CUDA 9.0 版本)\n# 推荐使用清华镜像源加速\nconda install pytorch=1.1.0 cudatoolkit=9.0 -c pytorch\n```\n\n### 其他依赖库\n安装 Apex（用于混合精度训练加速，可选但推荐）及其他 Python 依赖：\n\n```bash\n# 克隆并安装 Apex\ngit clone https:\u002F\u002Fgithub.com\u002Fjackroos\u002Fapex\ncd .\u002Fapex\npip install -v --no-cache-dir --global-option=\"--cpp_ext\" --global-option=\"--cuda_ext\" .\u002F  \ncd ..\n\n# 安装其他依赖\npip install Cython\npip install -r requirements.txt\n```\n\n### 编译初始化\n执行初始化脚本以编译必要的组件：\n\n```bash\n.\u002Fscripts\u002Finit.sh\n```\n\n> **注意**：在运行上述命令前，请确保已按照官方文档 [PREPARE_DATA.md](data\u002FPREPARE_DATA.md) 和 [PREPARE_PRETRAINED_MODELS.md](model\u002Fpretrained_model\u002FPREPARE_PRETRAINED_MODELS.md) 准备好数据集和预训练模型文件。\n\n## 2. 基本使用\n\n### 单机分布式训练（推荐）\n即使只有一台机器，也推荐使用分布式模式以提高效率。以下示例展示如何在 4 张 GPU 上训练 VCR 任务：\n\n```bash\n.\u002Fscripts\u002Fdist_run_single.sh 4 vcr\u002Ftrain_end2end.py .\u002Fcfgs\u002Fvcr\u002Fbase_q2a_4x16G_fp32.yaml .\u002F\n```\n\n**参数说明：**\n- `4`: 使用的 GPU 数量。\n- `vcr\u002Ftrain_end2end.py`: 任务脚本（可选：`pretrain`, `vcr`, `vqa`, `refcoco`）。\n- `.\u002Fcfgs\u002Fvcr\u002Fbase_q2a_4x16G_fp32.yaml`: 配置文件路径。\n- `.\u002F`: 检查点保存目录。\n\n> **提示**：默认配置针对 16G 显存显卡设计。若显存较小，请修改 `.yaml` 配置文件中的 `batch_size`，并相应增加梯度累积步数（gradient accumulation steps）以保持有效批量大小不变。\n\n### 非分布式训练\n如果在 RefCOCO+ 任务中遇到分布式训练死锁问题，可切换为非分布式模式：\n\n```bash\n.\u002Fscripts\u002Fnondist_run.sh refcoco\u002Ftrain_end2end.py .\u002Fcfgs\u002Frefcoco\u002Fbase.yaml .\u002F\n```\n\n### 模型评估\n以 VCR 任务为例，在验证集上进行本地评估：\n\n```bash\npython vcr\u002Fval.py \\\n  --a-cfg \u003Ccfg_of_q2a> --r-cfg \u003Ccfg_of_qa2r> \\\n  --a-ckpt \u003Ccheckpoint_of_q2a> --r-ckpt \u003Ccheckpoint_of_qa2r> \\\n  --gpus 0 1 2 3 \\\n  --result-path .\u002Fresults --result-name vcr_val_result.json\n```\n\n**参数说明：**\n- `--gpus`: 指定使用的 GPU 索引（如 `0 1 2 3`）。\n- `\u003Ccfg_...>` 和 `\u003Ccheckpoint_...>`: 分别替换为对应的配置文件路径和训练好的模型权重路径。\n\n更多任务（VQA, RefCOCO+）的评估命令请参考原文档 \"Evaluation\" 章节。","某电商平台的智能客服团队正致力于升级系统，使其能直接理解用户发送的商品截图并回答关于细节的复杂提问。\n\n### 没有 VL-BERT 时\n- **多模态理解割裂**：团队需分别部署独立的图像识别模型和文本问答模型，两者无法深度交互，导致模型难以理解“图中红色衣服的材质是什么”这类跨模态问题。\n- **冷启动成本高昂**：针对新上线的“视觉常识推理”任务，缺乏预训练基础，需从零收集海量标注数据进行训练，研发周期长达数月。\n- **泛化能力薄弱**：模型仅能回答训练集中出现过的固定句式，一旦用户换一种表达方式或图片角度稍变，准确率便断崖式下跌。\n- **特征融合粗糙**：传统的早期或晚期融合策略无法捕捉图像区域与文本词汇间的细粒度对应关系，常出现答非所问的现象。\n\n### 使用 VL-BERT 后\n- **原生多模态交互**：VL-BERT 通过统一的 Transformer 架构将视觉与语言特征在底层深度融合，能精准定位图片区域并推理出“红色衣服是棉质”的结论。\n- **高效迁移学习**：利用其在大规模图文对上的预训练权重，团队仅需少量下游任务数据微调，即可在数天内完成视觉问答模型的部署。\n- **强大的泛化性**：得益于通用的视觉 - 语言表示能力，模型能灵活应对用户多样的提问方式和未见过的商品图片，鲁棒性显著提升。\n- **细粒度注意力机制**：借助 VL-BERT 的可视化注意力图，开发者可清晰看到模型如何关联特定图像块与关键词，便于调试和优化推理逻辑。\n\nVL-BERT 通过通用的视觉 - 语言预训练范式，彻底打破了模态壁垒，让机器真正具备了“看图说话”的深层理解能力。","https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Fjackroos_VL-BERT_1028b1d7.png","jackroos","Weijie Su","https:\u002F\u002Foss.gittoolsai.com\u002Favatars\u002Fjackroos_52177d74.jpg","Researcher at Shanghai AI Laboratory.\r\n\r\n","Shanghai AI Laboratory","China","jackroos@mail.ustc.edu.cn",null,"www.weijiesu.com","https:\u002F\u002Fgithub.com\u002Fjackroos",[83,87,91,95,99,103,107],{"name":84,"color":85,"percentage":86},"Jupyter Notebook","#DA5B0B",52.5,{"name":88,"color":89,"percentage":90},"Python","#3572A5",44.3,{"name":92,"color":93,"percentage":94},"Cuda","#3A4E3A",1.3,{"name":96,"color":97,"percentage":98},"C++","#f34b7d",0.9,{"name":100,"color":101,"percentage":102},"JavaScript","#f1e05a",0.8,{"name":104,"color":105,"percentage":106},"Shell","#89e051",0.2,{"name":108,"color":109,"percentage":110},"Makefile","#427819",0,746,110,"2025-10-10T08:46:48","MIT",4,"Linux (Ubuntu 16.04)","需要 NVIDIA GPU，推荐显存 16GB+（配置文件默认针对 16GB 显存设置），CUDA 9.0","未说明",{"notes":120,"python":121,"dependencies":122},"官方环境基于 Ubuntu 16.04、CUDA 9.0 和 GCC 4.9.4。建议使用 Anaconda\u002FMiniconda 创建环境。若使用分布式训练遇到 RefCOCO+ 任务死锁问题，可改用非分布式训练模式。需根据实际显存大小调整 batch size 和梯度累积步数。","3.6.x",[123,124,125,126],"PyTorch 1.0.0 或 1.1.0","Apex (可选，用于加速和 FP16 训练)","Cython","TensorboardX",[14,35],[129,130,131,132,133,134,135,136],"pre-training","representation-learning","self-supervised-learning","vision-and-language","bert","pytorch","iclr2020","vl-bert","2026-03-27T02:49:30.150509","2026-04-19T06:02:49.027698",[140,145,150,155,160,165],{"id":141,"question_zh":142,"answer_zh":143,"source_url":144},41651,"运行时报错 'undefined symbol: __cudaPopCallConfiguration' 或 CUDA 版本不匹配怎么办？","这通常是由于系统环境变量中 CUDA 和 GCC 路径配置不正确导致的。请尝试在 ~\u002F.bashrc 文件中添加以下行（请将路径中的 'xxx' 替换为你实际的安装路径）：\nexport PATH=\u002Fxxx\u002Fgcc\u002Fgcc-4.9.4\u002Fbin\u002F:\u002Fxxx\u002Fcuda-9.0\u002Fbin\u002F:$PATH\nexport LD_LIBRARY_PATH=\u002Fxxx\u002Fgcc\u002Fgmp-4.3.2\u002Flib\u002F:\u002Fxxx\u002Fgcc\u002Fmpfr-2.4.2\u002Flib\u002F:\u002Fxxx\u002Fgcc\u002Fmpc-0.8.1\u002Flib\u002F:\u002Fxxx\u002Fgcc\u002Fgcc-4.9.4\u002Flib:\u002Fxxx\u002Fgcc\u002Fgcc-4.9.4\u002Flib64:\u002Fxxx\u002Fcuda-9.0\u002Flib64:$LD_LIBRARY_PATH\n添加后，执行 source ~\u002F.bashrc 使配置生效。","https:\u002F\u002Fgithub.com\u002Fjackroos\u002FVL-BERT\u002Fissues\u002F9",{"id":146,"question_zh":147,"answer_zh":148,"source_url":149},41652,"遇到 'undefined symbol: _ZN6caffe26detail...' 编译错误如何解决？","该错误通常与 GCC 版本过低有关。解决方案是将 GCC 升级到 5.4.0 或更高版本（例如从 4.9.3 升级）。此外，确保通过项目根目录下的 .\u002Fscripts\u002Finit.sh 脚本来编译算子，该脚本会自动进入相应目录进行编译，而不是手动在子目录中编译。","https:\u002F\u002Fgithub.com\u002Fjackroos\u002FVL-BERT\u002Fissues\u002F6",{"id":151,"question_zh":152,"answer_zh":153,"source_url":154},41653,"加载模型时出现 '_pickle.UnpicklingError: invalid load key' 错误是什么原因？","此错误可能是由 scipy 版本不兼容引起的。如果当前使用的是 scipy 1.5.1，请尝试将其降级为 scipy 1.4.1。修改版本后重启环境即可解决问题。","https:\u002F\u002Fgithub.com\u002Fjackroos\u002FVL-BERT\u002Fissues\u002F45",{"id":156,"question_zh":157,"answer_zh":158,"source_url":159},41654,"预训练模型是否可以直接用于图像描述（Image Captioning）任务？","不可以。官方提供的预训练模型不包含图像描述功能。如果你需要实现 Image Captioning，必须使用你自己收集的数据集对模型进行重新训练。","https:\u002F\u002Fgithub.com\u002Fjackroos\u002FVL-BERT\u002Fissues\u002F43",{"id":161,"question_zh":162,"answer_zh":163,"source_url":164},41655,"如何生成语言与 ROI 之间的注意力可视化结果（attention_viz.png）？","作者已合并了注意力计算代码。你可以切换到 attention_viz 分支（https:\u002F\u002Fgithub.com\u002Fjackroos\u002FVL-BERT\u002Ftree\u002Fattention_viz）来获取生成注意力图谱的代码。使用该分支下的代码即可复现可视化结果。","https:\u002F\u002Fgithub.com\u002Fjackroos\u002FVL-BERT\u002Fissues\u002F7",{"id":166,"question_zh":167,"answer_zh":168,"source_url":169},41656,"为了复现论文结果，VCR 任务的实际批量大小（Batch Size）是如何计算的？","在 VCR 任务中，实际批量大小是配置文件中批量大小的 4 倍。这是因为每个问题对应 4 个候选答案。例如，如果配置文件中 BATCH_IMAGES 为 4，梯度累积步数 GRAD_ACCUMULATE_STEPS 为 4，且使用 4 张 GPU，则实际批量大小为 4 * 4 * 4 = 64（需注意论文中提到的 256 是指总样本数，需根据具体配置调整超参数以匹配）。","https:\u002F\u002Fgithub.com\u002Fjackroos\u002FVL-BERT\u002Fissues\u002F1",[]]