# xlang-ai/unifiedskg architecture

> Architecture diagram of the GitHub repository xlang-ai/unifiedskg, generated by GitDiagram from its file tree, README and a sample of source files (last updated 2026-09-30). It is an AI-made overview: check details against the source.

- Interactive diagram: https://gitdiagram.com/xlang-ai/unifiedskg
- Repository: https://github.com/xlang-ai/unifiedskg

## Overview

UnifiedSKG is a multi-task structured-knowledge-grounding research framework: it converts heterogeneous tasks to text-to-text datasets, trains or evaluates sequence-to-sequence models, and scores generated results. The graph highlights the documented task breadth and model-tuning variants alongside the training path. Some connections are documented only at a high level; source excerpts are partial, so uncertain runtime links are omitted or marked unverified.

Main entry points: [`train.py`](https://github.com/xlang-ai/unifiedskg/blob/main/train.py) (Training entry), [`metrics`](https://github.com/xlang-ai/unifiedskg/tree/main/metrics) (Task evaluators), [`models/prompt/modeling_auto.py`](https://github.com/xlang-ai/unifiedskg/blob/main/models/prompt/modeling_auto.py) (Prompt model selection), [`seq2seq_construction`](https://github.com/xlang-ai/unifiedskg/tree/main/seq2seq_construction) (Seq2seq construction)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_workflow["Training workflow"]
  node_train["Training entry<br/>[train.py]"]
end

subgraph group_data["Task data"]
  node_task_definitions["Task definitions"]
  node_dataset_loading["Dataset loading<br/>[dataset.py]"]
  node_seq_construction["Seq2seq construction"]
  node_multiwoz_constructor["Dialogue expansion"]
  node_table_linearize["Table linearization<br/>[table_linearize.py]"]
  node_table_truncate["Table truncation<br/>[table_truncate.py]"]
end

subgraph group_models["Model variants"]
  node_model_base["Model base<br/>[base.py]"]
  node_prompt_models["Prompt models<br/>[modeling_t5.py]"]
  node_prompt_auto["Prompt model selection<br/>[modeling_auto.py]"]
  node_bart_model["BART prompt model<br/>[modeling_bart.py]"]
  node_adapter_model["Adapter T5<br/>[modeling_t5.py]"]
  node_adapter_layers["Adapter layers<br/>[adapter.py]"]
  node_combined_prefix["Multi-task prefix tuning"]
end

subgraph group_runtime["Training runtime"]
  node_configuration["Configuration<br/>[configue.py]"]
  node_trainer["Seq2seq trainer<br/>[trainer.py]"]
  node_training_args["Training arguments"]
  node_tools["Runtime utilities<br/>[tool.py]"]
end

subgraph group_evaluation["Evaluation"]
  node_metrics["Task evaluators"]
  node_unified_evaluator["Unified exact match<br/>[evaluator.py]"]
  node_mtop_metrics["MTOP metrics<br/>[top_metrics.py]"]
  node_wikisql_query["WikiSQL query parsing<br/>[query.py]"]
  node_wikisql_engine[("WikiSQL execution<br/>[dbengine.py]")]
end

node_researcher(("Researcher"))

node_researcher -->|"starts training"| node_train
node_train -->|"loads settings"| node_configuration
node_train -->|"loads datasets"| node_dataset_loading
node_train -->|"builds seq2seq data"| node_seq_construction
node_train -->|"resolves constructor"| node_tools
node_train -->|"uses arguments"| node_training_args
node_train -.->|"runs training"| node_trainer
node_task_definitions -.->|"task coverage"| node_seq_construction
node_seq_construction -->|"includes dialogue data"| node_multiwoz_constructor
node_table_truncate -->|"uses linearizer"| node_table_linearize
node_trainer -.->|"evaluates predictions"| node_metrics
node_metrics -.->|"includes shared scoring"| node_unified_evaluator
node_metrics -.->|"includes task scoring"| node_mtop_metrics
node_mtop_metrics -.->|"uses task utilities"| node_metrics
node_metrics -.->|"includes SQL parsing"| node_wikisql_query
node_wikisql_engine -->|"executes parsed query"| node_wikisql_query
node_prompt_auto -->|"selects model family"| node_prompt_models
node_prompt_auto -->|"selects BART"| node_bart_model
node_adapter_model -->|"uses adapter layers"| node_adapter_layers
node_combined_prefix -->|"extends base model"| node_model_base
node_combined_prefix -->|"uses prompt model classes"| node_prompt_auto

click node_train "https://github.com/xlang-ai/unifiedskg/blob/main/train.py"
click node_configuration "https://github.com/xlang-ai/unifiedskg/blob/main/utils/configue.py"
click node_task_definitions "https://github.com/xlang-ai/unifiedskg/tree/main/tasks"
click node_dataset_loading "https://github.com/xlang-ai/unifiedskg/blob/main/utils/dataset.py"
click node_seq_construction "https://github.com/xlang-ai/unifiedskg/tree/main/seq2seq_construction"
click node_multiwoz_constructor "https://github.com/xlang-ai/unifiedskg/blob/main/seq2seq_construction/multi_woz_22_response.py"
click node_table_linearize "https://github.com/xlang-ai/unifiedskg/blob/main/utils/processor/table_linearize.py"
click node_table_truncate "https://github.com/xlang-ai/unifiedskg/blob/main/utils/processor/table_truncate.py"
click node_model_base "https://github.com/xlang-ai/unifiedskg/blob/main/models/unified/base.py"
click node_prompt_models "https://github.com/xlang-ai/unifiedskg/blob/main/models/prompt/modeling_t5.py"
click node_prompt_auto "https://github.com/xlang-ai/unifiedskg/blob/main/models/prompt/modeling_auto.py"
click node_bart_model "https://github.com/xlang-ai/unifiedskg/blob/main/models/prompt/modeling_bart.py"
click node_adapter_model "https://github.com/xlang-ai/unifiedskg/blob/main/models/adapter/modeling_t5.py"
click node_adapter_layers "https://github.com/xlang-ai/unifiedskg/blob/main/models/adapter/adapter.py"
click node_combined_prefix "https://github.com/xlang-ai/unifiedskg/blob/main/models/unified/combined_prefixtuning.py"
click node_trainer "https://github.com/xlang-ai/unifiedskg/blob/main/utils/trainer.py"
click node_training_args "https://github.com/xlang-ai/unifiedskg/blob/main/utils/training_arguments.py"
click node_tools "https://github.com/xlang-ai/unifiedskg/blob/main/utils/tool.py"
click node_metrics "https://github.com/xlang-ai/unifiedskg/tree/main/metrics"
click node_unified_evaluator "https://github.com/xlang-ai/unifiedskg/blob/main/metrics/unified/evaluator.py"
click node_mtop_metrics "https://github.com/xlang-ai/unifiedskg/blob/main/metrics/mtop/top_metrics.py"
click node_wikisql_query "https://github.com/xlang-ai/unifiedskg/blob/main/metrics/wikisql_fully_supervised/query.py"
click node_wikisql_engine "https://github.com/xlang-ai/unifiedskg/blob/main/metrics/wikisql_fully_supervised/dbengine.py"

classDef toneNeutral fill:#f8fafc,stroke:#334155,stroke-width:1.5px,color:#0f172a
classDef toneBlue fill:#dbeafe,stroke:#2563eb,stroke-width:1.5px,color:#172554
classDef toneAmber fill:#fef3c7,stroke:#d97706,stroke-width:1.5px,color:#78350f
classDef toneMint fill:#dcfce7,stroke:#16a34a,stroke-width:1.5px,color:#14532d
classDef toneRose fill:#ffe4e6,stroke:#e11d48,stroke-width:1.5px,color:#881337
classDef toneIndigo fill:#e0e7ff,stroke:#4f46e5,stroke-width:1.5px,color:#312e81
classDef toneTeal fill:#ccfbf1,stroke:#0f766e,stroke-width:1.5px,color:#134e4a
class node_train toneBlue
class node_task_definitions,node_dataset_loading,node_seq_construction,node_multiwoz_constructor,node_table_linearize,node_table_truncate toneAmber
class node_model_base,node_prompt_models,node_prompt_auto,node_bart_model,node_adapter_model,node_adapter_layers,node_combined_prefix toneMint
class node_configuration,node_trainer,node_training_args,node_tools toneRose
class node_metrics,node_unified_evaluator,node_mtop_metrics,node_wikisql_query,node_wikisql_engine,node_researcher toneIndigo
```

## Components

### Training workflow

- [Training entry](https://github.com/xlang-ai/unifiedskg/blob/main/train.py): `train.py`

### Task data

- [Task definitions](https://github.com/xlang-ai/unifiedskg/tree/main/tasks): `tasks`
- [Dataset loading](https://github.com/xlang-ai/unifiedskg/blob/main/utils/dataset.py): `utils/dataset.py`
- [Seq2seq construction](https://github.com/xlang-ai/unifiedskg/tree/main/seq2seq_construction): `seq2seq_construction`
- [Dialogue expansion](https://github.com/xlang-ai/unifiedskg/blob/main/seq2seq_construction/multi_woz_22_response.py): `seq2seq_construction/multi_woz_22_response.py`
- [Table linearization](https://github.com/xlang-ai/unifiedskg/blob/main/utils/processor/table_linearize.py): `utils/processor/table_linearize.py`
- [Table truncation](https://github.com/xlang-ai/unifiedskg/blob/main/utils/processor/table_truncate.py): `utils/processor/table_truncate.py`

### Model variants

- [Model base](https://github.com/xlang-ai/unifiedskg/blob/main/models/unified/base.py): `models/unified/base.py`
- [Prompt models](https://github.com/xlang-ai/unifiedskg/blob/main/models/prompt/modeling_t5.py): `models/prompt/modeling_t5.py`
- [Prompt model selection](https://github.com/xlang-ai/unifiedskg/blob/main/models/prompt/modeling_auto.py): `models/prompt/modeling_auto.py`
- [BART prompt model](https://github.com/xlang-ai/unifiedskg/blob/main/models/prompt/modeling_bart.py): `models/prompt/modeling_bart.py`
- [Adapter T5](https://github.com/xlang-ai/unifiedskg/blob/main/models/adapter/modeling_t5.py): `models/adapter/modeling_t5.py`
- [Adapter layers](https://github.com/xlang-ai/unifiedskg/blob/main/models/adapter/adapter.py): `models/adapter/adapter.py`
- [Multi-task prefix tuning](https://github.com/xlang-ai/unifiedskg/blob/main/models/unified/combined_prefixtuning.py): `models/unified/combined_prefixtuning.py`

### Training runtime

- [Configuration](https://github.com/xlang-ai/unifiedskg/blob/main/utils/configue.py): `utils/configue.py`
- [Seq2seq trainer](https://github.com/xlang-ai/unifiedskg/blob/main/utils/trainer.py): `utils/trainer.py`
- [Training arguments](https://github.com/xlang-ai/unifiedskg/blob/main/utils/training_arguments.py): `utils/training_arguments.py`
- [Runtime utilities](https://github.com/xlang-ai/unifiedskg/blob/main/utils/tool.py): `utils/tool.py`

### Evaluation

- [Task evaluators](https://github.com/xlang-ai/unifiedskg/tree/main/metrics): `metrics`
- [Unified exact match](https://github.com/xlang-ai/unifiedskg/blob/main/metrics/unified/evaluator.py): `metrics/unified/evaluator.py`
- [MTOP metrics](https://github.com/xlang-ai/unifiedskg/blob/main/metrics/mtop/top_metrics.py): `metrics/mtop/top_metrics.py`
- [WikiSQL query parsing](https://github.com/xlang-ai/unifiedskg/blob/main/metrics/wikisql_fully_supervised/query.py): `metrics/wikisql_fully_supervised/query.py`
- [WikiSQL execution](https://github.com/xlang-ai/unifiedskg/blob/main/metrics/wikisql_fully_supervised/dbengine.py): `metrics/wikisql_fully_supervised/dbengine.py`

### Other components

- **Researcher**

## Connections

- Researcher → Training entry: starts training (evidence: `README.md`)
- Training entry → Configuration: loads settings (evidence: `train.py`)
- Training entry → Dataset loading: loads datasets (evidence: `train.py`)
- Training entry → Seq2seq construction: builds seq2seq data (evidence: `train.py`)
- Training entry → Runtime utilities: resolves constructor (evidence: `train.py`)
- Training entry → Training arguments: uses arguments (evidence: `train.py`)
- Training entry → Seq2seq trainer: runs training (evidence: `train.py`)
- Task definitions → Seq2seq construction: task coverage (evidence: `README.md`)
- Seq2seq construction → Dialogue expansion: includes dialogue data (evidence: `seq2seq_construction/multi_woz_22_response.py`)
- Table truncation → Table linearization: uses linearizer (evidence: `utils/processor/table_truncate.py`)
- Seq2seq trainer → Task evaluators: evaluates predictions
- Task evaluators → Unified exact match: includes shared scoring (evidence: `README.md`)
- Task evaluators → MTOP metrics: includes task scoring (evidence: `metrics/mtop/evaluator.py`)
- MTOP metrics → Task evaluators: uses task utilities (evidence: `metrics/mtop/top_metrics.py`)
- Task evaluators → WikiSQL query parsing: includes SQL parsing (evidence: `metrics/wikisql_fully_supervised/dbengine.py`)
- WikiSQL execution → WikiSQL query parsing: executes parsed query (evidence: `metrics/wikisql_fully_supervised/dbengine.py`)
- Prompt model selection → Prompt models: selects model family (evidence: `models/prompt/modeling_auto.py`)
- Prompt model selection → BART prompt model: selects BART (evidence: `models/prompt/modeling_auto.py`)
- Adapter T5 → Adapter layers: uses adapter layers (evidence: `models/adapter/modeling_t5.py`)
- Multi-task prefix tuning → Model base: extends base model (evidence: `models/unified/combined_prefixtuning.py`)
- Multi-task prefix tuning → Prompt model selection: uses prompt model classes (evidence: `models/unified/combined_prefixtuning.py`)
