Text Generation
PEFT
Safetensors
English
lora
data-to-text
text-to-data
factual-consistency
hallucination-detection
Instructions to use Loria-MosAIk/xqdt-e2e-gemma3-4b with libraries, inference providers, notebooks, and local apps. Follow these links to get started.
- Libraries
- PEFT
How to use Loria-MosAIk/xqdt-e2e-gemma3-4b with PEFT:
from peft import PeftModel from transformers import AutoModelForCausalLM base_model = AutoModelForCausalLM.from_pretrained("google/gemma-3-4b-it") model = PeftModel.from_pretrained(base_model, "Loria-MosAIk/xqdt-e2e-gemma3-4b") - Notebooks
- Google Colab
- Kaggle
Add files using upload-large-folder tool
Browse files- .gitattributes +0 -34
- README.md +174 -0
- adapter_config.json +38 -0
- adapter_model.safetensors +3 -0
- additional_config.json +1 -0
- provenance.json +15 -0
- requirements.txt +7 -0
- smoke_test.json +159 -0
- training_manifest.json +45 -0
.gitattributes
CHANGED
|
@@ -1,35 +1 @@
|
|
| 1 |
-
*.7z filter=lfs diff=lfs merge=lfs -text
|
| 2 |
-
*.arrow filter=lfs diff=lfs merge=lfs -text
|
| 3 |
-
*.bin filter=lfs diff=lfs merge=lfs -text
|
| 4 |
-
*.bz2 filter=lfs diff=lfs merge=lfs -text
|
| 5 |
-
*.ckpt filter=lfs diff=lfs merge=lfs -text
|
| 6 |
-
*.ftz filter=lfs diff=lfs merge=lfs -text
|
| 7 |
-
*.gz filter=lfs diff=lfs merge=lfs -text
|
| 8 |
-
*.h5 filter=lfs diff=lfs merge=lfs -text
|
| 9 |
-
*.joblib filter=lfs diff=lfs merge=lfs -text
|
| 10 |
-
*.lfs.* filter=lfs diff=lfs merge=lfs -text
|
| 11 |
-
*.mlmodel filter=lfs diff=lfs merge=lfs -text
|
| 12 |
-
*.model filter=lfs diff=lfs merge=lfs -text
|
| 13 |
-
*.msgpack filter=lfs diff=lfs merge=lfs -text
|
| 14 |
-
*.npy filter=lfs diff=lfs merge=lfs -text
|
| 15 |
-
*.npz filter=lfs diff=lfs merge=lfs -text
|
| 16 |
-
*.onnx filter=lfs diff=lfs merge=lfs -text
|
| 17 |
-
*.ot filter=lfs diff=lfs merge=lfs -text
|
| 18 |
-
*.parquet filter=lfs diff=lfs merge=lfs -text
|
| 19 |
-
*.pb filter=lfs diff=lfs merge=lfs -text
|
| 20 |
-
*.pickle filter=lfs diff=lfs merge=lfs -text
|
| 21 |
-
*.pkl filter=lfs diff=lfs merge=lfs -text
|
| 22 |
-
*.pt filter=lfs diff=lfs merge=lfs -text
|
| 23 |
-
*.pth filter=lfs diff=lfs merge=lfs -text
|
| 24 |
-
*.rar filter=lfs diff=lfs merge=lfs -text
|
| 25 |
*.safetensors filter=lfs diff=lfs merge=lfs -text
|
| 26 |
-
saved_model/**/* filter=lfs diff=lfs merge=lfs -text
|
| 27 |
-
*.tar.* filter=lfs diff=lfs merge=lfs -text
|
| 28 |
-
*.tar filter=lfs diff=lfs merge=lfs -text
|
| 29 |
-
*.tflite filter=lfs diff=lfs merge=lfs -text
|
| 30 |
-
*.tgz filter=lfs diff=lfs merge=lfs -text
|
| 31 |
-
*.wasm filter=lfs diff=lfs merge=lfs -text
|
| 32 |
-
*.xz filter=lfs diff=lfs merge=lfs -text
|
| 33 |
-
*.zip filter=lfs diff=lfs merge=lfs -text
|
| 34 |
-
*.zst filter=lfs diff=lfs merge=lfs -text
|
| 35 |
-
*tfevents* filter=lfs diff=lfs merge=lfs -text
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
*.safetensors filter=lfs diff=lfs merge=lfs -text
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
README.md
ADDED
|
@@ -0,0 +1,174 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
---
|
| 2 |
+
base_model: google/gemma-3-4b-it
|
| 3 |
+
library_name: peft
|
| 4 |
+
pipeline_tag: text-generation
|
| 5 |
+
language:
|
| 6 |
+
- en
|
| 7 |
+
tags:
|
| 8 |
+
- peft
|
| 9 |
+
- lora
|
| 10 |
+
- data-to-text
|
| 11 |
+
- text-to-data
|
| 12 |
+
- factual-consistency
|
| 13 |
+
- hallucination-detection
|
| 14 |
+
---
|
| 15 |
+
|
| 16 |
+
# XQDT E2E verifier: gemma3 4B
|
| 17 |
+
|
| 18 |
+
This repository contains the LoRA adapter for the **gemma3 4B**
|
| 19 |
+
XQDT verifier reported in *XQDT: eXplainable and Quantitative Data-Text Alignment
|
| 20 |
+
Metric with Feedback Signals*. The base model is
|
| 21 |
+
[`google/gemma-3-4b-it`](https://huggingface.co/google/gemma-3-4b-it); base-model
|
| 22 |
+
weights are not included here.
|
| 23 |
+
|
| 24 |
+
This checkpoint corresponds to the paper's E2E setting and was trained on the joint WebNLG--E2E synthetic training set; the short repository name does not mean E2E-only training.
|
| 25 |
+
|
| 26 |
+
## Intended use
|
| 27 |
+
|
| 28 |
+
XQDT verifies alignment between English text and structured triples. It returns
|
| 29 |
+
`missing`, `extra`, and `incorrect` units, or `All correct`. In the paper's
|
| 30 |
+
terminology, `missing` identifies an input unit omitted from the text; `extra`
|
| 31 |
+
identifies text content unsupported by the input; and `incorrect` identifies an
|
| 32 |
+
input unit realised with incorrect information.
|
| 33 |
+
|
| 34 |
+
The expected prompt and four frozen regression examples are provided in
|
| 35 |
+
`smoke_test.json`. This model is an evaluation component, not a general-purpose
|
| 36 |
+
fact checker, and has not been validated outside data--text alignment settings.
|
| 37 |
+
|
| 38 |
+
## Prompt format
|
| 39 |
+
|
| 40 |
+
```text
|
| 41 |
+
Verify if the triples align with the text. Find missing, extra, or incorrect triples.
|
| 42 |
+
TEXT: {text}
|
| 43 |
+
TRIPLES:
|
| 44 |
+
1. [S] {subject} [P] {predicate} [O] {object}
|
| 45 |
+
Output as markdown table with Type and Triple columns.
|
| 46 |
+
```
|
| 47 |
+
|
| 48 |
+
The canonical paper implementation uses **ms-swift PtEngine**. Transformers and
|
| 49 |
+
vLLM are provided as portable alternatives. Different libraries, versions, and
|
| 50 |
+
sampling implementations can produce small output differences; compare parsed
|
| 51 |
+
error units rather than requiring byte-identical text.
|
| 52 |
+
|
| 53 |
+
## ms-swift PtEngine
|
| 54 |
+
|
| 55 |
+
```python
|
| 56 |
+
import torch
|
| 57 |
+
from huggingface_hub import snapshot_download
|
| 58 |
+
from swift.llm import InferRequest, PtEngine, RequestConfig, get_model_tokenizer, get_template
|
| 59 |
+
from swift.tuners import Swift
|
| 60 |
+
|
| 61 |
+
BASE_MODEL = "google/gemma-3-4b-it"
|
| 62 |
+
ADAPTER_ID = "Loria-MosAIk/xqdt-e2e-gemma3-4b"
|
| 63 |
+
SYSTEM_PROMPT = "Identify extra, missing and incorrect triples precisely."
|
| 64 |
+
QUERY = """Verify if the triples align with the text. Find missing, extra, or incorrect triples.
|
| 65 |
+
TEXT: Blue Spice is a coffee shop in city centre.
|
| 66 |
+
TRIPLES:
|
| 67 |
+
1. [S] Blue Spice [P] area [O] city centre
|
| 68 |
+
2. [S] Blue Spice [P] eat type [O] coffee shop
|
| 69 |
+
Output as markdown table with Type and Triple columns."""
|
| 70 |
+
|
| 71 |
+
adapter_path = snapshot_download(ADAPTER_ID)
|
| 72 |
+
model, tokenizer = get_model_tokenizer(
|
| 73 |
+
BASE_MODEL,
|
| 74 |
+
model_kwargs={"device_map": "auto", "torch_dtype": torch.bfloat16},
|
| 75 |
+
)
|
| 76 |
+
model = Swift.from_pretrained(model, model_id=adapter_path, adapter_name="default")
|
| 77 |
+
template = get_template("gemma3_text", tokenizer, default_system=None)
|
| 78 |
+
engine = PtEngine.from_model_template(model, template, max_batch_size=1)
|
| 79 |
+
response = engine.infer(
|
| 80 |
+
[InferRequest(messages=[{"role": "user", "content": QUERY}])],
|
| 81 |
+
RequestConfig(max_tokens=1024, temperature=0.3),
|
| 82 |
+
use_tqdm=False,
|
| 83 |
+
)[0]
|
| 84 |
+
print(response.choices[0].message.content)
|
| 85 |
+
```
|
| 86 |
+
|
| 87 |
+
## Transformers and PEFT
|
| 88 |
+
|
| 89 |
+
```python
|
| 90 |
+
import torch
|
| 91 |
+
from peft import PeftModel
|
| 92 |
+
from transformers import set_seed
|
| 93 |
+
|
| 94 |
+
BASE_MODEL = "google/gemma-3-4b-it"
|
| 95 |
+
ADAPTER_ID = "Loria-MosAIk/xqdt-e2e-gemma3-4b"
|
| 96 |
+
SYSTEM_PROMPT = "Identify extra, missing and incorrect triples precisely."
|
| 97 |
+
QUERY = """Verify if the triples align with the text. Find missing, extra, or incorrect triples.
|
| 98 |
+
TEXT: Blue Spice is a coffee shop in city centre.
|
| 99 |
+
TRIPLES:
|
| 100 |
+
1. [S] Blue Spice [P] area [O] city centre
|
| 101 |
+
2. [S] Blue Spice [P] eat type [O] coffee shop
|
| 102 |
+
Output as markdown table with Type and Triple columns."""
|
| 103 |
+
MESSAGES = [{"role": "user", "content": QUERY}]
|
| 104 |
+
set_seed(2023)
|
| 105 |
+
|
| 106 |
+
from transformers import AutoProcessor, Gemma3ForConditionalGeneration
|
| 107 |
+
|
| 108 |
+
processor = AutoProcessor.from_pretrained(BASE_MODEL)
|
| 109 |
+
base = Gemma3ForConditionalGeneration.from_pretrained(
|
| 110 |
+
BASE_MODEL, torch_dtype=torch.bfloat16, device_map="auto"
|
| 111 |
+
)
|
| 112 |
+
model = PeftModel.from_pretrained(base, ADAPTER_ID).eval()
|
| 113 |
+
prompt = processor.apply_chat_template(MESSAGES, tokenize=False, add_generation_prompt=True)
|
| 114 |
+
inputs = processor(text=prompt, return_tensors="pt").to(model.device)
|
| 115 |
+
with torch.inference_mode():
|
| 116 |
+
output = model.generate(**inputs, max_new_tokens=1024, do_sample=True, temperature=0.3)
|
| 117 |
+
generated = output[0, inputs["input_ids"].shape[-1]:]
|
| 118 |
+
print(processor.decode(generated, skip_special_tokens=True))
|
| 119 |
+
```
|
| 120 |
+
|
| 121 |
+
## vLLM
|
| 122 |
+
|
| 123 |
+
The reference vLLM environment uses NVIDIA H100 hardware and the pinned versions
|
| 124 |
+
listed in `requirements.txt`. Other recent CUDA GPUs may also work, but are treated
|
| 125 |
+
as best-effort environments and should be recorded in the smoke-test report.
|
| 126 |
+
|
| 127 |
+
```python
|
| 128 |
+
from huggingface_hub import snapshot_download
|
| 129 |
+
from vllm import LLM, SamplingParams
|
| 130 |
+
from vllm.lora.request import LoRARequest
|
| 131 |
+
|
| 132 |
+
BASE_MODEL = "google/gemma-3-4b-it"
|
| 133 |
+
ADAPTER_ID = "Loria-MosAIk/xqdt-e2e-gemma3-4b"
|
| 134 |
+
SYSTEM_PROMPT = "Identify extra, missing and incorrect triples precisely."
|
| 135 |
+
QUERY = """Verify if the triples align with the text. Find missing, extra, or incorrect triples.
|
| 136 |
+
TEXT: Blue Spice is a coffee shop in city centre.
|
| 137 |
+
TRIPLES:
|
| 138 |
+
1. [S] Blue Spice [P] area [O] city centre
|
| 139 |
+
2. [S] Blue Spice [P] eat type [O] coffee shop
|
| 140 |
+
Output as markdown table with Type and Triple columns."""
|
| 141 |
+
MESSAGES = [{"role": "user", "content": QUERY}]
|
| 142 |
+
|
| 143 |
+
adapter_path = snapshot_download(ADAPTER_ID)
|
| 144 |
+
llm = LLM(model=BASE_MODEL, enable_lora=True)
|
| 145 |
+
outputs = llm.chat(
|
| 146 |
+
MESSAGES,
|
| 147 |
+
SamplingParams(max_tokens=1024, temperature=0.3, seed=2023),
|
| 148 |
+
lora_request=LoRARequest("xqdt", 1, adapter_path),
|
| 149 |
+
)
|
| 150 |
+
print(outputs[0].outputs[0].text)
|
| 151 |
+
```
|
| 152 |
+
|
| 153 |
+
## Reproducibility
|
| 154 |
+
|
| 155 |
+
- Adapter SHA-256 and sanitized training hyperparameters: `training_manifest.json`
|
| 156 |
+
- Frozen inputs and reference outputs: `smoke_test.json`
|
| 157 |
+
- Paper: [https://openreview.net/forum?id=t1037gQHuf](https://openreview.net/forum?id=t1037gQHuf)
|
| 158 |
+
- Code: [https://github.com/guihuzhang/xqdt](https://github.com/guihuzhang/xqdt)
|
| 159 |
+
|
| 160 |
+
The original training run did not freeze a public Hugging Face revision for every
|
| 161 |
+
base model. The standard base-model ID above replaces the machine-local cache path
|
| 162 |
+
stored by the training framework. Users must comply with the corresponding base
|
| 163 |
+
model's access terms and license.
|
| 164 |
+
|
| 165 |
+
## Citation
|
| 166 |
+
|
| 167 |
+
```bibtex
|
| 168 |
+
@inproceedings{efimov-zhang-etal-2026-xqdt,
|
| 169 |
+
title = {XQDT: eXplainable and Quantitative Data-Text Alignment Metric with Feedback Signals},
|
| 170 |
+
author = {Efimov-Zhang, Kun and Song, Yifei and Gardent, Claire},
|
| 171 |
+
booktitle = {Proceedings of the 2026 Conference on Empirical Methods in Natural Language Processing},
|
| 172 |
+
year = {2026}
|
| 173 |
+
}
|
| 174 |
+
```
|
adapter_config.json
ADDED
|
@@ -0,0 +1,38 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
{
|
| 2 |
+
"alora_invocation_tokens": null,
|
| 3 |
+
"alpha_pattern": {},
|
| 4 |
+
"arrow_config": null,
|
| 5 |
+
"auto_mapping": null,
|
| 6 |
+
"base_model_name_or_path": "google/gemma-3-4b-it",
|
| 7 |
+
"bias": "none",
|
| 8 |
+
"corda_config": null,
|
| 9 |
+
"ensure_weight_tying": false,
|
| 10 |
+
"eva_config": null,
|
| 11 |
+
"exclude_modules": null,
|
| 12 |
+
"fan_in_fan_out": false,
|
| 13 |
+
"inference_mode": true,
|
| 14 |
+
"init_lora_weights": true,
|
| 15 |
+
"layer_replication": null,
|
| 16 |
+
"layers_pattern": null,
|
| 17 |
+
"layers_to_transform": null,
|
| 18 |
+
"loftq_config": {},
|
| 19 |
+
"lora_alpha": 32,
|
| 20 |
+
"lora_bias": false,
|
| 21 |
+
"lora_dropout": 0.05,
|
| 22 |
+
"megatron_config": null,
|
| 23 |
+
"megatron_core": "megatron.core",
|
| 24 |
+
"modules_to_save": [],
|
| 25 |
+
"peft_type": "LORA",
|
| 26 |
+
"peft_version": "0.18.0",
|
| 27 |
+
"qalora_group_size": 16,
|
| 28 |
+
"r": 16,
|
| 29 |
+
"rank_pattern": {},
|
| 30 |
+
"revision": null,
|
| 31 |
+
"target_modules": "^(model.language_model.*\\.(k_proj|down_proj|o_proj|q_proj|gate_proj|v_proj|up_proj))$",
|
| 32 |
+
"target_parameters": null,
|
| 33 |
+
"task_type": "CAUSAL_LM",
|
| 34 |
+
"trainable_token_indices": null,
|
| 35 |
+
"use_dora": false,
|
| 36 |
+
"use_qalora": false,
|
| 37 |
+
"use_rslora": false
|
| 38 |
+
}
|
adapter_model.safetensors
ADDED
|
@@ -0,0 +1,3 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
version https://git-lfs.github.com/spec/v1
|
| 2 |
+
oid sha256:410f60027bb0884923650616b40eeeca780063887717817e8444f91e218775b8
|
| 3 |
+
size 119280712
|
additional_config.json
ADDED
|
@@ -0,0 +1 @@
|
|
|
|
|
|
|
| 1 |
+
{"lora_dtype": null, "lorap_lr_ratio": null, "lorap_emb_lr": 1e-06}
|
provenance.json
ADDED
|
@@ -0,0 +1,15 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
{
|
| 2 |
+
"original_base_model_reference_sha256": "f86883a98bbc65b60c2e2f8659ceb082787492caa846bfc930d8bc798b2f0bbf",
|
| 3 |
+
"original_base_model_reference_was_machine_local": true,
|
| 4 |
+
"published_base_model_name_or_path": "google/gemma-3-4b-it",
|
| 5 |
+
"schema_version": 1,
|
| 6 |
+
"source_checkpoint_relative_path": "checkpoints/checkpoints_e2e19/output_gemma3_4b_e2e19/v0-20260215-222239/checkpoint-6975",
|
| 7 |
+
"source_commit": "739c84d868f9d32bcf5c150bdf05c56260cfcaf4",
|
| 8 |
+
"source_files": {
|
| 9 |
+
"adapter_config.json": "15370905d97b26cc099b3733a8a1fbd7c00078357eb275cd5aeb0404cc3da037",
|
| 10 |
+
"adapter_model.safetensors": "410f60027bb0884923650616b40eeeca780063887717817e8444f91e218775b8",
|
| 11 |
+
"additional_config.json": "c7799462ebedae6557ffad31566029e2d2f958b7b40e46e972cf901bcaf45733",
|
| 12 |
+
"args.json": "f017bae22f7b4bc446dfe1afdf769656df7cb823b3e1ad386e6230c1f5f5f601",
|
| 13 |
+
"reference_predictions": "51b9c4e077f7495ca02acbeca9d5798bdbee1ea498c9ec60bf13fd98c08886e0"
|
| 14 |
+
}
|
| 15 |
+
}
|
requirements.txt
ADDED
|
@@ -0,0 +1,7 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
torch==2.10.0
|
| 2 |
+
ms-swift==4.1.3
|
| 3 |
+
transformers==4.57.6
|
| 4 |
+
peft==0.19.1
|
| 5 |
+
huggingface-hub==0.36.2
|
| 6 |
+
safetensors==0.7.0
|
| 7 |
+
vllm==0.18.1
|
smoke_test.json
ADDED
|
@@ -0,0 +1,159 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
{
|
| 2 |
+
"base_model": "google/gemma-3-4b-it",
|
| 3 |
+
"cases": [
|
| 4 |
+
{
|
| 5 |
+
"case": "correct",
|
| 6 |
+
"gold": {
|
| 7 |
+
"extra": [],
|
| 8 |
+
"incorrect": [],
|
| 9 |
+
"label": "positive",
|
| 10 |
+
"missing": []
|
| 11 |
+
},
|
| 12 |
+
"input_text": "Blue Spice is a coffee shop in city centre.",
|
| 13 |
+
"input_triples": [
|
| 14 |
+
"Blue Spice | area | city centre",
|
| 15 |
+
"Blue Spice | eat type | coffee shop"
|
| 16 |
+
],
|
| 17 |
+
"reference_model_output": "All correct",
|
| 18 |
+
"reference_parsed_output": {
|
| 19 |
+
"extra": [],
|
| 20 |
+
"incorrect": [],
|
| 21 |
+
"missing": []
|
| 22 |
+
},
|
| 23 |
+
"sample_id": 0,
|
| 24 |
+
"sample_index": 0
|
| 25 |
+
},
|
| 26 |
+
{
|
| 27 |
+
"case": "omitted",
|
| 28 |
+
"gold": {
|
| 29 |
+
"extra": [],
|
| 30 |
+
"incorrect": [],
|
| 31 |
+
"label": "negative",
|
| 32 |
+
"missing": [
|
| 33 |
+
"Mango | buenos aires | Crowne Plaza Hotel",
|
| 34 |
+
"The Cricketers | family friendly | yes",
|
| 35 |
+
"The Cricketers | eat type | restaurant"
|
| 36 |
+
]
|
| 37 |
+
},
|
| 38 |
+
"input_text": "The coffee shop Blue Spice is based near Crowne Plaza Hotel and has a high customer rating of 5 out of 5.",
|
| 39 |
+
"input_triples": [
|
| 40 |
+
"Blue Spice | customer rating | 5 out of 5",
|
| 41 |
+
"Blue Spice | eat type | coffee shop",
|
| 42 |
+
"Blue Spice | near | Crowne Plaza Hotel",
|
| 43 |
+
"Mango | buenos aires | Crowne Plaza Hotel",
|
| 44 |
+
"The Cricketers | family friendly | yes",
|
| 45 |
+
"The Cricketers | eat type | restaurant"
|
| 46 |
+
],
|
| 47 |
+
"reference_model_output": "| Type | Triple |\n| ---- | ------ |\n| Missing | [S] Mango [P] buenos aires [O] Crowne Plaza Hotel |\n| Missing | [S] The Cricketers [P] eat type [O] restaurant |\n| Missing | [S] The Cricketers [P] family friendly [O] yes |",
|
| 48 |
+
"reference_parsed_output": {
|
| 49 |
+
"extra": [],
|
| 50 |
+
"incorrect": [],
|
| 51 |
+
"missing": [
|
| 52 |
+
"[S] Mango [P] buenos aires [O] Crowne Plaza Hotel",
|
| 53 |
+
"[S] The Cricketers [P] eat type [O] restaurant",
|
| 54 |
+
"[S] The Cricketers [P] family friendly [O] yes"
|
| 55 |
+
]
|
| 56 |
+
},
|
| 57 |
+
"sample_id": 2,
|
| 58 |
+
"sample_index": 2
|
| 59 |
+
},
|
| 60 |
+
{
|
| 61 |
+
"case": "extra",
|
| 62 |
+
"gold": {
|
| 63 |
+
"extra": [
|
| 64 |
+
"Blue Spice | eat type | pub"
|
| 65 |
+
],
|
| 66 |
+
"incorrect": [],
|
| 67 |
+
"label": "negative",
|
| 68 |
+
"missing": []
|
| 69 |
+
},
|
| 70 |
+
"input_text": "At the riverside, there is a pub called The Blue Spice.",
|
| 71 |
+
"input_triples": [
|
| 72 |
+
"Blue Spice | area | riverside"
|
| 73 |
+
],
|
| 74 |
+
"reference_model_output": "| Type | Triple |\n| ---- | ------ |\n| Extra | [S] Blue Spice [P] eat type [O] pub |",
|
| 75 |
+
"reference_parsed_output": {
|
| 76 |
+
"extra": [
|
| 77 |
+
"[S] Blue Spice [P] eat type [O] pub"
|
| 78 |
+
],
|
| 79 |
+
"incorrect": [],
|
| 80 |
+
"missing": []
|
| 81 |
+
},
|
| 82 |
+
"sample_id": 6,
|
| 83 |
+
"sample_index": 6
|
| 84 |
+
},
|
| 85 |
+
{
|
| 86 |
+
"case": "incorrect",
|
| 87 |
+
"gold": {
|
| 88 |
+
"extra": [],
|
| 89 |
+
"incorrect": [
|
| 90 |
+
{
|
| 91 |
+
"error_type": "wrong_entity",
|
| 92 |
+
"incorrect": "Hot | area | riverside",
|
| 93 |
+
"original": "Blue Spice | area | riverside",
|
| 94 |
+
"replaced_element": "subject"
|
| 95 |
+
},
|
| 96 |
+
{
|
| 97 |
+
"error_type": "wrong_entity",
|
| 98 |
+
"incorrect": "Blue Spice | family friendly | Politics",
|
| 99 |
+
"original": "Blue Spice | family friendly | no",
|
| 100 |
+
"replaced_element": "object"
|
| 101 |
+
},
|
| 102 |
+
{
|
| 103 |
+
"error_type": "wrong_predicate",
|
| 104 |
+
"incorrect": "Blue Spice | brand | pub",
|
| 105 |
+
"original": "Blue Spice | eat type | pub",
|
| 106 |
+
"replaced_element": "predicate"
|
| 107 |
+
},
|
| 108 |
+
{
|
| 109 |
+
"error_type": "wrong_predicate",
|
| 110 |
+
"incorrect": "Blue Spice | address | Rainbow Vegetarian Café",
|
| 111 |
+
"original": "Blue Spice | near | Rainbow Vegetarian Café",
|
| 112 |
+
"replaced_element": "predicate"
|
| 113 |
+
},
|
| 114 |
+
{
|
| 115 |
+
"error_type": "wrong_predicate",
|
| 116 |
+
"incorrect": "Blue Spice | class | Chinese",
|
| 117 |
+
"original": "Blue Spice | food | Chinese",
|
| 118 |
+
"replaced_element": "predicate"
|
| 119 |
+
}
|
| 120 |
+
],
|
| 121 |
+
"label": "negative",
|
| 122 |
+
"missing": []
|
| 123 |
+
},
|
| 124 |
+
"input_text": "Blue Spice pub in riverside serves Chinese food. It is not family friendly and can be found near Rainbow Vegetarian Café.",
|
| 125 |
+
"input_triples": [
|
| 126 |
+
"Hot | area | riverside",
|
| 127 |
+
"Blue Spice | brand | pub",
|
| 128 |
+
"Blue Spice | family friendly | Politics",
|
| 129 |
+
"Blue Spice | class | Chinese",
|
| 130 |
+
"Blue Spice | address | Rainbow Vegetarian Café"
|
| 131 |
+
],
|
| 132 |
+
"reference_model_output": "| Type | Triple |\n| ---- | ------ |\n| Incorrect | [S] Hot [P] area [O] riverside |\n| Incorrect | [S] Blue Spice [P] brand [O] pub |\n| Incorrect | [S] Blue Spice [P] family friendly [O] Politics |\n| Incorrect | [S] Blue Spice [P] class [O] Chinese |\n| Incorrect | [S] Blue Spice [P] address [O] Rainbow Vegetarian Café |",
|
| 133 |
+
"reference_parsed_output": {
|
| 134 |
+
"extra": [],
|
| 135 |
+
"incorrect": [
|
| 136 |
+
"[S] Hot [P] area [O] riverside",
|
| 137 |
+
"[S] Blue Spice [P] brand [O] pub",
|
| 138 |
+
"[S] Blue Spice [P] family friendly [O] Politics",
|
| 139 |
+
"[S] Blue Spice [P] class [O] Chinese",
|
| 140 |
+
"[S] Blue Spice [P] address [O] Rainbow Vegetarian Café"
|
| 141 |
+
],
|
| 142 |
+
"missing": []
|
| 143 |
+
},
|
| 144 |
+
"sample_id": 13,
|
| 145 |
+
"sample_index": 13
|
| 146 |
+
}
|
| 147 |
+
],
|
| 148 |
+
"comparison": "Compare parsed error units after normalization. Byte-identical generation is not required across inference libraries.",
|
| 149 |
+
"reference_backend": "ms-swift PtEngine",
|
| 150 |
+
"reference_generation": {
|
| 151 |
+
"max_tokens": 1024,
|
| 152 |
+
"seed": 2023,
|
| 153 |
+
"temperature": 0.3
|
| 154 |
+
},
|
| 155 |
+
"reference_predictions_relative_path": "verifier_train_eval_e2e19/xqdt_outputs/test_predictions_gemma3_4b_6975.json",
|
| 156 |
+
"reference_predictions_sha256": "51b9c4e077f7495ca02acbeca9d5798bdbee1ea498c9ec60bf13fd98c08886e0",
|
| 157 |
+
"repository": "xqdt-e2e-gemma3-4b",
|
| 158 |
+
"schema_version": 1
|
| 159 |
+
}
|
training_manifest.json
ADDED
|
@@ -0,0 +1,45 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
{
|
| 2 |
+
"adapter_model_sha256": "410f60027bb0884923650616b40eeeca780063887717817e8444f91e218775b8",
|
| 3 |
+
"base_model": "google/gemma-3-4b-it",
|
| 4 |
+
"dataset_release_label": "e2e",
|
| 5 |
+
"hyperparameters": {
|
| 6 |
+
"bf16": true,
|
| 7 |
+
"dataset": [
|
| 8 |
+
"triple_error_train"
|
| 9 |
+
],
|
| 10 |
+
"dataset_num_proc": 1,
|
| 11 |
+
"eval_steps": 279,
|
| 12 |
+
"fp16": false,
|
| 13 |
+
"gradient_accumulation_steps": 4,
|
| 14 |
+
"gradient_checkpointing": true,
|
| 15 |
+
"learning_rate": 5e-05,
|
| 16 |
+
"logging_steps": 93,
|
| 17 |
+
"lora_alpha": 32,
|
| 18 |
+
"lora_dropout": 0.05,
|
| 19 |
+
"lora_rank": 16,
|
| 20 |
+
"max_length": 1024,
|
| 21 |
+
"max_new_tokens": 64,
|
| 22 |
+
"model": "google/gemma-3-4b-it",
|
| 23 |
+
"model_type": "gemma3_vision",
|
| 24 |
+
"num_train_epochs": 16,
|
| 25 |
+
"per_device_eval_batch_size": 4,
|
| 26 |
+
"per_device_train_batch_size": 4,
|
| 27 |
+
"save_steps": 279,
|
| 28 |
+
"save_total_limit": 3,
|
| 29 |
+
"seed": 2023,
|
| 30 |
+
"system": null,
|
| 31 |
+
"target_modules": [
|
| 32 |
+
"all-linear"
|
| 33 |
+
],
|
| 34 |
+
"template": "gemma3_text",
|
| 35 |
+
"torch_dtype": "bfloat16",
|
| 36 |
+
"train_type": "lora",
|
| 37 |
+
"warmup_ratio": 0.0625,
|
| 38 |
+
"weight_decay": 0.01
|
| 39 |
+
},
|
| 40 |
+
"repository": "xqdt-e2e-gemma3-4b",
|
| 41 |
+
"schema_version": 1,
|
| 42 |
+
"source_checkpoint_relative_path": "checkpoints/checkpoints_e2e19/output_gemma3_4b_e2e19/v0-20260215-222239/checkpoint-6975",
|
| 43 |
+
"source_commit": "739c84d868f9d32bcf5c150bdf05c56260cfcaf4",
|
| 44 |
+
"training_scope": "joint WebNLG and E2E synthetic data"
|
| 45 |
+
}
|