机器学习模型

警告

本节描述的机器学习架构目前处于实验阶段,未来版本可能会有所更改。

跳转至模型指南

介绍

本编程指南的这一部分涵盖了使用 HOOPS AI 训练和部署机器学习模型的概念和最佳实践。内容包括数据挖掘和探索的概念、使用预构建架构或自定义机器学习框架训练模型的指南,以及模型推理和评估技术。

HOOPS AI 为基于 CAD 的机器学习提供了一套完整的端到端流程,涵盖数据集探索、模型训练和部署。该系统采用统一架构设计,确保训练和推理之间的编码一致性,同时保持了对自定义实现的灵活性。

问题陈述

挑战: CAD → ML 工作流程需要相同的编码逻辑:

  1. 培训内容:批量处理数千个CAD文件

  2. 推断:实时处理新的CAD文件

解决方案: HOOPS AI 将所有编码逻辑封装在可重用的模型接口中:

# Training: Used by FlowTrainer
flow_model.encode_cad_data(cad_file, cad_loader, storage)

# Inference: Used by FlowInference (same method!)
flow_model.encode_cad_data(cad_file, cad_loader, storage)

该架构保证了在训练和部署期间使用完全相同的编码管道处理数据,从而消除了训练和推理处理数据方式不同的常见错误。

架构概述

HOOPS AI ML 系统提供了一个分层架构,支持完整的 ML 生命周期:

FlowModel (Abstract Interface)
├── GraphClassification (Graph-level classifier)
│   ├── Whole-part classification
│   └── Example: "bolt", "bearing", "bracket"
└── GraphNodeClassification (Node-level classifier)
    ├── Per-face classification
    └── Example: "hole", "pocket", "slot"

Both consumed by:
├── FlowTrainer (batch training with dataset splitting)
└── FlowInference (single-file deployment)

Dataset tools:
├── DatasetExplorer (query and analyze merged datasets)
└── DatasetLoader (prepare data for ML training)

数据集探索与挖掘

数据集探索与挖掘- 数据集分析与查询综合指南。

你将学到:

  • 理解合并数据集结构(,,.dataset文件).infoset.attribset

  • 使用 DatasetExplorer 进行发现和筛选

  • 以不同粒度(数组、组、文件)查询数据

  • 创建分布和分析统计数据

  • 使用 DatasetLoader 进行机器学习准备

  • 执行分层训练集/验证集/测试集划分

  • 创建用于训练的 PyTorch 数据加载器

何时使用本指南:

  • 您拥有由流程生成的数据集,并希望对其进行探索。

  • 您需要根据几何/拓扑标准筛选CAD文件。

  • 训练前需要了解数据集分布情况

  • 您正在为自定义机器学习工作流程准备数据

基于图学习的零件分类

零件分类模型- 用于整体零件分类的图级分类。

你将学到:

  • 理解图分类模型架构

  • 使用自定义类计数初始化模型

  • CAD编码策略(面离散化、边缘特征、图结构)

  • 使用@flowtask装饰器与 Flow 任务集成

  • 完整的 FABWAVE 数据集示例(45 个部件类别)

  • 使用 FlowTrainer 进行训练工作流程

  • 使用 FlowInference 进行推理和部署

何时使用本指南:

  • 您需要将整个CAD零件分类到不同的类别中。

  • 您希望识别零件类型或形状族

  • 您正在构建设计检索或推荐系统

  • 您需要根据零件几何形状选择制造工艺。

CAD特征识别模型

CAD特征识别模型- 用于逐脸特征识别的节点级分类。

你将学到:

  • 理解图节点分类模型架构

  • 使用 Transformer 超参数初始化模型

  • 丰富的编码策略(扩展的图特征、角度/距离直方图)

  • 使用@flowtask装饰器与 Flow 任务集成

  • 完整的 CADSynth-AAG 数据集示例(162k 个模型)

  • 处理节点级标签和逐脸预测

  • 生产模型的高级超参数调优

何时使用本指南:

  • 您需要识别各个面上的加工特征。

  • 你正在进行人脸语义分割

  • 您正在构建制造工艺规划工具

  • 你需要详细的几何特征分析

形状嵌入与相似性搜索

嵌入与相似性搜索- 形状嵌入和相似性搜索概述,包括何时使用预训练模型与训练自定义模型。

相似性搜索工作流程- 嵌入 CAD 文件、对其进行索引以进行相似性搜索以及检索最近邻的端到端生产工作流程。

你将学到:

  • 什么是嵌入以及相似性搜索的工作原理

  • HOOPSEmbeddings使用(单次或批量)方法从 CAD 文件计算形状嵌入

  • CADSearch使用(FAISS 支持的向量存储)对嵌入进行索引和搜索

  • 将索引持久化到磁盘(保存/加载)以便在会话间重复使用

何时使用本指南:

  • 您想找到与查询零件几何形状相似的 CAD 零件。

  • 你需要一个可用于生产环境的嵌入+索引+检索工作流程。

训练形状嵌入模型- 自定义形状嵌入模型的训练工作流程。

你将学到:

  • EmbeddingFlowModel使用+训练自定义嵌入模型FlowTrainer

  • 注册一个经过培训的检查点以HOOPSEmbeddings.register_model()供生产使用

何时使用本指南:

  • 预训练的词嵌入不足以满足您的领域需求。

  • 你想训练并部署一个自定义嵌入模型

开发您自己的机器学习模型

开发您自己的机器学习模型- 使用 FlowModel 接口进行自定义模型开发。

你将学到:

  • 理解 FlowModel 抽象接口

  • 实施自定义编码策略

  • 使用 PyTorch Lightning 定义模型架构

  • 与 FlowTrainer 集成以实现批量训练

  • 与 FlowInference 集成以进行部署

  • 确保训练和推理之间的编码一致性

  • 自定义模型开发的最佳实践

何时使用本指南:

  • 预制模型不符合您的具体使用场景

  • 您需要自定义特征提取或图结构

  • 您希望集成第三方机器学习架构

  • 你正在研究新型的CAD机器学习方法

快速入门

HOOPS AI ML 新手?

首先学习数据集探索与挖掘,了解如何查询和分析CAD数据集。这是训练任何模型之前必不可少的基础。

准备实施?

零件分类:

部件分类模型- 学习用于整体-部件分类的图分类

人脸分割:

→ CAD特征识别模型- 学习用于人脸特征识别的图节点分类

相似性搜索:

相似性搜索工作流程- 学习HOOPSEmbeddings+CADSearch形状相似性搜索

训练自定义嵌入:

训练形状嵌入模型- 学习如何训练和注册自定义嵌入模型

定制模型:

开发您自己的机器学习模型- 学习 FlowModel 接口以实现自定义架构

需要流程集成示例吗?

请参阅以下完整的集成示例:

其他资源

流程框架

有关涵盖任务编排、并行执行和数据集合并的完整流程系统指南,请参阅数据流管理。

CAD数据编码

有关从 CAD 文件中提取特征的详细信息,请参阅CAD 数据编码。

可视化

请参阅数据可视化体验,了解用于可视化 3D 几何体预测结果的工具。

更多推荐