surodipoikromo/IndoBERTindak
IndoBERTindak
IndoBERTindak is a fine-tuned IndoBERT model for detecting observable behavioral and linguistic signals in Indonesian digital discourse.
The model performs multilabel text classification, meaning that a single text may contain more than one signal, or none of the five signals.
It is built on `indobenchmark/indobert-base-p1`.
Model Overview
IndoBERTindak detects five observable signals:
These labels represent observable textual behavior.
They should not be interpreted as direct measurements of latent psychological characteristics such as trust, motivation, personality, intelligence, competence, or learning ability.
Quick Start
Installation
pip install transformers torchLoad the model
from transformers import AutoTokenizer, AutoModelForSequenceClassification
import torch
MODEL_ID = "surodipoikromo/IndoBERTindak"
tokenizer = AutoTokenizer.from_pretrained(MODEL_ID)
model = AutoModelForSequenceClassification.from_pretrained(MODEL_ID)
model.eval()Run multilabel classification
text = "Bagaimana cara menggunakan fitur ini?"
inputs = tokenizer(
text,
return_tensors="pt",
truncation=True,
max_length=256
)
with torch.no_grad():
logits = model(**inputs).logits
probabilities = torch.sigmoid(logits)[0]IndoBERTindak uses label-specific decision thresholds tuned on the development set:
thresholds = torch.tensor([
0.45, # N1 — EXPLICIT_HELP_SEEKING
0.70, # N2 — ACTIONABLE_KNOWLEDGE_PROVISION
0.35, # N3 — LEARNER_SELF_REPORT
0.35, # N4 — POSITIVE_CONTENT_FEEDBACK
0.85, # N5 — OTHER_DIRECTED_ENCOURAGEMENT
])
predictions = probabilities >= thresholdsDisplay the results:
labels = [
"EXPLICIT_HELP_SEEKING",
"ACTIONABLE_KNOWLEDGE_PROVISION",
"LEARNER_SELF_REPORT",
"POSITIVE_CONTENT_FEEDBACK",
"OTHER_DIRECTED_ENCOURAGEMENT",
]
for label, probability, prediction in zip(
labels,
probabilities,
predictions
):
print(
f"{label:32s} "
f"probability={probability.item():.4f} "
f"predicted={bool(prediction.item())}"
)Because this is a multilabel classifier, do not use argmax() to obtain predictions. Each label is evaluated independently using a sigmoid probability and its corresponding decision threshold.
A text may therefore receive:
- one label,
- several labels, or
- no positive label.
Complete Inference Example
from transformers import AutoTokenizer, AutoModelForSequenceClassification
import torch
MODEL_ID = "surodipoikromo/IndoBERTindak"
LABELS = [
"EXPLICIT_HELP_SEEKING",
"ACTIONABLE_KNOWLEDGE_PROVISION",
"LEARNER_SELF_REPORT",
"POSITIVE_CONTENT_FEEDBACK",
"OTHER_DIRECTED_ENCOURAGEMENT",
]
THRESHOLDS = torch.tensor([
0.45,
0.70,
0.35,
0.35,
0.85,
])
tokenizer = AutoTokenizer.from_pretrained(MODEL_ID)
model = AutoModelForSequenceClassification.from_pretrained(MODEL_ID)
model.eval()
def predict(text):
inputs = tokenizer(
text,
return_tensors="pt",
truncation=True,
max_length=256
)
with torch.no_grad():
logits = model(**inputs).logits
probabilities = torch.sigmoid(logits)[0]
predictions = probabilities >= THRESHOLDS
results = []
for label, probability, prediction in zip(
LABELS,
probabilities,
predictions
):
results.append({
"label": label,
"probability": round(probability.item(), 4),
"predicted": bool(prediction.item())
})
return results
text = "Bagaimana cara menggunakan fitur ini?"
for result in predict(text):
print(result)Input Format
Top-level text
For independent or top-level comments, provide the target text directly:
<target_text>Example:
Bagaimana cara melakukan instalasinya?Replies with parent context
When the target is a reply and the parent comment is available, the model was developed with the following contextual format:
[TARGET] <target_text> [PARENT] <parent_text>Example:
[TARGET] Coba masuk ke pengaturan lalu aktifkan fiturnya. [PARENT] Bagaimana cara mengaktifkan fitur ini?The target text remains the primary evidence. Parent context should only be used when necessary to resolve the function or referent of a reply.
Decision Thresholds
The final decision thresholds were tuned using the development set only and locked before evaluation on the held-out test set.
Using a single universal threshold such as 0.50 is therefore not recommended when reproducing the reported model performance.
Training Data
The model was developed using the Development Gold600 dataset consisting of authentic Indonesian digital-discourse traces.
Dataset composition:
Additional characteristics:
- 600 unique source IDs
- five observable multilabel signals
- Indonesian-language digital discourse
- held-out test data were not used for threshold tuning
The development corpus combines direct assistant adjudication and codebook-guided/rule-assisted annotation.
It should therefore not be described as an independent two-human-coder gold standard.
Fine-Tuning Configuration
Held-Out Test Performance
Overall performance on the held-out test set:
Per-Label Performance
Performance should be interpreted together with the relatively small per-label support in the held-out test set.
Comparison with Classical Baseline
The strongest classical baseline was TF-IDF + Linear SVM.
Absolute Macro-F1 improvement:
+0.086IndoBERTindak also achieved higher Micro-F1, Weighted-F1, Exact Match, and Sample Jaccard than the classical baseline.
Intended Uses
IndoBERTindak is intended primarily for:
- computational analysis of Indonesian digital discourse;
- identification of observable behavioral or linguistic signals;
- large-scale discourse annotation;
- exploratory social computing research;
- communication and interaction analysis;
- information behavior research;
- aggregate analysis of patterns across collections of Indonesian-language texts.
Predictions are best treated as computational annotations rather than definitive judgments about individual users.
Out-of-Scope Uses
The model is not intended for:
- psychological diagnosis;
- personality assessment;
- intelligence or competence assessment;
- individual ranking;
- employee or student evaluation;
- automated disciplinary decisions;
- clinical assessment;
- high-stakes profiling;
- inferring hidden mental states from text.
A detected signal indicates that a particular textual pattern is observable in the input. It does not establish why the author produced that text or what psychological state the author had.
Limitations
Several limitations should be considered when using the model.
- Relatively small development dataset. The model was fine-tuned on 600 annotated traces, with 100 observations reserved for held-out evaluation.
- Uneven label support. Some signals are less frequent than others. In particular, N2 and N5 have modest support in the held-out test set.
- Context sensitivity.
ACTIONABLE_KNOWLEDGE_PROVISIONmay depend strongly on conversational function and reply context.
- Precision-recall trade-offs.
OTHER_DIRECTED_ENCOURAGEMENTachieved high precision but relatively low recall under its locked threshold.
- Domain specificity. The model was developed primarily from Indonesian tutorial/discussion discourse on YouTube. Performance on substantially different domains, platforms, genres, dialects, or highly formal text has not been established.
- Annotation procedure. Annotation expansion included AI-assisted and rule-guided procedures and should not be represented as an independent two-human-coder gold standard.
- Observable signals only. Model predictions should not be interpreted as direct evidence of latent psychological characteristics.
Users applying IndoBERTindak to a new domain are encouraged to perform domain-specific validation before drawing substantive conclusions.
Ethical Considerations
IndoBERTindak was designed to detect observable textual signals, not to profile individuals.
Recommended practice is to:
- analyze predictions at an aggregate level where possible;
- retain human interpretation for substantive conclusions;
- document the domain and sampling procedure;
- report uncertainty and model limitations;
- validate the model when transferring it to substantially different datasets.
The model should not be used as the sole basis for decisions that materially affect an individual.
Reproducibility Notes
To reproduce the reported evaluation behavior:
- use
surodipoikromo/IndoBERTindak; - tokenize with a maximum sequence length of 256;
- apply sigmoid independently to each output logit;
- use the five label-specific locked thresholds;
- do not use
softmax()orargmax()for final multilabel decisions.
The reported held-out metrics correspond to these locked decision rules.
Base Model
IndoBERTindak is fine-tuned from:
`indobenchmark/indobert-base-p1`
The original IndoBERT model should also be consulted for details about its pretraining corpus, architecture, and underlying limitations.
Citation
If you use IndoBERTindak in research, please cite the associated publication when it becomes available.
Until then, the model repository can be referenced as:
@misc{indobertindak2026,
title = {IndoBERTindak},
author = {surodipoikromo},
year = {2026},
publisher = {Hugging Face},
howpublished = {\url{https://huggingface.co/surodipoikromo/IndoBERTindak}}
}Model repository:
https://huggingface.co/surodipoikromo/IndoBERTindakLicense
This model is released under the Apache License 2.0.
See the repository license information and the license terms of the underlying IndoBERT base model before redistribution or deployment.
Disclaimer
IndoBERTindak provides probabilistic computational predictions. Its outputs should be interpreted in relation to the model's training domain, annotation framework, decision thresholds, and documented limitations.
The presence or absence of a predicted signal should not be treated as definitive evidence about an individual's intentions, abilities, personality, motivation, or psychological state.
