[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"similar-KhoomeiK--LlamaGym":3,"tool-KhoomeiK--LlamaGym":64},[4,17,27,35,43,56],{"id":5,"name":6,"github_repo":7,"description_zh":8,"stars":9,"difficulty_score":10,"last_commit_at":11,"category_tags":12,"status":16},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,3,"2026-04-05T11:01:52",[13,14,15],"开发框架","图像","Agent","ready",{"id":18,"name":19,"github_repo":20,"description_zh":21,"stars":22,"difficulty_score":23,"last_commit_at":24,"category_tags":25,"status":16},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 真正成长为懂上",138956,2,"2026-04-05T11:33:21",[13,15,26],"语言模型",{"id":28,"name":29,"github_repo":30,"description_zh":31,"stars":32,"difficulty_score":23,"last_commit_at":33,"category_tags":34,"status":16},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 都能提供强大的支持。其独特的模块化架构允许社区不断扩展新功能，使其成为当前最灵活、生态最丰富的开源扩散模型工具之一，帮助用户将创意高效转化为现实。",107662,"2026-04-03T11:11:01",[13,14,15],{"id":36,"name":37,"github_repo":38,"description_zh":39,"stars":40,"difficulty_score":23,"last_commit_at":41,"category_tags":42,"status":16},3704,"NextChat","ChatGPTNextWeb\u002FNextChat","NextChat 是一款轻量且极速的 AI 助手，旨在为用户提供流畅、跨平台的大模型交互体验。它完美解决了用户在多设备间切换时难以保持对话连续性，以及面对众多 AI 模型不知如何统一管理的痛点。无论是日常办公、学习辅助还是创意激发，NextChat 都能让用户随时随地通过网页、iOS、Android、Windows、MacOS 或 Linux 端无缝接入智能服务。\n\n这款工具非常适合普通用户、学生、职场人士以及需要私有化部署的企业团队使用。对于开发者而言，它也提供了便捷的自托管方案，支持一键部署到 Vercel 或 Zeabur 等平台。\n\nNextChat 的核心亮点在于其广泛的模型兼容性，原生支持 Claude、DeepSeek、GPT-4 及 Gemini Pro 等主流大模型，让用户在一个界面即可自由切换不同 AI 能力。此外，它还率先支持 MCP（Model Context Protocol）协议，增强了上下文处理能力。针对企业用户，NextChat 提供专业版解决方案，具备品牌定制、细粒度权限控制、内部知识库整合及安全审计等功能，满足公司对数据隐私和个性化管理的高标准要求。",87618,"2026-04-05T07:20:52",[13,26],{"id":44,"name":45,"github_repo":46,"description_zh":47,"stars":48,"difficulty_score":23,"last_commit_at":49,"category_tags":50,"status":16},2268,"ML-For-Beginners","microsoft\u002FML-For-Beginners","ML-For-Beginners 是由微软推出的一套系统化机器学习入门课程，旨在帮助零基础用户轻松掌握经典机器学习知识。这套课程将学习路径规划为 12 周，包含 26 节精炼课程和 52 道配套测验，内容涵盖从基础概念到实际应用的完整流程，有效解决了初学者面对庞大知识体系时无从下手、缺乏结构化指导的痛点。\n\n无论是希望转型的开发者、需要补充算法背景的研究人员，还是对人工智能充满好奇的普通爱好者，都能从中受益。课程不仅提供了清晰的理论讲解，还强调动手实践，让用户在循序渐进中建立扎实的技能基础。其独特的亮点在于强大的多语言支持，通过自动化机制提供了包括简体中文在内的 50 多种语言版本，极大地降低了全球不同背景用户的学习门槛。此外，项目采用开源协作模式，社区活跃且内容持续更新，确保学习者能获取前沿且准确的技术资讯。如果你正寻找一条清晰、友好且专业的机器学习入门之路，ML-For-Beginners 将是理想的起点。",84991,"2026-04-05T10:45:23",[14,51,52,53,15,54,26,13,55],"数据工具","视频","插件","其他","音频",{"id":57,"name":58,"github_repo":59,"description_zh":60,"stars":61,"difficulty_score":10,"last_commit_at":62,"category_tags":63,"status":16},3128,"ragflow","infiniflow\u002Fragflow","RAGFlow 是一款领先的开源检索增强生成（RAG）引擎，旨在为大语言模型构建更精准、可靠的上下文层。它巧妙地将前沿的 RAG 技术与智能体（Agent）能力相结合，不仅支持从各类文档中高效提取知识，还能让模型基于这些知识进行逻辑推理和任务执行。\n\n在大模型应用中，幻觉问题和知识滞后是常见痛点。RAGFlow 通过深度解析复杂文档结构（如表格、图表及混合排版），显著提升了信息检索的准确度，从而有效减少模型“胡编乱造”的现象，确保回答既有据可依又具备时效性。其内置的智能体机制更进一步，使系统不仅能回答问题，还能自主规划步骤解决复杂问题。\n\n这款工具特别适合开发者、企业技术团队以及 AI 研究人员使用。无论是希望快速搭建私有知识库问答系统，还是致力于探索大模型在垂直领域落地的创新者，都能从中受益。RAGFlow 提供了可视化的工作流编排界面和灵活的 API 接口，既降低了非算法背景用户的上手门槛，也满足了专业开发者对系统深度定制的需求。作为基于 Apache 2.0 协议开源的项目，它正成为连接通用大模型与行业专有知识之间的重要桥梁。",77062,"2026-04-04T04:44:48",[15,14,13,26,54],{"id":65,"github_repo":66,"name":67,"description_en":68,"description_zh":69,"ai_summary_zh":69,"readme_en":70,"readme_zh":71,"quickstart_zh":72,"use_case_zh":73,"hero_image_url":74,"owner_login":75,"owner_name":76,"owner_avatar_url":77,"owner_bio":78,"owner_company":79,"owner_location":80,"owner_email":79,"owner_twitter":81,"owner_website":82,"owner_url":83,"languages":84,"stars":89,"forks":90,"last_commit_at":91,"license":92,"difficulty_score":10,"env_os":93,"env_gpu":94,"env_ram":95,"env_deps":96,"category_tags":103,"github_topics":79,"view_count":23,"oss_zip_url":79,"oss_zip_packed_at":79,"status":16,"created_at":104,"updated_at":105,"faqs":106,"releases":135},1395,"KhoomeiK\u002FLlamaGym","LlamaGym","Fine-tune LLM agents with online reinforcement learning","LlamaGym 是一个专为简化大语言模型（LLM）智能体训练而设计的开源框架，核心目标是让开发者能够轻松利用在线强化学习技术对模型进行微调。在传统强化学习中，智能体通过与环境互动并接收奖励信号来不断进化，但将这一机制应用于基于 LLM 的智能体时，往往需要处理复杂的对话上下文管理、批次控制及奖励分配等繁琐代码。LlamaGym 正是为了解决这一痛点而生，它封装了底层的复杂性，提供了一个简洁的抽象类接口。\n\n用户只需继承该基类并实现三个关键方法：定义系统提示词、格式化环境观测数据以及从模型回复中提取动作，即可快速构建适配任意 Gym 环境的智能体。随后，结合标准的强化学习循环调用相应接口，便能实现“观察 - 行动 - 奖励”的完整训练流程。该项目特别适合 AI 研究人员和希望探索大模型与强化学习结合的开发者，让他们能专注于提示词工程与超参数调整，而非底层架构搭建。虽然作为一个轻量级的周末项目，LlamaGym 在计算效率上可能不如大型工业级框架极致，但其极高的易用性和低门槛，使其成为快速验证想法和原型的理想选择。","\u003Cp align=\"center\">\n  \u003Cimg src=\"https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002FKhoomeiK_LlamaGym_readme_5dd091efbf29.png\" height=\"250\" alt=\"Llama Gym\" \u002F>\n\u003C\u002Fp>\n\u003Cp align=\"center\">\n  \u003Cem>Fine-tune LLM agents with online reinforcement learning\u003C\u002Fem>\n\u003C\u002Fp>\n\u003Cp align=\"center\">\n    \u003Ca href=\"https:\u002F\u002Fpypi.org\u002Fproject\u002Fllamagym\u002F\" target=\"_blank\">\n        \u003Cimg alt=\"Python\" src=\"https:\u002F\u002Fimg.shields.io\u002Fbadge\u002Fpython-3670A0?style=for-the-badge&logo=python&logoColor=ffdd54\" \u002F>\n        \u003Cimg alt=\"Version\" src=\"https:\u002F\u002Fimg.shields.io\u002Fpypi\u002Fv\u002Fllamagym?style=for-the-badge&color=3670A0\">\n    \u003C\u002Fa>\n\u003C\u002Fp>\n\u003Cp align=\"center\">\n\u003Ca href=\"https:\u002F\u002Freworkd.ai\u002F\">🔗 Agents for Web Data Extraction\u003C\u002Fa>\n\u003Cspan>&nbsp;&nbsp;•&nbsp;&nbsp;\u003C\u002Fspan>\n\u003Ca href=\"https:\u002F\u002Fx.com\u002Fkhoomeik\u002Fstatus\u002F1766805213644800011\">🐦 Twitter\u003C\u002Fa>\n\n\n# LlamaGym\n\"Agents\" originated in reinforcement learning, where they learn by interacting with an environment and receiving a reward signal. However, LLM-based agents today do not learn online (i.e. continuously in real time) via reinforcement.\n\nOpenAI created [Gym](https:\u002F\u002Fgithub.com\u002FFarama-Foundation\u002FGymnasium) to standardize and simplify RL environments, but if you try dropping an LLM-based agent into a Gym environment for training, you'd find it's still quite a bit of code to handle LLM conversation context, episode batches, reward assignment, PPO setup, and more.\n\nLlamaGym seeks to simplify fine-tuning LLM agents with RL. Right now, it's a single `Agent` abstract class that handles all the issues mentioned above, letting you quickly iterate and experiment with agent prompting & hyperparameters across any Gym environment.\n\n## Usage\nFine-tuning an LLM-based agent to play in a Gym-style environment with RL has never been easier! Once you install LlamaGym...\n```\npip install llamagym\n```\n\nFirst, implement 3 abstract methods on the Agent class:\n```python\nfrom llamagym import Agent\n\nclass BlackjackAgent(Agent):\n    def get_system_prompt(self) -> str:\n        return \"You are an expert blackjack player.\"\n\n    def format_observation(self, observation) -> str:\n        return f\"Your current total is {observation[0]}\"\n\n    def extract_action(self, response: str):\n        return 0 if \"stay\" in response else 1\n```\n\nThen, define your base LLM (as you would for any fine-tuning job) and instantiate your agent:\n```python\nmodel = AutoModelForCausalLMWithValueHead.from_pretrained(\"Llama-2-7b\").to(device)\ntokenizer = AutoTokenizer.from_pretrained(\"Llama-2-7b\")\nagent = BlackjackAgent(model, tokenizer, device)\n```\n\nFinally, write your RL loop as usual and simply call your agent to act, reward, and terminate:\n```python\nenv = gym.make(\"Blackjack-v1\")\n\nfor episode in trange(5000):\n    observation, info = env.reset()\n    done = False\n\n    while not done:\n        action = agent.act(observation) # act based on observation\n        observation, reward, terminated, truncated, info = env.step(action)\n        agent.assign_reward(reward) # provide reward to agent\n        done = terminated or truncated\n\n    train_stats = agent.terminate_episode() # trains if batch is full\n```\n\nSome reminders:\n- above code snippets are mildly simplified above but a fully working example is available in [`examples\u002Fblackjack.py`](https:\u002F\u002Fgithub.com\u002FKhoomeiK\u002FLlamaGym\u002Fblob\u002Fmain\u002Fexamples\u002Fblackjack.py)\n- getting online RL to converge is notoriously difficult so you'll have to mess with hyperparameters to see improvement\n  - your model may also benefit from a supervised fine-tuning stage on sampled trajectories before running RL (we may add this feature in the future)\n- our implementation values simplicity so is not as compute efficient as e.g. [Lamorel](https:\u002F\u002Fgithub.com\u002Fflowersteam\u002Flamorel), but easier to start playing around with\n- LlamaGym is a weekend project and still a WIP, but we love contributions!\n\n## Relevant Work\n- [Grounding Large Language Models with Online Reinforcement Learning](https:\u002F\u002Fgithub.com\u002Fflowersteam\u002FGrounding_LLMs_with_online_RL)\n  - [Lamorel: Language Models for Reinforcement Learning](https:\u002F\u002Fgithub.com\u002Fflowersteam\u002Flamorel)\n- [True Knowledge Comes from Practice: Aligning LLMs with Embodied Environments via Reinforcement Learning](https:\u002F\u002Fgithub.com\u002FWeihaoTan\u002FTWOSOME)\n\n## Citation\n```\nbibtex\n@misc{pandey2024llamagym,\n  title        = {LlamaGym: Fine-tune LLM agents with Online Reinforcement Learning},\n  author       = {Rohan Pandey},\n  year         = {2024},\n  howpublished = {GitHub},\n  url          = {https:\u002F\u002Fgithub.com\u002FKhoomeiK\u002FLlamaGym}\n}\n```\n","\u003Cp align=\"center\">\n  \u003Cimg src=\"https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002FKhoomeiK_LlamaGym_readme_5dd091efbf29.png\" height=\"250\" alt=\"Llama Gym\" \u002F>\n\u003C\u002Fp>\n\u003Cp align=\"center\">\n  \u003Cem>利用在线强化学习对大语言模型代理进行微调\u003C\u002Fem>\n\u003C\u002Fp>\n\u003Cp align=\"center\">\n    \u003Ca href=\"https:\u002F\u002Fpypi.org\u002Fproject\u002Fllamagym\u002F\" target=\"_blank\">\n        \u003Cimg alt=\"Python\" src=\"https:\u002F\u002Fimg.shields.io\u002Fbadge\u002Fpython-3670A0?style=for-the-badge&logo=python&logoColor=ffdd54\" \u002F>\n        \u003Cimg alt=\"版本\" src=\"https:\u002F\u002Fimg.shields.io\u002Fpypi\u002Fv\u002Fllamagym?style=for-the-badge&color=3670A0\">\n    \u003C\u002Fa>\n\u003C\u002Fp>\n\u003Cp align=\"center\">\n\u003Ca href=\"https:\u002F\u002Freworkd.ai\u002F\">🔗 用于网页数据提取的代理\u003C\u002Fa>\n\u003Cspan>&nbsp;&nbsp;•&nbsp;&nbsp;\u003C\u002Fspan>\n\u003Ca href=\"https:\u002F\u002Fx.com\u002Fkhoomeik\u002Fstatus\u002F1766805213644800011\">🐦 推特\u003C\u002Fa>\n\n\n# LlamaGym\n“代理”一词最早源于强化学习，其通过与环境互动并接收奖励信号来学习。然而，如今基于大语言模型的代理并不能通过强化学习实现在线学习（即实时持续学习）。\n\nOpenAI 创建了 [Gym](https:\u002F\u002Fgithub.com\u002FFarama-Foundation\u002FGymnasium) 以标准化并简化强化学习环境，但如果你尝试将基于大语言模型的代理放入 Gym 环境中进行训练，就会发现，要处理大语言模型的对话上下文、情节批次、奖励分配、PPO 设置等，仍然需要编写相当多的代码。\n\nLlamaGym 旨在通过强化学习简化大语言模型代理的微调过程。目前，它仅提供一个名为 `Agent` 的抽象类，负责处理上述所有问题，让你能够快速迭代并试验各种代理提示和超参数，适用于任意 Gym 环境。\n\n## 使用方法\n将大语言模型代理微调至 Gym 风格的环境中，并借助强化学习，从未如此简单！一旦你安装了 LlamaGym……\n```\npip install llamagym\n```\n\n首先，在 Agent 类中实现 3 个抽象方法：\n```python\nfrom llamagym import Agent\n\nclass BlackjackAgent(Agent):\n    def get_system_prompt(self) -> str:\n        return \"你是一位经验丰富的二十一点玩家。\"\n\n    def format_observation(self, observation) -> str:\n        return f\"你的当前总金额为 {observation[0]}\"\n\n    def extract_action(self, response: str):\n        return 0 if \"stay\" in response else 1\n```\n\n然后，定义你的基础大语言模型（就像在任何微调任务中一样），并实例化你的代理：\n```python\nmodel = AutoModelForCausalLMWithValueHead.from_pretrained(\"Llama-2-7b\").to(device)\ntokenizer = AutoTokenizer.from_pretrained(\"Llama-2-7b\")\nagent = BlackjackAgent(model, tokenizer, device)\n```\n\n最后，按照常规方式编写你的强化学习循环，并只需调用代理执行动作、获取奖励并完成训练：\n```python\nenv = gym.make(\"Blackjack-v1\")\n\nfor episode in trange(5000):\n    observation, info = env.reset()\n    done = False\n\n    while not done:\n        action = agent.act(observation) # 根据观察结果采取行动\n        observation, reward, terminated, truncated, info = env.step(action)\n        agent.assign_reward(reward) # 向代理提供奖励\n        done = terminated or truncated\n\n    train_stats = agent.terminate_episode() # 如果整个批次已完成，则进行训练\n```\n\n一些注意事项：\n- 上述代码片段虽经过了略微简化，但完整的运行示例可在此处找到：[`examples\u002Fblackjack.py`](https:\u002F\u002Fgithub.com\u002FKhoomeiK\u002FLlamaGym\u002Fblob\u002Fmain\u002Fexamples\u002Fblackjack.py)\n- 要让在线强化学习收敛，往往难度极高，因此你可能需要反复调整超参数，才能看到显著的改进。\n- 你的模型在运行强化学习之前，或许还可以先通过监督微调阶段，对采样轨迹进行优化（我们未来可能会加入这一功能）。\n- 我们的实现注重简洁性，因此计算效率不如例如 [Lamorel](https:\u002F\u002Fgithub.com\u002Fflowersteam\u002Flamorel) 这样的工具，但更易于入门和实验。\n- LlamaGym 是一个周末项目，目前仍处于开发中，但我们非常欢迎各位的贡献！\n\n## 相关工作\n- [利用在线强化学习为大型语言模型赋能](https:\u002F\u002Fgithub.com\u002Fflowersteam\u002FGrounding_LLMs_with_online_RL)\n  - [Lamorel：面向强化学习的语言模型](https:\u002F\u002Fgithub.com\u002Fflowersteam\u002Flamorel)\n- [真知源自实践：通过强化学习使大语言模型与现实环境相契合](https:\u002F\u002Fgithub.com\u002FWeihaoTan\u002FTWOSOME)\n\n## 引用格式\n```\nbibtex\n@misc{pandey2024llamagym,\n  title        = {LlamaGym：利用在线强化学习对大语言模型代理进行微调},\n  author       = {Rohan Pandey},\n  year         = {2024},\n  howpublished = {GitHub},\n  url          = {https:\u002F\u002Fgithub.com\u002FKhoomeiK\u002FLlamaGym}\n}\n```","# LlamaGym 快速上手指南\n\nLlamaGym 是一个旨在简化使用在线强化学习（Online RL）微调大语言模型（LLM）智能体的开源工具。它通过一个抽象的 `Agent` 类，自动处理对话上下文、回合批次管理、奖励分配及 PPO 设置等复杂逻辑，让开发者能专注于智能体的提示词设计与超参数调整。\n\n## 环境准备\n\n在开始之前，请确保您的开发环境满足以下要求：\n\n*   **操作系统**：Linux 或 macOS（Windows 用户建议使用 WSL2）。\n*   **Python 版本**：3.8 及以上。\n*   **硬件要求**：推荐配备 NVIDIA GPU 以加速训练过程（CPU 亦可运行但速度较慢）。\n*   **前置依赖**：\n    *   `gymnasium` (或 `gym`)：用于提供强化学习环境。\n    *   `transformers` & `trl`：用于加载模型和执行强化学习算法（LlamaGym 安装时会自动处理大部分依赖）。\n\n> **国内加速建议**：\n> 如果遇到 PyPI 源下载缓慢的问题，建议使用清华或阿里镜像源进行安装：\n> ```bash\n> pip install -i https:\u002F\u002Fpypi.tuna.tsinghua.edu.cn\u002Fsimple llamagym\n> ```\n> 模型下载若受阻，可配置 `HF_ENDPOINT` 环境变量使用 Hugging Face 中国镜像：\n> ```bash\n> export HF_ENDPOINT=https:\u002F\u002Fhf-mirror.com\n> ```\n\n## 安装步骤\n\n通过 pip 直接安装 LlamaGym：\n\n```bash\npip install llamagym\n```\n\n如需安装包含额外开发依赖的版本：\n\n```bash\npip install llamagym[dev]\n```\n\n## 基本使用\n\n使用 LlamaGym 的核心流程分为三步：定义智能体类、加载模型、运行强化学习循环。以下以经典的 Blackjack（21 点）游戏为例：\n\n### 1. 定义智能体类\n\n继承 `Agent` 类并实现三个核心抽象方法，用于定义系统提示、观测值格式化以及动作提取：\n\n```python\nfrom llamagym import Agent\n\nclass BlackjackAgent(Agent):\n    def get_system_prompt(self) -> str:\n        return \"You are an expert blackjack player.\"\n\n    def format_observation(self, observation) -> str:\n        # 将环境观测值转换为 LLM 可理解的文本\n        return f\"Your current total is {observation[0]}\"\n\n    def extract_action(self, response: str):\n        # 从 LLM 的回复中解析出具体的动作 ID\n        return 0 if \"stay\" in response else 1\n```\n\n### 2. 加载模型并实例化智能体\n\n加载预训练的基础模型（如 Llama-2），并将其注入到智能体中：\n\n```python\nfrom transformers import AutoModelForCausalLMWithValueHead, AutoTokenizer\nimport torch\n\ndevice = \"cuda\" if torch.cuda.is_available() else \"cpu\"\n\n# 加载带有价值头的模型 (PPO 所需)\nmodel = AutoModelForCausalLMWithValueHead.from_pretrained(\"Llama-2-7b\").to(device)\ntokenizer = AutoTokenizer.from_pretrained(\"Llama-2-7b\")\n\n# 实例化智能体\nagent = BlackjackAgent(model, tokenizer, device)\n```\n\n### 3. 运行强化学习循环\n\n创建 Gym 环境，并在标准的 RL 循环中调用智能体的方法来进行交互、奖励分配和训练更新：\n\n```python\nimport gymnasium as gym\nfrom tqdm import trange\n\nenv = gym.make(\"Blackjack-v1\")\n\nfor episode in trange(5000):\n    observation, info = env.reset()\n    done = False\n\n    while not done:\n        # 智能体根据观测值采取行动\n        action = agent.act(observation)\n        \n        # 环境执行动作并返回结果\n        observation, reward, terminated, truncated, info = env.step(action)\n        \n        # 将奖励反馈给智能体\n        agent.assign_reward(reward)\n        \n        done = terminated or truncated\n\n    # 回合结束，若批次已满则触发训练\n    train_stats = agent.terminate_episode()\n```\n\n> **注意**：\n> * 完整可运行的示例代码请参考 [`examples\u002Fblackjack.py`](https:\u002F\u002Fgithub.com\u002FKhoomeiK\u002FLlamaGym\u002Fblob\u002Fmain\u002Fexamples\u002Fblackjack.py)。\n> * 在线强化学习收敛难度较大，初次尝试时请务必调整超参数以获得最佳效果。\n> * 建议在正式运行 RL 前，先对模型进行基于采样轨迹的监督微调（SFT），这通常能提升稳定性。","某初创团队正致力于开发一个能根据实时股市数据自动执行交易策略的 AI 代理，希望其能通过不断试错在模拟环境中自我进化。\n\n### 没有 LlamaGym 时\n- 开发者需手动编写大量样板代码来处理 LLM 的对话上下文记忆，确保代理能记住之前的市场状态和操作。\n- 构建在线强化学习循环极其繁琐，需要自行协调环境交互、奖励信号分配以及 PPO 算法的复杂配置。\n- 每次调整提示词（Prompt）或超参数时，都要重构底层训练逻辑，导致实验迭代周期长达数天。\n- 难以将标准的 Gym 环境直接适配到 LLM 架构上，大部分时间浪费在环境接口转换而非策略优化上。\n\n### 使用 LlamaGym 后\n- 只需继承 `Agent` 类并实现三个简单方法，LlamaGym 自动接管上下文管理与批次处理，代码量减少 80%。\n- 内置标准化的 RL 循环接口，开发者仅需调用 `act`、`assign_reward` 和 `terminate_episode` 即可完成完整的在线训练流程。\n- 提示词与超参数的修改变得像更换插件一样简单，团队能在几小时内完成多轮策略验证与迭代。\n- 无缝对接任意 Gym 风格环境（如股票模拟盘），让团队能立即专注于设计更精准的市场奖励函数。\n\nLlamaGym 通过屏蔽底层强化学习的工程复杂度，让开发者能像搭积木一样快速构建并训练具备持续进化能力的 LLM 智能代理。","https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002FKhoomeiK_LlamaGym_5dd091ef.png","KhoomeiK","Rohan Pandey","https:\u002F\u002Foss.gittoolsai.com\u002Favatars\u002FKhoomeiK_8e30d531.png","prev research @ OpenAI",null,"San Francisco","khoomeik","https:\u002F\u002Frpandey.tech","https:\u002F\u002Fgithub.com\u002FKhoomeiK",[85],{"name":86,"color":87,"percentage":88},"Python","#3572A5",100,1250,63,"2026-04-01T06:33:08","MIT","","未说明（需运行 LLM 微调，隐含需要支持 CUDA 的 GPU）","未说明",{"notes":97,"python":95,"dependencies":98},"该项目是一个正在进行中的周末项目（WIP）。代码示例基于 Llama-2-7b 模型，实际运行需要自行配置对应的预训练模型和分词器。在线强化学习收敛困难，可能需要调整超参数或先进行监督微调。相比其他实现（如 Lamorel），本项目更注重简单性而非计算效率。",[99,100,101,102],"llamagym","gymnasium","transformers","torch",[26,13,15],"2026-03-27T02:49:30.150509","2026-04-06T07:14:51.288232",[107,112,117,122,127,131],{"id":108,"question_zh":109,"answer_zh":110,"source_url":111},6404,"导入 LlamaGym 时出现 'ImportError: cannot import name top_k_top_p_filtering' 错误怎么办？","这通常是由于 `transformers` 库的版本不兼容导致的。解决方法如下：\n1. 安装必要的构建依赖：`sudo apt install build-essential libffi-dev`\n2. 严格按照项目 `pyproject.toml` 文件中指定的版本安装依赖，推荐的关键版本包括：\n   - python = \"^3.9\"\n   - torch = \"^2.1.2\"\n   - transformers = \"^4.36.2\"\n   - trl = \"^0.7.9\"\n   - gymnasium = \"^0.29.1\"\n   - peft = \"^0.7.1\"\n   - accelerate = \"^0.21.0\"\n   - bitsandbytes = \"^0.40.0\"\n建议使用 Poetry 并配合提供的 `pyproject.toml` 文件进行环境管理以避免此类问题。","https:\u002F\u002Fgithub.com\u002FKhoomeiK\u002FLlamaGym\u002Fissues\u002F9",{"id":113,"question_zh":114,"answer_zh":115,"source_url":116},6405,"运行示例代码时遇到显存不足（OOM）错误，如何解决？","可以通过配置 4-bit 量化来降低显存需求。在初始化模型配置时，添加以下 `quantization_config` 参数：\n```python\nquantization_config=BitsAndBytesConfig(\n    load_in_4bit=True,\n    bnb_4bit_quant_type='nf4',\n    bnb_4bit_compute_dtype=torch.bfloat16,\n    bnb_4bit_use_double_quant=True,\n)\n```\n这将使模型以 4-bit 精度加载，显著减少显存占用。","https:\u002F\u002Fgithub.com\u002FKhoomeiK\u002FLlamaGym\u002Fissues\u002F7",{"id":118,"question_zh":119,"answer_zh":120,"source_url":121},6406,"LlamaGym 与 TWOSOME 相比，训练速度如何？","虽然未对 TWOSOME 进行详细对比，但 LlamaGym 的设计目标是作为一个极简、快速搭建且易于理解的框架，用于介绍如何使用 LLM 代理进行在线强化学习实验。如果您需要在分布式计算环境中训练大型模型，其他框架（如 Lamorel）可能在效率和速度上更具优势，但 LlamaGym 更适合快速上手和实验。","https:\u002F\u002Fgithub.com\u002FKhoomeiK\u002FLlamaGym\u002Fissues\u002F4",{"id":123,"question_zh":124,"answer_zh":125,"source_url":126},6407,"LlamaGym 支持哪些模型？是否仅靠 CPU 就能运行？","根据现有讨论，该项目主要设计用于结合 GPU 进行强化学习训练，特别是配合 `bitsandbytes` 进行量化加载时。虽然具体支持的模型列表未在 Issue 中详述，但其依赖项（如 `torch`, `transformers`, `peft`）表明它支持 Hugging Face 生态中的主流 LLM（如 Llama 系列）。由于涉及大规模矩阵运算和 PPO 训练，仅靠 CPU 运行通常不可行或效率极低，建议使用具备 CUDA 支持的 GPU。","https:\u002F\u002Fgithub.com\u002FKhoomeiK\u002FLlamaGym\u002Fissues\u002F8",{"id":128,"question_zh":129,"answer_zh":130,"source_url":116},6408,"运行示例时出现关于 `device_map` 和 `load_in_4bit` 弃用的警告，该如何处理？","这些警告提示旧的参数用法即将被移除。解决方法是不要直接传递 `load_in_4bit` 或 `load_in_8bit` 参数，而是创建一个 `BitsAndBytesConfig` 对象并将其传递给 `quantization_config` 参数。同时，如果需要指定设备映射，应显式提供 `device_map` 参数，否则库会自动将模型加载到当前设备。参考配置代码：\n```python\nfrom transformers import BitsAndBytesConfig\nimport torch\n\nconfig = BitsAndBytesConfig(\n    load_in_4bit=True,\n    bnb_4bit_quant_type='nf4',\n    bnb_4bit_compute_dtype=torch.bfloat16,\n    bnb_4bit_use_double_quant=True,\n)\n# 在加载模型时使用 quantization_config=config\n```",{"id":132,"question_zh":133,"answer_zh":134,"source_url":111},6409,"如何正确安装 LlamaGym 以避免依赖冲突？","最可靠的方法是使用 Poetry 并严格遵循项目根目录下的 `pyproject.toml` 文件。该文件锁定了所有关键依赖的版本（如 transformers 4.36.2, trl 0.7.9 等），能有效避免因版本不匹配导致的导入错误（如 `top_k_top_p_filtering` 缺失）。如果必须使用 pip，请手动指定与 `pyproject.toml` 中完全一致的版本号进行安装。",[]]