Post

HKUDS027: HiGPT 作为 Heterogeneous Graph Language Model 与 Structured Multimodal Layer

HKUDS027: HiGPT 作为 Heterogeneous Graph Language Model 与 Structured Multimodal Layer

这是 PENGYI_HKUDS_STUDYMAP 的第二十八篇。

1
HKUDS027 -> HiGPT

图智能主线到这里形成一个完整小闭环:

1
2
3
4
HKUDS024 GraphAgent -> agentic graph language assistant
HKUDS025 OpenGraph  -> open graph foundation model
HKUDS026 GraphGPT   -> graph instruction tuning
HKUDS027 HiGPT      -> heterogeneous graph language model

如果说 GraphGPT 解决的是:

1
graph tokens 如何进入 LLM 的语言空间?

那么 HiGPT 进一步解决的是:

1
异构图里的不同节点类型、边类型、关系语义,如何进入 LLM?

这篇非常适合放在 Graph-Language / Structured Multimodal 这条线上。

它确实属于广义多模态,但不是图像、音频、视频那种多模态,而是:

1
Text + Heterogeneous Graph

也就是把结构化关系数据作为一种模态,和自然语言对齐。

对我们来说,这个方向直接连接:

1
2
3
4
5
6
company-event-asset graph
factor-risk-regime graph
paper-method-dataset graph
person-organization-project graph
Research OS memory graph
Quant Research OS diagnosis graph

Local Snapshot

这次阅读的是本地 HKUDS 工作区里的 HiGPT

ItemValue
repoHiGPT
remotehttps://github.com/HKUDS/HiGPT.git
branchmain
local head2b0793e
full commit2b0793e7bdfda693cbe84e5bd8632a59657c72a3
latest local commit date2024-06-05 22:43:13 +0800
latest local commitAdd files via upload
statusclean, synced with origin/main after fetch
paperHiGPT: Heterogeneous Graph Language Model, arXiv 2402.16024
venueKDD 2024 Research Track
authorsJiabin Tang, Yuhao Yang, Wei Wei, Lei Shi, Long Xia, Dawei Yin, Chao Huang
project pagehttps://HiGPT-HKU.github.io/
tracked files by rg --files210
Python files123
markdown files18
shell scripts12
YAML files2
Python syntax checkpy -m compileall -q ... passed

README 里给出的 HuggingFace 资源包括:

AssetDescription
Jiabin99/In-Context-HGTtrained in-context heterogeneous graph tokenizer
Jiabin99/HiGPTVicuna-7B-v1.5 based HiGPT checkpoint tuned on 60-shot IMDB graph instruction data

项目结构上,几个最关键的目录是:

1
2
3
4
5
6
7
HG_grounding/       text-graph contrastive alignment for heterogeneous graph tokenizer
higpt/model/        HeteroLlama, MetaHGT, graph-language model components
higpt/train/        heterogeneous graph instruction tuning
higpt/eval/         standard evaluation and graph in-context evaluation
hi_datasets/        dataset download scripts
mot_prompting/      Mixture-of-Thought graph instruction augmentation
scripts/            tune/eval/serving scripts

一句话定位

HiGPT 是一个:

1
heterogeneous graph language model

更工程化地说,它是:

1
2
3
4
5
Vicuna / Llama
+ in-context heterogeneous graph tokenizer
+ graph projector
+ heterogeneous graph instruction tuning
+ MoT augmented graph instructions

它试图让 LLM 不只看到文本,也看到异构图里的结构信息:

1
2
3
4
5
6
node type
edge type
node feature
edge relation
heterogeneous schema
subgraph context

这和普通 graph LLM 的区别在于:

1
2
3
4
5
6
7
8
9
10
普通 graph:
  node -> node
  edge -> edge
  schema 相对单一

heterogeneous graph:
  paper -> author -> affiliation
  movie -> actor -> director
  subject -> paper -> term
  每种 node / edge 都有不同语义

量化里也一样:

1
2
3
4
5
6
stock -> belongs_to -> industry
company -> reports -> financial_statement
news -> mentions -> company
event -> impacts -> asset
factor -> explains -> return
portfolio -> exposes_to -> risk

这些不是普通 table,也不是普通文本。它们天然是异构图。

项目用途

HiGPT 的用途可以分成三层。

第一层是异构图任务。

典型任务包括:

1
2
3
4
node classification
graph instruction answering
few-shot heterogeneous graph reasoning
graph in-context learning

README 里主要用到 IMDB、DBLP、ACM 这类异构图数据。

这些数据的 schema 很适合说明问题:

1
2
3
4
5
6
7
8
IMDB:
  movie / actor / director 等不同节点类型

DBLP:
  paper / author / conference 等不同节点类型

ACM:
  subject / paper 等不同节点类型

第二层是 graph-language alignment。

模型不只是预测一个标签,而是要在 instruction format 里回答问题:

1
2
Human: <graph> Given the heterogeneous graph, classify this target node.
Assistant: The likely category is ...

也就是说,图任务被包装成 LLM 能理解的对话任务。

第三层是 structured multimodal learning。

HiGPT 的模态不是 image,也不是 video,而是:

1
heterogeneous graph structure

它回答的是:

1
结构化关系如何作为一种模态进入 LLM?

这正是 Research OS / Quant OS 的关键问题。

三个核心创新

README 把 HiGPT 的核心拆成三个部分:

1
2
3
In-Context Heterogeneous Graph Tokenizer
Heterogeneous Graph Instruction-Tuning
Mixture-of-Thought Augmentation

我把它翻译成我们的系统语言:

1
2
3
1. 把异构图编码成 graph tokens。
2. 把 graph tokens 注入 LLM embedding space。
3. 用多种 reasoning prompt 扩充训练指令。

1. In-Context Heterogeneous Graph Tokenizer

这是 HiGPT 区别于 GraphGPT 的关键。

GraphGPT 已经能把 graph token 放进 LLM,但 HiGPT 面对的是:

1
2
3
不同 node type
不同 edge type
不同 graph schema

所以它需要一个 type-aware graph tokenizer。

核心实现主要在:

1
2
3
4
5
higpt/model/meta_hgt/meta_hgtconv_bert_all.py
higpt/model/meta_hgt/meta_linear.py
HG_grounding/
run_offline_hgt_tokenizer.py
run_offline_hgt_tokenizer_single.py

MetaHGTConv 是核心图编码器。

它接收:

1
2
3
4
x_dict
edge_index_dict
node_type_feas_dict
edge_type_feas_dict

其中:

1
2
3
4
5
6
7
8
9
10
11
x_dict:
  每种节点类型的 node features。

edge_index_dict:
  每种边类型的连接关系。

node_type_feas_dict:
  节点类型的语义表示。

edge_type_feas_dict:
  边类型的语义表示。

这就比普通 GNN 多了一层:

1
type semantics

meta_linear.py 里有一个很关键的设计:

1
2
3
ParameterGenerator
MetaHeteroLinear
MetaHeteroDictLinear

它不是给每个 node type / edge type 写死一组固定参数,而是:

1
根据 type semantic memory 生成动态线性层参数。

这就是 in-context 的意思之一:

1
node / edge type 的文本语义参与图编码过程。

对于我们的 Quant OS,这一点非常关键。

因为未来我们的图不是固定 schema。

一开始可能是:

1
2
3
4
stock
industry
news
factor

后面会加入:

1
2
3
4
5
6
7
analyst_report
macro_event
earnings_call
management
supply_chain
policy
risk_regime

如果 graph tokenizer 能用 type description 生成 type-aware 参数,那么 schema 扩展会更自然。

2. Text-Graph Contrastive Alignment

HG_grounding/README.md 明确写的是:

1
Text-Graph Contrastive Alignment (Grounding) with In-Context Heterogeneous Graph Tokenizer

它的目标是预训练异构图 tokenizer,让图表示和文本表示对齐。

训练入口是:

1
2
3
HG_grounding/lit_train/lit_hgt_train.py
HG_grounding/lit_models/lit_hgt.py
HG_grounding/models/clip_models/homo_clip.py

整体结构是 CLIP-style:

1
2
3
graph encoder -> graph features
text encoder  -> text features
contrastive loss -> align graph and text

README 里的训练命令大致是:

1
2
3
4
5
6
7
8
9
10
python lit_train/lit_hgt_train.py \
  --max_epochs 5 \
  --learning_rate 1e-6 \
  --devices 4 \
  --context_length 128 \
  --dataset_dir ./datasets \
  --datalist instruct_ds_caption_paper,instruct_ds_caption_movie \
  --micro_batch_size 1 \
  --batch_size 1 \
  --gnn_type meta

对我们来说,这提供了一个非常明确的训练范式:

1
graph object + text description

例如量化版可以是:

1
2
3
4
5
graph object:
  company - industry - news - factor - asset

text description:
  This graph describes how an earnings surprise propagates through sector peers and valuation factors.

然后训练:

1
graph encoder output

去接近:

1
text description embedding

这就是 Quant Research OS 的 graph grounding。

3. Heterogeneous Graph Instruction Tuning

HiGPT 的 instruction tuning 分两阶段。

README 里写得很清楚:

1
2
3
4
5
Stage 1:
  instruction tuning with heterogeneous graph corpus

Stage 2:
  heterogeneity-aware fine-tuning

训练入口主要是:

1
2
3
4
higpt/train/train_hete_nopl.py
scripts/tune_script/higpt_stage_1.sh
scripts/tune_script/higpt_stage_2.sh
scripts/extract_graph_projector.py

Stage 1 训练 heterogeneous graph corpus。

README 示例里使用:

1
2
3
4
5
instruct_ds_matching_author
instruct_ds_matching_movie
instruct_ds_matching_paper
instruct_ds_node_matching
instruct_ds_node_matching_imdb

这说明第一阶段重点是:

1
让 LLM 学会 heterogeneous graph token matching。

Stage 2 是 task-specific / heterogeneity-aware fine-tuning。

README 示例里用 IMDB,并跑:

1
1, 3, 5, 10, 20, 40, 60 shots

这说明 HiGPT 很关注 few-shot 异构图任务。

这也对应我们未来的现实问题:

1
2
3
quant label 很贵
高质量因子样本很少
真实研究反馈很稀缺

所以 few-shot graph instruction tuning 对 Quant OS 很有价值。

离线 HGT Tokenizing

HiGPT 一个很工程化的点是:

1
offline heterogeneous graph tokenizing

README 明确说,由于 graph tokenizer 在两个训练过程中不更新参数,所以可以提前把 graph data 处理好,加速训练。

对应脚本:

1
2
3
4
run_offline_hgt_tokenizer.py
run_offline_hgt_tokenizer_single.py
scripts/tune_script/run_graph_tokenizer.sh
scripts/tune_script/run_graph_tokenizer_single.sh

这一步做的事情是:

1
2
3
4
5
6
1. 加载预训练 MetaHGT。
2. 读取 graph_data。
3. 根据 node type / edge type feature dict 计算 graph embedding。
4. 把原 graph_data 路径替换成 graph_data_processed_MetaHGT...
5. 保存 processed graph。
6. 生成 ann_processed_MetaHGT... JSON。

这和 HeteroLlama.forward() 的实现是配套的。

HeteroLlama.forward() 里,当前主路径不是实时跑 graph tower,而是:

1
2
3
ret_g = g.x_dict
for k in keys:
    graph_node_features.append(ret_g[k])

也就是说,进入 LLM 前的 graph_data.x_dict 已经是处理过的 heterogeneous graph token features。

然后再通过:

1
self.graph_projector(node_feature)

把 graph feature 映射到 Llama hidden size。

这个设计非常适合我们。

因为我们的 Research OS / Quant OS 可以把重计算放到离线层:

1
2
3
nightly graph build
nightly graph embedding
nightly factor/event graph update

在线时只需要:

1
LLM reads graph tokens + instruction

这比每次提问都重新构图更现实。

HeteroLlama 怎么把图塞进 LLM

核心文件:

1
higpt/model/HeteroLlama.py

它注册了:

1
2
AutoConfig.register("HeteroLlama", HeteroLlamaConfig)
AutoModelForCausalLM.register(HeteroLlamaConfig, HeteroLlamaForCausalLM)

整体思路和 GraphGPT 类似:

1
2
3
4
5
6
1. tokenizer 增加 <g_patch>。
2. 可选增加 <g_start> / <g_end>。
3. instruction 里的 <graph> 被替换成多个 graph patch tokens。
4. graph features 经过 graph_projector。
5. graph features 替换对应 token 的 input embeddings。
6. Llama 用混合后的 embeddings 做 causal LM。

关键 token:

1
2
3
4
<graph>
<g_patch>
<g_start>
<g_end>

preprocess_graph_Hetero() 会根据不同 node type 的 token length 构造多段 replacement:

1
2
3
4
for token_len in graph_token_lens:
    replace_token = DEFAULT_GRAPH_PATCH_TOKEN * token_len
    if graph_cfg['use_graph_start_end']:
        replace_token = DEFAULT_G_START_TOKEN + replace_token + DEFAULT_G_END_TOKEN

这和普通 GraphGPT 的一个区别是:

1
HiGPT 的 <graph> 可以对应多个 heterogeneous node type segment。

hetero_key_order 决定了顺序。

例如一个 DBLP graph 可以按:

1
2
3
paper
author
conference

的顺序把不同类型节点特征放进去。

这对 Quant OS 很有启发。

我们也可以定义:

1
2
3
4
5
6
7
8
hetero_key_order = [
  "asset",
  "company",
  "industry",
  "event",
  "factor",
  "risk_regime"
]

然后让模型知道每一段 graph token 的语义来源。

MetaHGT 的关键组件

MetaHGTConv 的实现可以拆成四个部件。

Type-Aware KQV

它对不同 node type 生成 K/Q/V:

1
kqv_dict = self.kqv_lin(x_dict, node_type_feas_dict)

这里的 self.kqv_linMetaHeteroDictLinear

它的参数不是固定的,而是由 node type feature 生成。

Edge-Type-Aware Relation Transform

边类型进入:

1
2
3
self.k_rel
self.v_rel
self.p_relTrans

也就是对不同 edge type 生成不同的 relation transform 和 attention bias。

这对金融图很关键。

因为:

1
2
3
4
company -> belongs_to -> industry
company -> supplies -> company
event -> impacts -> asset
factor -> explains -> return

这些边的含义完全不同,不能当成同一种 edge。

Skip Gate

代码里有:

1
self.skipTrans = nn.Linear(text_cfg.width, 1)

然后:

1
2
alpha = skip[node_type].sigmoid()
out = alpha * out + (1 - alpha) * x_dict[node_type]

这相当于每种 node type 都有自己的 residual gate。

含义是:

1
不同类型节点对 message passing 的依赖程度不同。

比如量化里:

1
price time series node

和:

1
industry taxonomy node

信息更新方式肯定不一样。

Dynamic Parameter Generation

ParameterGenerator 是我最喜欢的部分。

它做的是:

1
type memory -> weights, biases

这让模型有机会根据 type description 生成适合当前 type 的线性变换。

这比手动维护每个 type 的 module 更灵活。

对我们未来扩展 graph schema 很重要。

Mixture-of-Thought Augmentation

HiGPT 不只是构图和训练模型,还做 instruction augmentation。

目录:

1
mot_prompting/

README 里列出支持:

1
2
3
4
5
6
7
0: CoT without Format Constraint
1: CoT with Format Constraint
2: ToT with Multiple Round
3: ToT with Single Round
4: PanelGPT
5: GKP-1
6: GKP-2

这套东西很适合我们的 R&D Agent。

因为一个 factor / strategy / graph reasoning 问题,本来就不应该只有一种思考路径。

例如:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
问题:
  为什么这个因子最近失效?

CoT:
  step-by-step 解释暴露、换手、拥挤度、行业中性问题。

ToT:
  三个专家分别从微观结构、基本面、宏观风险思考。

PanelGPT:
  PM、researcher、risk manager 三方讨论。

GKP:
  先生成领域知识,再推理。

HiGPT 的 MoT 对我们的最大启发不是直接复用脚本,而是:

1
训练数据不能只有答案,要有多种 reasoning style。

Evaluation

评估入口:

1
2
3
4
higpt/eval/run_higpt.py
higpt/eval/run_higpt_incontext.py
scripts/eval_script/higpt_info_imdb_cot.sh
scripts/eval_script/hetegpt_info_imdb_cot_incontext.sh

run_higpt.py 是普通 evaluation。

run_higpt_incontext.py 支持 Graph In-Context Learning。

区别是:

1
2
3
4
5
run_higpt.py:
  当前 graph -> answer

run_higpt_incontext.py:
  context_graphs + current graph -> answer

这对我们很重要。

Quant Research OS 里也有类似结构:

1
2
3
过去成功因子图
过去失败因子图
当前新因子图

然后问:

1
2
3
这个新 idea 更像哪些历史 pattern?
它是否有过拟合风险?
它应该进入哪一个 research bucket?

这就是 graph in-context learning 的实际用途。

和 GraphGPT 的区别

GraphGPT 和 HiGPT 很像,但关注点不同。

ProjectCore ProblemKey Layer
GraphGPTLLM 如何理解 graph-structured datagraph-language instruction tuning
HiGPTLLM 如何理解 heterogeneous graph-structured datatype-aware graph-language instruction tuning

GraphGPT 更像:

1
graph -> graph tokens -> LLM

HiGPT 更像:

1
2
3
4
5
heterogeneous graph schema
+ node type semantics
+ edge type semantics
+ graph tokens
+ LLM

所以 HiGPT 是 GraphGPT 的异构图加强版。

对我们来说:

1
2
3
4
5
GraphGPT:
  教我们如何把图注入 LLM。

HiGPT:
  教我们如何把真实世界的复杂 schema 注入 LLM。

真实世界很少是单一图。

金融更不是。

和 OpenGraph 的区别

OpenGraph 的重点是:

1
2
graph foundation representation
zero-shot graph generalization

HiGPT 的重点是:

1
heterogeneous graph + LLM instruction answering

所以可以这样分工:

1
2
3
4
5
OpenGraph:
  更偏 graph foundation model。

HiGPT:
  更偏 graph-language interface。

如果放进 Research OS:

1
2
OpenGraph 负责 graph representation。
HiGPT 负责 graph-to-language reasoning。

和 GraphAgent 的区别

GraphAgent 的重点是 agent workflow。

它关注:

1
用户问题 -> 任务规划 -> 构图 -> graph LLM -> answer

HiGPT 的重点是模型层。

它关注:

1
heterogeneous graph tokens 如何进入 LLM

所以:

1
2
GraphAgent = workflow / agent layer
HiGPT      = model / representation-to-language layer

未来我们自己的系统也应该这样分层。

1
2
3
4
5
Agent layer:
  负责 decide what graph to build / retrieve / analyze。

Model layer:
  负责 encode graph and answer。

这是不是多模态

是,但要说清楚。

HiGPT 属于:

1
2
3
4
Structured Multimodal AI
Graph-Language Model
Graph-Text Alignment
Heterogeneous Graph + Text Multimodal Learning

它不属于典型的:

1
2
3
image-text multimodal
video-language multimodal
audio-language multimodal

所以我们在网站和学习地图里最好叫:

1
Graph-Language / Structured Multimodal

这比直接叫 multimodal 更准确。

对 Quant Research OS 的启发

HiGPT 对我们最关键的启发是:

1
金融世界本质上是 heterogeneous graph。

不是一个单表,也不是纯文本。

它至少包括:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
资产
公司
行业
供应链
管理层
财报
新闻
宏观事件
政策
因子
组合
风险暴露
交易信号
回测结果
研究员判断
PM 审核意见

这些对象之间的关系包括:

1
2
3
4
5
6
7
8
9
10
belongs_to
mentions
impacts
correlates_with
explains
hedges
exposes_to
fails_under
validated_by
rejected_by

这就是异构图。

如果我们未来做 Pengyi Quant Research OS,可以按 HiGPT 的思路设计:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
Node Types:
  asset
  company
  industry
  factor
  event
  news
  backtest
  risk_regime
  research_note

Edge Types:
  belongs_to
  mentioned_by
  impacted_by
  explains_return
  has_exposure
  fails_in_regime
  supports_hypothesis
  contradicts_hypothesis

然后为每个 type 写 description:

1
2
3
4
5
6
7
8
asset:
  This node represents a tradable asset.

factor:
  This node represents a quantitative signal that may explain future returns.

risk_regime:
  This node represents a market state where certain factors may become crowded or unstable.

这就能接 HiGPT 的 type semantics 思路。

我们自己的轻量路线

短期不需要训练一个 7B HiGPT。

可以先做轻量版。

Stage 1: Build Quant Heterogeneous Graph

先把 Research OS 的对象图建起来:

1
2
3
4
5
6
7
8
research_note
factor
backtest
asset
industry
news
event
risk

存成:

1
2
3
4
nodes table
edges table
node_type descriptions
edge_type descriptions

Stage 2: Graph Retrieval

先不用训练 graph tokenizer。

用普通 embedding + graph traversal:

1
2
3
retrieve relevant subgraph
serialize as structured text / JSON
feed to LLM

这是最现实的 v0。

Stage 3: Instruction Dataset

把问题变成 instruction data:

1
2
3
4
5
6
{
  "input": "Given this factor-event-asset graph, diagnose why the factor failed in 2024Q4.",
  "graph": "...",
  "answer": "The factor likely failed because ...",
  "reasoning_type": "risk_manager_panel"
}

Stage 4: Type-Aware Graph Encoder

等数据积累够了,再训练:

1
type-aware graph encoder

这时可以参考:

1
2
3
MetaHGT
GraphCLIP
HiGPT

Stage 5: Quant HiGPT

最终目标才是:

1
Quant HiGPT

它能回答:

1
2
3
4
5
这个因子的结构性失败来源是什么?
这个事件沿着哪些关系影响资产?
这个 strategy 更像哪些历史成功/失败模式?
下一轮 research 应该扩展哪些节点和边?
PM 应该问 researcher 哪些关键问题?

这和我们的 R&D Agent 完全同向。

可以提 PR 的地方

HiGPT 这个 repo 很有价值,但也有不少低风险、可落地的工程改进点。

第一,repo 里 tracked 了不少 __pycache__ / .pyc 文件。

例如:

1
2
3
4
higpt/__pycache__/...
higpt/model/__pycache__/...
higpt/model/meta_hgt/__pycache__/...
higpt/train/__pycache__/...

这类文件通常不应该进入源码仓库。可以加 .gitignore 并清理 tracked pyc。

第二,根目录有 .DS_Store

这也是典型 repo hygiene PR。

第三,requirements.txt 很重,而且包含 OS-bound package。

例如:

1
2
3
4
python-apt==1.6.5+ubuntu0.7
PyGObject==3.26.1
unattended-upgrades==0.1
ssh-import-id==5.7

这类依赖在普通 pip / conda 环境里不一定能装。可以拆成:

1
2
3
requirements-core.txt
requirements-dev.txt
requirements-linux-extra.txt

第四,很多路径硬编码到作者训练环境。

例如:

1
/root/paddlejob/workspace/env_run/...

出现在 README、training script、offline tokenizer、train_hete.py 等位置。

这会降低复现性。可以改成 CLI 参数、环境变量或 repo-relative path。

第五,run_offline_hgt_tokenizer.py 里有:

1
device = 'cuda:2'

这应该变成:

1
--device cuda:0

或者自动检测。

第六,evaluation 里硬编码了:

1
load_metahgt_pretrained(MetaHGTConv, './MetaHGT_imdb_dblp_epoch5')

可以改成:

1
--graph_tower_path

第七,train_hete_nopl.py 里有:

1
model.config.pretrain_graph_model_path = model.config.pretrain_graph_model_path + model_args.graph_tower

这假设 base model config 已经有 pretrain_graph_model_path。更稳妥的是显式参数或 getattr fallback。

第八,train_hete_nopl.py / eval 文件里 edge feature 转 tensor 处疑似有复制粘贴错误。

例如读完:

1
self.edge_feas_dict_acm = torch.load(...)

后面循环却仍在处理:

1
self.node_feas_dict_acm

edge_feas_dict_imdb 处也有类似问题。这个需要实测确认,但从代码形态看值得开 issue 或 PR。

第九,higpt/conversation.py 里系统提示仍然写:

1
2
You are GraphChat...
graph-structral

这里既沿用了 GraphChat 命名,也有 graph-structral 拼写问题。可以改成 HiGPT / graph-structural。

第十,README 里编号有小问题。

Table of Contents 写 4. Evaluating HiGPT,正文标题是:

1
## 5. Evaluating HiGPT

可以统一。

这些 PR 都不碰算法核心,适合从 docs / scripts / reproducibility / repo hygiene 入手。

我们应该怎么吸收

我们对 HiGPT 的吸收不应该是:

1
立刻训练大模型。

而应该是:

1
学习它如何把真实世界复杂关系抽象为 type-aware graph-language system。

具体落地为三件事。

第一,给我们的 Research OS 建立 node / edge type ontology。

1
2
3
4
5
6
什么是 project?
什么是 paper?
什么是 factor?
什么是 backtest?
什么是 risk event?
什么是 PM feedback?

第二,把每个 type 写成自然语言 description。

这对应 HiGPT 的 node/edge type semantic memory。

第三,把每次研究过程转成 graph instruction。

例如:

1
2
3
Given this research graph, identify the next experiment.
Given this factor graph, diagnose the likely overfitting source.
Given this project graph, decide which repo we should study next.

这就是我们自己的:

1
Research OS graph instruction dataset

总结

HiGPT 是图智能主线里非常重要的一块。

它补上的是:

1
heterogeneous graph intelligence

前面三篇分别是:

1
2
3
GraphAgent -> agent workflow
OpenGraph  -> graph foundation representation
GraphGPT   -> graph-language instruction tuning

HiGPT 则告诉我们:

1
真实世界的 graph-language system 必须处理 node type / edge type / schema heterogeneity。

这对 Quant OS 特别关键。

因为金融世界不是一张表,而是一个不断变化的异构关系网络。

所以 HKUDS024-027 这四篇可以合成一条主线:

1
2
3
4
GraphAgent: workflow
OpenGraph: representation
GraphGPT:  language alignment
HiGPT:     heterogeneous schema intelligence

这就是我们下一阶段 Research OS / Quant Research OS 的 graph-language foundation。

下一步

按照第三张学习地图,图智能主线之后进入:

1
HKUDS028 -> RecLM

也就是 recommendation / user behavior / finance-adjacent 方向。

这条线可以连接:

1
2
3
4
5
用户行为建模
推荐系统
金融信号抽象
portfolio / factor selection
agent preference learning

对 Quant Research OS 也很有价值。

This post is licensed under CC BY 4.0 by the author.