[refactor] Decouple model components from graph
- Dominant language
- Python
- Stars
- 452
- Forks
- 76
- PR merge metrics
- No merged PRs in 30d
Description
Current issue:
In order to reuse GraphStorm's model components, e.g., `InpuLayer`s and `Encoder`s, users need to create a g(DistGraph) first. This create some barrier for users to build customized models based some built-in compoents.
Suggested solution:
Current GraphStorm components, in effect, only use g(DistGraph) to extract meta information of the graph, such as canonical_etypes or node feature dimensions. Therefore, it would be convenience to just pass those meta information as arguments, which will decouple the binding between model components and g(DistGraph)s.
Contributor guide
Research direction
Start by tracing how the model components, including InputLayers and Encoders, currently receive g(DistGraph) and extract canonical_etypes or node feature dimensions. Identify the affected component entry points and tests before deciding how those metadata arguments should be passed. Done means the components can be reused without first creating a DistGraph, with existing behavior still covered by tests.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- python
- Domain
- machine-learning
- Issue type
- Refactor
- Difficulty
- 5/5
- Estimated time
- Over a week
- Activity status
- Stale
- Clarity
- Needs clarification
- Newbie friendliness
- 25/100