EasyRec和TorchEasyRec中FG NORMAL 和 FG DAG 的区别

简介: TorchEasyRec提供两种特征生成模式:FG_NORMAL(Python逐特征处理,适合调试)与FG_DAG(C++ DAG引擎批量处理,性能更优、支持依赖、stub_type及自动侧识别)。推荐生产环境优先使用FG_DAG。

这两种模式都用于处理原始特征数据(raw feature),区别在于特征生成(Feature Generate)的执行方式。

FG_NORMAL — Python 逐特征处理

  • 定义:data.proto 中描述为 "we use python to run feature generate"
  • 初始化时机:每个 feature 对象在创建时调用 init_fg(),各自独立创建一个 pyfg.FgArrowHandler 实例
  • 处理方式:在 _parse_feature_normal 中,逐个特征调用 feature.parse(input_data) 进行 Python 层面的特征解析
  • 输入名获取:通过遍历每个 feature 的 feature.inputs 属性获取所需的输入字段名
  • 限制:不支持 stub_type(虚拟特征,中间特征)

FG_DAG — C++ DAG 引擎批量处理

  • 定义:data.proto 中描述为 "we use fg_handler to run feature generate"
  • 初始化时机:DataParser 构造时创建一个全局的 pyfg.FgArrowHandler(_init_fg_hander),它会根据所有特征的 fg_json 构建一个 DAG 计算图
  • 处理方式:在 _parse_feature_fg_handler 中,一次性调用 self._fg_handler.process_arrow(input_data_fg) 把所有原始输入丢给 C++ 引擎,批量完成所有特征的生成
  • 输入名获取:通过 fg_handler 的 user_inputs() / item_inputs() / context_inputs() API 获取,自动识别 user/item/context 侧
  • 支持:stub_type(虚拟特征,中间特征)、特征间依赖(DAG 拓扑排序)、自动识别 is_user_feat

对比总结

维度 FG_NORMAL FG_DAG
执行引擎 Python 逐特征循环 C++ DAG 引擎一次性处理
FG Handler 数量 每个特征一个 全局一个(共享)
性能 较慢(Python 循环开销) 更快(C++ 并行 + 批处理)
特征间依赖 不支持(独立处理) 支持(DAG 拓扑排序),就是特征之间可以前后依赖
stub_type 不支持 支持
user/item 自动识别 需通过 expressionside 推断 fg_handler 自动提供 user_inputs()
INPUT_TILE 支持 支持 支持

什么时候用哪个?

推荐使用 FG_DAG(大多数场景):

  • 生产环境训练/推理 — 性能更好
  • 特征之间存在依赖关系(如一个特征的输出是另一个特征的输入)
  • 需要使用 stub_type 虚拟特征
  • 配置了 fg_threads > 0 时自动选用

使用 FG_NORMAL:

  • 简单场景 / 调试阶段,不需要 C++ DAG 引擎
  • 特征配置简单、无特征间依赖
  • 未设置 fg_threads(即 fg_threads = 0)时的默认行为

config_util.py 的兼容逻辑可以看出:旧配置中 fg_threads > 0 就对应 FG_DAG,否则对应 FGNORMAL。新配置直接通过 data_config.fg_mode 显式指定

相关实践学习
使用PAI+LLaMA Factory微调Qwen2-VL模型,搭建文旅领域知识问答机器人
使用PAI和LLaMA Factory框架,基于全参方法微调 Qwen2-VL模型,使其能够进行文旅领域知识问答,同时通过人工测试验证了微调的效果。
机器学习概览及常见算法
机器学习(Machine Learning, ML)是人工智能的核心,专门研究计算机怎样模拟或实现人类的学习行为,以获取新的知识或技能,重新组织已有的知识结构使之不断改善自身的性能,它是使计算机具有智能的根本途径,其应用遍及人工智能的各个领域。 本课程将带你入门机器学习,掌握机器学习的概念和常用的算法。
相关文章
|
9天前
|
人工智能 API 网络安全
神级组合!阿里云部署 OpenClaw X 飞书 CLI,开启 Agent 基建新时代!(附免费使用6个月服务器)
2026年,AI 与自动化基础设施进入全面落地阶段,各类厂商纷纷开放命令行工具(CLI),标志着软件交互从“为人设计”正式转向“为 AI 设计”。本文以阿里云轻量应用服务器(Lighthouse)为载体,完整呈现**一键部署 OpenClaw、对接飞书 CLI、实现 AI 全自动执行任务**的全流程,让 AI 真正拥有“动手能力”,实现消息自动发送、文献自动整理、知识库自动维护等高频办公场景,真正做到一句话下达指令,AI 全程独立完成。
221 26
|
9天前
|
人工智能 机器人 API
阿里云服务器玩转OpenClaw教程|免费领6月云服务器+配置+飞书接入+让龙虾成为公众号自动化智能分身指南
很多AI爱好者因为缺少稳定服务器,无法长期运行OpenClaw智能体。本文带来一套**零成本阿里云服务器部署方案**,手把手教你搭建OpenClaw环境,并将其改造成可以24小时运行的**公众号智能分身**,实现热点聚合、内容拆解、选题生成、公众号自动发布等全流程自动化能力。
252 24
|
28天前
|
人工智能 Linux API
OpenClaw从0到1完整搭建保姆级教程:阿里云/本地环境部署、Skill自定义、多Agent协同与问题排查
OpenClaw是一款以可扩展性与自进化为核心设计理念的开源AI代理框架,其最大特征是通过**Skill系统**实现能力持续扩展,让AI助手从基础交互逐步成长为可自主执行复杂任务、对接外部工具、完成自动化工作流的智能体。本文基于2026年3月最新版本,完整覆盖OpenClaw系统架构、Skill工作机制、阿里云轻量服务器部署、本地Windows11/macOS/Linux安装流程、阿里云百炼Coding Plan与免费大模型API配置、自定义Skill开发、多Agent协同、配置文件优化及高频问题一站式解答,所有命令均可直接复制执行,全程无营销词汇,适合零基础用户与进阶开发者快速掌握这套可自我
509 6
|
20天前
|
SQL 关系型数据库 MySQL
5个提升MySQL查询效率的实用技巧
5个提升MySQL查询效率的实用技巧
|
1月前
|
存储 人工智能 关系型数据库
OpenClaw怎么可能没痛点?用RDS插件来释放OpenClaw全部潜力
OpenClaw插件是深度介入Agent生命周期的扩展机制,提供24个钩子,支持自动注入知识、持久化记忆等被动式干预。相比Skill/Tool,插件可主动在关键节点(如对话开始/结束)执行逻辑,适用于RAG增强、云化记忆等高级场景。
893 56
OpenClaw怎么可能没痛点?用RDS插件来释放OpenClaw全部潜力
|
1月前
|
Arthas 人工智能 Java
我们做了比你更懂 Java 的 AI-Agent -- Arthas Agent
Arthas Agent 是基于阿里开源Java诊断工具Arthas的AI智能助手,支持自然语言提问,自动匹配排障技能、生成安全可控命令、循证推进并输出结构化报告,大幅降低线上问题定位门槛。
1027 64
我们做了比你更懂 Java 的 AI-Agent -- Arthas Agent
|
26天前
|
人工智能 弹性计算 数据可视化
【零基础入门】阿里云OpenClaw一键部署攻略,新手小白也能轻松上手!
OpenClaw(“小龙虾”)是一款开源AI智能体,不仅能聊天,更能自动处理文件、运行代码、收发邮件、执行复杂工作流。阿里云官方提供一键部署方案,可视化操作,10分钟即可拥有专属AI数字员工!
535 10
|
1月前
|
JSON IDE API
从源码看 Qwen Code 的设计思路
Qwen Code 是基于AI Agent的智能编程助手,采用模块化分层架构。其核心为可循环执行的Agent对话机制,协调用户输入、大模型推理与工具调用,支持Plan/Default/Auto-edit/YOLO四种执行模式,并集成子智能体、MCP协议及会话管理等服务。本文将从源码角度来解析其设计思路。
332 7
|
10天前
|
人工智能 安全 Linux
OpenClaw 对接阿里云百炼 API:本地 AI 助手快速部署指南
本文详解如何将轻量开源AI助手OpenClaw与阿里云百炼平台快速对接:通过配置兼容OpenAI接口、设置API密钥及模型参数,仅需数步即可本地调用通义千问系列大模型(如qwen-plus、qwen3-max),实现安全、可控、低门槛的智能助手部署。
281 14
下一篇
开通oss服务