CoolFace
Modelpublic

AlexandreSheva/rukopys-qwen3-vl-8b-page

sourceHugging Faceapache-2.0updated 4mo agoView on Hugging Face
0likes6downloads
Model Card

<!-- This model card has been generated automatically according to the information the Trainer had access to. You should probably proofread and complete it, then remove this comment. -->

RUKOPYS Qwen3-VL 8B Page LoRA

Page-level LoRA adapter for Qwen/Qwen3-VL-8B-Instruct, fine-tuned for Ukrainian handwritten document understanding.

This model takes a full scanned page as input and predicts structured JSON regions: bounding boxes, region type, language metadata, and transcribed text. It was built as part of an end-to-end HTR pipeline for the RUKOPYS handwritten document dataset: data curation, supervised fine-tuning dataset generation, QLoRA training, inference, evaluation, and Kaggle-style submission export.

What It Does

  • —Parses full-page Ukrainian handwritten documents.
  • —Returns structured region-level JSON instead of plain OCR text.
  • —Supports document AI workflows where layout and transcription must be evaluated together.
  • —Serves as the first public baseline LoRA adapter from this project.

Training Data

Trained on the curated RUKOPYS MVP dataset:

`AlexandreSheva/rukopys-curated-mvp`

The dataset is a cleaned derivative of UkrainianCatholicUniversity/rukopys, prepared for page-level vision-language fine-tuning, crop-level transcription, and layout detection experiments.

Output Format

The expected output is JSON similar to:

json
[
  {
    "bbox": [10, 20, 300, 80],
    "type": "handwritten",
    "language": "uk",
    "text": "..."
  }
]

Notes

This is the original public 8B page-level adapter. For the improved checkpoint, use:

`AlexandreSheva/rukopys-qwen3-vl-8b-page-a100-v2`

Limitations

Optimized for Ukrainian handwriting and RUKOPYS-style documents. Sensitive to image quality, scan resolution, and page layout. Should be validated on target documents before production use. The adapter is Apache-2.0, but the training data derives from a CC BY-NC-SA 4.0 dataset.

Training procedure

Training hyperparameters

The following hyperparameters were used during training:

  • —learning_rate: 0.0002
  • —trainbatchsize: 1
  • —evalbatchsize: 1
  • —seed: 42
  • —gradientaccumulationsteps: 8
  • —totaltrainbatch_size: 8
  • —optimizer: Use OptimizerNames.ADAMWTORCHFUSED with betas=(0.9,0.999) and epsilon=1e-08 and optimizer_args=No additional optimizer arguments
  • —lrschedulertype: linear
  • —training_steps: 600

Training results

Training LossEpochStepValidation Loss
0.48630.1907500.5126
0.47140.38151000.4933
0.43690.57221500.4835
0.42010.76302000.4751
0.40590.95372500.4701
0.42961.14123000.4664
0.41541.33193500.4646
0.38691.52274000.4618
0.37841.71344500.4617
0.36311.90415000.4578
0.39042.09165500.4569
0.38742.28236000.4558

Framework versions

  • —PEFT 0.19.1
  • —Transformers 5.0.0
  • —Pytorch 2.11.0+cu128
  • —Datasets 4.8.5
  • —Tokenizers 0.22.2