pytorch_active_learning

GitHub
985 182 简单 1 次阅读 昨天MIT开发框架数据工具
AI 解读 由 AI 自动生成,仅供参考

pytorch_active_learning 是一个基于 PyTorch 构建的开源库,专为“人机协同机器学习”场景设计,旨在帮助开发者高效实施主动学习(Active Learning)策略。在机器学习中,标注数据往往成本高昂且耗时,该工具通过智能算法自动筛选出对模型提升最有价值的数据样本(如模型最不确定的样本、异常值或最具代表性的样本),从而让用户只需标注少量关键数据即可训练出高性能模型,显著降低数据标注成本并避免样本偏差。

这款工具非常适合人工智能开发者、数据科学家以及研究人员使用,尤其是那些正在处理计算机视觉或自然语言处理任务,并希望优化数据标注流程的团队。其核心亮点在于内置了丰富的采样算法,包括最低置信度采样、熵采样、基于聚类的采样以及自适应代表采样(ATLAS)等,既支持独立使用,也能灵活组合以适应不同业务需求。此外,代码库配套了完整的实战示例,用户可以直接运行脚本体验从随机标注到主动学习介入的全过程,直观观察模型准确率随迭代提升的效果。作为《人机协同机器学习》一书的官方配套代码,pytorch_active_learning 提供了 Stand-alone 的模块化设计,便于集成到现有的 PyTorch 工作流中,是探索高效数据标注策略的理想起点。

使用场景

某初创医疗科技公司正致力于构建一个罕见皮肤病变图像分类系统,但面临专业医生标注时间昂贵且初期正样本极少的困境。

没有 pytorch_active_learning 时

  • 标注资源浪费严重:团队采用随机采样策略,导致医生花费大量时间标注大量模型早已能准确判断的常见良性病变,效率极低。
  • 关键样本遗漏:由于罕见病变在数据集中占比不足 1%,随机抽样很难覆盖到这些对模型训练至关重要的“边缘案例”,导致模型长期无法识别重症。
  • 迭代周期漫长:每次重新训练都需要等待大批量人工标注完成,无法根据模型当前的困惑点动态调整标注优先级,项目上线被迫推迟数月。
  • 数据分布偏差:缺乏多样性采样机制,收集到的数据集中在某些特定拍摄角度或肤色类型,导致模型在实际复杂场景中泛化能力差。

使用 pytorch_active_learning 后

  • 智能聚焦疑难样本:利用熵采样(Entropy)和置信度边界(Margin of Confidence)策略,系统自动筛选出模型最“犹豫”的图像优先送审,医生标注效率提升 3 倍。
  • 主动挖掘稀有病例:通过基于模型的异常值采样(Model-based outlier sampling),主动从海量未标注数据中揪出罕见的恶性病变特征,显著加速了模型对重症的学习。
  • 人机闭环快速迭代:每完成一小批标注,模型即刻重训并更新下一轮采样策略,实现了“标注 - 训练 - 优化”的分钟级闭环,大幅缩短研发周期。
  • 保障数据多样性:结合聚类采样(Cluster-based sampling)和代表性采样,确保入选标注的数据覆盖不同光照、角度和人群,有效消除了模型偏见。

pytorch_active_learning 通过将“被动等待标注”转变为“主动引导标注”,用最少的人工成本解决了数据稀缺与分布不均的核心难题。

运行环境要求

操作系统
  • Linux
  • macOS
  • Windows
GPU

非必需(支持 CPU 和 GPU),若使用 GPU 需配合 CUDA 9.0(基于文中提供的 conda 安装命令推断)

内存

未说明

依赖
notes建议使用 conda 而非 pip 安装 PyTorch 以确保兼容性。在 macOS 上需确认默认 Python 版本为 3.6 或更高(系统默认为 2.7)。代码目前基于 2019 年 6 月的指令,若安装失败请参考 PyTorch 官网最新指南。数据集来自 Kaggle 的'Million News Headlines',主要为澳大利亚英语新闻标题。
python3.6+
torch
torchvision
pytorch_active_learning hero image

快速开始

PyTorch 主动学习

用于常见主动学习方法的库,配套书籍:
《人机协作机器学习》
罗伯特·蒙纳克 著
Manning 出版社
https://www.manning.com/books/human-in-the-loop-machine-learning

该代码为独立运行版本,可与本书配合使用。

库中包含的主动学习方法

目前代码包含以下方法:

  • 最小置信度采样
  • 置信度间隔采样
  • 置信度比值采样
  • 熵(分类熵)
  • 基于模型的异常点采样
  • 基于聚类的采样
  • 代表性采样
  • 自适应代表性采样
  • 面向不确定性采样的主动迁移学习
  • 面向代表性采样的主动迁移学习
  • 面向自适应采样的主动迁移学习(ATLAS)

书中详细介绍了如何单独使用这些方法、组合使用它们,以及在计算机视觉和自然语言处理领域中的不同应用场景。此外,还探讨了如何通过采样策略实现真实世界的多样性,从而避免偏差。

安装:

如果您克隆此仓库并已安装 PyTorch,则应能立即开始使用:

git clone https://github.com/rmunro/pytorch_active_learning

cd pytorch_active_learning

运行第2章:人机协作机器学习入门

python active_learning_basics.py

运行程序时,系统会提示您将新闻标题分类为与灾害相关或不相关。同时,系统还会提供“与灾害相关”的精确定义供您参考。您也可以在代码中的 detailed_instructions 变量中查看这些定义:https://github.com/rmunro/pytorch_active_learning/blob/master/active_learning_basics.py

在完成足够多的数据标注以进行评估并开始训练后,您会发现机器学习模型会在每次标注迭代后进行训练,并以 F1 分数和 AUC 值报告在保留验证集上的准确率。

初始训练阶段仅基于随机选择的数据,随后主动学习机制将开始发挥作用,寻找模型难以区分或具有新颖特征的未标注样本。这一过程也会体现在标注过程中:最初与灾害相关的标题非常稀少,但经过几次迭代后,其占比应逐渐上升至约 40%。

运行第4章:多样性采样

python diversity_sampling.py

本示例基于前面的数据集。请参阅相应章节,了解可用于执行不同类型多样性采样的功能标志,例如基于模型的异常点采样、聚类采样和代表性采样。

系统要求:

代码假设您使用的是 Python 3.6 或更高版本。

如果您确实需要在 Python 2.* 上运行,请告知我:PyTorch 和主动学习算法本身 应该 兼容 2.* 版本,只需修改 Python 获取命令行输入的方式即可(Python 2.* 仅接受整数输入)。如果需求足够多,我会尝试更新代码以兼容更早版本的 Python!

安装 PyTorch:

AWS

建议使用 AWS 的深度学习 AMI,因为其中已预装 PyTorch,可通过以下命令激活:
source activate pytorch_p36
这样您就可以立即运行程序了。

有关在 AWS 上使用 PyTorch 的更多信息,请参阅:
https://docs.aws.amazon.com/dlami/latest/devguide/tutorial-pytorch.html

Google Cloud

建议使用 Google Cloud 上的 PyTorch 镜像作为深度学习虚拟机,因为其中已预装 PyTorch。CPU 和 GPU 均可正常工作: pytorch-latest-cpu

pytorch-latest-gpu

有关在 Google Cloud 上使用 PyTorch 的更多信息,请参阅:
https://cloud.google.com/deep-learning-vm/docs/images

Microsoft Azure

建议使用 Microsoft Azure 上的预配置数据科学虚拟机:
https://azure.microsoft.com/en-us/develop/pytorch/ Azure Notebook 选项也可能是一个不错的选择,但我尚未测试过;如果您试用过,请告知我!

Linux / Mac / Windows

如果您是在本地或云服务器上安装,且未预装 PyTorch,可以使用以下方法:

Mac:
conda install pytorch torchvision -c pytorch

Linux/Windows:
conda install pytorch torchvision cudatoolkit=9.0 -c pytorch

以上本地安装说明截至 2019 年 6 月。PyTorch 经常更新快速入门指南,因此如果这些命令因某种原因无法正常工作,建议直接访问官方文档。请参阅:
https://pytorch.org/

Mac 用户还应确保使用 Python 3.6 或更高版本,因为 Mac 默认仍搭载 Python 2.7。如确需支持 Python 2.7,请参阅上述相关内容。

对于使用 pip 的用户,也可以尝试通过以下命令安装 PyTorch: pip3 install torchpip3 install torch 不过,具体能否成功取决于各类库的版本以及您的操作系统,因此 PyTorch 官网推荐优先使用 conda 而不是 pip。

数据来源

目前使用的数据来自 Kaggle 上发布的“百万新闻标题”数据集:
https://www.kaggle.com/therohk/million-headlines
该数据来源于澳大利亚 ABC 新闻机构的新闻标题。这些标题采用澳式英语,与英式英语更为接近,而与美式英语则存在细微差异;总体而言,澳式英语词汇是英式和美式英语的子集,仅在少数单词的含义上有所不同,这些含义在英美两国并不常见。

不过,我计划尽快更换数据集。当前数据集中的标题均为小写,且仅保留 a-z 和 0-9 字符,去除了标点符号、带重音的字符等。此外,许多标题似乎也被截断了。因此,我将用更贴近真实新闻标题的数据集来替换现有数据。

尽管如此,该数据集完全足以满足本代码的学习需求——只是由此生成的标注和模型在实际应用中的实用性会相对较低。

常见问题

相似工具推荐

openclaw

OpenClaw 是一款专为个人打造的本地化 AI 助手,旨在让你在自己的设备上拥有完全可控的智能伙伴。它打破了传统 AI 助手局限于特定网页或应用的束缚,能够直接接入你日常使用的各类通讯渠道,包括微信、WhatsApp、Telegram、Discord、iMessage 等数十种平台。无论你在哪个聊天软件中发送消息,OpenClaw 都能即时响应,甚至支持在 macOS、iOS 和 Android 设备上进行语音交互,并提供实时的画布渲染功能供你操控。 这款工具主要解决了用户对数据隐私、响应速度以及“始终在线”体验的需求。通过将 AI 部署在本地,用户无需依赖云端服务即可享受快速、私密的智能辅助,真正实现了“你的数据,你做主”。其独特的技术亮点在于强大的网关架构,将控制平面与核心助手分离,确保跨平台通信的流畅性与扩展性。 OpenClaw 非常适合希望构建个性化工作流的技术爱好者、开发者,以及注重隐私保护且不愿被单一生态绑定的普通用户。只要具备基础的终端操作能力(支持 macOS、Linux 及 Windows WSL2),即可通过简单的命令行引导完成部署。如果你渴望拥有一个懂你

349.3k|★★★☆☆|1周前
Agent开发框架图像

stable-diffusion-webui

stable-diffusion-webui 是一个基于 Gradio 构建的网页版操作界面,旨在让用户能够轻松地在本地运行和使用强大的 Stable Diffusion 图像生成模型。它解决了原始模型依赖命令行、操作门槛高且功能分散的痛点,将复杂的 AI 绘图流程整合进一个直观易用的图形化平台。 无论是希望快速上手的普通创作者、需要精细控制画面细节的设计师,还是想要深入探索模型潜力的开发者与研究人员,都能从中获益。其核心亮点在于极高的功能丰富度:不仅支持文生图、图生图、局部重绘(Inpainting)和外绘(Outpainting)等基础模式,还独创了注意力机制调整、提示词矩阵、负向提示词以及“高清修复”等高级功能。此外,它内置了 GFPGAN 和 CodeFormer 等人脸修复工具,支持多种神经网络放大算法,并允许用户通过插件系统无限扩展能力。即使是显存有限的设备,stable-diffusion-webui 也提供了相应的优化选项,让高质量的 AI 艺术创作变得触手可及。

162.1k|★★★☆☆|1周前
开发框架图像Agent

everything-claude-code

everything-claude-code 是一套专为 AI 编程助手(如 Claude Code、Codex、Cursor 等)打造的高性能优化系统。它不仅仅是一组配置文件,而是一个经过长期实战打磨的完整框架,旨在解决 AI 代理在实际开发中面临的效率低下、记忆丢失、安全隐患及缺乏持续学习能力等核心痛点。 通过引入技能模块化、直觉增强、记忆持久化机制以及内置的安全扫描功能,everything-claude-code 能显著提升 AI 在复杂任务中的表现,帮助开发者构建更稳定、更智能的生产级 AI 代理。其独特的“研究优先”开发理念和针对 Token 消耗的优化策略,使得模型响应更快、成本更低,同时有效防御潜在的攻击向量。 这套工具特别适合软件开发者、AI 研究人员以及希望深度定制 AI 工作流的技术团队使用。无论您是在构建大型代码库,还是需要 AI 协助进行安全审计与自动化测试,everything-claude-code 都能提供强大的底层支持。作为一个曾荣获 Anthropic 黑客大奖的开源项目,它融合了多语言支持与丰富的实战钩子(hooks),让 AI 真正成长为懂上

155.4k|★★☆☆☆|今天
开发框架Agent语言模型

ComfyUI

ComfyUI 是一款功能强大且高度模块化的视觉 AI 引擎,专为设计和执行复杂的 Stable Diffusion 图像生成流程而打造。它摒弃了传统的代码编写模式,采用直观的节点式流程图界面,让用户通过连接不同的功能模块即可构建个性化的生成管线。 这一设计巧妙解决了高级 AI 绘图工作流配置复杂、灵活性不足的痛点。用户无需具备编程背景,也能自由组合模型、调整参数并实时预览效果,轻松实现从基础文生图到多步骤高清修复等各类复杂任务。ComfyUI 拥有极佳的兼容性,不仅支持 Windows、macOS 和 Linux 全平台,还广泛适配 NVIDIA、AMD、Intel 及苹果 Silicon 等多种硬件架构,并率先支持 SDXL、Flux、SD3 等前沿模型。 无论是希望深入探索算法潜力的研究人员和开发者,还是追求极致创作自由度的设计师与资深 AI 绘画爱好者,ComfyUI 都能提供强大的支持。其独特的模块化架构允许社区不断扩展新功能,使其成为当前最灵活、生态最丰富的开源扩散模型工具之一,帮助用户将创意高效转化为现实。

108.3k|★★☆☆☆|4天前
开发框架图像Agent

gemini-cli

gemini-cli 是一款由谷歌推出的开源 AI 命令行工具,它将强大的 Gemini 大模型能力直接集成到用户的终端环境中。对于习惯在命令行工作的开发者而言,它提供了一条从输入提示词到获取模型响应的最短路径,无需切换窗口即可享受智能辅助。 这款工具主要解决了开发过程中频繁上下文切换的痛点,让用户能在熟悉的终端界面内直接完成代码理解、生成、调试以及自动化运维任务。无论是查询大型代码库、根据草图生成应用,还是执行复杂的 Git 操作,gemini-cli 都能通过自然语言指令高效处理。 它特别适合广大软件工程师、DevOps 人员及技术研究人员使用。其核心亮点包括支持高达 100 万 token 的超长上下文窗口,具备出色的逻辑推理能力;内置 Google 搜索、文件操作及 Shell 命令执行等实用工具;更独特的是,它支持 MCP(模型上下文协议),允许用户灵活扩展自定义集成,连接如图像生成等外部能力。此外,个人谷歌账号即可享受免费的额度支持,且项目基于 Apache 2.0 协议完全开源,是提升终端工作效率的理想助手。

100.8k|★★☆☆☆|5天前
插件Agent图像

markitdown

MarkItDown 是一款由微软 AutoGen 团队打造的轻量级 Python 工具,专为将各类文件高效转换为 Markdown 格式而设计。它支持 PDF、Word、Excel、PPT、图片(含 OCR)、音频(含语音转录)、HTML 乃至 YouTube 链接等多种格式的解析,能够精准提取文档中的标题、列表、表格和链接等关键结构信息。 在人工智能应用日益普及的今天,大语言模型(LLM)虽擅长处理文本,却难以直接读取复杂的二进制办公文档。MarkItDown 恰好解决了这一痛点,它将非结构化或半结构化的文件转化为模型“原生理解”且 Token 效率极高的 Markdown 格式,成为连接本地文件与 AI 分析 pipeline 的理想桥梁。此外,它还提供了 MCP(模型上下文协议)服务器,可无缝集成到 Claude Desktop 等 LLM 应用中。 这款工具特别适合开发者、数据科学家及 AI 研究人员使用,尤其是那些需要构建文档检索增强生成(RAG)系统、进行批量文本分析或希望让 AI 助手直接“阅读”本地文件的用户。虽然生成的内容也具备一定可读性,但其核心优势在于为机器

93.4k|★★☆☆☆|1周前
插件开发框架