Text Generation
Transformers
Safetensors
English
qwen3_5
image-text-to-text
education
tutoring
esl
sft
grpo
conversational
Instructions to use Taxonomy-Aligned-Conversational-Tutor/TACTutor with libraries, inference providers, notebooks, and local apps. Follow these links to get started.
- Libraries
- Transformers
How to use Taxonomy-Aligned-Conversational-Tutor/TACTutor with Transformers:
# Use a pipeline as a high-level helper from transformers import pipeline pipe = pipeline("text-generation", model="Taxonomy-Aligned-Conversational-Tutor/TACTutor") messages = [ { "role": "user", "content": [ {"type": "image", "url": "https://huggingface.co/datasets/huggingface/documentation-images/resolve/main/p-blog/candy.JPG"}, {"type": "text", "text": "What animal is on the candy?"} ] }, ] pipe(text=messages)# Load model directly from transformers import AutoProcessor, AutoModelForMultimodalLM processor = AutoProcessor.from_pretrained("Taxonomy-Aligned-Conversational-Tutor/TACTutor") model = AutoModelForMultimodalLM.from_pretrained("Taxonomy-Aligned-Conversational-Tutor/TACTutor", device_map="auto") messages = [ { "role": "user", "content": [ {"type": "image", "url": "https://huggingface.co/datasets/huggingface/documentation-images/resolve/main/p-blog/candy.JPG"}, {"type": "text", "text": "What animal is on the candy?"} ] }, ] inputs = processor.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(processor.decode(outputs[0][inputs["input_ids"].shape[-1]:])) - Notebooks
- Google Colab
- Kaggle
- Local Apps Settings
- vLLM
How to use Taxonomy-Aligned-Conversational-Tutor/TACTutor with vLLM:
Install from pip and serve model
# Install vLLM from pip: pip install vllm # Start the vLLM server: vllm serve "Taxonomy-Aligned-Conversational-Tutor/TACTutor" # Call the server using curl (OpenAI-compatible API): curl -X POST "http://localhost:8000/v1/chat/completions" \ -H "Content-Type: application/json" \ --data '{ "model": "Taxonomy-Aligned-Conversational-Tutor/TACTutor", "messages": [ { "role": "user", "content": "What is the capital of France?" } ] }'Use Docker
docker model run hf.co/Taxonomy-Aligned-Conversational-Tutor/TACTutor
- SGLang
How to use Taxonomy-Aligned-Conversational-Tutor/TACTutor 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 "Taxonomy-Aligned-Conversational-Tutor/TACTutor" \ --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": "Taxonomy-Aligned-Conversational-Tutor/TACTutor", "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 "Taxonomy-Aligned-Conversational-Tutor/TACTutor" \ --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": "Taxonomy-Aligned-Conversational-Tutor/TACTutor", "messages": [ { "role": "user", "content": "What is the capital of France?" } ] }' - Docker Model Runner
How to use Taxonomy-Aligned-Conversational-Tutor/TACTutor with Docker Model Runner:
docker model run hf.co/Taxonomy-Aligned-Conversational-Tutor/TACTutor
|
Download README.md from Taxonomy-Aligned-Conversational-Tutor/TACTutor: direct link, hf CLI and curl.
- Browser
- Download file 3.59 kB
-
https://huggingface.co/Taxonomy-Aligned-Conversational-Tutor/TACTutor/resolve/main/README.md
- Command line
-
hf download hf://Taxonomy-Aligned-Conversational-Tutor/TACTutor/README.md
-
curl -L -o README.md https://huggingface.co/Taxonomy-Aligned-Conversational-Tutor/TACTutor/resolve/main/README.md
3.59 kB
| library_name: transformers | |
| license: apache-2.0 | |
| base_model: | |
| - Qwen/Qwen3.5-4B-Base | |
| pipeline_tag: text-generation | |
| language: | |
| - en | |
| tags: | |
| - education | |
| - tutoring | |
| - esl | |
| - sft | |
| - grpo | |
| # TACTutor | |
| TACTutor is a 4B-parameter conversational English tutor from **TACT** | |
| (Taxonomy-Aligned Conversational Tutor). Starting from Qwen3.5-4B-Base, the | |
| model was post-trained with supervised fine-tuning (SFT) followed by | |
| taxonomy-aligned Group Relative Policy Optimization (GRPO). It is distributed | |
| as a merged Hugging Face Transformers model rather than a LoRA adapter. | |
| - TACT organization: https://huggingface.co/Taxonomy-Aligned-Conversational-Tutor | |
| - Demonstration samples: https://huggingface.co/datasets/Taxonomy-Aligned-Conversational-Tutor/TACTBench-Samples | |
| ## Intended Use | |
| TACTutor generates the next teacher response in an ongoing English-learning | |
| conversation. It is intended for research on pedagogically adaptive dialogue, | |
| including feedback, guided revision, clarification, and learner-supportive | |
| conversation management. | |
| The model is a research artifact, not a replacement for a qualified teacher. | |
| Outputs should be reviewed before use in high-stakes educational settings. | |
| ## Loading | |
| ```python | |
| from transformers import AutoModelForCausalLM, AutoTokenizer | |
| model_id = "Taxonomy-Aligned-Conversational-Tutor/TACTutor" | |
| tokenizer = AutoTokenizer.from_pretrained(model_id, trust_remote_code=True) | |
| model = AutoModelForCausalLM.from_pretrained( | |
| model_id, | |
| torch_dtype="auto", | |
| device_map="auto", | |
| trust_remote_code=True, | |
| ) | |
| ``` | |
| One prompt used in our evaluation is: | |
| ```text | |
| You are an expert ESL tutoring teacher. | |
| Your job is to write the next teacher response in an ongoing teacher-student chat. | |
| Respond naturally and pedagogically. Do not explain your reasoning. Do not mention | |
| taxonomy labels, rubrics, or evaluation criteria. | |
| ``` | |
| Pass this instruction as the system message, followed by the dialogue history, | |
| and use the tokenizer's chat template to construct the model input. | |
| ## Evaluation | |
| On the 78-item TACTBench diagnostic benchmark, the selected checkpoint achieved: | |
| | Metric | Score | | |
| | --- | ---: | | |
| | TACT Overall | 0.832051 | | |
| | Accept | 0.871795 | | |
| | Leak | 0.025641 | | |
| | Off-task | 0.025641 | | |
| The scores above were measured before five representative benchmark examples | |
| were released. Those public examples are demonstration data and should be | |
| excluded from future hidden-set scoring. | |
| ## Training Data and Limitations | |
| The post-training data are derived from authentic English tutoring dialogue and | |
| taxonomy-guided augmentation. The complete training corpus and hidden benchmark | |
| are not included in this repository. Five short full-context demonstration | |
| examples are available in the companion dataset repository. | |
| The source dialogue is derived from the Teacher-Student Chatroom Corpus version | |
| 2 (TSCC v2), which is governed by its own user agreement. This model may produce | |
| incorrect, overly explicit, or contextually inappropriate tutoring responses, | |
| and its behavior outside English-language tutoring has not been established. | |
| ## Citation | |
| Please cite the following paper when using TACTutor: | |
| ```bibtex | |
| @article{yang2026tact, | |
| title = {TACT: Taxonomy-Aligned Post-Training for Pedagogically Adaptive English Tutoring}, | |
| author = {Yang, Dongjie and Lin, Siyan and Shen, Leixian and Sheng, Rui and Qu, Huamin and Chen, Zixin}, | |
| year = {2026} | |
| } | |
| ``` | |
| ## License | |
| The model weights are released under the Apache License 2.0. The TSCC-derived | |
| source data remain subject to the TSCC user agreement and are not redistributed | |
| with the model weights. | |