Instructions to use fardinsaad/AVCORP-detector with libraries, inference providers, notebooks, and local apps. Follow these links to get started.
- Libraries
- PEFT
How to use fardinsaad/AVCORP-detector with PEFT:
Task type is invalid.
- Notebooks
- Google Colab
- Kaggle
AVCORP Detector: Qwen3-8B LoRA Adapters
LoRA adapters for the deception detector in AVCORP: Identifying and Resisting Deception via Communication Theory and Theory of Mind. Each adapter finetunes Qwen3-8B on AVCORP to act as the Investigator in Avalon: it reads the game history and discussion of a round, writes a Theory of Mind reasoning trace, and names the players it believes are Evil.
- Code, corpus, and prompts: https://github.com/fardinsaad/_AVCORP_ (see
Detector/) - Dataset: https://huggingface.co/datasets/fardinsaad/AVCORP
- Training: SFT, then GRPO (TRL), on one NVIDIA H100
- LoRA: rank 32, alpha 64, dropout 0.05, all linear layers (
q_proj,k_proj,v_proj,o_proj,gate_proj,up_proj,down_proj)
Adapters
Each configuration folder holds two adapters: sft/ (after SFT) and grpo/ (after SFT, then GRPO).
Run numbers match Detector/ in the GitHub repository.
| Folder | Run | Output variant | Rewards |
|---|---|---|---|
tactic-revised/ (best) |
7 | trace + tactic labels | revised |
tactic-original/ |
6 | trace + tactic labels | original |
trace-revised/seed{1,2,3}/ |
5 | trace labels | revised |
trace-original/seed{1,2,3}/ |
4 | trace labels | original |
Results
Exact match: the share of the 25 held-out AVCORP games in which the game-ending deduction names both Evil players. In evaluation, each round's prompt contains the detector's own earlier traces.
| Configuration | Untrained | SFT | SFT + GRPO |
|---|---|---|---|
Run 7: tactic-revised |
48% | 48% | 72% |
Run 6: tactic-original |
48% | 52% | 48% |
Run 5: trace-revised (mean of 3 seeds) |
24% | 38.7% | 64.0% |
Run 4: trace-original (mean of 3 seeds) |
24% | 36.0% | 33.3% |
Usage
from transformers import AutoModelForCausalLM, AutoTokenizer
from peft import PeftModel
base = AutoModelForCausalLM.from_pretrained("Qwen/Qwen3-8B", torch_dtype="bfloat16", device_map="auto")
tokenizer = AutoTokenizer.from_pretrained("Qwen/Qwen3-8B")
model = PeftModel.from_pretrained(base, "fardinsaad/AVCORP-detector", subfolder="tactic-revised/grpo")
Each adapter loads on its own on top of the base model.
The prompt format and the evaluation script are in Detector/ of the GitHub repository.
Citation
Coming soon.
- Downloads last month
- -