sgr-interview-300

第 110 题:大规模图的分区训练,GraphSAGE的minibatch实现细节?

题目

大规模图的分区训练,GraphSAGE的minibatch实现细节?


完整讲解

一、大规模图与分区

图规模大时无法单机存整图或单 batch 全图训练,需要分区:将节点或边划分到多机/多 GPU,每部分只存子图,训练时通过通信或采样子图组成 mini-batch。分区策略影响负载均衡、通信量与收敛。

二、GraphSAGE 的 Mini-batch 思路

GraphSAGE 本身是按节点 mini-batch:每 batch 采样一组目标节点,再对每个目标节点采样其 k-hop 邻域(如 2 层:先采 25 邻居、再每邻居采 10),形成子图。前向时从外向内逐层聚合(先 2-hop 再 1-hop 再目标节点),只在该子图上计算,无需全图。因此天然适合「分区 + 按节点采样」:分区后每分区存局部邻接,采样时在分区内或跨分区取邻居。

三、分区训练的实现细节

四、工程要点


面试要点


记忆要点

返回模块 返回总览