[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"similar-CarperAI--trlx":3,"tool-CarperAI--trlx":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 真正成长为懂上",150037,2,"2026-04-10T23:33:47",[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":72,"owner_avatar_url":73,"owner_bio":74,"owner_company":75,"owner_location":75,"owner_email":75,"owner_twitter":76,"owner_website":77,"owner_url":78,"languages":79,"stars":92,"forks":93,"last_commit_at":94,"license":95,"difficulty_score":96,"env_os":97,"env_gpu":98,"env_ram":97,"env_deps":99,"category_tags":109,"github_topics":110,"view_count":32,"oss_zip_url":75,"oss_zip_packed_at":75,"status":17,"created_at":114,"updated_at":115,"faqs":116,"releases":147},5828,"CarperAI\u002Ftrlx","trlx","A repo for distributed training of language models with Reinforcement Learning via Human Feedback (RLHF)","trlX 是一个专为大规模语言模型设计的分布式训练框架，核心目标是通过人类反馈强化学习（RLHF）技术对模型进行微调。它主要解决了在资源受限环境下难以高效训练超大参数模型（如 200 亿参数以上）的难题，让开发者能够利用自定义奖励函数或标注数据集，轻松将通用语言模型调整为更符合人类偏好、更具特定任务能力的智能体。\n\n无论是希望探索对齐算法的研究人员，还是需要部署高性能对话系统的开发者，trlX 都能提供强大支持。其独特亮点在于灵活的架构设计：对于中小规模模型，它基于 Hugging Face Accelerate 提供便捷训练；面对超大规模模型时，则无缝集成 NVIDIA NeMo，利用高效的并行技术实现线性扩展。目前，trlX 已原生支持 PPO（近端策略优化）和 ILQL（隐式语言 Q 学习）等主流强化学习算法，并配套提供了 CHEESE 库以辅助收集人类反馈数据。配合丰富的示例代码和 Colab 笔记本，trlX 旨在降低 RLHF 的技术门槛，推动大模型对齐技术的普及与应用。","[![EMNLP Paper](https:\u002F\u002Fimg.shields.io\u002Fbadge\u002FEMNLP_Paper-grey.svg?style=flat&logo=data:image\u002Fsvg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiIHN0YW5kYWxvbmU9Im5vIj8+CjwhLS0gQ3JlYXRlZCB3aXRoIElua3NjYXBlIChodHRwOi8vd3d3Lmlua3NjYXBlLm9yZy8pIC0tPgo8c3ZnCiAgIHhtbG5zOnN2Zz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciCiAgIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIKICAgdmVyc2lvbj0iMS4wIgogICB3aWR0aD0iNjgiCiAgIGhlaWdodD0iNjgiCiAgIGlkPSJzdmcyIj4KICA8ZGVmcwogICAgIGlkPSJkZWZzNCIgLz4KICA8cGF0aAogICAgIGQ9Ik0gNDEuOTc3NTUzLC0yLjg0MjE3MDllLTAxNCBDIDQxLjk3NzU1MywxLjc2MTc4IDQxLjk3NzU1MywxLjQ0MjExIDQxLjk3NzU1MywzLjAxNTggTCA3LjQ4NjkwNTQsMy4wMTU4IEwgMCwzLjAxNTggTCAwLDEwLjUwMDc5IEwgMCwzOC40Nzg2NyBMIDAsNDYgTCA3LjQ4NjkwNTQsNDYgTCA0OS41MDA4MDIsNDYgTCA1Ni45ODc3MDgsNDYgTCA2OCw0NiBMIDY4LDMwLjk5MzY4IEwgNTYuOTg3NzA4LDMwLjk5MzY4IEwgNTYuOTg3NzA4LDEwLjUwMDc5IEwgNTYuOTg3NzA4LDMuMDE1OCBDIDU2Ljk4NzcwOCwxLjQ0MjExIDU2Ljk4NzcwOCwxLjc2MTc4IDU2Ljk4NzcwOCwtMi44NDIxNzA5ZS0wMTQgTCA0MS45Nzc1NTMsLTIuODQyMTcwOWUtMDE0IHogTSAxNS4wMTAxNTUsMTcuOTg1NzggTCA0MS45Nzc1NTMsMTcuOTg1NzggTCA0MS45Nzc1NTMsMzAuOTkzNjggTCAxNS4wMTAxNTUsMzAuOTkzNjggTCAxNS4wMTAxNTUsMTcuOTg1NzggeiAiCiAgICAgc3R5bGU9ImZpbGw6I2VkMWMyNDtmaWxsLW9wYWNpdHk6MTtmaWxsLXJ1bGU6ZXZlbm9kZDtzdHJva2U6bm9uZTtzdHJva2Utd2lkdGg6MTIuODk1NDExNDk7c3Ryb2tlLWxpbmVjYXA6YnV0dDtzdHJva2UtbGluZWpvaW46bWl0ZXI7c3Ryb2tlLW1pdGVybGltaXQ6NDtzdHJva2UtZGFzaGFycmF5Om5vbmU7c3Ryb2tlLWRhc2hvZmZzZXQ6MDtzdHJva2Utb3BhY2l0eToxIgogICAgIHRyYW5zZm9ybT0idHJhbnNsYXRlKDAsIDExKSIKICAgICBpZD0icmVjdDIxNzgiIC8+Cjwvc3ZnPgo=)](https:\u002F\u002Faclanthology.org\u002F2023.emnlp-main.530\u002F) [![DOI](https:\u002F\u002Fzenodo.org\u002Fbadge\u002F545104023.svg)](https:\u002F\u002Fzenodo.org\u002Fbadge\u002Flatestdoi\u002F545104023)  [![License](https:\u002F\u002Fimg.shields.io\u002Fgithub\u002Flicense\u002FCarperAI\u002Ftrlx)](LICENSE)\n\n# Transformer Reinforcement Learning X\n\ntrlX is a distributed training framework designed from the ground up to focus on fine-tuning large language models with reinforcement learning using either a provided reward function or a reward-labeled dataset.\n\nTraining support for 🤗 Hugging Face models is provided by [Accelerate](https:\u002F\u002Fhuggingface.co\u002Fdocs\u002Faccelerate\u002F)-backed trainers, allowing users to fine-tune causal and T5-based language models of up to 20B parameters, such as `facebook\u002Fopt-6.7b`, `EleutherAI\u002Fgpt-neox-20b`, and `google\u002Fflan-t5-xxl`. For models beyond 20B parameters, trlX provides [NVIDIA NeMo](https:\u002F\u002Fgithub.com\u002FNVIDIA\u002FNeMo)-backed trainers that leverage efficient parallelism techniques to scale effectively.\n\nThe following RL algorithms are currently implemented:\n\n| Algorithm                                                                     | Accelerate Trainer | NeMo Trainer  |\n|-------------------------------------------------------------------------------|:------------------:|:-------------:|\n| [Proximal Policy Optimization (PPO)](https:\u002F\u002Farxiv.org\u002Fpdf\u002F1909.08593.pdf)    | ✅                 | ✅            |\n| [Implicit Language Q-Learning (ILQL)](https:\u002F\u002Fsea-snell.github.io\u002FILQL_site\u002F) | ✅                 | ✅            |\n\n📖 **[Documentation](https:\u002F\u002FtrlX.readthedocs.io)**\n\n🧀 **[CHEESE](https:\u002F\u002Fgithub.com\u002Fcarperai\u002Fcheese)** Collect human annotations for your RL application with our human-in-the-loop data collection library.\n\n## Installation\n\n```bash\ngit clone https:\u002F\u002Fgithub.com\u002FCarperAI\u002Ftrlx.git\ncd trlx\npip install torch --extra-index-url https:\u002F\u002Fdownload.pytorch.org\u002Fwhl\u002Fcu118\npip install -e .\n```\n\n## Examples\n\nFor more usage see [examples](.\u002Fexamples). You can also try the colab notebooks below:\n| Description | Link |\n| ----------- | ----------- |\n| Simulacra (GPT2, ILQL) | [![Open In Colab](https:\u002F\u002Fcolab.research.google.com\u002Fassets\u002Fcolab-badge.svg)](https:\u002F\u002Fcolab.research.google.com\u002Fgithub\u002FCarperAI\u002Ftrlx\u002Fblob\u002Fmain\u002Fexamples\u002Fnotebooks\u002Ftrlx_simulacra.ipynb)|\n| Sentiment (GPT2, ILQL) | [![Open In Colab](https:\u002F\u002Fcolab.research.google.com\u002Fassets\u002Fcolab-badge.svg)](https:\u002F\u002Fcolab.research.google.com\u002Fgithub\u002FCarperAI\u002Ftrlx\u002Fblob\u002Fmain\u002Fexamples\u002Fnotebooks\u002Ftrlx_sentiments.ipynb)|\n\nLatest runs of the examples are on our [Weights & Biases](https:\u002F\u002Fwandb.ai\u002Fsorry\u002Ftrlx-references\u002Freportlist)\n\n## How to Train\n\nYou can train a model using a reward function or a reward-labeled dataset.\n\n#### Using a reward function\n\n```python\ntrainer = trlx.train('gpt2', reward_fn=lambda samples, **kwargs: [sample.count('cats') for sample in samples])\n```\n\nFor **reward model** training refer to our [autocrit](https:\u002F\u002Fgithub.com\u002FCarperAI\u002Fautocrit) library.\n\n#### Using a reward-labeled dataset\n\n```python\ntrainer = trlx.train('EleutherAI\u002Fgpt-j-6B', samples=['dolphins', 'geese'], rewards=[1.0, 100.0])\n```\n\n#### Using a prompt-completion dataset\n\n```python\ntrainer = trlx.train('gpt2', samples=[['Question: 1 + 2 Answer:', '3'], ['Question: Solve this equation: ∀n>0, s=2, sum(n ** -s). Answer:', '(pi ** 2)\u002F 6']])\n```\n\n#### Trainers provide a wrapper over their underlying model\n\n```python\ntrainer.generate(**tokenizer('Q: Who rules the world? A:', return_tensors='pt'), do_sample=True)\n```\n\n#### Configure Hyperparameters\n\n```python\nfrom trlx.data.default_configs import default_ppo_config\n\nconfig = default_ppo_config()\nconfig.model.model_path = 'EleutherAI\u002Fgpt-neox-20b'\nconfig.tokenizer.tokenizer_path = 'EleutherAI\u002Fgpt-neox-20b'\nconfig.train.seq_length = 2048\n\ntrainer = trlx.train(config=config, reward_fn=lambda samples, **kwargs: [len(sample) for sample in samples])\n```\nTo reduce memory usage (if you're experiencing CUDA Out of Memory errors), first try the lowest setting for the following hyperparameters and eventually increase them:\n```python\n# micro batch size per gpu\nconfig.train.batch_size = 1\n# freeze all transformer layers\nconfig.model.num_layers_unfrozen = 0\n# maximum sample length, prompts or samples longer than that will be truncated\nconfig.train.seq_length = 128\n\n# micro batch size for sampling (specific for PPO)\nconfig.method.chunk_size = 1\n# use an additional Q-head (specific for ILQL)\nconfig.method.two_qs = False\n```\n\n#### Save the resulting model to a Hugging Face pretrained language model. (Ready to upload to the Hub!)\n\n```python\ntrainer.save_pretrained('\u002Fpath\u002Fto\u002Foutput\u002Ffolder\u002F')\n```\n\n#### Use 🤗 Accelerate to launch distributed training\n\n```bash\naccelerate config # choose DeepSpeed option\naccelerate launch examples\u002Fsimulacra.py\n```\n\n#### Use NeMo-Megatron to launch distributed training\n\nFollow the setup instructions in the [NeMo README](.\u002Ftrlx\u002Fmodels\u002F).\n\n```bash\npython examples\u002Fnemo_ilql_sentiments.py\n```\n\nFor more usage see the [NeMo README](.\u002Ftrlx\u002Fmodels)\n\n#### Use Ray Tune to launch hyperparameter sweep\n\n```bash\nray start --head --port=6379\npython -m trlx.sweep --config configs\u002Fsweeps\u002Fppo_sweep.yml --accelerate_config configs\u002Faccelerate\u002Fddp.yaml --num_gpus 4 examples\u002Fppo_sentiments.py\n```\n\n#### Benchmark your trlX fork against trlX's `main` branch\n```bash\npython -m trlx.reference octocat\u002Ftrlx-fork:fix-branch\n```\n\n## Logging\n\ntrlX uses the standard Python `logging` library to log training information to the console. The default logger is set to the `INFO` level, which means that `INFO`, `WARNING`, `ERROR`, and `CRITICAL` level messages will be printed to standard output.\n\nTo change the log level directly, you can use the verbosity setter. For example, to set the log level to `WARNING` use:\n\n```python\nimport trlx\n\ntrlx.logging.set_verbosity(trlx.logging.WARNING)\n```\n\nThis will suppress `INFO` level messages, but still print `WARNING`, `ERROR`, and `CRITICAL` level messages.\n\nYou can also control logging verbosity by setting the `TRLX_VERBOSITY` environment variable to one of the standard logging [level names](https:\u002F\u002Fdocs.python.org\u002F3\u002Flibrary\u002Flogging.html#logging-levels):\n\n- `CRITICAL` (`trlx.logging.CRITICAL`)\n- `ERROR` (`trlx.logging.ERROR`)\n- `WARNING` (`trlx.logging.WARNING`)\n- `INFO` (`trlx.logging.INFO`)\n- `DEBUG` (`trlx.logging.DEBUG`)\n\n```sh\nexport TRLX_VERBOSITY=WARNING\n```\n\nBy default, [`tqdm`](https:\u002F\u002Ftqdm.github.io\u002Fdocs\u002Ftqdm\u002F) progress bars are used to display training progress. You can disable them by calling `trlx.logging.disable_progress_bar()`, otherwise `trlx.logging.enable_progress_bar()` to enable.\n\nMessages can be formatted with greater detail by setting `trlx.logging.enable_explicit_format()`. This will inject call-site information into each log which may be helpful for debugging.\n\n```sh\n[2023-01-01 05:00:00,000] [INFO] [ppo_orchestrator.py:63:make_experience] [RANK 0] Message...\n```\n\n> 💡 Tip: To reduce the amount of logging output, you might find it helpful to change log levels of third-party libraries used by trlX. For example, try adding `transformers.logging.set_verbosity_error()` to the top of your trlX scripts to silence verbose messages from the `transformers` library (see their [logging docs](https:\u002F\u002Fhuggingface.co\u002Fdocs\u002Ftransformers\u002Fmain_classes\u002Flogging#logging) for more details).\n\n## Contributing\n\nFor development check out these [guidelines](.\u002FCONTRIBUTING.md)\nand also read our [docs](https:\u002F\u002FtrlX.readthedocs.io)\n\n## Citing trlX\n\n```\n@inproceedings{havrilla-etal-2023-trlx,\n    title = \"trl{X}: A Framework for Large Scale Reinforcement Learning from Human Feedback\",\n    author = \"Havrilla, Alexander  and\n      Zhuravinskyi, Maksym  and\n      Phung, Duy  and\n      Tiwari, Aman  and\n      Tow, Jonathan  and\n      Biderman, Stella  and\n      Anthony, Quentin  and\n      Castricato, Louis\",\n    booktitle = \"Proceedings of the 2023 Conference on Empirical Methods in Natural Language Processing\",\n    month = dec,\n    year = \"2023\",\n    address = \"Singapore\",\n    publisher = \"Association for Computational Linguistics\",\n    url = \"https:\u002F\u002Faclanthology.org\u002F2023.emnlp-main.530\",\n    doi = \"10.18653\u002Fv1\u002F2023.emnlp-main.530\",\n    pages = \"8578--8595\",\n}\n```\n\n## Acknowledgements\n\nMany thanks to Leandro von Werra for contributing with [trl](https:\u002F\u002Fgithub.com\u002Flvwerra\u002Ftrl\u002F), a library that initially inspired this repo.\n","[![EMNLP论文](https:\u002F\u002Fimg.shields.io\u002Fbadge\u002FEMNLP_Paper-grey.svg?style=flat&logo=data:image\u002Fsvg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiIHN0YW5kYWxvbmU9Im5vIj8+CjwhLS0gQ3JlYXRlZCB3aXRoIElua3NjYXBlIChodHRwOi8vd3d3Lmlua3NjYXBlLm9yZy8pIC0tPgo8c3ZnCiAgIHhtbG5zOnN2Zz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciCiAgIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIKICAgdmVyc2lvbj0iMS4wIgogICB3aWR0aD0iNjgiCiAgIGhlaWdodD0iNjgiCiAgIGlkPSJzdmcyIj4KICA8ZGVmcwogICAgIGlkPSJkZWZzNCIgLz4KICA8cGF0aAogICAgIGQ9Ik0gNDEuOTc3NTUzLC0yLjg0MjE3MDllLTAxNCBDIDQxLjk3NzU1MywxLjc2MTc4IDQxLjk3NzU1MywxLjQ0MjExIDQxLjk3NzU1MywzLjAxNTggTCA3LjQ4NjkwNTQsMy4wMTU4IEwgMCwzLjAxNTggTCAwLDEwLjUwMDc5IEwgMCwzOC40Nzg2NyBMIDAsNDYgTCA3LjQ4NjkwNTQsNDYgTCA0OS41MDA4MDIsNDYgTCA1Ni45ODc3MDgsNDYgTCA2OCw0NiBMIDY4LDMwLjk5MzY4IEwgNTYuOTg3NzA4LDMwLjk5MzY4IEwgNTYuOTg3NzA4LDEwLjUwMDc5IEwgNTYuOTg3NzA4LDMuMDE1OCBDIDU2Ljk4NzcwOCwxLjQ0MjExIDU2Ljk4NzcwOCwxLjc2MTc4IDU2Ljk4NzcwOCwtMi44NDIxNzA9ZS0wMTQgTCA0MS45Nzc1NTMsLTIuODQyMTcwOWEtMDE0IHogTSAxNS4wMTAxNTUsMTcuOTg1NzggTCA0MS45Nzc1NTMsMTcuOTg1NzggTCA0MS45Nzc1NTMsMzAuOTkzNjggTCAxNS4wMTAxNTUsMzAuOTkzNjggTCAxNS4wMTAxNTUsMTcuOTg1NzggeiAiCiAgICAgc3R5bGU9ImZpbGw6I2VkMWMyNDtmaWxsLW9wYWNpdHk6MTtmaWxsLXJ1bGU6ZXZlbm9kZDtzdHJva2U6bm9uZTtzdHJva2Utd2lkdGg6MTIuODk1NDExNDk7c3Ryb2tlLWxpbmVjYXA6YnV0dDtzdHJva2UtbGluZWpvaW46bWl0ZXI7c3Ryb2tlLW1pdGVybGltaXQ6NDtzdHJva2UtZGFzaGFycmF5Om5vbmU7c3Ryb2tlLWRhc2hvZmZzZXQ6MDtzdHJva2Utb3BhY2l0eToxIgogICAgIHRyYW5zZm9ybT0idHJhbnNsYXRlKDAsIDExKSIKICAgICBpZD0icmVjdDIxNzgiIC8+Cjwvc3ZnPgo=)](https:\u002F\u002Faclanthology.org\u002F2023.emnlp-main.530\u002F) [![DOI](https:\u002F\u002Fzenodo.org\u002Fbadge\u002F545104023.svg)](https:\u002F\u002Fzenodo.org\u002Fbadge\u002Flatestdoi\u002F545104023)  [![许可证](https:\u002F\u002Fimg.shields.io\u002Fgithub\u002Flicense\u002FCarperAI\u002Ftrlx)](LICENSE)\n\n# Transformer强化学习X\n\ntrlX是一个从头开始设计的分布式训练框架，专注于使用强化学习对大型语言模型进行微调，既可以利用提供的奖励函数，也可以使用带有奖励标签的数据集。\n\n对于🤗 Hugging Face模型的训练支持由[Accelerate](https:\u002F\u002Fhuggingface.co\u002Fdocs\u002Faccelerate\u002F)后端的训练器提供，允许用户微调高达200亿参数的因果和T5类语言模型，例如`facebook\u002Fopt-6.7b`、`EleutherAI\u002Fgpt-neox-20b`和`google\u002Fflan-t5-xxl`。对于超过200亿参数的模型，trlX提供了基于[NVIDIA NeMo](https:\u002F\u002Fgithub.com\u002FNVIDIA\u002FNeMo)的训练器，这些训练器利用高效的并行化技术来实现有效扩展。\n\n目前实现了以下RL算法：\n\n| 算法                                                                     | Accelerate训练器 | NeMo训练器  |\n|-------------------------------------------------------------------------------|:------------------:|:-------------:|\n| [近端策略优化(PPO)](https:\u002F\u002Farxiv.org\u002Fpdf\u002F1909.08593.pdf)    | ✅                 | ✅            |\n| [隐式语言Q学习(ILQL)](https:\u002F\u002Fsea-snell.github.io\u002FILQL_site\u002F) | ✅                 | ✅            |\n\n📖 **[文档](https:\u002F\u002FtrlX.readthedocs.io)**\n\n🧀 **[CHEESE](https:\u002F\u002Fgithub.com\u002Fcarperai\u002Fcheese)** 使用我们的“人机交互”数据收集库为您的RL应用收集人类标注。\n\n## 安装\n\n```bash\ngit clone https:\u002F\u002Fgithub.com\u002FCarperAI\u002Ftrlx.git\ncd trlx\npip install torch --extra-index-url https:\u002F\u002Fdownload.pytorch.org\u002Fwhl\u002Fcu118\npip install -e .\n```\n\n## 示例\n\n更多用法请参阅[示例](.\u002Fexamples)。您还可以尝试下面的Colab笔记本：\n| 描述 | 链接 |\n| ----------- | ----------- |\n| 模拟物(GPT2, ILQL) | [![在Colab中打开](https:\u002F\u002Fcolab.research.google.com\u002Fassets\u002Fcolab-badge.svg)](https:\u002F\u002Fcolab.research.google.com\u002Fgithub\u002FCarperAI\u002Ftrlx\u002Fblob\u002Fmain\u002Fexamples\u002Fnotebooks\u002Ftrlx_simulacra.ipynb)|\n| 情感(GPT2, ILQL) | [![在Colab中打开](https:\u002F\u002Fcolab.research.google.com\u002Fassets\u002Fcolab-badge.svg)](https:\u002F\u002Fcolab.research.google.com\u002Fgithub\u002FCarperAI\u002Ftrlx\u002Fblob\u002Fmain\u002Fexamples\u002Fnotebooks\u002Ftrlx_sentiments.ipynb)|\n\n示例的最新运行结果可在我们的[Weights & Biases](https:\u002F\u002Fwandb.ai\u002Fsorry\u002Ftrlx-references\u002Freportlist)上查看。\n\n## 如何训练\n\n您可以使用奖励函数或带有奖励标签的数据集来训练模型。\n\n#### 使用奖励函数\n\n```python\ntrainer = trlx.train('gpt2', reward_fn=lambda samples, **kwargs: [sample.count('cats') for sample in samples])\n```\n\n有关**奖励模型**训练，请参阅我们的[autocrit](https:\u002F\u002Fgithub.com\u002FCarperAI\u002Fautocrit)库。\n\n#### 使用带有奖励标签的数据集\n\n```python\ntrainer = trlx.train('EleutherAI\u002Fgpt-j-6B', samples=['dolphins', 'geese'], rewards=[1.0, 100.0])\n```\n\n#### 使用提示-完成数据集\n\n```python\ntrainer = trlx.train('gpt2', samples=[['问题：1 + 2 答案：', '3'], ['问题：解这个方程：∀n>0, s=2, sum(n ** -s). 答案：', '(pi ** 2)\u002F 6']])\n```\n\n#### 训练器为其底层模型提供封装\n\n```python\ntrainer.generate(**tokenizer('问：谁统治世界？答：', return_tensors='pt'), do_sample=True)\n```\n\n#### 配置超参数\n\n```python\nfrom trlx.data.default_configs import default_ppo_config\n\nconfig = default_ppo_config()\nconfig.model.model_path = 'EleutherAI\u002Fgpt-neox-20b'\nconfig.tokenizer.tokenizer_path = 'EleutherAI\u002Fgpt-neox-20b'\nconfig.train.seq_length = 2048\n\ntrainer = trlx.train(config=config, reward_fn=lambda samples, **kwargs: [len(sample) for sample in samples])\n```\n为了减少内存使用（如果您遇到CUDA Out of Memory错误），请先尝试将以下超参数设置为最低值，然后逐步提高：\n```python\n# 每个GPU的微批次大小\nconfig.train.batch_size = 1\n# 冻结所有Transformer层\nconfig.model.num_layers_unfrozen = 0\n# 最大样本长度，超过该长度的提示或样本将会被截断\nconfig.train.seq_length = 128\n\n# 采样的微批次大小（仅适用于PPO）\nconfig.method.chunk_size = 1\n# 使用额外的Q-head（仅适用于ILQL）\nconfig.method.two_qs = False\n```\n\n#### 将训练好的模型保存为Hugging Face预训练语言模型。（已准备好上传到Hub！）\n\n```python\ntrainer.save_pretrained('\u002Fpath\u002Fto\u002Foutput\u002Ffolder\u002F')\n```\n\n#### 使用🤗 Accelerate启动分布式训练\n\n```bash\naccelerate config # 选择DeepSpeed选项\naccelerate launch examples\u002Fsimulacra.py\n```\n\n#### 使用NeMo-Megatron启动分布式训练\n\n请按照[NeMo README](.\u002Ftrlx\u002Fmodels)中的设置说明操作。\n\n```bash\npython examples\u002Fnemo_ilql_sentiments.py\n```\n\n更多用法请参阅[NeMo README](.\u002Ftrlx\u002Fmodels)。\n\n#### 使用Ray Tune启动超参数搜索\n\n```bash\nray start --head --port=6379\npython -m trlx.sweep --config configs\u002Fsweeps\u002Fppo_sweep.yml --accelerate_config configs\u002Faccelerate\u002Fddp.yaml --num_gpus 4 examples\u002Fppo_sentiments.py\n```\n\n#### 将您的trlX分支与trlX的`main`分支进行基准测试\n```bash\npython -m trlx.reference octocat\u002Ftrlx-fork:fix-branch\n```\n\n## 日志记录\n\ntrlX 使用标准的 Python `logging` 库将训练信息记录到控制台。默认的日志记录器级别设置为 `INFO`，这意味着 `INFO`、`WARNING`、`ERROR` 和 `CRITICAL` 级别的消息都会打印到标准输出。\n\n要直接更改日志级别，可以使用 verbosity 设置器。例如，要将日志级别设置为 `WARNING`，可以使用以下代码：\n\n```python\nimport trlx\n\ntrlx.logging.set_verbosity(trlx.logging.WARNING)\n```\n\n这将抑制 `INFO` 级别的消息，但仍会打印 `WARNING`、`ERROR` 和 `CRITICAL` 级别的消息。\n\n你还可以通过设置 `TRLX_VERBOSITY` 环境变量来控制日志的详细程度，该变量可以取标准日志记录 [级别名称](https:\u002F\u002Fdocs.python.org\u002F3\u002Flibrary\u002Flogging.html#logging-levels) 中的一个：\n\n- `CRITICAL` (`trlx.logging.CRITICAL`)\n- `ERROR` (`trlx.logging.ERROR`)\n- `WARNING` (`trlx.logging.WARNING`)\n- `INFO` (`trlx.logging.INFO`)\n- `DEBUG` (`trlx.logging.DEBUG`)\n\n```sh\nexport TRLX_VERBOSITY=WARNING\n```\n\n默认情况下，使用 [`tqdm`](https:\u002F\u002Ftqdm.github.io\u002Fdocs\u002Ftqdm\u002F) 进度条来显示训练进度。你可以通过调用 `trlx.logging.disable_progress_bar()` 来禁用它们，或者调用 `trlx.logging.enable_progress_bar()` 来启用。\n\n可以通过设置 `trlx.logging.enable_explicit_format()` 来以更详细的方式格式化日志消息。这会在每条日志中注入调用站点的信息，有助于调试。\n\n```sh\n[2023-01-01 05:00:00,000] [INFO] [ppo_orchestrator.py:63:make_experience] [RANK 0] 消息...\n```\n\n> 💡 小贴士：为了减少日志输出量，你可能会发现调整 trlX 使用的第三方库的日志级别很有帮助。例如，尝试在 trlX 脚本的顶部添加 `transformers.logging.set_verbosity_error()`，以静默来自 `transformers` 库的冗长消息（更多详情请参阅其 [日志文档](https:\u002F\u002Fhuggingface.co\u002Fdocs\u002Ftransformers\u002Fmain_classes\u002Flogging#logging)）。\n\n## 贡献\n\n如需参与开发，请查看这些 [指南](.\u002FCONTRIBUTING.md)，并阅读我们的 [文档](https:\u002F\u002FtrlX.readthedocs.io)。\n\n## 引用 trlX\n\n```\n@inproceedings{havrilla-etal-2023-trlx,\n    title = \"trl{X}: 用于大规模人类反馈强化学习的框架\",\n    author = \"Havrilla, Alexander 与  Zhuravinskyi, Maksym 与  Phung, Duy 与  Tiwari, Aman 与  Tow, Jonathan 与  Biderman, Stella 与  Anthony, Quentin 与  Castricato, Louis\",\n    booktitle = \"2023年自然语言处理经验方法会议论文集\",\n    month = dec,\n    year = \"2023\",\n    address = \"新加坡\",\n    publisher = \"计算语言学协会\",\n    url = \"https:\u002F\u002Faclanthology.org\u002F2023.emnlp-main.530\",\n    doi = \"10.18653\u002Fv1\u002F2023.emnlp-main.530\",\n    pages = \"8578--8595\",\n}\n```\n\n## 致谢\n\n非常感谢 Leandro von Werra 对 [trl](https:\u002F\u002Fgithub.com\u002Flvwerra\u002Ftrl\u002F) 的贡献，该库最初启发了这个仓库。","# trlx 快速上手指南\n\ntrlX 是一个专为大规模语言模型强化学习（RL）微调设计的分布式训练框架。它支持使用自定义奖励函数或带奖励标签的数据集，对高达 20B 参数的 Hugging Face 模型（如 OPT、GPT-NeoX、Flan-T5）进行微调，并支持通过 NVIDIA NeMo 扩展至更大规模模型。\n\n## 环境准备\n\n*   **系统要求**：Linux 操作系统，配备 NVIDIA GPU（推荐 CUDA 11.8+）。\n*   **前置依赖**：\n    *   Python 3.8+\n    *   PyTorch (需匹配 CUDA 版本)\n    *   Git\n*   **网络建议**：由于模型权重和依赖包较大，建议配置稳定的网络环境或使用国内镜像源加速 `pip` 下载。\n\n## 安装步骤\n\n1.  **克隆仓库**\n    ```bash\n    git clone https:\u002F\u002Fgithub.com\u002FCarperAI\u002Ftrlx.git\n    cd trlx\n    ```\n\n2.  **安装 PyTorch**\n    请根据您的 CUDA 版本选择对应的安装命令（以下为 CUDA 11.8 示例）：\n    ```bash\n    pip install torch --extra-index-url https:\u002F\u002Fdownload.pytorch.org\u002Fwhl\u002Fcu118\n    ```\n    *(注：国内用户可使用清华或阿里镜像源加速 PyTorch 安装)*\n\n3.  **安装 trlx**\n    ```bash\n    pip install -e .\n    ```\n\n## 基本使用\n\ntrlX 的核心是通过 `trlx.train` 接口启动训练。您可以直接使用奖励函数或提供带奖励的数据集。\n\n### 1. 使用奖励函数训练 (最简单示例)\n以下示例使用 GPT-2 模型，定义一个简单的奖励函数（统计样本中 \"cats\" 出现的次数），并启动训练：\n\n```python\nimport trlx\n\ntrainer = trlx.train('gpt2', reward_fn=lambda samples, **kwargs: [sample.count('cats') for sample in samples])\n```\n\n### 2. 使用带奖励标签的数据集训练\n如果您已经准备好了样本及其对应的奖励分数：\n\n```python\nimport trlx\n\ntrainer = trlx.train('EleutherAI\u002Fgpt-j-6B', samples=['dolphins', 'geese'], rewards=[1.0, 100.0])\n```\n\n### 3. 使用提示 - 完成 (Prompt-Completion) 数据集\n适用于问答或特定任务微调：\n\n```python\nimport trlx\n\ntrainer = trlx.train('gpt2', samples=[['Question: 1 + 2 Answer:', '3'], ['Question: Solve this equation: ∀n>0, s=2, sum(n ** -s). Answer:', '(pi ** 2)\u002F 6']])\n```\n\n### 4. 生成文本与保存模型\n训练完成后，可以使用 trainer 直接生成文本或将模型保存为 Hugging Face 格式：\n\n```python\n# 生成文本\noutput = trainer.generate(**tokenizer('Q: Who rules the world? A:', return_tensors='pt'), do_sample=True)\n\n# 保存模型到本地 (可直接上传至 Hugging Face Hub)\ntrainer.save_pretrained('\u002Fpath\u002Fto\u002Foutput\u002Ffolder\u002F')\n```\n\n### 5. 配置超参数 (可选)\n若遇到显存不足 (OOM) 错误，可调整配置文件中的批大小和序列长度：\n\n```python\nfrom trlx.data.default_configs import default_ppo_config\n\nconfig = default_ppo_config()\nconfig.model.model_path = 'EleutherAI\u002Fgpt-neox-20b'\nconfig.tokenizer.tokenizer_path = 'EleutherAI\u002Fgpt-neox-20b'\nconfig.train.seq_length = 2048\n\n# 降低显存占用的关键设置\nconfig.train.batch_size = 1          # 每个 GPU 的微批次大小\nconfig.model.num_layers_unfrozen = 0 # 冻结所有 Transformer 层\nconfig.train.seq_length = 128        # 缩短最大序列长度\n\ntrainer = trlx.train(config=config, reward_fn=lambda samples, **kwargs: [len(sample) for sample in samples])\n```\n\n### 6. 分布式训练\n使用 🤗 Accelerate 启动多卡训练：\n\n```bash\naccelerate config # 首次运行需配置，建议选择 DeepSpeed 选项\naccelerate launch examples\u002Fsimulacra.py\n```","某金融科技团队正在构建一个智能投顾助手，需要让大模型在提供投资建议时不仅准确，还要严格符合合规要求并具备积极的沟通语气。\n\n### 没有 trlx 时\n- **人工规则僵化**：开发者只能依靠硬编码的规则过滤敏感词，导致模型回答生硬，经常误杀正常的市场分析内容。\n- **微调成本高昂**：试图通过传统监督微调（SFT）让模型学会“合规且友好”，但需要耗费数周时间收集和处理海量高质量对话数据。\n- **难以平衡目标**：无法同时优化多个冲突目标（如“信息准确度”与“语气亲和力”），模型往往顾此失彼，要么过于保守要么风险提示不足。\n- **扩展性受限**：现有的单机训练脚本无法支撑 70 亿参数以上模型的强化学习训练，显存溢出频发，实验迭代被迫停滞。\n\n### 使用 trlx 后\n- **奖励函数驱动**：团队直接定义包含合规性、情感正向度的复合奖励函数，trlx 利用 PPO 算法自动引导模型生成既安全又自然的回复。\n- **高效人类反馈**：结合 CHEESE 库快速收集专家对模型输出的排序反馈，将原本数周的数据准备周期缩短至几天，显著加速迭代。\n- **多目标精准对齐**：通过强化学习机制，模型成功学会了在保持专业准确的前提下主动安抚用户情绪，实现了复杂指令的精细对齐。\n- **分布式无缝扩展**：借助 trlx 集成的 Accelerate 和 NVIDIA NeMo 后端，团队轻松在集群上分布式训练 200 亿参数的大模型，资源利用率大幅提升。\n\ntrlx 将复杂的强化学习对齐流程标准化，让金融团队能以低成本实现大模型在垂直领域的价值观精准落地。","https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002FCarperAI_trlx_78d3ff6c.png","CarperAI","https:\u002F\u002Foss.gittoolsai.com\u002Favatars\u002FCarperAI_0313240d.png","FOSS RLHF",null,"carperai","https:\u002F\u002Fcarper.ai","https:\u002F\u002Fgithub.com\u002FCarperAI",[80,84,88],{"name":81,"color":82,"percentage":83},"Python","#3572A5",98.5,{"name":85,"color":86,"percentage":87},"Shell","#89e051",1.2,{"name":89,"color":90,"percentage":91},"Dockerfile","#384d54",0.3,4742,484,"2026-04-08T16:42:51","MIT",4,"未说明","需要 NVIDIA GPU（安装命令指定 cu118），支持 DeepSpeed 和 NeMo-Megatron 分布式训练；显存需求取决于模型大小，微调高达 20B 参数模型需大显存",{"notes":100,"python":97,"dependencies":101},"该工具专为大规模语言模型强化学习微调设计。支持通过 Accelerate 微调高达 20B 参数的模型（如 OPT-6.7B, GPT-NeoX-20B），更大模型需使用 NVIDIA NeMo 后端。安装时需手动指定 CUDA 11.8 版本的 PyTorch。支持 PPO 和 ILQL 算法。若遇到显存不足，建议减小 batch_size、冻结更多网络层或缩短序列长度。",[102,103,104,105,106,107,108],"torch (cu118)","accelerate","transformers (隐含)","NVIDIA NeMo (可选，用于>20B 模型)","ray (可选，用于超参搜索)","tqdm","wandb (隐含)",[14],[111,112,113],"machine-learning","pytorch","reinforcement-learning","2026-03-27T02:49:30.150509","2026-04-11T18:31:38.534737",[117,122,127,132,137,142],{"id":118,"question_zh":119,"answer_zh":120,"source_url":121},26416,"运行 PPO 训练时遇到 'Trying to access a method that has not been registered' 错误怎么办？","这通常是由于 `accelerate` 版本不兼容导致的。如果您使用的是 accelerate 0.16.0，请尝试将其降级到 0.15.0 版本。命令示例：`pip install accelerate==0.15.0`。","https:\u002F\u002Fgithub.com\u002FCarperAI\u002Ftrlx\u002Fissues\u002F264",{"id":123,"question_zh":124,"answer_zh":125,"source_url":126},26417,"在 RLHF 摘要任务中，数据预处理阶段出现 KeyError 或截断错误如何解决？","该问题通常由提示词（prompt）追加后缀（如 '\\nTL;DR:'）后 Token 长度变化导致截断异常引起。解决方案有三种：1. 应用官方修复 PR (PR #343)；2. 参考 Issue #340 中的变通方法；3. 使用 MinHash 哈希方法查找最相似的样本进行匹配修复（代码参考：https:\u002F\u002Fgist.github.com\u002FPhungVanDuy\u002Ff29c00a77d5055e926ec8f5e702c8210#file-hashing_tomatch_ppo_summarize-py-L120）。","https:\u002F\u002Fgithub.com\u002FCarperAI\u002Ftrlx\u002Fissues\u002F297",{"id":128,"question_zh":129,"answer_zh":130,"source_url":131},26418,"在多 GPU 环境下运行 PPO 训练时出现 CUDA Out Of Memory (OOM) 错误，特别是加载奖励模型时显存溢出，该如何解决？","当多个进程同时将奖励模型加载到同一块 GPU（如 GPU:0）时会引发 OOM。建议尝试以下方案：1. 启用 CPU 卸载（Offload），在加载模型时设置 `device_map=\"auto\"`, `offload_folder=\"offload\"`, 和 `offload_state_dict=True`；2. 对于超大模型（如 12B+），即使有多卡也建议结合 CPU Offload 使用；3. 检查 DeepSpeed 配置，确保 `zero3_init_flag` 设置正确以分散显存压力。","https:\u002F\u002Fgithub.com\u002FCarperAI\u002Ftrlx\u002Fissues\u002F266",{"id":133,"question_zh":134,"answer_zh":135,"source_url":136},26419,"训练大型模型（如 20B）进行 PPO 时需要什么样的硬件配置？","根据社区经验，训练大型模型需要大量显存。例如，有用户在使用 \"EleutherAI\u002Fgpt-neox-20b\" 模型时，使用了 16 张 80GB 的 A100 GPU 仍可能遇到 OOM 错误，需配合内存优化技术。较小规模的实验可使用 8 到 32 张 GPU。如果单卡显存不足（如 40GB），必须使用多卡并行或 CPU Offload 策略。","https:\u002F\u002Fgithub.com\u002FCarperAI\u002Ftrlx\u002Fissues\u002F286",{"id":138,"question_zh":139,"answer_zh":140,"source_url":141},26420,"如何在 trlx 中使用 Ray Tune 进行多 GPU 超参数搜索？","目前 trlx 原生不支持在 Ray Tune 中直接调用多 GPU。解决方法是需要包装 `ray.train.torch.TorchTrainer` 来实现多 GPU 支持，类似于 PyTorch Lightning 的实现方式。具体实现细节需参考相关源码或等待官方更新。","https:\u002F\u002Fgithub.com\u002FCarperAI\u002Ftrlx\u002Fissues\u002F104",{"id":143,"question_zh":144,"answer_zh":145,"source_url":146},26421,"trlx 是否支持除 PPO 以外的其他在线强化学习算法（如 A2C）？","是的，trlx 计划并已经开始了额外在线 RL 算法（如 A2C）的实现工作。相关的 Pull Request (如 #183) 已经在进行中，旨在通过优化配置使其对用户更易用。建议关注官方仓库的 PR 动态或加入 Discord 社区获取最新进展。","https:\u002F\u002Fgithub.com\u002FCarperAI\u002Ftrlx\u002Fissues\u002F16",[148,153,158,163,168,173],{"id":149,"version":150,"summary_zh":151,"released_at":152},171652,"v0.7.0","`v0.7.0` 版本包含多项新功能、错误修复以及代码库的整体改进。以下是主要变更：\n\n## 🐠 NeMo PPO 和 SFT 支持\n\n此版本引入了基于 NeMo 的 PPO 和 SFT 实现，以增强能力并提升大规模训练下的系统性能。\n\n* NeMo PPO，由 @cat-state 在 https:\u002F\u002Fgithub.com\u002FCarperAI\u002Ftrlx\u002Fpull\u002F472 中实现\n* 为 NeMo 后端添加监督微调（SFT）支持，由 @jon-tow 在 https:\u002F\u002Fgithub.com\u002FCarperAI\u002Ftrlx\u002Fpull\u002F353 中实现\n\n## 🦆 PEFT 迁移\n\n`trlx` 现在通过 [`peft`](https:\u002F\u002Fgithub.com\u002Fhuggingface\u002Fpeft) 库支持参数高效微调方法，我们希望这能为低资源环境下的 RLHF 训练提供更便捷的途径。\n\n* peft 到 opendelta 的迁移 (#434) + 内存优化 (#320)，由 @glerzing 在 https:\u002F\u002Fgithub.com\u002FCarperAI\u002Ftrlx\u002Fpull\u002F486 中完成\n\n## 修复及其他！\n\n* 为测试中的所有分词器设置 `pad_token`，由 @cat-state 在 https:\u002F\u002Fgithub.com\u002FCarperAI\u002Ftrlx\u002Fpull\u002F414 中完成\n* 将统计字典中的张量转换为标量，由 @ZHAOTING 在 https:\u002F\u002Fgithub.com\u002FCarperAI\u002Ftrlx\u002Fpull\u002F417 中完成\n* 添加使用 T5 的翻译微调示例，由 @alexandremuzio 在 https:\u002F\u002Fgithub.com\u002FCarperAI\u002Ftrlx\u002Fpull\u002F392 中完成\n* 将 CUDA 安装说明中的 PyTorch 依赖版本设置为 2.0.0，由 @cauyxy 在 https:\u002F\u002Fgithub.com\u002FCarperAI\u002Ftrlx\u002Fpull\u002F409 中完成\n* [修复] 为 `LlamaModelBranch` 添加 `position_ids`，由 @jon-tow 在 https:\u002F\u002Fgithub.com\u002FCarperAI\u002Ftrlx\u002Fpull\u002F418 中完成\n* 修复（CI）：在 CI 测试中使用固定依赖版本，由 @jon-tow 在 https:\u002F\u002Fgithub.com\u002FCarperAI\u002Ftrlx\u002Fpull\u002F423 中完成\n* 小批量实现，由 @Dahoas 在 https:\u002F\u002Fgithub.com\u002FCarperAI\u002Ftrlx\u002Fpull\u002F364 中完成\n* [特性] 支持将元数据与每个提示关联，由 @maxreciprocate 在 https:\u002F\u002Fgithub.com\u002FCarperAI\u002Ftrlx\u002Fpull\u002F421 中完成\n* 特性（示例）：重构 simulacra 示例，由 @maxreciprocate 在 https:\u002F\u002Fgithub.com\u002FCarperAI\u002Ftrlx\u002Fpull\u002F430 中完成\n* [修复] 更新成对数据加载器，由 @Chen9154 在 https:\u002F\u002Fgithub.com\u002FCarperAI\u002Ftrlx\u002Fpull\u002F395 中完成\n* 修复（sft_trainer）：在分布式运行时计算 `total_steps`，由 @maxreciprocate 在 https:\u002F\u002Fgithub.com\u002FCarperAI\u002Ftrlx\u002Fpull\u002F432 中完成\n* 修复（base_trainer）：在 zero3 下执行 `save_pretrained` 时收集权重，由 @maxreciprocate 在 https:\u002F\u002Fgithub.com\u002FCarperAI\u002Ftrlx\u002Fpull\u002F429 中完成\n* 修复（offline_pipeline）：处理截断情况下的 ILQL 负索引问题，由 @maxreciprocate 在 https:\u002F\u002Fgithub.com\u002FCarperAI\u002Ftrlx\u002Fpull\u002F435 中完成\n* 修复（ppo_trainer）：按序列计算平均 KL 散度，由 @maxreciprocate 在 https:\u002F\u002Fgithub.com\u002FCarperAI\u002Ftrlx\u002Fpull\u002F441 中完成\n* 创建可在 Stability 集群上运行的示例训练脚本，由 @alexandremuzio 在 https:\u002F\u002Fgithub.com\u002FCarperAI\u002Ftrlx\u002Fpull\u002F419 中完成\n* 升级官方发布的 Ray 版本，而非不稳定的版本，由 @jovany-wang 在 https:\u002F\u002Fgithub.com\u002FCarperAI\u002Ftrlx\u002Fpull\u002F455 中完成\n* 锁定 transformers\u003C=4.27.1，由 @jovany-wang 在 https:\u002F\u002Fgithub.com\u002FCarperAI\u002Ftrlx\u002Fpull\u002F458 中完成\n* 修复（ppo_gpt）：防止 `position_ids` 为 None，由 @li-plus 在 https:\u002F\u002Fgithub.com\u002FCarperAI\u002Ftrlx\u002Fpull\u002F451 中完成\n* 修复（trainer）：在 `self.__init__` 中初始化 `self.generate_sweep_kwarg`，由 @mymusise 在 https:\u002F\u002Fgithub.com\u002FCarperAI\u002Ftrlx 中完成","2023-06-23T22:21:52",{"id":154,"version":155,"summary_zh":156,"released_at":157},171653,"v0.6.0","`v0.6.0` 版本包含多项新功能、错误修复以及对代码库的整体改进。以下是主要变更：\n\n## 📏 基准测试与单元测试优化\n此版本引入了新的基准测试工具，以便更轻松地跟踪训练流水线中的性能退化；同时，在 [`hypothesis`](https:\u002F\u002Fhypothesis.readthedocs.io\u002Fen\u002Flatest\u002F) 包的帮助下，单元测试也得到了进一步完善：\n* [特性] 添加基准测试工具，由 @reciprocated 在 https:\u002F\u002Fgithub.com\u002FCarperAI\u002Ftrlx\u002Fpull\u002F357 中实现\n* 为 ILQL 添加 `hypothesis` 测试，并修复边缘情况，由 @cat-state 在 https:\u002F\u002Fgithub.com\u002FCarperAI\u002Ftrlx\u002Fpull\u002F370 中完成\n\n## 🦙 LLaMa 和 Alpaca 的 PPO\u002FSFT 支持\n现已支持 LLaMa 模型的 PPO 训练，并提供了相关示例；此外，我们还内置了一个使用 [Alpaca](https:\u002F\u002Fgithub.com\u002Ftatsu-lab\u002Fstanford_alpaca) 数据集、通过我们的 SFT 训练器进行指令微调的示例：\n* [特性] 添加 LLaMa 模型的 PPO 支持，由 @PhungVanDuy 在 https:\u002F\u002Fgithub.com\u002FCarperAI\u002Ftrlx\u002Fpull\u002F375 中实现\n* 添加 Alpaca 支持，由 @cat-state 在 https:\u002F\u002Fgithub.com\u002FCarperAI\u002Ftrlx\u002Fpull\u002F400 中完成\n\n## 5️⃣ T5 的 ILQL 支持\nT5 模型现在可以使用 ILQL 进行微调：\n* 支持 T5 模型的 ILQL；修复因代码重构导致的 PPO T5 问题，由 @PhungVanDuy 在 https:\u002F\u002Fgithub.com\u002FCarperAI\u002Ftrlx\u002Fpull\u002F290 中完成\n\n## 修复\n* 移除已弃用的 `trlx.train` 数据集参数的示例用法，由 @jon-tow 在 https:\u002F\u002Fgithub.com\u002FCarperAI\u002Ftrlx\u002Fpull\u002F331 中完成\n* 移除未使用的 `logit_mask` 参数，由 @cat-state 在 https:\u002F\u002Fgithub.com\u002FCarperAI\u002Ftrlx\u002Fpull\u002F332 中完成\n* [修复] 将剩余配置从 `ymls` 格式转换为 Python 配置类，由 @reciprocated 在 https:\u002F\u002Fgithub.com\u002FCarperAI\u002Ftrlx\u002Fpull\u002F346 中完成\n* 修复笔记本中默认的 ILQL 配置，由 @xu-song 在 https:\u002F\u002Fgithub.com\u002FCarperAI\u002Ftrlx\u002Fpull\u002F350 中完成\n* 紧急修复：更新示例中的 `PPOConfig` 导入，由 @jon-tow 在 https:\u002F\u002Fgithub.com\u002FCarperAI\u002Ftrlx\u002Fpull\u002F352 中完成\n* [修复] 使用正确的 KL 更新 `AdaptiveKLController`，由 @reciprocated 在 https:\u002F\u002Fgithub.com\u002FCarperAI\u002Ftrlx\u002Fpull\u002F361 中完成\n* [修复] 从 ILQL 示例短语中移除 `\u003Ceos>` 标记，由 @reciprocated 在 https:\u002F\u002Fgithub.com\u002FCarperAI\u002Ftrlx\u002Fpull\u002F362 中完成\n* 修复未实现的半周期实验错误，由 @Dahoas 在 https:\u002F\u002Fgithub.com\u002FCarperAI\u002Ftrlx\u002Fpull\u002F363 中完成\n* [修复] 在分布式运行时计算 ILQL 的 `total_steps`，由 @reciprocated 在 https:\u002F\u002Fgithub.com\u002FCarperAI\u002Ftrlx\u002Fpull\u002F374 中完成\n* [修复] 对验证集进行拆分，由 @hzwer 在 https:\u002F\u002Fgithub.com\u002FCarperAI\u002Ftrlx\u002Fpull\u002F369 中完成\n* 修复文档：更新 `PPORLElement` 日志概率张量形状提示中的错误，由 @jon-tow 在 https:\u002F\u002Fgithub.com\u002FCarperAI\u002Ftrlx\u002Fpull\u002F377 中完成\n* [修复] 允许从特定版本下载 Hugging Face 模型，由 @reciprocated 在 https:\u002F\u002Fgithub.com\u002FCarperAI\u002Ftrlx\u002Fpull\u002F382 中完成\n* [修复] 解决 ZeRO3 下 ILQL 头部同步问题，由 @reciprocated 在 https:\u002F\u002Fgithub.com\u002FCarperAI\u002Ftrlx\u002Fpull\u002F387 中完成\n* [修复] 保留 `\u003Ceos>` 标记，并在裁剪后将其原位恢复，由 @reciprocated 在 https:\u002F\u002Fgithub.com\u002FCarperAI\u002Ftrlx\u002Fpull\u002F401 中完成\n* Nemo 的 ILQL 修复，由 @cat-state 在 https:\u002F\u002Fgithub.com\u002FCarperAI\u002Ftrlx\u002Fpull\u002F404 中完成\n\n## 其他变更\n* 转向使用 Python 配置类而非 `ymls` 文件，由 @cat-state 在 https:\u002F\u002Fgithub.com\u002FCarperAI\u002Ftrlx\u002Fpull\u002F306 中完成\n* 添加中间…","2023-03-31T21:41:29",{"id":159,"version":160,"summary_zh":161,"released_at":162},171654,"v0.5.0","## 亮点\n\n- 初步集成 NeMo ILQL，为大规模 RLHF 工作奠定了基础。请参阅 https:\u002F\u002Fgithub.com\u002FCarperAI\u002Ftrlx\u002Fblob\u002Fmain\u002Ftrlx\u002Fmodels\u002FREADME.md 开始使用。\n- 详细示例展示了如何在 AnthropicAI 的 Helpful & Harmless 数据集上使用 `trlx`：https:\u002F\u002Fgithub.com\u002FCarperAI\u002Ftrlx\u002Ftree\u002Fmain\u002Fexamples\u002Fhh\n- 改进了 ILQL 模型与 Hugging Face `transformers` 的集成。用户现在可以使用 `AutoModelForCausalLMWithILQLHeads` 对象生成样本，并保存或加载微调后的 ILQL 模型，这些模型可以快速上传到 Hugging Face 模型库。\n\n## 变更内容\n* 添加 `wandb` 组命名，由 @jon-tow 在 https:\u002F\u002Fgithub.com\u002FCarperAI\u002Ftrlx\u002Fpull\u002F188 中完成\n* 更新示例中的 `reward_fn` 签名，由 @jon-tow 在 https:\u002F\u002Fgithub.com\u002FCarperAI\u002Ftrlx\u002Fpull\u002F190 中完成\n* 添加分词器配置，由 @reciprocated 在 https:\u002F\u002Fgithub.com\u002FCarperAI\u002Ftrlx\u002Fpull\u002F189 中完成\n* 修复 DeepSpeed 中 `mixed_precision` 选项的提取问题，由 @reciprocated 在 https:\u002F\u002Fgithub.com\u002FCarperAI\u002Ftrlx\u002Fpull\u002F197 中完成\n* 修复 `summarize_rlhf` 推理检查点路径问题，由 @jon-tow 在 https:\u002F\u002Fgithub.com\u002FCarperAI\u002Ftrlx\u002Fpull\u002F194 中完成\n* 使所有示例脚本中的配置加载保持一致，由 @shermansiu 在 https:\u002F\u002Fgithub.com\u002FCarperAI\u002Ftrlx\u002Fpull\u002F192 中完成\n* 使 `Trainer.save_pretrained` 的子目录成为可选项，由 @jon-tow 在 https:\u002F\u002Fgithub.com\u002FCarperAI\u002Ftrlx\u002Fpull\u002F201 中完成\n* 更新 README，加入 T5 模型介绍，由 @aaronrmm 在 https:\u002F\u002Fgithub.com\u002FCarperAI\u002Ftrlx\u002Fpull\u002F198 中完成\n* 使 `make_head` 接受 dtype 参数，由 @reciprocated 在 https:\u002F\u002Fgithub.com\u002FCarperAI\u002Ftrlx\u002Fpull\u002F213 中完成\n* 启用 TensorBoard 跟踪训练过程，由 @marcobellagente93 在 https:\u002F\u002Fgithub.com\u002FCarperAI\u002Ftrlx\u002Fpull\u002F209 中完成\n* 支持 `merge` 中的嵌套更新，由 @cat-state 在 https:\u002F\u002Fgithub.com\u002FCarperAI\u002Ftrlx\u002Fpull\u002F219 中完成\n* 修复“reward normalize summarize”中的拼写错误，由 @PhungVanDuy 在 https:\u002F\u002Fgithub.com\u002FCarperAI\u002Ftrlx\u002Fpull\u002F221 中完成\n* 更新结果表格中过时的注释，由 @jon-tow 在 https:\u002F\u002Fgithub.com\u002FCarperAI\u002Ftrlx\u002Fpull\u002F222 中完成\n* 修复未定义的 trackers 属性，由 @alan-cooney 在 https:\u002F\u002Fgithub.com\u002FCarperAI\u002Ftrlx\u002Fpull\u002F224 中完成\n* 修复分词器缺失于 config.to_dict() 的问题，由 @alan-cooney 在 https:\u002F\u002Fgithub.com\u002FCarperAI\u002Ftrlx\u002Fpull\u002F228 中完成\n* 使实验跟踪成为可选项，由 @jon-tow 在 https:\u002F\u002Fgithub.com\u002FCarperAI\u002Ftrlx\u002Fpull\u002F226 中完成\n* 正确从配置文件中读取分词器路径，由 @JustinAWei 在 https:\u002F\u002Fgithub.com\u002FCarperAI\u002Ftrlx\u002Fpull\u002F230 中完成\n* 添加 devcontainer 支持，由 @alan-cooney 在 https:\u002F\u002Fgithub.com\u002FCarperAI\u002Ftrlx\u002Fpull\u002F196 中完成\n* 修复：将 lora_a:float 更改为 lora_r:int，由 @aaronrmm 在 https:\u002F\u002Fgithub.com\u002FCarperAI\u002Ftrlx\u002Fpull\u002F235 中完成\n* 将 `isort` 升级以修复 CI 代码质量工作流，由 @jon-tow 在 https:\u002F\u002Fgithub.com\u002FCarperAI\u002Ftrlx\u002Fpull\u002F237 中完成\n* 修复 `accelerator.log` 中的可选跟踪问题，由 @jon-tow 在 https:\u002F\u002Fgithub.com\u002FCarperAI\u002Ftrlx\u002Fpull\u002F233 中完成\n* 改进随机游走示例的文档和注释，由 @alan-cooney 在 https:\u002F\u002Fgithub.com\u002FCarperAI\u002Ftrlx\u002Fpull\u002F208 中完成\n* 更新指向“从人类反馈中学习总结”的链接，由 @jon-tow 在 https:\u002F\u002Fgithub.com\u002FCarperAI\u002Ftrlx\u002Fpull\u002F241 中完成\n* 修复 DeepSpeed 状态保存问题","2023-02-22T23:50:34",{"id":164,"version":165,"summary_zh":166,"released_at":167},171655,"v0.4","## 发布说明摘要：\n\n除了对实验跟踪、回放日志记录和配置灵活性的诸多改进外，本次更新的亮点功能还包括：\n\n- 支持基于 T5 的学生模型。请参阅[此示例](https:\u002F\u002Fgithub.com\u002FCarperAI\u002Ftrlx\u002Fblob\u002Fmain\u002Fexamples\u002Fsummarize_daily_cnn\u002Ft5_summarize_daily_cnn.py)，其中我们展示了如何在 [CNN\u002FDailyMail](https:\u002F\u002Fhuggingface.co\u002Fdatasets\u002Fcnn_dailymail) 数据集上微调一个 [FLAN-T5](https:\u002F\u002Farxiv.org\u002Fpdf\u002F2210.11416.pdf) 模型来进行文本摘要生成。\n\n- 支持参数高效微调方法。我们的初步实验结果表明，在低资源场景下，[LoRA](https:\u002F\u002Farxiv.org\u002Fabs\u002F2106.09685) 是一种极具潜力的强化学习人类反馈（RLHF）扩展技术，我们希望用户能够探索其应用前景。在达到相同性能的情况下，使用 LoRA 可使内存占用减少约 30%，运行时间缩短约 20%（相关简报[在此](https:\u002F\u002Fwandb.ai\u002Fjon-tow\u002Ftrlx\u002Freports\u002Ftrlx-Add-LORA-support-110--VmlldzozMzA4Mzk1?accessToken=4ch08w9kwzey66lgoqpa5repne22j4cofw0hvufnjoc4e6iwjz6npqpgcrspjo5j)）。\n\n- 通过 [TimDettmers\u002Fbitsandbytes](https:\u002F\u002Fgithub.com\u002FTimDettmers\u002Fbitsandbytes) 提供开箱即用的 8 位 Adam(W) 优化器支持，在我们的一个基准示例中，内存分配减少了约 15%（相关报告[在此](https:\u002F\u002Fwandb.ai\u002Fjon-tow\u002Ftrlx\u002Freports\u002Ftrlx-Add-bitsandbytes-optimizer-support-133--VmlldzozMjY1MzI1?accessToken=4t40dgib8rzs1qb6kqgsx8yuqhp5csfc2dsmxpz0qdwv2justj4yer44qwwtg7qp)）。\n\n此外，更多有趣的示例正在开发中，敬请期待！\n\n\n\n## 变更内容\n* ILQL 索引放置在错误设备上，由 @cat-state 在 https:\u002F\u002Fgithub.com\u002FCarperAI\u002Ftrlx\u002Fpull\u002F105 中修复。\n* PPO 比率不准确的问题已修复，由 @reciprocated 在 https:\u002F\u002Fgithub.com\u002FCarperAI\u002Ftrlx\u002Fpull\u002F108 中解决。\n* 多个依赖项中的随机数生成器种子已统一设置，由 @jon-tow 在 https:\u002F\u002Fgithub.com\u002FCarperAI\u002Ftrlx\u002Fpull\u002F113 中完成。\n* 默认配置实例化后设置种子，由 @jon-tow 在 https:\u002F\u002Fgithub.com\u002FCarperAI\u002Ftrlx\u002Fpull\u002F114 中实现。\n* 查询操作已移至正确设备上，由 @reciprocated 在 https:\u002F\u002Fgithub.com\u002FCarperAI\u002Ftrlx\u002Fpull\u002F115 中完成。\n* 新增 PPO 随机游走示例，由 @reciprocated 在 https:\u002F\u002Fgithub.com\u002FCarperAI\u002Ftrlx\u002Fpull\u002F119 中添加。\n* 添加单元测试以确保示例配置的有效性，由 @jon-tow 在 https:\u002F\u002Fgithub.com\u002FCarperAI\u002Ftrlx\u002Fpull\u002F120 中实现。\n* 更新 gptj 配置，由 @Dahoas 在 https:\u002F\u002Fgithub.com\u002FCarperAI\u002Ftrlx\u002Fpull\u002F109 中完成。\n* 分布式配置获取问题已修复，由 @reciprocated 在 https:\u002F\u002Fgithub.com\u002FCarperAI\u002Ftrlx\u002Fpull\u002F122 中解决。\n* 新增本地回放日志记录功能，由 @thomfoster 在 https:\u002F\u002Fgithub.com\u002FCarperAI\u002Ftrlx\u002Fpull\u002F124 中实现。\n* 增加对更多 `CausalLM` 模型的支持，由 @jon-tow 在 https:\u002F\u002Fgithub.com\u002FCarperAI\u002Ftrlx\u002Fpull\u002F103 中完成。\n* 为 `GPTNeo` 添加 Hydra 头部支持，由 @jon-tow 在 https:\u002F\u002Fgithub.com\u002FCarperAI\u002Ftrlx\u002Fpull\u002F126 中实现。\n* 为 `BloomModel` 添加 Hydra 支持，由 @jon-tow 在 https:\u002F\u002Fgithub.com\u002FCarperAI\u002Ftrlx\u002Fpull\u002F129 中完成。\n* 简化合并配置的逻辑，由 @leshanbog 在 https:\u002F\u002Fgithub.com\u002FCarperAI\u002Ftrlx\u002Fpull\u002F134 中实现。\n* 添加 AccelerateRLModel 的加载函数，由 @dongs0104 在 https:\u002F\u002Fgithub.com\u002FCarperAI\u002Ftrlx\u002Fpull\u002F136 中完成。\n* 添加 `OptimizerConf","2023-01-13T16:50:14",{"id":169,"version":170,"summary_zh":171,"released_at":172},171656,"v0.3","## 变更内容\n* 由 @reciprocated 在 https:\u002F\u002Fgithub.com\u002FCarperAI\u002Ftrlx\u002Fpull\u002F62 中下载 simulacra 模型\n* 由 @simoninithomas 在 https:\u002F\u002Fgithub.com\u002FCarperAI\u002Ftrlx\u002Fpull\u002F64 中更新文档（首次评审）\n* 由 @ayulockin 在 https:\u002F\u002Fgithub.com\u002FCarperAI\u002Ftrlx\u002Fpull\u002F70 中将 `ckpt\u002F` 添加到 `.gitignore`\n* 由 @cat-state 在 https:\u002F\u002Fgithub.com\u002FCarperAI\u002Ftrlx\u002Fpull\u002F73 中修改包版本以匹配库版本\n* 文档由 @shahbuland 在 https:\u002F\u002Fgithub.com\u002FCarperAI\u002Ftrlx\u002Fpull\u002F71 中完成\n* [修复] 由 @jon-tow 在 https:\u002F\u002Fgithub.com\u002FCarperAI\u002Ftrlx\u002Fpull\u002F77 中从 `ppo_gptj.yml` 中移除过时的选项\n* 由 @jon-tow 在 https:\u002F\u002Fgithub.com\u002FCarperAI\u002Ftrlx\u002Fpull\u002F78 中为 `wandb` 日志添加 `entity` 名称配置\n* 示例：基于知识的神经程序合成解释器 [开发中]，由 @reshinthadithyan 在 https:\u002F\u002Fgithub.com\u002FCarperAI\u002Ftrlx\u002Fpull\u002F81 中实现\n* 由 @jon-tow 在 https:\u002F\u002Fgithub.com\u002FCarperAI\u002Ftrlx\u002Fpull\u002F82 中更新 `TrainConfig` 中的优化器超参数\n* 由 @jon-tow 在 https:\u002F\u002Fgithub.com\u002FCarperAI\u002Ftrlx\u002Fpull\u002F84 中向贡献指南添加示例提示\n* 由 @reciprocated 在 https:\u002F\u002Fgithub.com\u002FCarperAI\u002Ftrlx\u002Fpull\u002F87 中修复管道上下文溢出问题\n* 由 @jon-tow 在 https:\u002F\u002Fgithub.com\u002FCarperAI\u002Ftrlx\u002Fpull\u002F88 中重构 PPO 目标函数\n* 由 @reciprocated 在 https:\u002F\u002Fgithub.com\u002FCarperAI\u002Ftrlx\u002Fpull\u002F91 中修复 ilql 评估速度慢的问题\n* 由 @cat-state 在 https:\u002F\u002Fgithub.com\u002FCarperAI\u002Ftrlx\u002Fpull\u002F92 中重新运行 https:\u002F\u002Fgithub.com\u002FCarperAI\u002Ftrlx\u002Fpull\u002F89\n* 使用 Ray Tune 和 Weights & Biases 进行超参数优化，由 @ayulockin 在 https:\u002F\u002Fgithub.com\u002FCarperAI\u002Ftrlx\u002Fpull\u002F76 中实现\n* 由 @reciprocated 在 https:\u002F\u002Fgithub.com\u002FCarperAI\u002Ftrlx\u002Fpull\u002F93 中更新 README 指令\n* 由 @ayulockin 在 https:\u002F\u002Fgithub.com\u002FCarperAI\u002Ftrlx\u002Fpull\u002F97 中更新 README，以确保术语使用正确\n* 由 @reciprocated 在 https:\u002F\u002Fgithub.com\u002FCarperAI\u002Ftrlx\u002Fpull\u002F95 中添加可选的奖励缩放功能\n* 由 @jon-tow 在 https:\u002F\u002Fgithub.com\u002FCarperAI\u002Ftrlx\u002Fpull\u002F100 中通过导入强制注册类\n* 由 @reciprocated 在 https:\u002F\u002Fgithub.com\u002FCarperAI\u002Ftrlx\u002Fpull\u002F98 中继续添加可选的归一化功能\n* 由 @reciprocated 在 https:\u002F\u002Fgithub.com\u002FCarperAI\u002Ftrlx\u002Fpull\u002F102 中重构 sweep 配置以便复用\n\n## 新贡献者\n* @simoninithomas 在 https:\u002F\u002Fgithub.com\u002FCarperAI\u002Ftrlx\u002Fpull\u002F64 中完成了首次贡献\n* @ayulockin 在 https:\u002F\u002Fgithub.com\u002FCarperAI\u002Ftrlx\u002Fpull\u002F70 中完成了首次贡献\n* @reshinthadithyan 在 https:\u002F\u002Fgithub.com\u002FCarperAI\u002Ftrlx\u002Fpull\u002F81 中完成了首次贡献\n\n**完整变更日志**：https:\u002F\u002Fgithub.com\u002FCarperAI\u002Ftrlx\u002Fcompare\u002Fv0.2...v0.3","2022-11-21T16:27:21",{"id":174,"version":175,"summary_zh":176,"released_at":177},171657,"v0.2","对我们初始版本的全面改版。\n\n新增功能：\n- Hydra 模型，在大规模场景下性能损失极小，速度比原生 PPO 快 20 倍。\n- 大幅重构的 API，减少了大量样板代码。\n- 支持保存和加载回调函数。\n- 极大地改进了编排器。\n- RL 代码注释更加完善，更易于理解代码逻辑。\n- 提供了一些酷炫的示例，包括 [architext](https:\u002F\u002Fgithub.com\u002FCarperAI\u002Ftrlx\u002Fblob\u002Fmaster\u002Fexamples\u002Farchitext.py) 和 [simulacra](https:\u002F\u002Fgithub.com\u002FCarperAI\u002Ftrlx\u002Fblob\u002Fmaster\u002Fexamples\u002Fsimulacra.py)。\n- 更好的可扩展性以及标准化的代码风格。\n\n即将推出的功能：\n- Megatron 支持！我们已经在开发中。\n- 更多与 TRLX 生产级应用场景相关的有趣示例。\n- 更好地集成 Weights & Biases，包括 sweep 功能。\n- 评估与基准测试。\n\n:)\n\n以下是自动生成的发布说明：\n\n## 变更内容\n* 修复 @mrm8488 在 https:\u002F\u002Fgithub.com\u002FCarperAI\u002Ftrlx\u002Fpull\u002F2 中的拼写错误。\n* @LouisCastricato 创建 LICENSE 文件，见 https:\u002F\u002Fgithub.com\u002FCarperAI\u002Ftrlx\u002Fpull\u002F3。\n* @LouisCastricato 进行 QOL 修复，见 https:\u002F\u002Fgithub.com\u002FCarperAI\u002Ftrlx\u002Fpull\u002F5。\n* @reciprocated 上线 ILQL，见 https:\u002F\u002Fgithub.com\u002FCarperAI\u002Ftrlx\u002Fpull\u002F6。\n* @LouisCastricato 为 PPO 编排器添加样式文件和奖励函数支持，见 https:\u002F\u002Fgithub.com\u002FCarperAI\u002Ftrlx\u002Fpull\u002F8。\n* @Dahoas 更新 PPO 的价值头并打印日志，见 https:\u002F\u002Fgithub.com\u002FCarperAI\u002Ftrlx\u002Fpull\u002F11。\n* @reciprocated 使 ILQL 遵循配置并移除正弦函数，见 https:\u002F\u002Fgithub.com\u002FCarperAI\u002Ftrlx\u002Fpull\u002F22。\n* @shahbuland 编写文档，见 https:\u002F\u002Fgithub.com\u002FCarperAI\u002Ftrlx\u002Fpull\u002F31。\n* @Dahoas 实现 Hydra 头部及自适应 KL，见 https:\u002F\u002Fgithub.com\u002FCarperAI\u002Ftrlx\u002Fpull\u002F33。\n* @cat-state 添加 pre-commit 并使用 `black` 格式化工具，见 https:\u002F\u002Fgithub.com\u002FCarperAI\u002Ftrlx\u002Fpull\u002F36。\n* [更新] @jon-tow 改进包的安装配置，见 https:\u002F\u002Fgithub.com\u002FCarperAI\u002Ftrlx\u002Fpull\u002F42。\n* @jon-tow 添加初始 issue 模板，见 https:\u002F\u002Fgithub.com\u002FCarperAI\u002Ftrlx\u002Fpull\u002F45。\n* @thedch 对 README 进行一些改进，见 https:\u002F\u002Fgithub.com\u002FCarperAI\u002Ftrlx\u002Fpull\u002F44。\n* @jon-tow 添加初始 GitHub 工作流，见 https:\u002F\u002Fgithub.com\u002FCarperAI\u002Ftrlx\u002Fpull\u002F43。\n* [文档] @jon-tow 添加 `CONTRIBUTING.md`，见 https:\u002F\u002Fgithub.com\u002FCarperAI\u002Ftrlx\u002Fpull\u002F52。\n* @reciprocated 简化 API，见 https:\u002F\u002Fgithub.com\u002FCarperAI\u002Ftrlx\u002Fpull\u002F24。\n\n## 新贡献者\n* @mrm8488 在 https:\u002F\u002Fgithub.com\u002FCarperAI\u002Ftrlx\u002Fpull\u002F2 中做出了首次贡献。\n* @LouisCastricato 在 https:\u002F\u002Fgithub.com\u002FCarperAI\u002Ftrlx\u002Fpull\u002F3 中做出了首次贡献。\n* @reciprocated 在 https:\u002F\u002Fgithub.com\u002FCarperAI\u002Ftrlx\u002Fpull\u002F6 中做出了首次贡献。\n* @Dahoas 在 https:\u002F\u002Fgithub.com\u002FCarperAI\u002Ftrlx\u002Fpull\u002F11 中做出了首次贡献。\n* @shahbuland 在 https:\u002F\u002Fgithub.com\u002FCarperAI\u002Ftrlx\u002Fpull\u002F31 中做出了首次贡献。\n* @cat-state 在 https:\u002F\u002Fgithub.com\u002FCarperAI\u002Ftrlx\u002Fpull\u002F36 中做出了首次贡献。\n* @jon-tow 在 https:\u002F\u002Fgithub.com\u002FCarperAI\u002Ftrlx\u002Fpull\u002F42 中做出了首次贡献。\n* @thedch 在 https:\u002F\u002Fgithub.com\u002FCarperAI\u002Ftrlx\u002Fpull\u002F44 中做出了首次贡献。","2022-10-21T22:20:39"]