distil-labs/distil-gemma3-270m-SHELLper

🤗 Hugging Face 来源text-generationapache-2.0268M 参数536 MBsafetensors✓ 3 个校验和今天更新
一条命令提交

在你的模型文件夹旁边运行它。它会制作种子、将文件与 Hugging Face 比对,然后提交。你只需开始做种,并粘贴你账户中的密钥。它只读取你的文件,绝不修改。如果愿意,可以先阅读脚本。

curl -fsSL https://pirateface.co/package.sh | bash -s -- --repo distil-labs/distil-gemma3-270m-SHELLper ./model-folder
需要做种者 →

Distil-Gemma3-270M-SHELLper

A fine-tuned Gemma 3 270M model for multi-turn bash function calling. Trained using knowledge distillation from GPT OSS 120B, this 270M parameter model achieves 96% tool-call accuracy on our test set over multiple turns while being small enough to run locally on any machine.

Results

Metric GPT OSS 120B (Teacher) Gemma 3 270M (Base) This Model
Tool call accuracy 97.03% 9.90% 96.04%
ROUGE-L 94.42% 49.73% 96.55%

Quick Start

You can follow instructions in our demo repository: github

Using Ollama

# Download and create Ollama model
huggingface-cli download distil-labs/distil-gemma3-270m-SHELLper model.gguf Modelfile --local-dir distil_model
cd distil_model && ollama create distil_model -f Modelfile
cd ..

Using Transformers

from transformers import AutoModelForCausalLM, AutoTokenizer

model = AutoModelForCausalLM.from_pretrained("distil-labs/distil-gemma3-270m-SHELLper")
tokenizer = AutoTokenizer.from_pretrained("distil-labs/distil-gemma3-270m-SHELLper")

tools = [
    {
        "type": "function",
        "function": {
            "name": "ls",
            "description": "List directory contents",
            "parameters": {
                "type": "object",
                "properties": {
                    "folder": {"type": "string", "description": "Path to the folder to list"}
                },
                "required": ["folder"]
            }
        }
    }
]

messages = [
    {"role": "system", "content": "You are a helpful assistant that executes bash commands."},
    {"role": "user", "content": "List all files in the current directory"}
]

text = tokenizer.apply_chat_template(messages, tools=tools, tokenize=False, add_generation_prompt=True)
inputs = tokenizer(text, return_tensors="pt")
outputs = model.generate(**inputs, max_new_tokens=256, temperature=0)
print(tokenizer.decode(outputs[0], skip_special_tokens=True))

Model Details

Property Value
Base Model google/gemma-3-270m-it
Parameters 270 million
Architecture Gemma3ForCausalLM
Context Length 32,768 tokens
Precision bfloat16
Training Data ~10,000 synthetic examples (expanded from 20 seeds)
Teacher Model GPT OSS 120B

Training

This model was trained using the Distil Labs platform:

  • Seed Data: 20 hand-validated multi-turn bash command conversations
  • Synthetic Generation: Expanded using GPT OSS 120B teacher with conversation turn expansion
  • Fine-tuning: 4 epochs with LoRA (r=128) on the synthetic dataset
  • Evaluation: Multi-turn accuracy testing across variable conversation lengths

Training Hyperparameters

  • Epochs: 4
  • Learning Rate: 2e-5 (linear schedule)
  • Batch Size: 1 (with gradient accumulation)
  • LoRA Rank: 128

Task Format

Input Format

Multi-turn conversation with tool definitions:

[
  {"role": "user", "content": "List all files in the current directory"},
  {"role": "assistant", "tool_calls": [{"function": {"name": "ls", "arguments": {"folder": "."}}}]},
  {"role": "user", "content": "Now go to the src folder"}
]

Output Format

A single tool call in JSON format:

{"name": "cd", "arguments": {"folder": "src"}}

Supported Tools

The model supports 20 bash commands:

Command Description
cat Display file contents
cd Change directory
cp Copy files or directories
diff Compare files
du Estimate file space usage
echo Display text
find Search for files
grep Search file contents
head Output first part of files
ls List directory contents
mkdir Create directories
mv Move or rename files
pwd Print working directory
rm Remove files
rmdir Remove empty directories
sort Sort file contents
tail Output last part of files
touch Create empty files
wc Word, line, character count

Use Cases

  • Natural language interfaces to file systems
  • Command-line assistants and automation
  • Developer productivity tools
  • Educational tools for learning bash
  • Local, privacy-preserving AI assistants

Limitations

  • Optimized for single tool call per turn
  • No support for pipes or combined commands
  • Best with up to 5 conversation turns
  • Trained on English requests only
  • Limited to the 20 supported bash commands

License

This model is released under the Apache 2.0 license.

Links

Citation

@misc{distil-gemma3-270m-shellper,
  author = {Distil Labs},
  title = {Distil-Gemma3-270M-SHELLper: A Fine-tuned Model for Multi-turn Bash Function Calling},
  year = {2025},
  publisher = {Hugging Face},
  url = {https://huggingface.co/distil-labs/distil-gemma3-270m-SHELLper}
}