[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"similar-kmeng01--rome":3,"tool-kmeng01--rome":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 真正成长为懂上",151314,2,"2026-04-11T23:32:58",[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":75,"owner_location":76,"owner_email":77,"owner_twitter":78,"owner_website":79,"owner_url":80,"languages":81,"stars":94,"forks":95,"last_commit_at":96,"license":97,"difficulty_score":10,"env_os":98,"env_gpu":99,"env_ram":98,"env_deps":100,"category_tags":108,"github_topics":109,"view_count":32,"oss_zip_url":75,"oss_zip_packed_at":75,"status":17,"created_at":114,"updated_at":115,"faqs":116,"releases":147},6838,"kmeng01\u002Frome","rome","Locating and editing factual associations in GPT (NeurIPS 2022)","Rome 是一款专为自回归 Transformer 模型设计的开源编辑工具，核心功能在于精准定位并修改大语言模型内部存储的事实性知识。它主要解决了传统微调方法成本高、效率低且容易引发“灾难性遗忘”的难题，让用户无需重新训练整个模型，就能像编辑文档一样直接修正模型中的错误事实或更新过时信息。例如，用户可以轻松将模型中“勒布朗·詹姆斯擅长篮球”的认知修改为“足球”，而不会影响模型对其他知识的掌握。\n\n这款工具特别适合 AI 研究人员和开发者使用，尤其是那些需要深入探索模型内部机制、进行因果追踪分析或希望在不消耗大量算力前提下优化模型表现的专业人士。Rome 的独特技术亮点在于其提出的“秩一模型编辑”（Rank-One Model Editing）算法，该算法通过数学推导直接对模型权重进行局部更新，实现了高效且低干扰的知识注入。目前，Rome 已支持 GPT-2 XL 和 GPT-J 等主流模型，并提供了直观的 Notebook 演示和完整的评估套件，帮助用户快速上手验证编辑效果，是研究大模型可编辑性与事实一致性的重要利器。","# Rank-One Model Editing (ROME)\n\nThis repository provides an implementation of Rank-One Model Editing (ROME) on auto-regressive transformers (GPU-only).\nWe currently support OpenAI's GPT-2 XL (1.5B) and EleutherAI's GPT-J (6B). The release of a 20B GPT-like model from EleutherAI is expected soon; we hope to support it ASAP.\n\nFeel free to open an issue if you find any problems; we are actively developing this repository and will monitor tickets closely.\n\n[![Colab ROME Demo](https:\u002F\u002Fcolab.research.google.com\u002Fassets\u002Fcolab-badge.svg)](https:\u002F\u002Fcolab.research.google.com\u002Fgithub\u002Fkmeng01\u002Frome\u002Fblob\u002Fmain\u002Fnotebooks\u002Frome.ipynb)\n\n\u003Cp align=\"center\">\n    \u003Cimg src=\"https:\u002F\u002Frome.baulab.info\u002Fimages\u002Feiftower-crop.svg\" alt=\"causal tracing GIF\" width=\"425px\" \u002F>\n\u003C\u002Fp>\n\n## Table of Contents\n1. [Installation](#installation)\n2. [Causal Tracing](#causal-tracing)\n3. [Rank-One Model Editing (ROME)](#rank-one-model-editing-rome-1)\n4. [CounterFact](#counterfact)\n5. [Evaluation](#evaluation)\n    * [Running the Full Evaluation Suite](#running-the-full-evaluation-suite)\n    * [Integrating New Editing Methods](#integrating-new-editing-methods)\n6. [How to Cite](#how-to-cite)\n\n## Installation\n\nWe recommend `conda` for managing Python, CUDA, and PyTorch-related dependencies, and `pip` for everything else. To get started, simply install `conda` and run:\n```bash\n.\u002Fscripts\u002Fsetup_conda.sh\n```\n\n## Causal Tracing\n\n[`notebooks\u002Fcausal_trace.ipynb`](notebooks\u002Fcausal_trace.ipynb) demonstrates Causal Tracing, which can be modified to apply tracing to the processing of any statement.\n\n\u003Cp align=\"center\">\n    \u003Cimg src=\"https:\u002F\u002Fthevisible.net\u002Fu\u002Fdavidbau\u002Fromeweb\u002Fsmall-fast-ct-animation.gif\" alt=\"causal tracing GIF\" width=\"550px\" \u002F>\n\u003C\u002Fp>\n\n## Rank-One Model Editing (ROME)\n\n\u003C!-- We provide a simple interactive notebook demonstrating ROME. -->\n\n\u003C!-- ### Second-Moment Key Statistics\n\n**warning this is probably wrong; fixing later.**\n\nFirst, key statistics must be collected. The `rome` package contains a `layer_stats` module for computing and caching key statistics. See [rome\u002Flayer_stats.py](rome\u002Flayer_stats.py) for additional flags, but the basic logic can be executed with the following commands:\n\nGPT-2 XL:\n```bash\npython -m rome.layer_stats --layer_num=17 --model_name=gpt2-xl\n```\n\nGPT-J:\n```bash\npython -m rome.layer_stats --layer_num=10 --model_name=EleutherAI\u002Fgpt-j-6B\n```\n\n### ROME Model Rewriting -->\n\n[`notebooks\u002Frome.ipynb`](notebooks\u002Frome.ipynb) demonstrates ROME. The API is simple; one simply has to specify a *requested rewrite* of the following form:\n\n```python\nrequest = {\n    \"prompt\": \"{} plays the sport of\",\n    \"subject\": \"LeBron James\",\n    \"target_new\": {\n        \"str\": \"football\"\n    }\n}\n```\n\nSeveral similar examples are included in the notebook.\n\n## CounterFact\n\nDetails coming soon!\n\n## Evaluation\n\nSee [`baselines\u002F`](baselines\u002F) for a description of the available baselines.\n\n### Running the Full Evaluation Suite\n\n[`experiments\u002Fevaluate.py`](experiments\u002Fevaluate.py) can be used to evaluate any method in [`baselines\u002F`](baselines\u002F).\nTo get started (e.g. using ROME on GPT-2 XL), run:\n```bash\npython3 -m experiments.evaluate \\\n    --alg_name=ROME \\\n    --model_name=gpt2-xl \\\n    --hparams_fname=gpt2-xl.json\n```\n\nResults from each run are stored at `results\u002F\u003Cmethod_name>\u002Frun_\u003Crun_id>` in a specific format:\n```bash\nresults\u002F\n|__ ROME\u002F\n    |__ run_\u003Crun_id>\u002F\n        |__ params.json\n        |__ case_0.json\n        |__ case_1.json\n        |__ ...\n        |__ case_10000.json\n```\n\nTo summarize the results, you can use [`experiments\u002Fsummarize.py`](experiments\u002Fsummarize.py):\n```bash\npython3 -m experiments.summarize --dir_name=ROME --runs=run_\u003Crun_id>\n```\n\nRunning `python3 -m experiments.evaluate -h` or `python3 -m experiments.summarize -h` provides details about command-line flags.\n\n### Integrating New Editing Methods\n\n\u003C!-- Say you have a new method `X` and want to benchmark it on CounterFact. Here's a checklist for evaluating `X`:\n- The public method that evaluates a model on each CounterFact record is [`compute_rewrite_quality`](experiments\u002Fpy\u002Feval_utils.py); see [the source code](experiments\u002Fpy\u002Feval_utils.py) for details.\n- In your evaluation script, you should call `compute_rewrite_quality` once with an unedited model and once with a model that has been edited with `X`. Each time, the function returns a dictionary. -->\n\nSay you have a new method `X` and want to benchmark it on CounterFact. To integrate `X` with our runner:\n- Subclass [`HyperParams`](util\u002Fhparams.py) into `XHyperParams` and specify all hyperparameter fields. See [`ROMEHyperParameters`](rome\u002Frome_hparams.py) for an example implementation.\n- Create a hyperparameters file at `hparams\u002FX\u002Fgpt2-xl.json` and specify some default values. See [`hparams\u002FROME\u002Fgpt2-xl.json`](hparams\u002FROME\u002Fgpt2-xl.json) for an example.\n- Define a function `apply_X_to_model` which accepts several parameters and returns (i) the rewritten model and (ii) the original weight values for parameters that were edited (in the dictionary format `{weight_name: original_weight_value}`). See [`rome\u002Frome_main.py`](rome\u002Frome_main.py) for an example.\n- Add `X` to `ALG_DICT` in [`experiments\u002Fevaluate.py`](experiments\u002Fevaluate.py) by inserting the line `\"X\": (XHyperParams, apply_X_to_model)`.\n\nFinally, run the main scripts:\n```bash\npython3 -m experiments.evaluate \\\n    --alg_name=X \\\n    --model_name=gpt2-xl \\\n    --hparams_fname=gpt2-xl.json\n\npython3 -m experiments.summarize --dir_name=X --runs=run_\u003Crun_id>\n```\n\n### Note on Cross-Platform Compatibility\n\nWe currently only support methods that edit autoregressive HuggingFace models using the PyTorch backend. We are working on a set of general-purpose methods (usable on e.g. TensorFlow and without HuggingFace) that will be released soon.\n\n\u003C!-- \nEach method is customizable through a set of hyperparameters. For ROME, they are defined in `rome\u002Fhparams.py`. At runtime, you must specify a configuration of hyperparams through a `.json` file located in `hparams\u002F\u003Cmethod_name>`. Check out [`hparams\u002FROME\u002Fdefault.json`](hparams\u002FROME\u002Fdefault.json) for an example.\n\nAt runtime, you must specify two command-line arguments: the method name, and the filename of the hyperparameters `.json` file.\n```bash\npython3 -m experiments.evaluate --alg_name=ROME --hparams_fname=default.json\n```\n\nRunning the following command will yield `dict` run summaries:\n```bash\npython3 -m experiments\u002Fsummarize --alg_name=ROME --run_name=run_001\n``` -->\n\n## How to Cite\n\n```bibtex\n@article{meng2022locating,\n  title={Locating and Editing Factual Associations in {GPT}},\n  author={Kevin Meng and David Bau and Alex Andonian and Yonatan Belinkov},\n  journal={Advances in Neural Information Processing Systems},\n  volume={35},\n  year={2022}\n}\n```\n","# 一阶模型编辑（ROME）\n\n本仓库提供了自回归Transformer模型上的一阶模型编辑（ROME）的实现（仅支持GPU）。\n我们目前支持OpenAI的GPT-2 XL（15亿参数）和EleutherAI的GPT-J（60亿参数）。EleutherAI即将发布一款200亿参数的类GPT模型，我们希望尽快支持它。\n\n如果您遇到任何问题，请随时提交issue；我们正在积极开发此仓库，并会密切关注所有工单。\n\n[![Colab ROME演示](https:\u002F\u002Fcolab.research.google.com\u002Fassets\u002Fcolab-badge.svg)](https:\u002F\u002Fcolab.research.google.com\u002Fgithub\u002Fkmeng01\u002Frome\u002Fblob\u002Fmain\u002Fnotebooks\u002Frome.ipynb)\n\n\u003Cp align=\"center\">\n    \u003Cimg src=\"https:\u002F\u002Frome.baulab.info\u002Fimages\u002Feiftower-crop.svg\" alt=\"因果追踪GIF\" width=\"425px\" \u002F>\n\u003C\u002Fp>\n\n## 目录\n1. [安装](#installation)\n2. [因果追踪](#causal-tracing)\n3. [一阶模型编辑（ROME）](#rank-one-model-editing-rome-1)\n4. [CounterFact](#counterfact)\n5. [评估](#evaluation)\n    * [运行完整评估套件](#running-the-full-evaluation-suite)\n    * [集成新的编辑方法](#integrating-new-editing-methods)\n6. [如何引用](#how-to-cite)\n\n## 安装\n\n我们建议使用`conda`来管理Python、CUDA和PyTorch相关的依赖，而其他内容则使用`pip`。要开始使用，只需安装`conda`并运行：\n```bash\n.\u002Fscripts\u002Fsetup_conda.sh\n```\n\n## 因果追踪\n\n[`notebooks\u002Fcausal_trace.ipynb`](notebooks\u002Fcausal_trace.ipynb)展示了因果追踪技术，该技术可以被修改以应用于任何语句的处理过程。\n\n\u003Cp align=\"center\">\n    \u003Cimg src=\"https:\u002F\u002Fthevisible.net\u002Fu\u002Fdavidbau\u002Fromeweb\u002Fsmall-fast-ct-animation.gif\" alt=\"因果追踪GIF\" width=\"550px\" \u002F>\n\u003C\u002Fp>\n\n## 一阶模型编辑（ROME）\n\n\u003C!-- 我们提供了一个简单的交互式笔记本，用于演示ROME。 -->\n\n\u003C!-- ### 二阶关键统计\n\n**警告：这可能不正确；稍后修复。**\n\n首先，必须收集关键统计信息。`rome`包包含一个`layer_stats`模块，用于计算和缓存关键统计信息。请参阅[rome\u002Flayer_stats.py](rome\u002Flayer_stats.py)以获取更多选项，但基本逻辑可以通过以下命令执行：\n\nGPT-2 XL：\n```bash\npython -m rome.layer_stats --layer_num=17 --model_name=gpt2-xl\n```\n\nGPT-J：\n```bash\npython -m rome.layer_stats --layer_num=10 --model_name=EleutherAI\u002Fgpt-j-6B\n```\n\n### ROME模型重写 -->\n\n[`notebooks\u002Frome.ipynb`](notebooks\u002Frome.ipynb)演示了ROME。API非常简单；用户只需指定如下形式的*请求重写*即可：\n\n```python\nrequest = {\n    \"prompt\": \"{} plays the sport of\",\n    \"subject\": \"LeBron James\",\n    \"target_new\": {\n        \"str\": \"football\"\n    }\n}\n```\n\n笔记本中还包含几个类似的示例。\n\n## CounterFact\n\n详情即将发布！\n\n## 评估\n\n有关可用基准的说明，请参阅[`baselines\u002F`](baselines\u002F)。\n\n### 运行完整评估套件\n\n[`experiments\u002Fevaluate.py`](experiments\u002Fevaluate.py)可用于评估[`baselines\u002F`](baselines\u002F)中的任何方法。\n要开始（例如在GPT-2 XL上使用ROME），请运行：\n```bash\npython3 -m experiments.evaluate \\\n    --alg_name=ROME \\\n    --model_name=gpt2-xl \\\n    --hparams_fname=gpt2-xl.json\n```\n\n每次运行的结果都会以特定格式存储在`results\u002F\u003Cmethod_name>\u002Frun_\u003Crun_id>`目录下：\n```bash\nresults\u002F\n|__ ROME\u002F\n    |__ run_\u003Crun_id>\u002F\n        |__ params.json\n        |__ case_0.json\n        |__ case_1.json\n        |__ ...\n        |__ case_10000.json\n```\n\n要汇总结果，可以使用[`experiments\u002Fsummarize.py`](experiments\u002Fsummarize.py)：\n```bash\npython3 -m experiments.summarize --dir_name=ROME --runs=run_\u003Crun_id>\n```\n\n运行`python3 -m experiments.evaluate -h`或`python3 -m experiments.summarize -h`可获取关于命令行参数的详细信息。\n\n### 集成新的编辑方法\n\n\u003C!-- 假设您有一个新方法`X`，并想在CounterFact数据集上对其进行基准测试。以下是评估`X`的检查清单：\n- 公开的用于评估模型在每个CounterFact记录上的方法是[`compute_rewrite_quality`](experiments\u002Fpy\u002Feval_utils.py)；详情请参阅[源代码](experiments\u002Fpy\u002Feval_utils.py)。\n- 在您的评估脚本中，您应分别调用一次未编辑的模型和一次使用`X`编辑后的模型来调用`compute_rewrite_quality`。每次调用都会返回一个字典。 -->\n\n假设您有一个新方法`X`，并想在CounterFact数据集上对其进行基准测试。要将`X`集成到我们的评估流程中：\n- 将[`HyperParams`](util\u002Fhparams.py)子类化为`XHyperParams`，并指定所有超参数字段。请参阅[`ROMEHyperParameters`](rome\u002Frome_hparams.py)以获取示例实现。\n- 在`hparams\u002FX\u002Fgpt2-xl.json`中创建一个超参数文件，并指定一些默认值。请参阅[`hparams\u002FROME\u002Fgpt2-xl.json`](hparams\u002FROME\u002Fgpt2-xl.json)以获取示例。\n- 定义一个函数`apply_X_to_model`，该函数接受多个参数并返回：(i) 编辑后的模型，以及 (ii) 被编辑参数的原始权重值（以字典格式 `{weight_name: original_weight_value}` 表示）。请参阅[`rome\u002Frome_main.py`](rome\u002Frome_main.py)以获取示例。\n- 将`X`添加到[`experiments\u002Fevaluate.py`](experiments\u002Fevaluate.py)中的`ALG_DICT`，插入以下行：“X”: (XHyperParams, apply_X_to_model)。\n\n最后，运行主脚本：\n```bash\npython3 -m experiments.evaluate \\\n    --alg_name=X \\\n    --model_name=gpt2-xl \\\n    --hparams_fname=gpt2-xl.json\n\npython3 -m experiments.summarize --dir_name=X --runs=run_\u003Crun_id>\n```\n\n### 关于跨平台兼容性的说明\n\n我们目前仅支持使用PyTorch后端编辑自回归HuggingFace模型的方法。我们正在开发一套通用方法（可在TensorFlow等框架上使用，且无需HuggingFace），这些方法将很快发布。\n\n\u003C!-- \n每种方法都可以通过一组超参数进行定制。对于ROME，这些超参数定义在`rome\u002Fhparams.py`中。在运行时，您需要通过位于`hparams\u002F\u003Cmethod_name>`中的`.json`文件指定超参数配置。请参阅[`hparams\u002FROME\u002Fdefault.json`](hparams\u002FROME\u002Fdefault.json)以获取示例。\n\n在运行时，您需要指定两个命令行参数：方法名称和超参数`.json`文件的名称。\n```bash\npython3 -m experiments.evaluate --alg_name=ROME --hparams_fname=default.json\n```\n\n运行以下命令将生成运行摘要的字典：\n```bash\npython3 -m experiments\u002Fsummarize --alg_name=ROME --run_name=run_001\n``` -->\n\n## 如何引用\n\n```bibtex\n@article{meng2022locating,\n  title={Locating and Editing Factual Associations in {GPT}},\n  author={Kevin Meng and David Bau and Alex Andonian and Yonatan Belinkov},\n  journal={Advances in Neural Information Processing Systems},\n  volume={35},\n  year={2022}\n}\n```","# ROME (Rank-One Model Editing) 快速上手指南\n\nROME 是一种针对自回归 Transformer 模型（如 GPT-2 XL、GPT-J）的秩一模型编辑技术，允许开发者直接修改模型内部的知识事实，而无需重新训练整个模型。\n\n## 环境准备\n\n在开始之前，请确保您的开发环境满足以下要求：\n\n*   **操作系统**: Linux (推荐) 或 macOS。Windows 支持可能受限，建议在使用前确认兼容性。\n*   **硬件**: 必须配备 **NVIDIA GPU**。本项目仅支持 GPU 运行。\n*   **软件依赖**:\n    *   Python 3.8+\n    *   CUDA Toolkit (版本需与 PyTorch 匹配)\n    *   Conda (强烈推荐使用 Conda 管理环境)\n*   **支持模型**: 目前官方支持 `gpt2-xl` (1.5B) 和 `EleutherAI\u002Fgpt-j-6B`。\n\n> **国内加速建议**：\n> 在安装依赖时，建议使用国内镜像源以提升下载速度：\n> *   Conda: 使用清华源 (`https:\u002F\u002Fmirrors.tuna.tsinghua.edu.cn\u002Fanaconda\u002Fpkgs\u002Fmain\u002F`)\n> *   Pip: 使用阿里源 (`https:\u002F\u002Fmirrors.aliyun.com\u002Fpypi\u002Fsimple\u002F`) 或清华源\n\n## 安装步骤\n\n项目推荐使用 `conda` 管理 Python、CUDA 和 PyTorch 依赖，其余包通过 `pip` 安装。\n\n1.  **克隆仓库**\n    ```bash\n    git clone https:\u002F\u002Fgithub.com\u002Fkmeng01\u002Frome.git\n    cd rome\n    ```\n\n2.  **执行自动化安装脚本**\n    运行官方提供的脚本来创建 Conda 环境并安装所有必要依赖：\n    ```bash\n    .\u002Fscripts\u002Fsetup_conda.sh\n    ```\n\n    *如果脚本执行失败或您需要手动配置，请参考以下逻辑：*\n    *   创建 conda 环境并安装 pytorch (cuda 版本)。\n    *   激活环境后，运行 `pip install -r requirements.txt` (如果存在) 或根据 `setup_conda.sh` 内的命令逐个安装。\n\n## 基本使用\n\nROME 的核心功能是通过简单的 API 调用，将模型中的某个事实（例如“勒布朗·詹姆斯打篮球”）修改为新的事实（例如“勒布朗·詹姆斯踢足球”）。\n\n### 1. 交互式体验 (推荐新手)\n\n最快速的上手方式是运行官方提供的 Jupyter Notebook 演示：\n\n```bash\njupyter notebook notebooks\u002Frome.ipynb\n```\n在该 Notebook 中，您可以直接运行单元格来观察模型编辑前后的效果对比。\n\n### 2. 代码示例\n\n如果您希望在 Python 脚本中使用，核心逻辑如下：\n\n```python\nfrom rome import ROMEHyperParameters, apply_rome_to_model\nimport torch\n\n# 1. 定义修改请求\n# 目标：将 \"LeBron James plays the sport of basketball\" 修改为 \"football\"\nrequest = {\n    \"prompt\": \"{} plays the sport of\",\n    \"subject\": \"LeBron James\",\n    \"target_new\": {\n        \"str\": \"football\"\n    }\n}\n\n# 2. 加载模型 (以 gpt2-xl 为例)\n# 注意：首次运行会自动下载模型权重\nmodel_name = \"gpt2-xl\"\n# 此处省略模型加载的具体 boilerplate 代码，详细请参考 notebooks\u002Frome.ipynb\n# 通常涉及 from transformers import AutoModelForCausalLM, AutoTokenizer\n\n# 3. 应用 ROME 编辑\n# edited_model 是修改后的模型，orig_weights 是被修改参数的原始权重\n# params 需要从 hparams\u002FROME\u002Fgpt2-xl.json 加载\nedited_model, orig_weights = apply_rome_to_model(\n    model=model, \n    request=request, \n    hparams=params # 需预先加载 HyperParameters\n)\n\n# 4. 验证结果\n# 使用 edited_model 生成文本，观察输出是否已变为 \"football\"\n```\n\n### 3. 运行评估套件\n\n若需对编辑效果进行批量评估（基于 CounterFact 数据集），可使用以下命令：\n\n```bash\npython3 -m experiments.evaluate \\\n    --alg_name=ROME \\\n    --model_name=gpt2-xl \\\n    --hparams_fname=gpt2-xl.json\n```\n\n评估结果将保存在 `results\u002FROME\u002Frun_\u003Crun_id>\u002F` 目录下。如需生成摘要报告：\n\n```bash\npython3 -m experiments.summarize --dir_name=ROME --runs=run_\u003Crun_id>\n```\n\n> **提示**：对于首次使用，建议优先阅读并运行 `notebooks\u002Frome.ipynb`，其中包含了完整的上下文处理和参数配置示例。","某大型游戏公司的本地化团队需要紧急更新其内置 AI 剧情生成器中的事实知识，以配合新发布的体育题材 DLC，确保角色设定与现实世界最新变动一致。\n\n### 没有 rome 时\n- **更新成本极高**：修正一个事实错误（如\"LeBron James 打的运动”）通常需要重新收集数据并对整个模型进行微调，耗时数小时甚至数天。\n- **破坏原有知识**：全量微调容易导致“灾难性遗忘”，模型在学会新知识的同时，忘记了原本掌握的其他大量通用常识。\n- **缺乏精准定位**：开发人员无法确定具体是哪一层神经网络存储了该错误信息，只能盲目调整参数，如同大海捞针。\n- **部署流程繁琐**：每次知识更新都需要重新训练并替换巨大的模型文件，严重阻碍了内容的快速迭代和上线。\n\n### 使用 rome 后\n- **秒级精准编辑**：利用 ROME 的秩一模型编辑技术，只需几秒即可直接修改模型内部特定的事实关联，无需重新训练。\n- **保持知识稳定**：该方法仅针对特定神经路径进行局部重写，完美保留了模型原有的其他语言能力，避免了灾难性遗忘。\n- **因果追踪透明**：通过内置的因果追踪功能，团队能清晰看到事实信息存储的具体层级，实现可解释的定向修改。\n- **轻量级热更新**：无需替换整个模型文件，仅需应用极小的参数增量即可实时更新线上服务，极大提升了响应速度。\n\nROME 将大模型的事实修正从昂贵的“重训模式”转变为高效的“手术式编辑”，让动态知识更新变得像修改配置文件一样简单快捷。","https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Fkmeng01_rome_d89ba665.png","kmeng01","Kevin Meng","https:\u002F\u002Foss.gittoolsai.com\u002Favatars\u002Fkmeng01_90fe6c23.jpg",null,"SF","mengk@mit.edu","mengk20","mengk.me","https:\u002F\u002Fgithub.com\u002Fkmeng01",[82,86,90],{"name":83,"color":84,"percentage":85},"Python","#3572A5",81.2,{"name":87,"color":88,"percentage":89},"Jupyter Notebook","#DA5B0B",18.1,{"name":91,"color":92,"percentage":93},"Shell","#89e051",0.7,743,163,"2026-04-10T09:19:13","MIT","未说明","必需 (GPU-only)，需支持 PyTorch 后端的 NVIDIA GPU，具体型号和显存大小取决于所选模型 (GPT-2 XL 1.5B 或 GPT-J 6B)，CUDA 版本未说明",{"notes":101,"python":98,"dependencies":102},"该工具仅支持自动回归 Transformer 模型（目前支持 GPT-2 XL 和 GPT-J）。强烈建议使用 conda 管理 Python、CUDA 和 PyTorch 相关依赖，其余依赖使用 pip 安装。目前仅支持使用 PyTorch 后端编辑 HuggingFace 模型，暂不支持 TensorFlow 或非 HuggingFace 模型。",[103,104,105,106,107],"conda","pip","PyTorch","CUDA","transformers (HuggingFace)",[13,35,14],[110,111,112,113],"transformers","gpt","interpretability","pytorch","2026-03-27T02:49:30.150509","2026-04-12T16:41:59.273568",[117,122,127,132,137,142],{"id":118,"question_zh":119,"answer_zh":120,"source_url":121},30837,"为什么重写前后的目标概率（target_true\u002Ftarget_new）表现不符合预期？","如果代码无误但重写效果不佳，通常是因为更新范数（norm of the update）的问题。建议尝试减小权重衰减（weight decay）以增大更新范数，通常存在一个最佳平衡点。此外，重写成功率低可能是由于欠拟合或超参数校准不当；ROME 的更新包含优化循环，正常情况下应能找到高有效性的解。对于小模型效果较差的情况，可能是因为其本身性能有限或需要特定的超参数调整。","https:\u002F\u002Fgithub.com\u002Fkmeng01\u002Frome\u002Fissues\u002F6",{"id":123,"question_zh":124,"answer_zh":125,"source_url":126},30838,"将 ROME 应用于不同模型或数据集时，哪些超参数最关键以及如何调整？","`clamp_norm_factor` 是最重要的硬约束超参数，它决定了更新向量 $v_*$ 相对于原始隐藏表示的范数上限。若该值过高会导致“溢出”（bleedover，即不必要的更新过大），过低则导致更新无效。其他软约束如权重衰减（weight decay）和 KL 散度也需调整。推荐策略是：先从无约束值开始（如无权重衰减、无 KL 损失、高 clamp 因子）确保最大自由度更新生效，然后逐步增加约束以消除溢出效应。可利用 `notebooks\u002Frome.ipynb` 进行实验，因为 hparams 文件在每次运行单元格时会自动热重载。","https:\u002F\u002Fgithub.com\u002Fkmeng01\u002Frome\u002Fissues\u002F25",{"id":128,"question_zh":129,"answer_zh":130,"source_url":131},30839,"在 Google Colab 上运行 ROME 笔记本时遇到 CUDA 显存不足（OOM）错误怎么办？","该问题通常由 `v*` 优化算法的更新引起，该更新需要更多显存。维护者已修复此问题，用户只需重新拉取（re-pull）最新代码即可解决。如果问题依旧，请确保使用的是最新版本的仓库代码。","https:\u002F\u002Fgithub.com\u002Fkmeng01\u002Frome\u002Fissues\u002F10",{"id":133,"question_zh":134,"answer_zh":135,"source_url":136},30840,"配置文件中 `layers` 和 `mom2_*` 参数的具体含义及如何设置？","`layers` 参数指定要修改的层，这并非预先已知，需要通过运行 `causal_trace.ipynb` 笔记本并观察生成的图表来确定候选的 MLP 层，然后将这些层索引填入配置。`mom2_*` 参数（如 `mom2_update_weight` 等）涉及二阶矩估计，参考论文附录 E.2 节，通常需要针对特定领域的数据集（如代码任务需使用代码数据集）进行计算或调整。","https:\u002F\u002Fgithub.com\u002Fkmeng01\u002Frome\u002Fissues\u002F27",{"id":138,"question_zh":139,"answer_zh":140,"source_url":141},30841,"在 Colab 中遇到 `ImportError: cannot import name 'Literal' from 'typing'` 错误如何解决？","这是因为 `Literal` 类型提示仅在 Python 3.8+ 中可用，而旧版 Colab 环境默认使用 Python 3.7。维护者已回滚相关更改以保持向后兼容性。如果遇到此错误，请重新拉取最新代码，或者手动将运行环境升级至 Python 3.8 及以上版本。","https:\u002F\u002Fgithub.com\u002Fkmeng01\u002Frome\u002Fissues\u002F23",{"id":143,"question_zh":144,"answer_zh":145,"source_url":146},30842,"ROME 是否支持 T5 或其他编码器 - 解码器（Encoder-Decoder）架构的模型？","目前官方不支持 T5 模型。T5 采用编码器 - 解码器架构，其自回归解码器可以交叉关注编码器的隐藏表示。虽然理论上可以扩展 ROME 以支持此类架构，但原论文并未提供原则性的方法来实现这一点。这被视为未来有潜力的研究方向，但目前不在项目范围内。","https:\u002F\u002Fgithub.com\u002Fkmeng01\u002Frome\u002Fissues\u002F2",[]]