CoolFace
Modelpublic

mecha-org/linux-command-generator-llama3.2-1b

sourceHugging Faceotherupdated 1y agoView on Hugging Face
0likes207downloads
Model Card

mecha-org/linux-command-generator-llama3.2-1b

Natural language → Linux command. A compact Llama 3.2 1B Instruct model fine‑tuned (LoRA) to turn plain‑English requests into correct shell commands.

Video Demonstration of the model running on the Mecha Comet

<video controls> <source src="https://web-assets.mecha.so/hugging-face/mecha-command-generator-aug-10-2025.mp4" type="video/mp4"> Your browser does not support the video tag. </video> For more information of the Mecha Comet, our pocket little handheld computer - click <a href="https://mecha.so/comet">here</a>

TL;DR

  • Base: unsloth/Llama-3.2-1B-Instruct
  • Method: LoRA (r=16, alpha=16, dropout=0)
  • Context: 2048 tokens
  • Data: 8,669 pairs across 11 categories
  • Use cases: quick command lookup, learning CLI, automation

Run with Ollama (baby steps)

1) Install Ollama: see https://ollama.com/download.

2) Verify install:

bash
ollama --version

3) Run the model interactively:

bash
ollama run mecha-org/linux-command-generator-llama3.2-1b

Then type a request, e.g.:

  • "List all files in the current directory with detailed information"
  • "Compress the file data.txt using bzip2"
  • "Find all .py files in the current directory and subdirectories"

Press Ctrl+C to exit.

4) One‑off (non‑interactive):

bash
ollama run mecha-org/linux-command-generator-llama3.2-1b -p "Display the first 5 lines of access.log"
# Expected: head -n 5 access.log

5) Get command‑only answers (when needed):

bash
ollama run mecha-org/linux-command-generator-llama3.2-1b -p "Output only the command with no explanation. Show system information including kernel version"
# Expected: uname -a

Use a local GGUF with Ollama (fallback)

If you have model.gguf, put it next to a Modelfile:

FROM ./model.gguf
PARAMETER temperature 0.2
PARAMETER top_p 0.9
PARAMETER num_ctx 2048
SYSTEM You are a Linux command generator. Output only the command with no explanation.
TEMPLATE {{ .Prompt }}

Create and run:

bash
ollama create linux-cmd-gen -f Modelfile
ollama run linux-cmd-gen -p "Find all .py files recursively"
# Expected: find . -name "*.py"

Other ways to use (optional)

Transformers

python
from transformers import AutoModelForCausalLM, AutoTokenizer
import torch

model_id = "mecha-org/linux-command-generator-llama3.2-1b"
tokenizer = AutoTokenizer.from_pretrained(model_id)
model = AutoModelForCausalLM.from_pretrained(model_id, torch_dtype=torch.float16 if torch.cuda.is_available() else None)

def generate_command(description: str) -> str:
    messages = [{"role": "user", "content": description}]
    inputs = tokenizer.apply_chat_template(messages, tokenize=True, add_generation_prompt=True, return_tensors="pt")
    if torch.cuda.is_available():
        inputs = inputs.to(model.device)
        model = model.to("cuda")
    outputs = model.generate(input_ids=inputs, max_new_tokens=64)
    return tokenizer.decode(outputs[0], skip_special_tokens=True)

print(generate_command("List all files in the current directory with detailed information"))
# -> ls -la

Unsloth

python
from unsloth import FastLanguageModel

model_id = "mecha-org/linux-command-generator-llama3.2-1b"
model, tokenizer = FastLanguageModel.from_pretrained(model_name=model_id, max_seq_length=2048)
FastLanguageModel.for_inference(model)

msgs = [{"role": "user", "content": "Compress the file data.txt using bzip2"}]
inputs = tokenizer.apply_chat_template(msgs, tokenize=True, add_generation_prompt=True, return_tensors="pt")
output = model.generate(input_ids=inputs, max_new_tokens=32)
print(tokenizer.decode(output[0], skip_special_tokens=True))
# -> bzip2 data.txt

Example prompts → commands

  • "Show system information including kernel version" → uname -a
  • "Find all .py files in the current directory and subdirectories" → find . -name "*.py"
  • "Display the first 5 lines of access.log" → head -n 5 access.log
  • "Change permissions of script.sh to make it executable for owner" → chmod +x script.sh
  • "Create a tar archive backup.tar containing all files in the documents folder" → tar -cf backup.tar documents/

Dataset (overview)

8,669 input→command pairs across:

  • Compression & Archiving: bzip2, gzip, tar, zip
  • File & Directory: cd, cp, find, ls, mkdir, mv, pwd, rm, rmdir, touch
  • Permissions & Ownership: chgrp, chmod, chown
  • Viewing & Editing: cat, echo, head, less, tail, vim
  • Networking: curl, dig, host, ifconfig, ip, netstat, ping, ssh, wget
  • Package mgmt: apt, dpkg
  • Process mgmt: kill, killall, nice, pkill, renice
  • Search & Filter: awk, grep, locate, sed
  • System info/monitoring: df, du, free, top, uname
  • User/group: useradd, usermod, groupadd, passwd, sudo
  • Misc/system control: cron, systemctl, tmux, screen, service

Format:

json
{"input": "Describe what you want to do", "output": "linux_command_here"}

Training details

  • Base: unsloth/Llama-3.2-1B-Instruct
  • LoRA on attention + MLP projections:
  • r=16, loraalpha=16, loradropout=0
  • targetmodules: ["qproj", "kproj", "vproj", "oproj", "gateproj", "upproj", "downproj"]
  • Max sequence length: 2048
  • SFT on responses only (TRL SFTTrainer), Unsloth-optimized
  • Example hparams: per‑device batch 2, grad accum 4, epochs 3, lr 2e‑4
  • Reference: Tesla P100 16GB (~45 minutes), ~2.8GB VRAM (adapters)

Safety and responsible use

  • Always inspect commands before executing.
  • Avoid destructive operations unless you fully understand consequences.
  • For apps, add denylists and validations (e.g., block rm -rf /, mkfs, dd).

Notes on GGUF

  • Works with llama.cpp and Ollama.
  • Typical memory (approx.): q4ks ~600MB, q4km ~700MB, q8_0 ~1.1GB, f16 ~2.2GB.

License

Derived from Meta Llama 3.2. Use must comply with the base model license. Check your deployment context for any additional constraints.

Citation

@software{hrsvrn_linux_command_generator_llama32_1b,
  author  = {Harshvardhan Vatsa},
  title   = {Linux Command Generator (Llama 3.2 1B)},
  year    = {2025},
  url     = {https://huggingface.co/mecha-org/linux-command-generator-llama3.2-1b}
}

Acknowledgements

  • Base: unsloth/Llama-3.2-1B-Instruct
  • Libraries: unsloth, transformers, trl, accelerate, bitsandbytes