Text Generation
PEFT
Safetensors
Transformers
Lithuanian
lora
sft
trl
unsloth
lithuanian
vision-language
bus-stop
conversational
Instructions to use user55442/Vilnius-Bus-Stop-LLM with libraries, inference providers, notebooks, and local apps. Follow these links to get started.
- Libraries
- PEFT
How to use user55442/Vilnius-Bus-Stop-LLM with PEFT:
from peft import PeftModel from transformers import AutoModelForCausalLM base_model = AutoModelForCausalLM.from_pretrained("unsloth/Qwen3-VL-2B-Instruct") model = PeftModel.from_pretrained(base_model, "user55442/Vilnius-Bus-Stop-LLM") - Transformers
How to use user55442/Vilnius-Bus-Stop-LLM with Transformers:
# Use a pipeline as a high-level helper from transformers import pipeline pipe = pipeline("text-generation", model="user55442/Vilnius-Bus-Stop-LLM") messages = [ {"role": "user", "content": "Who are you?"}, ] pipe(messages)# Load model directly from transformers import AutoModel model = AutoModel.from_pretrained("user55442/Vilnius-Bus-Stop-LLM", dtype="auto") - Notebooks
- Google Colab
- Kaggle
- Local Apps Settings
- vLLM
How to use user55442/Vilnius-Bus-Stop-LLM with vLLM:
Install from pip and serve model
# Install vLLM from pip: pip install vllm # Start the vLLM server: vllm serve "user55442/Vilnius-Bus-Stop-LLM" # Call the server using curl (OpenAI-compatible API): curl -X POST "http://localhost:8000/v1/chat/completions" \ -H "Content-Type: application/json" \ --data '{ "model": "user55442/Vilnius-Bus-Stop-LLM", "messages": [ { "role": "user", "content": "What is the capital of France?" } ] }'Use Docker
docker model run hf.co/user55442/Vilnius-Bus-Stop-LLM
- SGLang
How to use user55442/Vilnius-Bus-Stop-LLM with SGLang:
Install from pip and serve model
# Install SGLang from pip: pip install sglang # Start the SGLang server: python3 -m sglang.launch_server \ --model-path "user55442/Vilnius-Bus-Stop-LLM" \ --host 0.0.0.0 \ --port 30000 # Call the server using curl (OpenAI-compatible API): curl -X POST "http://localhost:30000/v1/chat/completions" \ -H "Content-Type: application/json" \ --data '{ "model": "user55442/Vilnius-Bus-Stop-LLM", "messages": [ { "role": "user", "content": "What is the capital of France?" } ] }'Use Docker images
docker run --gpus all \ --shm-size 32g \ -p 30000:30000 \ -v ~/.cache/huggingface:/root/.cache/huggingface \ --env "HF_TOKEN=<secret>" \ --ipc=host \ lmsysorg/sglang:latest \ python3 -m sglang.launch_server \ --model-path "user55442/Vilnius-Bus-Stop-LLM" \ --host 0.0.0.0 \ --port 30000 # Call the server using curl (OpenAI-compatible API): curl -X POST "http://localhost:30000/v1/chat/completions" \ -H "Content-Type: application/json" \ --data '{ "model": "user55442/Vilnius-Bus-Stop-LLM", "messages": [ { "role": "user", "content": "What is the capital of France?" } ] }' - Unsloth Studio
How to use user55442/Vilnius-Bus-Stop-LLM with Unsloth Studio:
Install Unsloth Studio (macOS, Linux, WSL)
curl -fsSL https://unsloth.ai/install.sh | sh # Run unsloth studio unsloth studio -H 0.0.0.0 -p 8888 # Then open http://localhost:8888 in your browser # Search for user55442/Vilnius-Bus-Stop-LLM to start chatting
Install Unsloth Studio (Windows)
irm https://unsloth.ai/install.ps1 | iex # Run unsloth studio unsloth studio -H 0.0.0.0 -p 8888 # Then open http://localhost:8888 in your browser # Search for user55442/Vilnius-Bus-Stop-LLM to start chatting
Using HuggingFace Spaces for Unsloth
# No setup required # Open https://huggingface.co/spaces/unsloth/studio in your browser # Search for user55442/Vilnius-Bus-Stop-LLM to start chatting
Load model with FastModel
pip install unsloth from unsloth import FastModel model, tokenizer = FastModel.from_pretrained( model_name="user55442/Vilnius-Bus-Stop-LLM", max_seq_length=2048, ) - Docker Model Runner
How to use user55442/Vilnius-Bus-Stop-LLM with Docker Model Runner:
docker model run hf.co/user55442/Vilnius-Bus-Stop-LLM
| base_model: unsloth/Qwen3-VL-2B-Instruct | |
| library_name: peft | |
| pipeline_tag: text-generation | |
| tags: | |
| - base_model:adapter:unsloth/Qwen3-VL-2B-Instruct | |
| - lora | |
| - sft | |
| - transformers | |
| - trl | |
| - unsloth | |
| - lithuanian | |
| - vision-language | |
| - bus-stop | |
| language: | |
| - lt | |
| license: apache-2.0 | |
| # Vilnius Bus Stop LLM | |
| A LoRA adapter fine-tuned on [Qwen3-VL-2B-Instruct](https://huggingface.co/unsloth/Qwen3-VL-2B-Instruct) to recognize Vilnius bus stops in images and describe them in **Lithuanian**. | |
| ## Model Details | |
| - **Model type:** Vision-Language Model (LoRA adapter) | |
| - **Base model:** `unsloth/Qwen3-VL-2B-Instruct` | |
| - **Language:** Lithuanian (lt) | |
| - **Fine-tuning framework:** [Unsloth](https://github.com/unslothai/unsloth) | |
| - **Task:** Image captioning of bus stops in Lithuanian | |
| ## How to Get Started | |
| ```python | |
| from peft import PeftModel | |
| from transformers import AutoProcessor, Qwen2VLForConditionalGeneration | |
| import torch | |
| base_model = "unsloth/Qwen3-VL-2B-Instruct" | |
| adapter = "user55442/Vilnius-Bus-Stop-LLM" | |
| model = Qwen2VLForConditionalGeneration.from_pretrained( | |
| base_model, | |
| torch_dtype=torch.bfloat16, | |
| device_map="auto", | |
| ignore_mismatched_sizes=True | |
| ) | |
| model = PeftModel.from_pretrained(model, adapter) | |
| processor = AutoProcessor.from_pretrained(base_model) | |
| ``` | |
| ## Training Details | |
| ### Dataset | |
| - **150 daytime images** of Vilnius bus stops, captured from varying angles and distances | |
| - Captions generated in English by Gemini, then translated to Lithuanian | |
| - 80/20 train/eval split → 120 training images, 30 test images | |
| ### Training Procedure | |
| - **Epochs:** 8 (optimal checkpoint ~step 120 before overfitting) | |
| - **Batch size:** 1 with gradient accumulation over 4 steps | |
| - **Learning rate:** 1e-4 (AdamW 8-bit optimizer) | |
| - **Precision:** bfloat16 | |
| - **Image resolution:** max 768×768 | |
| - **LoRA target layers:** language and attention layers (vision layers frozen) | |
| ## Evaluation Results | |
| ### Intrinsic Metrics | |
| | Metric | Base | Fine-tuned | | |
| |---|---|---| | |
| | ROUGE-L | 0.014 | 0.163 | | |
| | Semantic Similarity | 0.731 | 0.801 | | |
| | BLEU | 0.339 | 10.130 | | |
| | BERTScore F1 | 0.811 | 0.864 | | |
| | Perplexity | 14.170 | 6544.885 | | |
| ### LLM Judge Scores (Gemma-4-31B, scale 1–10) | |
| | Metric | Base | Fine-tuned | | |
| |---|---|---| | |
| | Fluency | 9.77 | 5.67 | | |
| | Relevance | 8.47 | 6.37 | | |
| | Factual Accuracy | 7.60 | 5.20 | | |
| | Creativity | 8.80 | 5.40 | | |
| ## Limitations | |
| - Trained on only 120 images — model shows signs of overfitting after ~120 steps | |
| - Perplexity increased sharply (14 → 6544), suggesting the model partially overfit to caption style | |
| - LLM judge noted grammatical errors, hallucinations, and incomplete sentences in some outputs | |
| - Performance may degrade on bus stops outside Vilnius or in different lighting conditions | |
| ## Framework Versions | |
| - PEFT 0.19.1 | |
| - Unsloth | |
| - Transformers | |