好的,我们继续深入规范的第6章,转向N-af_Training服务的API实现细节,这是“天穹智脑”作为中心AI工厂的核心接口。

深度解析 3GPP TS 29.530:6.3 Naf_Training Service API (中心化训练服务的实现蓝图)

本文技术原理深度参考了 3GPP TS 29.530 V1.0.0 (2025-09) Release 19 规范,我们将聚焦于第6.3章“Naf_Training Service API”。本章是Naf_Training服务的Stage 3协议实现指南,它将第5.4章中描述的“AI模型工厂”生产流程,转化为开发者可以逐行编码实现的具体API接口、资源和数据模型。

“天穹智脑”AI平台的开发已进入深水区。Team Alpha和Team Bravo在VFL(垂直联邦学习)服务的开发上取得了显著进展。现在,项目的焦点转移到了负责核心算法平台的Team Gamma身上。他们的任务是构建“天穹智脑”的心脏——一个强大的、按需生产AI模型的中心化训练平台。

首席架构师Dr. Evelyn Reed在Team Gamma的项目启动会上,指着“决战‘音乐节’网络浪潮”的场景规划图说:“VFL让我们学会了如何与他人共舞,而Naf_Training则要求我们成为舞台的领舞者。客户(NF消费者)将向我们提交最复杂、最苛刻的模型生产订单,我们的平台必须像一座精密的自动化工厂,接收订单、调度资源、执行生产、并最终交付高质量的AI模型。第6.3章就是这座工厂的建设蓝图,每一个API、每一个数据字段,都是保证我们工厂能够高效、标准化运作的齿轮和轴承。”


1. 6.3.1 & 6.3.2 - API的身份与通信协议

规范的结构保持了高度的一致性,首先定义了API的“门牌号”和“通信规则”。

1.1 6.3.1 Introduction - API的统一资源标识符 (URI)

规范原文引用 (Clause 6.3.1 Introduction) The Naf_Training shall use the Naf_Training API. The API URI of the Naf_Training API shall be: {apiRoot}/<apiName>/<apiVersion> … with the following components:

  • The shall be “naf-train”.
  • The shall be “v1”.

深度解读:

  • API身份 (apiName): 规范明确,Naf_Training服务的apiNamenaf-train。这个简洁的名称将作为该服务在5G网络中的唯一标识,出现在所有相关API的URI中。
  • 完整URI前缀: 因此,所有对此服务的API调用,其URL都将以{apiRoot}/naf-train/v1为前缀。例如,一个创建训练订阅的完整请求URI将是https://brain.operator.com/naf-train/v1/subscriptions

1.2 6.3.2 Usage of HTTP - 标准化的通信栈

本节再次确认了SBA的通用通信技术栈,与前两个服务完全一致:

  • 协议: 强制使用HTTP/2,并根据AF的可信度决定是否必须使用TLS。
  • 数据格式: application/json用于成功交互,application/problem+json用于错误报告。

Team Gamma的负责人,资深算法工程师Dr. Chen,对团队说:“基础架构部分是标准化的,我们可以直接复用平台已有的组件。我们的核心挑战在于理解并实现Naf_Training独有的、更为复杂的资源和数据模型。让我们直接进入第6.3.3节。”


2. 6.3.3 Resources - “AI模型工厂”的API骨架

本节是6.3章的核心,定义了“AI模型工厂”对外暴露的“订单处理”接口。

2.1 6.3.3.1 Overview - 资源与方法总览

Figure 6.3.3.1-1: Resource URI structure of the Naf_Training APITable 6.3.3.1-1: Resources and methods overview为我们描绘了API的结构。

资源URI结构:

{apiRoot}/naf-train/<apiVersion>
    |
    +-- /subscriptions
        |
        +-- /{subscriptionId}

资源与方法概览表 (Table 6.3.3.1-1):

Resource purpose/nameResource URI (relative path after API URI)HTTP methodDescription (service operation)
Training Subscriptions/subscriptionsPOSTCreate a new Training Subscription.
Individual Training Subscription/subscriptions/{subscriptionId}GETRetrieve an existing “Individual Training Subscription” resource.
PUTRequest the update of an existing “Individual Training Subscription” resource.
PATCHRequest the modification of an existing “Individual Training Subscription” resource.
DELETERequest the deletion of an existing “Individual Training Subscription” resource.

深度解读:

  • 熟悉的结构: API的资源结构与Naf_VFLTraining服务完全相同,都是围绕/subscriptions集合资源和/{subscriptionId}单个成员资源展开。
  • 完整的CRUD+P: 与VFL训练服务一样,Naf_Training的单个订阅资源上支持完整的GET, PUT, PATCH, DELETE操作,允许消费者对“生产订单”进行全面的生命周期管理(查询、全量修改、部分修改、取消)。

2.2 6.3.3.2 Resource: Training Subscriptions - 创建“生产订单”

本节详细定义了如何通过POST /subscriptions来提交一份新的模型训练订单。

HTTP POST /subscriptions 请求与响应详解:

1. 请求 (Request)

  • Request Body: 请求体必须包含一个TrainEventsSubsc类型的数据结构。

Table 6.3.3.2.3.1-2: Data structures supported by the POST Request Body on this resource

Data typePCardinalityDescription
TrainEventsSubscM1Represents the parameters to request the creation of a Training Subscription.

2. 响应 (Response)

  • 成功 (201 Created):
    • Response Body: 响应体中返回一个TrainEventsSubsc结构,即刚刚被接受的“订单”的完整视图。
    • Headers: 必须包含Location头,指向新创建订单的URI。

Table 6.3.3.2.3.1-3: Data structures supported by the POST Response Body on this resource

Data typePCardinalityResponse codesDescription
TrainEventsSubscM1201 CreatedSuccessful case. The Training Subscription is successfully created and a representation of the created “Individual Training Subscription” resource shall be returned.

场景实现 (Team Gamma的代码逻辑): 后端工程师小王开始设计POST /subscriptions的处理逻辑,重点关注“订单评审”和“资源调度”:

  1. 定义Controller方法,监听POST /naf-train/v1/subscriptions
  2. 将请求体反序列化为TrainEventsSubsc对象(这个对象比VFL的订阅对象复杂得多)。
  3. 核心业务逻辑 - 订单评审: a. 深度验证TrainEventsSubsc对象。例如,检查trainFilter指定的数据源是否可访问,targetPeriod是否合理,modelMonInfo中要求的模型精度是否可能达到。 b. 估算资源: 根据订单规格,估算所需的计算资源(GPU/CPU hours)、存储空间和训练时长。 c. 资源检查: 查询内部资源池,确认是否有足够资源来执行此订单。
  4. 如果评审通过: a. 生成唯一的subscriptionId(订单号)。 b. 在数据库中创建订单记录,状态为“已接受”。 c. 向后台的训练调度器提交一个新任务
  5. 构建201 Created响应,设置Location头,并返回订单确认信息。
  6. 如果评审失败(如数据源不可用、资源不足),则返回相应的4xx/5xx错误,并在ProblemDetails中详细说明原因。

2.3 6.3.3.3 Resource: Individual Training Subscription - “生产订单”的生命周期管理

本节定义了如何通过GET, PUT, PATCH, DELETE来管理一个正在生产中或已完成的订单。这部分的操作语义与Naf_VFLTraining服务完全一致,我们在此重点突出其在中心化训练场景下的特殊意义。

  • GET /{subscriptionId}: 查询订单状态。OAM系统可以通过此接口,随时查询“音乐节”模型订单的当前状态(如“数据准备中”、“训练中”、“已完成”)、已用时长、当前模型精度等。
  • PUT /{subscriptionId}: 订单重置。相当于取消旧订单,换一个新的。
  • PATCH /{subscriptionId}: 订单变更。如前述场景,音乐节增加午夜场,OAM通过PATCH请求修改订单中的时间参数,AI工厂需要动态调整生产计划。
  • DELETE /{subscriptionId}: 取消订单。音乐节因故取消,OAM通过DELETE请求,通知“天穹智脑”停止生产,释放所有已分配的资源。

3. 6.3.5 & 6.3.6 - 生产报告与数据模型的精密齿轮

这两节是“AI模型工厂”能够自动化、标准化运作的根本保证,定义了工厂如何向客户汇报,以及所有交互信息的确切格式。

3.1 6.3.5 Notifications - 异步的“生产进度/交付”报告

规范原文引用 (Clause 6.3.5.2 Training Notification) The Training Notification is used by the AF to notify a previously subscribed NF service consumer on Training report(s).

POST {notifUri} 详解:

  • 动作: “天穹智脑”在训练的关键节点(如完成一轮epoch、或训练完成时),主动向OAM指定的notifUri发送POST请求。
  • 请求体: 包含一个TrainEventsNotif数据结构。

3.2 6.3.6 Data Model - 数据的精确定义

这是6.3章的灵魂,定义了中心化训练服务中所有复杂的数据结构。

Type: TrainEventsSubsc (训练订阅/订单)

Table 6.3.6.2.2-1: Definition of type TrainEventsSubsc是该服务的核心数据结构,即“模型生产订单”的模板。

Attribute nameData typePCardinalityDescription
trainEventSubsmap(EventSubsc)M1..N核心订单项。一个从事件ID到EventSubsc对象的映射。
notifUriUriM1回调地址
notifCorreIdstringM1订单号
reportingReqsReportingInformationO0..1报告要求。
eventNotifsarray(EventNotif)C1..N训练事件报告。仅当订阅时要求立即返回结果时出现。
suppFeatSupportedFeaturesC0..1特性协商。

深度解读:

  • map(EventSubsc): 与VFL训练的array不同,这里使用了map结构。key是事件ID(如"LOAD"),valueEventSubsc对象。这使得一个订单可以同时为多个不同的事件请求模型训练,且每个事件的规格(EventSubsc)都可以独立定义。

Type: EventSubsc (单个事件的训练规格)

Table 6.3.6.2.4-1: Definition of type EventSubsc是订单中最具体、最关键的部分。

Attribute nameData typeDescription
eventNwdafEvent要训练的事件,如LOAD
trainFilterEventFilter训练数据过滤器。
tgtUeTargetUeInformation目标用户/区域。
targetPeriodTimeWindow预测的目标时间窗口。
inferInputDataInputDataInfo对推理输入数据的要求。
modelMonInfoMlModelMonitorInfo模型监控信息,如要求的最低精度accuThreshold
accuLevelAccuracy期望的精度级别。

Type: TrainEventsNotif (训练通知/交付单)

Table 6.3.6.2.6-1: Definition of type TrainEventsNotif定义了“生产报告”的格式。

Attribute nameData typePCardinalityDescription
notifCorreIdstringM1关联的订单号。
eventNotifsarray(EventNotif)M1..N事件通知数组

Type: EventNotif (单个事件的通知内容)

Table 6.3.6.2.7-1: Definition of type EventNotif是交付单的核心。

Attribute nameData typeDescription
eventNwdafEvent通知的事件。
trainingIndbooleantrue=训练中, false=训练完成。
validityPeriodTimeWindow训练出的模型适用的时间窗口。
spatialValidityNetworkAreaInfo训练出的模型适用的地理区域。
accMLModelUinteger模型精度,0-100。
termCauseVflTermCause如果训练失败,附上失败原因。
modelReferenceUri成品交付! 指向训练好的模型的引用/URI。

深度解读:

  • modelReference: 这是整个Naf_Training服务的最终价值体现。当trainingIndfalse时,“天穹智脑”必须在此字段中提供一个URI,指向新生成的模型。消费者(如OAM)获取到这个URI后,就可以在Naf_Inference服务中,用它来发起推理请求。从生产到消费的闭环,在这里通过一个URI完美地连接了起来。

4. 总结:构建标准化的“AI模型即服务”工厂

通过对第6.3章的精读,Team Gamma已经拥有了构建“天穹智脑”中心训练平台所需的所有技术细节。这不仅仅是一套API,更是一套完整的、标准化的“AI模型即服务”(Model-as-a-Service)的工业流程。

  • 标准化的订单 (TrainEventsSubsc): 消费者可以通过一份结构化的“订单”,精确地描述他们需要的AI模型规格。
  • 自动化的生产流程 (API Operations): POST, PATCH, DELETE等操作,对应了订单处理、修改、取消的自动化流程。
  • 透明的生产监控 (Notify with trainingInd=true): 工厂可以主动向客户报告生产进度,增强了服务的透明度和可信度。
  • 可靠的成品交付 (Notify with modelReference): 通过标准的Notify消息,将训练好的模型及其元数据(精度、适用范围等)安全、可靠地交付给客户。

Dr. Chen对团队说:“我们的任务就是将这张蓝图变为现实。我们要构建的,是一个能够响应全网需求的、7x24小时不间断生产智慧的自动化工厂。每一个API的实现,都是在为这座工厂添砖加瓦。让我们开始工作,让‘天穹智半’的心脏,强有力地跳动起来!”


5. FAQ 环节

Q1:Naf_TrainingNaf_VFLTraining的数据模型(如订阅请求)有何本质区别?

A1:本质区别在于控制权和信息详尽程度

  • Naf_VFLTraining (VflTrainingSubs): 它的数据结构相对简单,更像一份“参与协议”。它主要定义了AF需要遵循的规则(如加密算法、特征对齐方式),而不需要定义模型的具体规格,因为模型是由协调者统一规划的。
  • Naf_Training (TrainEventsSubsc): 它的数据结构非常复杂和详尽,是一份完整的“产品规格说明书”。消费者需要在这里详细定义它想要的最终模型是什么样的(数据源、预测目标、精度要求等),因为AF是这次训练的唯一负责人。

Q2:EventSubsc中的modelMonInfo(模型监控信息)有什么作用?

A2:modelMonInfo是消费者向AI工厂提出的“质量验收标准”。例如,OAM可以在订单中设置accuThreshold(精度阈值)为95。这意味着,OAM要求“天穹智脑”交付的模型的精度不得低于95%。

  • 在训练过程中,“天穹智脑”会持续监控模型的性能。如果发现无论如何都无法达到95%的精度,它可以提前终止训练,并通过Notify告知OAM训练失败,原因是UNABLE_TO_MEET_ACCURACY
  • 只有当模型精度达到或超过95%时,“天穹智脑”才会宣布训练成功,并通过Notify交付模型。 这个字段将一个开放式的训练任务,变成了一个有明确质量目标的工程项目。

Q3:EventNotif中的validityPeriodspatialValidity有什么用?

A3:这两个字段是训练出的模型的“使用说明书”,至关重要。

  • validityPeriod (时间有效性): 告诉消费者,这个模型是在什么样的时间背景下训练出来的,也暗示了它最适合在什么样的时间段使用。例如,一个基于工作日数据训练的模型,在节假日使用的效果可能就会打折扣。
  • spatialValidity (空间有效性): 告诉消费者,这个模型是在哪个地理区域的数据上训练的,最适合用于哪个区域。例如,为“奥体中心”区域训练的模型,直接用到“金融中心”区域,效果可能就不佳。 这两个字段保证了模型的可解释性正确使用,避免了模型被滥用或误用。

Q4:如果训练过程非常耗时,消费者如何知道AF没有“死机”?

A4:这就是reportingReqs(报告要求)字段的作用。消费者可以在“订单”TrainEventsSubsc中,通过reportingReqs设置一个repPeriod(报告周期),例如“每小时一次”。这样,“天穹智脑”即使还在紧张地计算中,也会每隔一小时就向消费者发送一次Notify(此时trainingInd=true),报告当前的训练轮次、模型精度等“心跳”信息。这让漫长的训练过程对消费者来说是透明的、可监控的。

Q5:EventNotif中交付的modelReference是一个URI,这意味着我可以直接通过HTTP GET下载这个模型文件吗?

A5:不一定。规范将modelReference定义为URI,提供了很大的灵活性,它可能是一个可以直接下载模型文件(如.h5.pkl格式)的URL,但也可能只是一个不透明的、逻辑上的标识符(URN, Uniform Resource Name)。在后一种情况下,这个URI/URN只是模型的唯一ID,消费者并不能直接用它下载模型,而只能在后续调用Naf_Inference服务时,将其作为modelId参数传入。Naf_Inference服务内部会根据这个ID去加载模型。这种方式更为安全和常见,因为它将模型资产牢牢地控制在AF内部,只暴露服务接口,而不暴露模型文件本身。