How vietdocmemory/doc-to-lora works
Doc-to-LoRA (D2L) learns to convert a supplied context into LoRA adapter weights that influence a pretrained language model’s responses. Its main workflow is to prepare context–QA training data, train a context-conditioned adapter generator, then internalize a context and generate answers with the modulated model. The repository also includes synthetic QA generation, interactive inference, and a self-generated-data viewer. The README documents the inference API; sampled excerpts show data processing and training components, but not all model-internal wiring, so uncertain component-level calls are omitted.
Main entry points: train.py Training entry · processing.py Dataset processing · app.py Interactive demo · hypernet.py Modulated model
Components 21
Data preparation
- QA generation
data/generate_fw_edu_qa_v2_repeat.py - Self-generated QA
data/self_generate_qa.py - Dataset processing
src/ctx_to_lora/data/processing.py - Sequence packing
src/ctx_to_lora/data/packing.py - Batch collation
src/ctx_to_lora/data/collator.py
Adapter training
- Training entry
train.py - Training losses
src/ctx_to_lora/trainer.py - Adapter generator
src/ctx_to_lora/modeling/hypernet.py - Context encoder
src/ctx_to_lora/modeling/ctx_encoder.py - Context aggregator
src/ctx_to_lora/modeling/aggregator.py - LoRA layers
src/ctx_to_lora/modeling/lora_layer.py - Model checkpoint
- Evaluation metrics
src/ctx_to_lora/metrics.py
Context inference
- Interactive demo
demo/app.py - Model loading
src/ctx_to_lora/model_loading.py - Modulated model
src/ctx_to_lora/modeling/hypernet.py - Context compression
src/ctx_to_lora/modeling/llm_lingua.py - Pretrained model
Data tools
- QA data viewer
webui/self_gen_viewer.py - QA datasets
Other components
- Engineer
Connections 21
- Engineer → Interactive demo: submits context
- Engineer → Training entry: starts training
- Engineer → QA data viewer: browses samples
- QA generation → QA datasets: writes QA data
- Self-generated QA → QA datasets: writes QA data
- QA datasets → Dataset processing: loads examples
- Training entry → Dataset processing: prepares data
- Training entry → Adapter generator: builds model
- Training entry → Training losses: trains model
- Dataset processing → Sequence packing: packs sequences
- Dataset processing → Batch collation: prepares batches
- Adapter generator → Model checkpoint: saves weights
- Training entry → Evaluation metrics: evaluates training
- Engineer → Modulated model: internalizes context
- Interactive demo → Model loading: loads model
- Interactive demo → Modulated model: runs chat
- Interactive demo → Dataset processing: tokenizes context
- Modulated model → Pretrained model: modulates generation
- Model loading → Pretrained model: loads weights
- Modulated model → Context compression: may compress context
- QA data viewer → QA datasets: reads samples