Text Generation
PEFT
Safetensors
Transformers
qwen3_5_text
lora
sft
trl
unsloth
dfk-detection
vlm
indonesian
multimodal
image-classification
content-moderation
conversational
Instructions to use aitf-its-tim3-dfk/KomdigiITS-0.8B-DFK-MultimodalClassification with libraries, inference providers, notebooks, and local apps. Follow these links to get started.
- Libraries
- PEFT
How to use aitf-its-tim3-dfk/KomdigiITS-0.8B-DFK-MultimodalClassification with PEFT:
Task type is invalid.
- Transformers
How to use aitf-its-tim3-dfk/KomdigiITS-0.8B-DFK-MultimodalClassification with Transformers:
# Use a pipeline as a high-level helper from transformers import pipeline pipe = pipeline("text-generation", model="aitf-its-tim3-dfk/KomdigiITS-0.8B-DFK-MultimodalClassification") messages = [ {"role": "user", "content": "Who are you?"}, ] pipe(messages)# Load model directly from transformers import AutoTokenizer, AutoModelForCausalLM tokenizer = AutoTokenizer.from_pretrained("aitf-its-tim3-dfk/KomdigiITS-0.8B-DFK-MultimodalClassification") model = AutoModelForCausalLM.from_pretrained("aitf-its-tim3-dfk/KomdigiITS-0.8B-DFK-MultimodalClassification") messages = [ {"role": "user", "content": "Who are you?"}, ] inputs = tokenizer.apply_chat_template( messages, add_generation_prompt=True, tokenize=True, return_dict=True, return_tensors="pt", ).to(model.device) outputs = model.generate(**inputs, max_new_tokens=40) print(tokenizer.decode(outputs[0][inputs["input_ids"].shape[-1]:])) - Notebooks
- Google Colab
- Kaggle
- Local Apps Settings
- vLLM
How to use aitf-its-tim3-dfk/KomdigiITS-0.8B-DFK-MultimodalClassification with vLLM:
Install from pip and serve model
# Install vLLM from pip: pip install vllm # Start the vLLM server: vllm serve "aitf-its-tim3-dfk/KomdigiITS-0.8B-DFK-MultimodalClassification" # Call the server using curl (OpenAI-compatible API): curl -X POST "http://localhost:8000/v1/chat/completions" \ -H "Content-Type: application/json" \ --data '{ "model": "aitf-its-tim3-dfk/KomdigiITS-0.8B-DFK-MultimodalClassification", "messages": [ { "role": "user", "content": "What is the capital of France?" } ] }'Use Docker
docker model run hf.co/aitf-its-tim3-dfk/KomdigiITS-0.8B-DFK-MultimodalClassification
- SGLang
How to use aitf-its-tim3-dfk/KomdigiITS-0.8B-DFK-MultimodalClassification 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 "aitf-its-tim3-dfk/KomdigiITS-0.8B-DFK-MultimodalClassification" \ --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": "aitf-its-tim3-dfk/KomdigiITS-0.8B-DFK-MultimodalClassification", "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 "aitf-its-tim3-dfk/KomdigiITS-0.8B-DFK-MultimodalClassification" \ --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": "aitf-its-tim3-dfk/KomdigiITS-0.8B-DFK-MultimodalClassification", "messages": [ { "role": "user", "content": "What is the capital of France?" } ] }' - Unsloth Studio
How to use aitf-its-tim3-dfk/KomdigiITS-0.8B-DFK-MultimodalClassification 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 aitf-its-tim3-dfk/KomdigiITS-0.8B-DFK-MultimodalClassification 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 aitf-its-tim3-dfk/KomdigiITS-0.8B-DFK-MultimodalClassification to start chatting
Using HuggingFace Spaces for Unsloth
# No setup required # Open https://huggingface.co/spaces/unsloth/studio in your browser # Search for aitf-its-tim3-dfk/KomdigiITS-0.8B-DFK-MultimodalClassification to start chatting
Load model with FastModel
pip install unsloth from unsloth import FastModel model, tokenizer = FastModel.from_pretrained( model_name="aitf-its-tim3-dfk/KomdigiITS-0.8B-DFK-MultimodalClassification", max_seq_length=2048, ) - Docker Model Runner
How to use aitf-its-tim3-dfk/KomdigiITS-0.8B-DFK-MultimodalClassification with Docker Model Runner:
docker model run hf.co/aitf-its-tim3-dfk/KomdigiITS-0.8B-DFK-MultimodalClassification
| base_model: unsloth/Qwen3.5-0.8B | |
| library_name: peft | |
| pipeline_tag: text-generation | |
| tags: | |
| - base_model:adapter:unsloth/Qwen3.5-0.8B | |
| - lora | |
| - sft | |
| - transformers | |
| - trl | |
| - unsloth | |
| - dfk-detection | |
| - vlm | |
| - indonesian | |
| - multimodal | |
| - image-classification | |
| - content-moderation | |
| <style> | |
| .mc { | |
| --bg: #f4f0f8; | |
| --panel: rgba(255,255,255,0.75); | |
| --accent: #8b7bc6; | |
| --accent2: #b5a8d9; | |
| --accent3: #d4cce8; | |
| --peach: #e8a87c; | |
| --peach2: #f0c4a0; | |
| --border: #d0c8e0; | |
| --text: #3a3050; | |
| --muted: #7a6f8e; | |
| --bright: #5a4a80; | |
| --white: #ffffff; | |
| --glow: rgba(139,123,198,0.10); | |
| --mono: 'JetBrains Mono', monospace; | |
| --sans: 'Inter', sans-serif; | |
| font-family: var(--sans); | |
| color: var(--text); | |
| background: var(--bg); | |
| max-width: 940px; | |
| margin: 0 auto; | |
| padding: 0 0 48px; | |
| line-height: 1.7; | |
| font-size: 1rem; | |
| } | |
| /* ── Hero ── */ | |
| .mc-hero { | |
| position: relative; | |
| border-bottom: 1px solid var(--accent2); | |
| margin: 0; | |
| } | |
| .mc-hero img { | |
| display: block; | |
| width: 100%; | |
| margin: 0; | |
| } | |
| .mc-title { | |
| text-align: center; | |
| position: relative; | |
| z-index: 1; | |
| } | |
| .mc-card { | |
| display: inline-block; | |
| padding: 20px 48px; | |
| background: rgba(255,255,255,0.9); | |
| border: 1px solid var(--accent2); | |
| box-shadow: 0 4px 32px rgba(139,123,198,0.18); | |
| margin-top: -70px; | |
| } | |
| .mc-name { | |
| font-size: 1.6rem; | |
| font-weight: 900; | |
| letter-spacing: 3px; | |
| text-transform: uppercase; | |
| margin: 0 0 6px; | |
| line-height: 1.2; | |
| background: linear-gradient(90deg, var(--bright), var(--accent), var(--peach)); | |
| background-clip: text; | |
| -webkit-background-clip: text; | |
| -webkit-text-fill-color: transparent; | |
| } | |
| .mc-base { | |
| font-family: var(--mono); | |
| font-size: 0.66rem; | |
| color: var(--muted); | |
| letter-spacing: 3px; | |
| text-transform: uppercase; | |
| } | |
| /* ── Diamond separators ── */ | |
| .mc-sep { | |
| display: flex; | |
| align-items: center; | |
| margin: 0 32px; | |
| padding: 16px 0; | |
| } | |
| .mc-sep-line { | |
| flex: 1; | |
| height: 1px; | |
| background: linear-gradient(90deg, transparent, var(--accent2), transparent); | |
| } | |
| .mc-dia { | |
| width: 9px; | |
| height: 9px; | |
| background: var(--accent); | |
| transform: rotate(45deg); | |
| box-shadow: 0 0 8px rgba(139,123,198,0.3); | |
| margin: 0 14px; | |
| flex-shrink: 0; | |
| } | |
| /* ── Sections ── */ | |
| .mc-section { | |
| margin: 0 32px; | |
| padding: 28px 32px; | |
| background: var(--panel); | |
| border: 1px solid var(--border); | |
| box-shadow: 0 2px 20px var(--glow); | |
| } | |
| /* ── Section headers ── */ | |
| .mc-shead { | |
| text-align: center; | |
| margin-bottom: 22px; | |
| } | |
| .mc-emblem { | |
| width: 36px; | |
| height: 36px; | |
| border: 2px solid var(--accent2); | |
| transform: rotate(45deg); | |
| margin: 0 auto 12px; | |
| display: flex; | |
| align-items: center; | |
| justify-content: center; | |
| box-shadow: 0 0 12px rgba(139,123,198,0.12); | |
| background: var(--white); | |
| } | |
| .mc-glyph { | |
| transform: rotate(-45deg); | |
| font-size: 0.9rem; | |
| color: var(--accent); | |
| line-height: 1; | |
| } | |
| .mc-stitle { | |
| font-size: 1.3rem; | |
| font-weight: 800; | |
| letter-spacing: 4px; | |
| text-transform: uppercase; | |
| margin: 0 !important; | |
| padding: 0 !important; | |
| border: none !important; | |
| display: block; | |
| background: linear-gradient(90deg, var(--accent), var(--bright), var(--accent)); | |
| background-clip: text; | |
| -webkit-background-clip: text; | |
| -webkit-text-fill-color: transparent; | |
| } | |
| /* ── Body ── */ | |
| .mc-sbody p { margin: 0 0 14px; font-size: 0.94rem; } | |
| .mc-sbody p:last-child { margin-bottom: 0; } | |
| /* ── Sub-headings ── */ | |
| .mc-sub { | |
| color: var(--bright) !important; | |
| font-size: 1rem !important; | |
| margin: 22px 0 12px !important; | |
| padding: 0 0 7px !important; | |
| font-weight: 700; | |
| text-transform: uppercase; | |
| letter-spacing: 2px; | |
| border: none !important; | |
| border-bottom: 2px solid var(--accent3) !important; | |
| } | |
| /* ── Data boxes ── */ | |
| .mc-data { | |
| background: var(--white); | |
| padding: 16px; | |
| border: 1px solid var(--border); | |
| border-left: 3px solid var(--accent); | |
| margin-bottom: 16px; | |
| box-shadow: 0 2px 12px var(--glow); | |
| font-size: 0.94rem; | |
| } | |
| .mc-data:last-child { margin-bottom: 0; } | |
| .mc-data--peach { border-left-color: var(--peach); } | |
| .mc-row { | |
| display: flex; | |
| align-items: center; | |
| margin-bottom: 7px; | |
| padding: 5px 0; | |
| border-bottom: 1px solid rgba(208,200,224,0.4); | |
| } | |
| .mc-row:last-child { margin-bottom: 0; border-bottom: none; } | |
| .mc-mark { | |
| width: 6px; | |
| height: 6px; | |
| background: var(--accent); | |
| transform: rotate(45deg); | |
| box-shadow: 0 0 4px rgba(139,123,198,0.25); | |
| margin-right: 12px; | |
| flex-shrink: 0; | |
| } | |
| .mc-mark--peach { background: var(--peach); box-shadow: 0 0 4px rgba(232,168,124,0.3); } | |
| .mc-label { | |
| color: var(--muted); | |
| font-weight: 700; | |
| margin-right: 12px; | |
| min-width: 100px; | |
| text-transform: uppercase; | |
| letter-spacing: 1px; | |
| font-size: 0.85rem; | |
| } | |
| .mc-val { | |
| color: var(--text); | |
| font-size: 0.9rem; | |
| } | |
| /* ── Grid layout ── */ | |
| .mc-grid { | |
| display: grid; | |
| grid-template-columns: 1fr 1fr; | |
| gap: 16px; | |
| } | |
| /* ── Metric cards ── */ | |
| .mc-metrics { | |
| display: grid; | |
| grid-template-columns: repeat(4, 1fr); | |
| gap: 12px; | |
| margin-bottom: 18px; | |
| } | |
| .mc-metric { | |
| background: var(--white); | |
| border: 1px solid var(--border); | |
| border-top: 3px solid var(--accent2); | |
| padding: 16px 12px 14px; | |
| text-align: center; | |
| box-shadow: 0 2px 12px var(--glow); | |
| } | |
| .mc-metric--highlight { border-top-color: var(--peach); } | |
| .mc-metric-val { | |
| font-family: var(--mono); | |
| font-size: 1.7rem; | |
| font-weight: 900; | |
| color: var(--bright); | |
| line-height: 1; | |
| margin-bottom: 5px; | |
| } | |
| .mc-metric--highlight .mc-metric-val { color: var(--peach); } | |
| .mc-metric-label { | |
| font-family: var(--mono); | |
| font-size: 0.56rem; | |
| font-weight: 700; | |
| letter-spacing: 0.14em; | |
| text-transform: uppercase; | |
| color: var(--muted); | |
| } | |
| /* ── Note ── */ | |
| .mc-note { | |
| border: 1px solid var(--border); | |
| border-left: 3px solid var(--peach); | |
| padding: 12px 16px; | |
| margin-top: 16px; | |
| background: rgba(232,168,124,0.06); | |
| font-size: 0.86rem; | |
| color: var(--muted); | |
| } | |
| .mc-note strong { | |
| color: var(--peach); | |
| font-family: var(--mono); | |
| font-size: 0.7rem; | |
| letter-spacing: 0.1em; | |
| text-transform: uppercase; | |
| } | |
| /* ── Links ── */ | |
| .mc a { | |
| color: var(--bright); | |
| text-decoration: none; | |
| font-weight: 600; | |
| border-bottom: 1px dotted var(--accent2); | |
| } | |
| .mc a:hover { color: var(--accent); border-bottom-style: solid; } | |
| /* ── Dropdown ── */ | |
| .mc-drop { margin-top: 18px; } | |
| .mc-drop details { | |
| border: 1px solid var(--border); | |
| background: var(--white); | |
| box-shadow: 0 2px 12px var(--glow); | |
| } | |
| .mc-drop summary { | |
| cursor: pointer; | |
| padding: 11px 16px; | |
| color: var(--muted); | |
| font-size: 0.9rem; | |
| font-weight: 700; | |
| text-transform: uppercase; | |
| letter-spacing: 2px; | |
| list-style: none; | |
| display: flex; | |
| align-items: center; | |
| gap: 10px; | |
| } | |
| .mc-drop summary::-webkit-details-marker { display: none; } | |
| .mc-drop summary::before { | |
| content: '+'; | |
| color: var(--accent); | |
| font-size: 1.1rem; | |
| font-weight: 700; | |
| line-height: 1; | |
| flex-shrink: 0; | |
| } | |
| .mc-drop details[open] summary::before { content: '−'; } | |
| .mc-drop summary:hover { color: var(--bright); } | |
| .mc-drop-body { | |
| padding: 18px; | |
| border-top: 1px solid var(--border); | |
| background: rgba(244,240,248,0.4); | |
| } | |
| .mc-drop-body p { margin: 0 0 12px; font-size: 0.9rem; } | |
| /* ── Code ── */ | |
| .mc pre { | |
| background: #2a2240; | |
| padding: 14px 16px; | |
| margin: 0 0 18px; | |
| border: 1px solid var(--accent3); | |
| border-left: 3px solid var(--accent); | |
| overflow-x: auto; | |
| color: #d4cce8; | |
| box-shadow: 0 2px 12px var(--glow); | |
| } | |
| .mc pre:last-child { margin-bottom: 0; } | |
| .mc pre code { | |
| font-family: var(--mono); | |
| font-size: 0.74rem; | |
| line-height: 1.6; | |
| background: none; | |
| color: inherit; | |
| padding: 0; | |
| display: block; | |
| border: none; | |
| } | |
| .mc code { | |
| font-family: var(--mono); | |
| font-size: 0.85em; | |
| color: var(--bright); | |
| background: rgba(139,123,198,0.08); | |
| padding: 2px 6px; | |
| border: 1px solid rgba(139,123,198,0.12); | |
| } | |
| </style> | |
| <html lang="en"> | |
| <head> | |
| <meta charset="UTF-8"> | |
| <meta name="viewport" content="width=device-width, initial-scale=1.0"> | |
| <title>KomdigiITS-0.8B-DFK-MultimodalClassification</title> | |
| <link rel="preconnect" href="https://fonts.googleapis.com"> | |
| <link rel="preconnect" href="https://fonts.gstatic.com" crossorigin> | |
| <link href="https://fonts.googleapis.com/css2?family=Inter:wght@400;600;700;800;900&family=JetBrains+Mono:wght@400;500&display=swap" rel="stylesheet"> | |
| </head> | |
| <body> | |
| <div class="mc"> | |
| <div class="mc-hero"> | |
| <img src="dfk_hero_banner.png" alt="image"> | |
| </div> | |
| <div class="mc-title"> | |
| <div class="mc-card"> | |
| <h1 class="mc-name">KomdigiITS-0.8B-DFK<br>Multimodal Classification</h1> | |
| <span class="mc-base">Qwen3.5-0.8B · LoRA · Vision-Language</span> | |
| </div> | |
| </div> | |
| <div class="mc-sep"><div class="mc-sep-line"></div><div class="mc-dia"></div><div class="mc-sep-line"></div></div> | |
| <div class="mc-section"> | |
| <div class="mc-shead"> | |
| <div class="mc-emblem"><span class="mc-glyph">✺</span></div> | |
| <span class="mc-stitle">Overview</span> | |
| </div> | |
| <div class="mc-sbody"> | |
| <p>A LoRA adapter fine-tuned on <a href="https://huggingface.co/unsloth/Qwen3.5-0.8B">Qwen3.5-0.8B</a> as a Vision-Language Model for multimodal content classification. The model analyzes social media screenshots and classifies them into four categories: <code>netral</code>, <code>disinformasi</code>, <code>fitnah</code>, and <code>ujaran kebencian</code>.</p> | |
| <p>Trained using the <a href="https://github.com/aitf-its-tim3-dfk/SITA">SITA</a> framework with Unsloth's SFT pipeline. Given an image, the model produces a structured analysis with a classification label and a detailed Indonesian-language reasoning of any violations found.</p> | |
| <div class="mc-note"> | |
| <strong>♦ Note:</strong> This is the final checkpoint from Workshop 3 (<code>final-qwen35-0.8b-ws3</code>), trained on the DFK VLM Dataset V3 with augmented train/val splits. | |
| </div> | |
| </div> | |
| </div> | |
| <div class="mc-sep"><div class="mc-sep-line"></div><div class="mc-dia"></div><div class="mc-sep-line"></div></div> | |
| <div class="mc-section"> | |
| <div class="mc-shead"> | |
| <div class="mc-emblem"><span class="mc-glyph">✺</span></div> | |
| <span class="mc-stitle">Model Details</span> | |
| </div> | |
| <div class="mc-sbody"> | |
| <div class="mc-grid"> | |
| <div> | |
| <h3 class="mc-sub">Identity</h3> | |
| <div class="mc-data"> | |
| <div class="mc-row"><span class="mc-mark"></span><span class="mc-label">Developed by:</span><span class="mc-val">DFK Tim 3 ITS</span></div> | |
| <div class="mc-row"><span class="mc-mark"></span><span class="mc-label">Model type:</span><span class="mc-val">VLM — LoRA adapter</span></div> | |
| <div class="mc-row"><span class="mc-mark"></span><span class="mc-label">Language:</span><span class="mc-val">Indonesian</span></div> | |
| </div> | |
| </div> | |
| <div> | |
| <h3 class="mc-sub">Architecture</h3> | |
| <div class="mc-data"> | |
| <div class="mc-row"><span class="mc-mark"></span><span class="mc-label">Base model:</span><span class="mc-val"><a href="https://huggingface.co/unsloth/Qwen3.5-0.8B">unsloth/Qwen3.5-0.8B</a></span></div> | |
| <div class="mc-row"><span class="mc-mark"></span><span class="mc-label">Arch:</span><span class="mc-val">Qwen3_5ForCausalLM</span></div> | |
| <div class="mc-row"><span class="mc-mark"></span><span class="mc-label">Parameters:</span><span class="mc-val">0.8B (base)</span></div> | |
| <div class="mc-row"><span class="mc-mark"></span><span class="mc-label">Precision:</span><span class="mc-val">bfloat16</span></div> | |
| </div> | |
| </div> | |
| </div> | |
| </div> | |
| </div> | |
| <div class="mc-sep"><div class="mc-sep-line"></div><div class="mc-dia"></div><div class="mc-sep-line"></div></div> | |
| <div class="mc-section"> | |
| <div class="mc-shead"> | |
| <div class="mc-emblem"><span class="mc-glyph">✺</span></div> | |
| <span class="mc-stitle">Uses</span> | |
| </div> | |
| <div class="mc-sbody"> | |
| <h3 class="mc-sub">Direct Use</h3> | |
| <div class="mc-data"> | |
| <p style="margin:0;">Image-based content moderation classification for Indonesian social media. Given a screenshot, the model produces a structured analysis with a classification label (<code>netral</code>, <code>disinformasi</code>, <code>fitnah</code>, or <code>ujaran kebencian</code>) and a detailed reasoning in Indonesian.</p> | |
| </div> | |
| <h3 class="mc-sub">Out-of-Scope Use</h3> | |
| <div class="mc-data mc-data--peach"> | |
| <p style="margin:0;">This model is not intended for general-purpose vision-language tasks. It is specialized for the DFK disinformation detection pipeline and should not be used for content moderation in other languages or domains without further fine-tuning.</p> | |
| </div> | |
| </div> | |
| </div> | |
| <div class="mc-sep"><div class="mc-sep-line"></div><div class="mc-dia"></div><div class="mc-sep-line"></div></div> | |
| <div class="mc-section"> | |
| <div class="mc-shead"> | |
| <div class="mc-emblem"><span class="mc-glyph">✺</span></div> | |
| <span class="mc-stitle">Evaluation</span> | |
| </div> | |
| <div class="mc-sbody"> | |
| <p>Evaluated on the held-out validation split using greedy decoding (<code>temperature=0.0</code>) and BERTScore (<code>bert-base-multilingual-cased</code>).</p> | |
| <div class="mc-metrics"> | |
| <div class="mc-metric mc-metric--highlight"> | |
| <div class="mc-metric-val">92.5</div> | |
| <div class="mc-metric-label">Accuracy</div> | |
| </div> | |
| <div class="mc-metric"> | |
| <div class="mc-metric-val">89.3</div> | |
| <div class="mc-metric-label">F1 Macro</div> | |
| </div> | |
| <div class="mc-metric"> | |
| <div class="mc-metric-val">92.8</div> | |
| <div class="mc-metric-label">F1 Weighted</div> | |
| </div> | |
| <div class="mc-metric"> | |
| <div class="mc-metric-val">79.5</div> | |
| <div class="mc-metric-label">BERTScore F1</div> | |
| </div> | |
| </div> | |
| <div class="mc-drop"> | |
| <details> | |
| <summary>Per-Class Breakdown</summary> | |
| <div class="mc-drop-body"> | |
| <div class="mc-data" style="margin-bottom:0;"> | |
| <div class="mc-row"><span class="mc-mark"></span><span class="mc-label">Netral:</span><span class="mc-val">P 0.954 · R 0.941 · F1 0.948 · n=970</span></div> | |
| <div class="mc-row"><span class="mc-mark"></span><span class="mc-label">Ujaran Kbnci:</span><span class="mc-val">P 0.982 · R 0.930 · F1 0.955 · n=867</span></div> | |
| <div class="mc-row"><span class="mc-mark"></span><span class="mc-label">Disinformasi:</span><span class="mc-val">P 0.943 · R 0.888 · F1 0.915 · n=392</span></div> | |
| <div class="mc-row"><span class="mc-mark"></span><span class="mc-label">Fitnah:</span><span class="mc-val">P 0.651 · R 0.901 · F1 0.756 · n=213</span></div> | |
| </div> | |
| </div> | |
| </details> | |
| </div> | |
| <div class="mc-drop"> | |
| <details> | |
| <summary>BERTScore Details</summary> | |
| <div class="mc-drop-body"> | |
| <div class="mc-data" style="margin-bottom:0;"> | |
| <div class="mc-row"><span class="mc-mark"></span><span class="mc-label">Precision:</span><span class="mc-val">0.797</span></div> | |
| <div class="mc-row"><span class="mc-mark"></span><span class="mc-label">Recall:</span><span class="mc-val">0.793</span></div> | |
| <div class="mc-row"><span class="mc-mark"></span><span class="mc-label">F1:</span><span class="mc-val">0.795</span></div> | |
| </div> | |
| </div> | |
| </details> | |
| </div> | |
| </div> | |
| </div> | |
| <div class="mc-sep"><div class="mc-sep-line"></div><div class="mc-dia"></div><div class="mc-sep-line"></div></div> | |
| <div class="mc-section"> | |
| <div class="mc-shead"> | |
| <div class="mc-emblem"><span class="mc-glyph">✺</span></div> | |
| <span class="mc-stitle">Training Details</span> | |
| </div> | |
| <div class="mc-sbody"> | |
| <h3 class="mc-sub">Training Data</h3> | |
| <div class="mc-data"> | |
| <div class="mc-row"><span class="mc-mark"></span><span class="mc-label">Dataset:</span><span class="mc-val"><code>dfk_vlm_dataset_v3</code> (augmented on <code>fitnah</code> class)</span></div> | |
| <div class="mc-row"><span class="mc-mark"></span><span class="mc-label">Split mode:</span><span class="mc-val">Fixed splits (train_aug.csv / val_aug.csv)</span></div> | |
| <div class="mc-row"><span class="mc-mark"></span><span class="mc-label">Train size:</span><span class="mc-val">14,293 samples</span></div> | |
| <div class="mc-row"><span class="mc-mark"></span><span class="mc-label">Val size:</span><span class="mc-val">2,831 samples</span></div> | |
| </div> | |
| <h3 class="mc-sub">Label Classes</h3> | |
| <div class="mc-data"> | |
| <div class="mc-row"><span class="mc-mark"></span><span class="mc-label">Netral:</span><span class="mc-val">Factual content or non-DFK material — no violation detected</span></div> | |
| <div class="mc-row"><span class="mc-mark"></span><span class="mc-label">Disinformasi:</span><span class="mc-val">Claims that contradict established facts, not directed at a specific person</span></div> | |
| <div class="mc-row"><span class="mc-mark"></span><span class="mc-label">Fitnah:</span><span class="mc-val">False claims directed at a specific individual (defamation)</span></div> | |
| <div class="mc-row"><span class="mc-mark"></span><span class="mc-label">Ujaran Kbnci:</span><span class="mc-val">Hate speech targeting ethnicity, religion, race, or intergroup identity (SARA)</span></div> | |
| </div> | |
| <div class="mc-drop"> | |
| <details> | |
| <summary>Dataset Distribution</summary> | |
| <div class="mc-drop-body"> | |
| <div class="mc-data"> | |
| <div class="mc-row"><span class="mc-mark mc-mark--peach"></span><span class="mc-label" style="min-width:140px;">Train (aug)</span><span class="mc-val" style="font-family:var(--mono);font-size:0.82rem;">14,293 total</span></div> | |
| <div class="mc-row"><span class="mc-mark"></span><span class="mc-label" style="min-width:140px;">Netral:</span><span class="mc-val">3,883 (27.2%)</span></div> | |
| <div class="mc-row"><span class="mc-mark"></span><span class="mc-label" style="min-width:140px;">Fitnah:</span><span class="mc-val">3,846 (26.9%)</span></div> | |
| <div class="mc-row"><span class="mc-mark"></span><span class="mc-label" style="min-width:140px;">Ujaran Kbnci:</span><span class="mc-val">3,484 (24.4%)</span></div> | |
| <div class="mc-row"><span class="mc-mark"></span><span class="mc-label" style="min-width:140px;">Disinformasi:</span><span class="mc-val">3,080 (21.6%)</span></div> | |
| </div> | |
| <div class="mc-data" style="margin-top:12px;"> | |
| <div class="mc-row"><span class="mc-mark mc-mark--peach"></span><span class="mc-label" style="min-width:140px;">Val (aug)</span><span class="mc-val" style="font-family:var(--mono);font-size:0.82rem;">2,831 total</span></div> | |
| <div class="mc-row"><span class="mc-mark"></span><span class="mc-label" style="min-width:140px;">Netral:</span><span class="mc-val">970 (34.3%)</span></div> | |
| <div class="mc-row"><span class="mc-mark"></span><span class="mc-label" style="min-width:140px;">Ujaran Kbnci:</span><span class="mc-val">867 (30.6%)</span></div> | |
| <div class="mc-row"><span class="mc-mark"></span><span class="mc-label" style="min-width:140px;">Disinformasi:</span><span class="mc-val">765 (27.0%)</span></div> | |
| <div class="mc-row"><span class="mc-mark"></span><span class="mc-label" style="min-width:140px;">Fitnah:</span><span class="mc-val">229 (8.1%)</span></div> | |
| </div> | |
| </div> | |
| </details> | |
| </div> | |
| <div class="mc-grid"> | |
| <div> | |
| <h3 class="mc-sub">LoRA Configuration</h3> | |
| <div class="mc-data"> | |
| <div class="mc-row"><span class="mc-mark"></span><span class="mc-label">r:</span><span class="mc-val">16</span></div> | |
| <div class="mc-row"><span class="mc-mark"></span><span class="mc-label">Alpha:</span><span class="mc-val">16</span></div> | |
| <div class="mc-row"><span class="mc-mark"></span><span class="mc-label">Dropout:</span><span class="mc-val">0.1</span></div> | |
| <div class="mc-row"><span class="mc-mark"></span><span class="mc-label">Targets:</span><span class="mc-val">all-linear</span></div> | |
| <div class="mc-row"><span class="mc-mark mc-mark--peach"></span><span class="mc-label">Vision:</span><span class="mc-val">✓ finetuned</span></div> | |
| <div class="mc-row"><span class="mc-mark mc-mark--peach"></span><span class="mc-label">Language:</span><span class="mc-val">✓ finetuned</span></div> | |
| <div class="mc-row"><span class="mc-mark mc-mark--peach"></span><span class="mc-label">Attention:</span><span class="mc-val">✓ finetuned</span></div> | |
| <div class="mc-row"><span class="mc-mark mc-mark--peach"></span><span class="mc-label">MLP:</span><span class="mc-val">✓ finetuned</span></div> | |
| </div> | |
| </div> | |
| <div> | |
| <h3 class="mc-sub">Hyperparameters</h3> | |
| <div class="mc-data"> | |
| <div class="mc-row"><span class="mc-mark"></span><span class="mc-label">Epochs:</span><span class="mc-val">3</span></div> | |
| <div class="mc-row"><span class="mc-mark"></span><span class="mc-label">Batch size:</span><span class="mc-val">32</span></div> | |
| <div class="mc-row"><span class="mc-mark"></span><span class="mc-label">LR:</span><span class="mc-val">2e-4</span></div> | |
| <div class="mc-row"><span class="mc-mark"></span><span class="mc-label">Optimizer:</span><span class="mc-val">AdamW 8-bit</span></div> | |
| <div class="mc-row"><span class="mc-mark"></span><span class="mc-label">Max seq len:</span><span class="mc-val">2048</span></div> | |
| <div class="mc-row"><span class="mc-mark"></span><span class="mc-label">Grad accum:</span><span class="mc-val">1</span></div> | |
| <div class="mc-row"><span class="mc-mark"></span><span class="mc-label">Grad ckpt:</span><span class="mc-val">unsloth</span></div> | |
| <div class="mc-row"><span class="mc-mark"></span><span class="mc-label">Seed:</span><span class="mc-val">3407</span></div> | |
| </div> | |
| </div> | |
| </div> | |
| <h3 class="mc-sub">Trainer</h3> | |
| <div class="mc-data"> | |
| <div class="mc-row"><span class="mc-mark"></span><span class="mc-label">Type:</span><span class="mc-val"><code>unsloth_vlm_sft</code> (Unsloth VLM SFT trainer)</span></div> | |
| <div class="mc-row"><span class="mc-mark"></span><span class="mc-label">Train on:</span><span class="mc-val">Responses only</span></div> | |
| <div class="mc-row"><span class="mc-mark"></span><span class="mc-label">Instr part:</span><span class="mc-val"><code><|im_start|>user\n</code></span></div> | |
| <div class="mc-row"><span class="mc-mark"></span><span class="mc-label">Resp part:</span><span class="mc-val"><code><|im_start|>assistant\n</code></span></div> | |
| <div class="mc-row"><span class="mc-mark"></span><span class="mc-label">Best model:</span><span class="mc-val">Selected by <code>eval_loss</code> (lower is better)</span></div> | |
| </div> | |
| <div class="mc-drop"> | |
| <details> | |
| <summary>Prompt Template</summary> | |
| <div class="mc-drop-body"> | |
| <p>Each sample is formatted as a multi-turn conversation using <code>qwen3.5_chatml</code>:</p> | |
| <pre><code><|im_start|>user | |
| Anda adalah seorang analis konten media sosial ahli. Diberikan tangkapan layar | |
| dari sebuah konten, tentukan label kategori pelanggaran dan berikan analisis | |
| detail mengenai pelanggaran yang ditemukan. | |
| Ringkasan: {ringkasan} | |
| Klaim: {klaim} | |
| Fakta: {fakta} | |
| <image> | |
| <|im_end|> | |
| <|im_start|>assistant | |
| Label: {label} | |
| Analisis: {analisis} | |
| <|im_end|></code></pre> | |
| <h3 class="mc-sub" style="margin-top:20px;">Input Fields</h3> | |
| <div class="mc-data"> | |
| <div class="mc-row"><span class="mc-mark"></span><span class="mc-label">Ringkasan:</span><span class="mc-val">Content summary. In the RAG pipeline this is the concatenation of the image caption (from a captioning model) and any user-provided text (e.g. post caption, tweet text). Effectively holds all available textual context about the content.</span></div> | |
| <div class="mc-row"><span class="mc-mark"></span><span class="mc-label">Klaim:</span><span class="mc-val">The core claim extracted from the content, used as a web search query for fact-checking. Generated by an LLM from the ringkasan. Can also be a direct caption or user-provided text in simpler setups.</span></div> | |
| <div class="mc-row"><span class="mc-mark"></span><span class="mc-label">Fakta:</span><span class="mc-val">Verification context retrieved via web search. Contains numbered search results with titles, descriptions, and source URLs. If no relevant sources are found, defaults to <code>"Tidak ditemukan sumber yang valid."</code></span></div> | |
| <div class="mc-row"><span class="mc-mark"></span><span class="mc-label"><image>:</span><span class="mc-val">Screenshot of the social media post being analyzed.</span></div> | |
| </div> | |
| <h3 class="mc-sub">Output Fields</h3> | |
| <div class="mc-data"> | |
| <div class="mc-row"><span class="mc-mark mc-mark--peach"></span><span class="mc-label">Label:</span><span class="mc-val">One of <code>netral</code>, <code>disinformasi</code>, <code>fitnah</code>, or <code>ujaran kebencian</code>.</span></div> | |
| <div class="mc-row"><span class="mc-mark mc-mark--peach"></span><span class="mc-label">Analisis:</span><span class="mc-val">Free-form Indonesian-language explanation of why the content was assigned its label, referencing the image, context, and any retrieved facts.</span></div> | |
| </div> | |
| </div> | |
| </details> | |
| </div> | |
| <div class="mc-drop"> | |
| <details> | |
| <summary>Full Training Config</summary> | |
| <div class="mc-drop-body"> | |
| <pre><code>experiment_name: final-qwen35-0.8b-ws3 | |
| seed: 3407 | |
| reporting: | |
| wandb: true | |
| wandb_project: "DFK3" | |
| model: | |
| name: unsloth_vlm | |
| pretrained: unsloth/Qwen3.5-0.8B | |
| kwargs: | |
| load_in_4bit: false | |
| chat_template: "sita/templates/qwen3.5_chatml.jinja" | |
| adapter: | |
| name: unsloth_vlm_lora | |
| kwargs: | |
| finetune_vision_layers: true | |
| finetune_language_layers: true | |
| finetune_attention_modules: true | |
| finetune_mlp_modules: true | |
| r: 16 | |
| lora_alpha: 16 | |
| lora_dropout: 0.1 | |
| bias: "none" | |
| target_modules: "all-linear" | |
| use_gradient_checkpointing: "unsloth" | |
| random_state: 3407 | |
| dataset: | |
| name: dfk_vlm_dataset_v3 | |
| training: | |
| num_epochs: 3 | |
| batch_size: 32 | |
| learning_rate: 2e-4 | |
| gradient_accumulation_steps: 1 | |
| logging_steps: 1 | |
| save_steps: 100 | |
| eval_steps: 50 | |
| extra: | |
| seed: 3407 | |
| max_length: 2048 | |
| load_best_model_at_end: true | |
| metric_for_best_model: eval_loss | |
| greater_is_better: false | |
| trainer: | |
| name: unsloth_vlm_sft | |
| kwargs: | |
| train_on_responses_only: true | |
| instruction_part: "<|im_start|>user\n" | |
| response_part: "<|im_start|>assistant\n" | |
| optim: adamw_8bit | |
| evaluation: | |
| name: vlm_gen | |
| kwargs: | |
| max_new_tokens: 512 | |
| temperature: 0.0 | |
| bert_model: bert-base-multilingual-cased | |
| batch_size: 16 | |
| num_workers: 11</code></pre> | |
| </div> | |
| </details> | |
| </div> | |
| </div> | |
| </div> | |
| <div class="mc-sep"><div class="mc-sep-line"></div><div class="mc-dia"></div><div class="mc-sep-line"></div></div> | |
| <div class="mc-section"> | |
| <div class="mc-shead"> | |
| <div class="mc-emblem"><span class="mc-glyph">✺</span></div> | |
| <span class="mc-stitle">Model Sources</span> | |
| </div> | |
| <div class="mc-sbody"> | |
| <div class="mc-data"> | |
| <div class="mc-row"><span class="mc-mark"></span><span class="mc-label">Framework:</span><span class="mc-val"><a href="https://github.com/aitf-its-tim3-dfk/SITA">SITA</a></span></div> | |
| <div class="mc-row"><span class="mc-mark"></span><span class="mc-label">W&B Run:</span><span class="mc-val"><a href="https://wandb.ai/aitfits2026-kementerian-komdigi/DFK3/runs/9ygdkx50">DFK3 / final-qwen35-0.8b-ws3</a></span></div> | |
| </div> | |
| </div> | |
| </div> | |
| <div class="mc-sep"><div class="mc-sep-line"></div><div class="mc-dia"></div><div class="mc-sep-line"></div></div> | |
| <div class="mc-section"> | |
| <div class="mc-shead"> | |
| <div class="mc-emblem"><span class="mc-glyph">✺</span></div> | |
| <span class="mc-stitle">Framework Versions</span> | |
| </div> | |
| <div class="mc-sbody"> | |
| <div class="mc-data"> | |
| <div class="mc-row"><span class="mc-mark"></span><span class="mc-label">TRL:</span><span class="mc-val">0.22.2</span></div> | |
| <div class="mc-row"><span class="mc-mark"></span><span class="mc-label">Transformers:</span><span class="mc-val">5.3.0</span></div> | |
| <div class="mc-row"><span class="mc-mark"></span><span class="mc-label">PyTorch:</span><span class="mc-val">2.11.0+cu128</span></div> | |
| <div class="mc-row"><span class="mc-mark"></span><span class="mc-label">Datasets:</span><span class="mc-val">4.3.0</span></div> | |
| <div class="mc-row"><span class="mc-mark"></span><span class="mc-label">PEFT:</span><span class="mc-val">0.19.0</span></div> | |
| <div class="mc-row"><span class="mc-mark"></span><span class="mc-label">Tokenizers:</span><span class="mc-val">0.22.2</span></div> | |
| </div> | |
| </div> | |
| </div> | |
| </div> | |
| </body> | |
| </html> | |