Investment Access Request - L-Operator

L-Operator is available exclusively to qualified investors under NDA. Access is restricted to investment evaluation purposes only.

By requesting access, you acknowledge that this model is proprietary technology subject to NDA restrictions. You agree to use this model solely for investment evaluation purposes and maintain strict confidentiality of all technical details, training methodologies, and performance characteristics. Unauthorized use, reproduction, or distribution is strictly prohibited.

Log in or Sign Up to review the conditions and access this model content.

L-Operator-Instruct — Android Text Control Model

Model Summary

L-Operator-Instruct is a text-only instruction-tuned model for Android control. It is fine-tuned from LiquidAI/LFM2.5-1.2B-Instruct (Liquid Foundation Model 2.5) using:

  • Android control episodes — Step-level trajectories (text-only actions) from Tonic/android-operator-episodes.
  • Mobile Actions — Function-calling style examples from google/mobile-actions.

It is designed to work alongside a vision model: the vision model handles screen interactions that need x/y coordinates (tap, click, long press); this model handles high-level, text-describable actions (open app, type, swipe, go back, press home/back, wait).

Attribute Value
Base model LiquidAI/LFM2.5-1.2B-Instruct
Architecture Causal LM (text-only)
Training LoRA (Unsloth); optional merge to full weights
Training data Tonic/android-operator-text-full (merged dataset)
Language English (instructions and outputs)

Intended Use

  • In scope: Predicting the next high-level action (as JSON) given a goal and step instruction, for use in an Android automation or control pipeline where a separate vision model handles coordinate-based actions.
  • Out of scope: Replacing the vision model; handling raw pixels or x/y coordinates; guaranteeing safety or correctness of executed actions.

Supported Actions (Output Format)

The model outputs a single JSON object per turn for Android control, with one of these action types:

Action Description Example JSON
open_app Open an app {"action_type":"open_app","app_name":"Settings"}
type Enter text {"action_type":"type","text":"hello"}
swipe Swipe direction {"action_type":"swipe","direction":"up"}
go_back Navigate back {"action_type":"go_back"}
press_home Home button {"action_type":"press_home"}
press_back Back button {"action_type":"press_back"}
wait Wait for UI {"action_type":"wait"}

Coordinate-based actions (click, tap, long_press) are not produced by this model; they are delegated to the vision model.


How to Use

Requirements

pip install transformers torch
# or: pip install unsloth  # if you need to continue fine-tuning

Load and run (example)

from transformers import AutoModelForCausalLM, AutoTokenizer

model_id = "Tonic/l-operator-instruct"
tokenizer = AutoTokenizer.from_pretrained(model_id, trust_remote_code=True)
model = AutoModelForCausalLM.from_pretrained(
    model_id,
    trust_remote_code=True,
    device_map="auto",
)

# Example: one user turn
system_msg = (
    "You are an Android control assistant (Text Mode). You work alongside a vision-enabled "
    "partner model that handles screen interactions requiring visual coordinates. "
    "Your role is to handle high-level actions: opening apps, typing text, swiping, "
    "navigating back, or waiting. Respond with a JSON action. "
    "Valid action_types: open_app, type, swipe, go_back, press_home, press_back, wait."
)
user_msg = (
    "Goal: Set an alarm for 7 AM.\n"
    "Step: Open the Clock app.\n\n"
    "Provide the appropriate high-level action (no x/y coordinates needed). "
    "Valid actions: open_app, type, swipe, go_back, press_home, press_back, wait."
)

messages = [
    {"role": "system", "content": system_msg},
    {"role": "user", "content": user_msg},
]
text = tokenizer.apply_chat_template(
    messages,
    tokenize=False,
    add_generation_prompt=True,
)
inputs = tokenizer(text, return_tensors="pt").to(model.device)
out = model.generate(**inputs, max_new_tokens=256, do_sample=False)
response = tokenizer.decode(out[0][inputs["input_ids"].shape[1]:], skip_special_tokens=True)
print(response)  # e.g. {"action_type":"open_app","app_name":"Clock"}

Chat template

The model uses the same chat template as the base LFM2.5-Instruct model. Use apply_chat_template with add_generation_prompt=True so the model generates the assistant reply.


Training Details

  • Script: train/sft-lfm2.5.py (Unsloth + LoRA).
  • Dataset: Tonic/android-operator-text-full (ShareGPT/conversation format).
  • Typical hyperparameters: 1–3 epochs, LoRA rank 16, eval split 0.2, batch size 2 × gradient accumulation 4, max sequence length 2048.
  • Hardware: Single GPU (e.g. A10G); training can be run via Hugging Face Jobs using the end-to-end chunked pipeline.

Pipeline (dataset build + training):

uv run run_end_to_end_chunked.py \
  --hf-username Tonic \
  --base-repo android-operator-text-full \
  --model-repo l-operator-instruct \
  --chunk-size 45 \
  --num-epochs 1 \
  --training-flavor a10g-large

Limitations and Bias

  • Text-only: No vision; cannot interpret screens or choose tap coordinates. Use with a dedicated vision model for tap/click/long_press.
  • English-only: Training data is in English; behavior in other languages is undefined.
  • No safety layer: Outputs are not filtered for safety or appropriateness; the deploying system is responsible for validation and safe execution.
  • Domain: Tuned for Android control and mobile-actions style tasks; may be less reliable for unrelated instruction-following.

License

  • Base model: LiquidAI/LFM2.5-1.2B-Instruct — check the base model card for license terms (e.g. LFM Open License).
  • Fine-tuning: This adapter/merged model follows the same license as the base model unless otherwise stated.
  • Training data: See the dataset card for Tonic/android-operator-text-full and the licenses of its sources (android-operator-episodes, google/mobile-actions).

Citation

If you use this model, please cite:

  • Liquid AI LFM2.5: LiquidAI/LFM2.5-1.2B-Instruct
  • Training data: Tonic/android-operator-text-full (see dataset card for source citations)
  • Training code: train_android_models (chunked pipeline + train/sft-lfm2.5.py)

Model Card Metadata (optional for Hub)

language:
  - en
license: other
tags:
  - android
  - instruction-tuning
  - lora
  - text-only
  - mobile-control
base_model: LiquidAI/LFM2.5-1.2B-Instruct
datasets:
  - Tonic/android-operator-text-full
Downloads last month

-

Downloads are not tracked for this model. How to track
Inference Providers NEW
This model isn't deployed by any Inference Provider. 🙋 Ask for provider support

Model tree for Tonic/l-operator-instruct

Adapter
(16)
this model

Dataset used to train Tonic/l-operator-instruct