Instructions to use JetBrains-Research/PIPer-8B-RL-only with libraries, inference providers, notebooks, and local apps. Follow these links to get started.
- Libraries
- Transformers
How to use JetBrains-Research/PIPer-8B-RL-only with Transformers:
# Use a pipeline as a high-level helper from transformers import pipeline pipe = pipeline("text-generation", model="JetBrains-Research/PIPer-8B-RL-only") messages = [ {"role": "user", "content": "Who are you?"}, ] pipe(messages)# Load model directly from transformers import AutoTokenizer, AutoModelForCausalLM tokenizer = AutoTokenizer.from_pretrained("JetBrains-Research/PIPer-8B-RL-only") model = AutoModelForCausalLM.from_pretrained("JetBrains-Research/PIPer-8B-RL-only") messages = [ {"role": "user", "content": "Who are you?"}, ] inputs = tokenizer.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(tokenizer.decode(outputs[0][inputs["input_ids"].shape[-1]:])) - Notebooks
- Google Colab
- Kaggle
- Local Apps
- vLLM
How to use JetBrains-Research/PIPer-8B-RL-only with vLLM:
Install from pip and serve model
# Install vLLM from pip: pip install vllm # Start the vLLM server: vllm serve "JetBrains-Research/PIPer-8B-RL-only" # Call the server using curl (OpenAI-compatible API): curl -X POST "http://localhost:8000/v1/chat/completions" \ -H "Content-Type: application/json" \ --data '{ "model": "JetBrains-Research/PIPer-8B-RL-only", "messages": [ { "role": "user", "content": "What is the capital of France?" } ] }'Use Docker
docker model run hf.co/JetBrains-Research/PIPer-8B-RL-only
- SGLang
How to use JetBrains-Research/PIPer-8B-RL-only 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 "JetBrains-Research/PIPer-8B-RL-only" \ --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": "JetBrains-Research/PIPer-8B-RL-only", "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 "JetBrains-Research/PIPer-8B-RL-only" \ --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": "JetBrains-Research/PIPer-8B-RL-only", "messages": [ { "role": "user", "content": "What is the capital of France?" } ] }' - Docker Model Runner
How to use JetBrains-Research/PIPer-8B-RL-only with Docker Model Runner:
docker model run hf.co/JetBrains-Research/PIPer-8B-RL-only
PIPer: On-Device Environment Setup via Online Reinforcement Learning
Democratizing environment setup with on-device sized models that match the performance of much larger proprietary systems
🎯 Overview
Environment setup—the process of configuring systems to work with specific software projects—remains a persistent challenge in software engineering. PIPer addresses this by training specialized on-device models that can automatically generate correct Bash scripts for environment configuration.
Our approach combines:
- 📚 Supervised Fine-Tuning (SFT) with executable scripts from larger models
- 🎯 Reinforcement Learning with Verifiable Rewards (RLVR) using lightweight proxy LLM-reward
🏆 Key Results
| Model | Size | EnvBench avg@5 | Cost per 1M tokens |
|---|---|---|---|
| PIPer | 8B | 19.4 | $0.60 |
| GPT-4o | - | 19.4 | $15.00 |
| Qwen3-32B | 32B | 16.2 | $2.00 |
| Qwen3-8B | 8B | 2.6 | $0.60 |
🎉 PIPer achieves 9× improvement over its base model while matching GPT-4o performance at 25x lower cost
📦 Available Artifacts
🤖 Model Checkpoints
| Model | Description | HuggingFace Link |
|---|---|---|
| 🏅 PIPer (Full) | Complete SFT+RL trained model | JetBrains-Research/PIPer-8B |
| 🎯 PIPer (RL-only) | RLVR checkpoint only | JetBrains-Research/PIPer-8B-RL-only |
| 📚 PIPer (SFT-only) | Supervised fine-tuning only | JetBrains-Research/PIPer-8B-SFT-only |
📊 Datasets
| Dataset | Description | HuggingFace Link |
|---|---|---|
| EnvBench Zero-shot RL | Training prompts and evaluation data | JetBrains-Research/PIPer-envbench-zeroshot-rl |
| EnvBench SFT 2500 | Zeroshot trajectories from Qwen-32B in ShareGPT format | JetBrains-Research/PIPer-SFT-2500-sharegpt |
| PIPer Eval | Full evaluation results for EnvBench and Repo2Run | JetBrains-Research/PIPer-eval |
🚀 Reproduce the results
We use uv for dependency management and Ray for distributed training.
git clone https://github.com/JetBrains-Research/PIPer.git
cd PIPer
git submodule update --init --recursive
uv sync
To run the experiments, you need a node with at least 4 H200 GPUs and Ray installed and running. Then you can run all the experiments with the following command:
uv run piper/hparams_entrypoint.py --multirun +experiment==llm-reward
You can look up the experiment Hydra configurations in piper/config/ folder, or print out the whole config with the following command:
uv run piper/hparams_entrypoint.py +experiment=llm-reward --info config
📊 Evaluation Benchmarks
| Benchmark | Description | Metric | Our Result |
|---|---|---|---|
| EnvBench-Python | 329 Python repositories | pass@5 | 🏆 27/329 |
| Repo2Run | 420 Python repositories | pass@5 | 🏆 103/420 |
| Terminal-Bench | 80 terminal tasks | pass@10 | 4/80 |
📄 License
This project is licensed under the MIT License - see the LICENSE file for details.
- Downloads last month
- 6
Model tree for JetBrains-Research/PIPer-8B-RL-only
Base model
JetBrains-Research/Qwen3-8B-am