Text Generation
PEFT
Safetensors
GGUF
function-calling
tool-use
ethereum
wallet
lora
sft
on-device
conversational
Instructions to use ef-dai-team/gemma-4-E4B-wallet-ft-v5 with libraries, inference providers, notebooks, and local apps. Follow these links to get started.
- Libraries
- PEFT
How to use ef-dai-team/gemma-4-E4B-wallet-ft-v5 with PEFT:
Task type is invalid.
- Notebooks
- Google Colab
- Kaggle
- Local Apps Settings
- llama.cpp
How to use ef-dai-team/gemma-4-E4B-wallet-ft-v5 with llama.cpp:
Install (macOS, Linux)
curl -LsSf https://llama.app/install.sh | sh # Start a local OpenAI-compatible server with a web UI: llama serve -hf ef-dai-team/gemma-4-E4B-wallet-ft-v5:Q4_K_M # Run inference directly in the terminal: llama cli -hf ef-dai-team/gemma-4-E4B-wallet-ft-v5:Q4_K_M
Install from WinGet (Windows)
winget install llama.cpp # Start a local OpenAI-compatible server with a web UI: llama serve -hf ef-dai-team/gemma-4-E4B-wallet-ft-v5:Q4_K_M # Run inference directly in the terminal: llama cli -hf ef-dai-team/gemma-4-E4B-wallet-ft-v5:Q4_K_M
Use pre-built binary
# Download pre-built binary from: # https://github.com/ggerganov/llama.cpp/releases # Start a local OpenAI-compatible server with a web UI: ./llama-server -hf ef-dai-team/gemma-4-E4B-wallet-ft-v5:Q4_K_M # Run inference directly in the terminal: ./llama-cli -hf ef-dai-team/gemma-4-E4B-wallet-ft-v5:Q4_K_M
Build from source code
git clone https://github.com/ggerganov/llama.cpp.git cd llama.cpp cmake -B build cmake --build build -j --target llama-server llama-cli # Start a local OpenAI-compatible server with a web UI: ./build/bin/llama-server -hf ef-dai-team/gemma-4-E4B-wallet-ft-v5:Q4_K_M # Run inference directly in the terminal: ./build/bin/llama-cli -hf ef-dai-team/gemma-4-E4B-wallet-ft-v5:Q4_K_M
Use Docker
docker model run hf.co/ef-dai-team/gemma-4-E4B-wallet-ft-v5:Q4_K_M
- LM Studio
- Jan
- vLLM
How to use ef-dai-team/gemma-4-E4B-wallet-ft-v5 with vLLM:
Install from pip and serve model
# Install vLLM from pip: pip install vllm # Start the vLLM server: vllm serve "ef-dai-team/gemma-4-E4B-wallet-ft-v5" # Call the server using curl (OpenAI-compatible API): curl -X POST "http://localhost:8000/v1/chat/completions" \ -H "Content-Type: application/json" \ --data '{ "model": "ef-dai-team/gemma-4-E4B-wallet-ft-v5", "messages": [ { "role": "user", "content": "What is the capital of France?" } ] }'Use Docker
docker model run hf.co/ef-dai-team/gemma-4-E4B-wallet-ft-v5:Q4_K_M
- Ollama
How to use ef-dai-team/gemma-4-E4B-wallet-ft-v5 with Ollama:
ollama run hf.co/ef-dai-team/gemma-4-E4B-wallet-ft-v5:Q4_K_M
- Unsloth Desktop
- Pi
How to use ef-dai-team/gemma-4-E4B-wallet-ft-v5 with Pi:
Start the llama.cpp server
# Install llama.cpp: brew install llama.cpp # Start a local OpenAI-compatible server: llama serve -hf ef-dai-team/gemma-4-E4B-wallet-ft-v5:Q4_K_M
Configure the model in Pi
# Install Pi: npm install -g @earendil-works/pi-coding-agent # Add to ~/.pi/agent/models.json: { "providers": { "llama-cpp": { "baseUrl": "http://localhost:8080/v1", "api": "openai-completions", "apiKey": "none", "models": [ { "id": "ef-dai-team/gemma-4-E4B-wallet-ft-v5:Q4_K_M" } ] } } }Run Pi
# Start Pi in your project directory: pi
- Docker Model Runner
How to use ef-dai-team/gemma-4-E4B-wallet-ft-v5 with Docker Model Runner:
docker model run hf.co/ef-dai-team/gemma-4-E4B-wallet-ft-v5:Q4_K_M
- Lemonade
How to use ef-dai-team/gemma-4-E4B-wallet-ft-v5 with Lemonade:
Pull the model
# Download Lemonade from https://lemonade-server.ai/ lemonade pull ef-dai-team/gemma-4-E4B-wallet-ft-v5:Q4_K_M
Run and chat with the model
lemonade run user.gemma-4-E4B-wallet-ft-v5-Q4_K_M
List all available models
lemonade list
- Hermes Agent
How to use ef-dai-team/gemma-4-E4B-wallet-ft-v5 with Hermes Agent:
Start the llama.cpp server
# Install llama.cpp: brew install llama.cpp # Start a local OpenAI-compatible server: llama serve -hf ef-dai-team/gemma-4-E4B-wallet-ft-v5:Q4_K_M
Configure Hermes
# Install Hermes: curl -fsSL https://hermes-agent.nousresearch.com/install.sh | bash hermes setup # Point Hermes at the local server: hermes config set model.provider custom hermes config set model.base_url http://127.0.0.1:8080/v1 hermes config set model.default ef-dai-team/gemma-4-E4B-wallet-ft-v5:Q4_K_M
Run Hermes
hermes
- Atomic Chat
- OpenClaw
How to use ef-dai-team/gemma-4-E4B-wallet-ft-v5 with OpenClaw:
Start the llama.cpp server
# Install llama.cpp: brew install llama.cpp # Start a local OpenAI-compatible server: llama serve -hf ef-dai-team/gemma-4-E4B-wallet-ft-v5:Q4_K_M
Configure OpenClaw
# Install OpenClaw: npm install -g openclaw@latest # Register the local server and set it as the default model: openclaw onboard --non-interactive --mode local \ --auth-choice custom-api-key \ --custom-base-url http://127.0.0.1:8080/v1 \ --custom-model-id "ef-dai-team/gemma-4-E4B-wallet-ft-v5:Q4_K_M" \ --custom-provider-id llama-cpp \ --custom-compatibility openai \ --custom-text-input \ --accept-risk \ --skip-health
Run OpenClaw
openclaw agent --local --agent main --message "Hello from Hugging Face"
Lead with the clause-on configuration: that is the prompt the wallet now sends
Browse files
README.md
CHANGED
|
@@ -21,6 +21,10 @@ exact structured tool call a macOS Ethereum wallet can execute. It runs on-devic
|
|
| 21 |
Q4_K_M (5.3 GB) and **scores ~95% on a frozen 1000-case benchmark, above gpt-5's
|
| 22 |
92.8% on the same cases.**
|
| 23 |
|
|
|
|
|
|
|
|
|
|
|
|
|
| 24 |
> *"actually make it 250 USDC instead"* (round 4 of a 6-round conversation)
|
| 25 |
>
|
| 26 |
> ```json
|
|
@@ -48,16 +52,24 @@ strength or continue training.
|
|
| 48 |
deterministic, no LLM judge. Both on-device arms were served from rented GPUs in one
|
| 49 |
device-controlled run; gpt-5 saw the same 1000 cases through OpenRouter.
|
| 50 |
|
| 51 |
-
| model | overall | wants a call (880) | wants NO call (120) | safety refusals (49) |
|
| 52 |
-
| --- | --: | --: | --: | --: |
|
| 53 |
-
| **this fine-tune** | **
|
| 54 |
-
|
|
| 55 |
-
|
|
| 56 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 57 |
|
| 58 |
**Quote this as ~95%, not to the case.** Three runs of this same GGUF, on different
|
| 59 |
-
rented pods, scored 949, 952 and 944 of 1000
|
| 60 |
-
best-of. Treat any difference under about six cases on this benchmark as unresolved —
|
| 61 |
that noise floor was measured with duplicate identical arms, not assumed.
|
| 62 |
|
| 63 |
The previous fine-tune's row is the one worth dwelling on if you are considering
|
|
@@ -108,8 +120,10 @@ same pass, and the ablation slice (requests that must produce no call) went to 2
|
|
| 108 |
|
| 109 |
## Add a safety clause. The two stack.
|
| 110 |
|
| 111 |
-
This model was trained on a system prompt with **no** safety clause
|
| 112 |
-
|
|
|
|
|
|
|
| 113 |
|
| 114 |
| | overall | task | refusals (49) |
|
| 115 |
| --- | --: | --: | --: |
|
|
|
|
| 21 |
Q4_K_M (5.3 GB) and **scores ~95% on a frozen 1000-case benchmark, above gpt-5's
|
| 22 |
92.8% on the same cases.**
|
| 23 |
|
| 24 |
+
**Send it a safety clause.** It was trained without one, and the overall score barely
|
| 25 |
+
moves either way — but refusals go from 81.6% to 95.9%. Details below; the short version
|
| 26 |
+
is that the clause is worth more than the fine-tune on that half of the job.
|
| 27 |
+
|
| 28 |
> *"actually make it 250 USDC instead"* (round 4 of a 6-round conversation)
|
| 29 |
>
|
| 30 |
> ```json
|
|
|
|
| 52 |
deterministic, no LLM judge. Both on-device arms were served from rented GPUs in one
|
| 53 |
device-controlled run; gpt-5 saw the same 1000 cases through OpenRouter.
|
| 54 |
|
| 55 |
+
| model | prompt | overall | wants a call (880) | wants NO call (120) | safety refusals (49) |
|
| 56 |
+
| --- | --- | --: | --: | --: | --: |
|
| 57 |
+
| **this fine-tune** | **+ safety clause** | **95.1%** | 94.7% | **98.3%** | **95.9%** |
|
| 58 |
+
| **this fine-tune** | as trained (no clause) | **94.9%** | **95.2%** | 92.5% | 81.6% |
|
| 59 |
+
| gpt-5 | + safety clause | 93.7% | 93.5% | 95.0% | **95.9%** |
|
| 60 |
+
| gpt-5 | no clause | 92.8% | 94.1% | 83.3% | 69.4% |
|
| 61 |
+
| Gemma-4 E4B base (untuned) | + safety clause | 91.0% | 91.0% | — | 91.8% |
|
| 62 |
+
| Gemma-4 E4B base (untuned) | no clause | 90.3% | 91.7% | 80.0% | 61.2% |
|
| 63 |
+
| the previous fine-tune (`gemma-4-E4B-wallet-ft`) | no clause | 68.6% | 70.0% | 58.3% | — |
|
| 64 |
+
|
| 65 |
+
**Both rows for this model are real measurements, not one number two ways.** Which one
|
| 66 |
+
applies to you depends on the system prompt you send, so the clause row is listed first:
|
| 67 |
+
it is the configuration the wallet this model was built for now actually ships. Note that
|
| 68 |
+
clause-on, this model and gpt-5 **tie exactly on refusals** (47/49).
|
| 69 |
|
| 70 |
**Quote this as ~95%, not to the case.** Three runs of this same GGUF, on different
|
| 71 |
+
rented pods, scored 949, 952 and 944 of 1000 — the 94.9% clause-off row is one of those
|
| 72 |
+
three, not a best-of. Treat any difference under about six cases on this benchmark as unresolved —
|
| 73 |
that noise floor was measured with duplicate identical arms, not assumed.
|
| 74 |
|
| 75 |
The previous fine-tune's row is the one worth dwelling on if you are considering
|
|
|
|
| 120 |
|
| 121 |
## Add a safety clause. The two stack.
|
| 122 |
|
| 123 |
+
This model was trained on a system prompt with **no** safety clause: all 2288 training
|
| 124 |
+
rows carry the same 533-character system turn, and the clause is 1577 characters that
|
| 125 |
+
none of them contained. Adding it at inference costs nothing measurable and buys a great
|
| 126 |
+
deal:
|
| 127 |
|
| 128 |
| | overall | task | refusals (49) |
|
| 129 |
| --- | --: | --: | --: |
|