Text Generation
Transformers
Safetensors
Hausa
English
gemma4
image-text-to-text
gemma-4
tsaro
threat-extraction
conversational
Instructions to use Janeodum/tsaro-e2b with libraries, inference providers, notebooks, and local apps. Follow these links to get started.
- Libraries
- Transformers
How to use Janeodum/tsaro-e2b with Transformers:
# Use a pipeline as a high-level helper from transformers import pipeline pipe = pipeline("text-generation", model="Janeodum/tsaro-e2b") 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, AutoModelForImageTextToText processor = AutoProcessor.from_pretrained("Janeodum/tsaro-e2b") model = AutoModelForImageTextToText.from_pretrained("Janeodum/tsaro-e2b") 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
- vLLM
How to use Janeodum/tsaro-e2b with vLLM:
Install from pip and serve model
# Install vLLM from pip: pip install vllm # Start the vLLM server: vllm serve "Janeodum/tsaro-e2b" # Call the server using curl (OpenAI-compatible API): curl -X POST "http://localhost:8000/v1/chat/completions" \ -H "Content-Type: application/json" \ --data '{ "model": "Janeodum/tsaro-e2b", "messages": [ { "role": "user", "content": "What is the capital of France?" } ] }'Use Docker
docker model run hf.co/Janeodum/tsaro-e2b
- SGLang
How to use Janeodum/tsaro-e2b 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 "Janeodum/tsaro-e2b" \ --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": "Janeodum/tsaro-e2b", "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 "Janeodum/tsaro-e2b" \ --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": "Janeodum/tsaro-e2b", "messages": [ { "role": "user", "content": "What is the capital of France?" } ] }' - Docker Model Runner
How to use Janeodum/tsaro-e2b with Docker Model Runner:
docker model run hf.co/Janeodum/tsaro-e2b
File size: 1,591 Bytes
28291b5 ac7d0b1 9bd11ae ac7d0b1 28291b5 ac7d0b1 28291b5 ac7d0b1 28291b5 ac7d0b1 28291b5 ac7d0b1 28291b5 ac7d0b1 28291b5 ac7d0b1 | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 | ---
license: gemma
base_model: google/gemma-4-E2B-it
base_model_relation: finetune
library_name: transformers
tags:
- gemma-4
- tsaro
- threat-extraction
language:
- ha
- en
pipeline_tag: text-generation
---
# Tsaro Gemma 4 E2B
Fine-tuned Gemma 4 E2B threat extraction model for Tsaro, a shared safety
system for Northern Nigeria.
## What this model does
Given an unstructured report in Hausa, Pidgin, or English, this model returns
a structured threat signal — threat type, location, perpetrator and vehicle
counts, direction of movement, time references, and a confidence score — and
judges whether the message is a genuine security report at all.
## Model details
- **Base model:** [`google/gemma-4-e2b-it`](https://huggingface.co/google/gemma-4-e2b-it)
- **Fine-tuning:** LoRA adapter trained on Tsaro threat-report data, then merged
into the base weights
- **Role in Tsaro:** the E2B variant is the smaller of two on-device extraction
models, used as the fallback for older or low-RAM Android devices
## Derived models
- [`Janeodum/tsaro-e2b-gguf`](https://huggingface.co/Janeodum/tsaro-e2b-gguf) — GGUF quantization for
on-device inference via llama.cpp / llama.rn
## Training data
Fine-tuned on threat-report examples spanning Hausa, Pidgin, and English,
including examples derived from the ACLED Nigeria conflict archive with
Hausa and Pidgin translations.
## Intended use and limitations
Built for community safety reporting in a specific regional context. Not a
general-purpose model. Outputs are extraction assistance, not verified
intelligence.
|