README: clean tag block (fix best-agent typo, drop the 3 non-Field-Guide tags into a descriptive group) + add Output examples (real Modal-run outputs)
#2
by Nekochu - opened
README.md
CHANGED
|
@@ -6,19 +6,21 @@ colorTo: yellow
|
|
| 6 |
sdk: docker
|
| 7 |
app_port: 7860
|
| 8 |
pinned: false
|
| 9 |
-
# Build Small Hackathon
|
| 10 |
-
# the Field Guide (https://build-small-hackathon-field-guide.hf.space/) before final submit; the intent is right.
|
| 11 |
tags:
|
| 12 |
-
- best-minicpm-build # core entry
|
| 13 |
-
- backyard-ai #
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 14 |
- well-tuned # full fine-tune of MiniCPM5-1B, published on the Hub
|
| 15 |
- llama-champion # served on the llama.cpp runtime
|
| 16 |
- off-the-grid # runs fully local on a CPU, no cloud model APIs
|
| 17 |
-
- best-use-of-codex
|
| 18 |
-
- plus best-agent
|
| 19 |
-
- best-demo
|
| 20 |
-
- tiny-titan
|
| 21 |
-
- best-use-of-modal
|
| 22 |
---
|
| 23 |
|
| 24 |
# 🛠️ MiniCPM5-1B-Agent
|
|
@@ -62,6 +64,51 @@ artifact, the same loop a big agent runs, shrunk to something you could host in
|
|
| 62 |
It is a tiny 1B on a free CPU: expect **~4 min per simple turn**, longer for multi-step tasks (the demo video
|
| 63 |
shows it working end-to-end, so it can be judged even if a live run is slow).
|
| 64 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 65 |
## Model, dataset & full reproduction
|
| 66 |
|
| 67 |
→ **[Luminia/MiniCPM5-1B-Agent-GGUF](https://huggingface.co/Luminia/MiniCPM5-1B-Agent-GGUF)** (model card =
|
|
|
|
| 6 |
sdk: docker
|
| 7 |
app_port: 7860
|
| 8 |
pinned: false
|
| 9 |
+
# Build Small Hackathon tags: official tracks/sponsors/badges + descriptive build facts (for reviewers).
|
|
|
|
| 10 |
tags:
|
| 11 |
+
- best-minicpm-build # sponsor: full fine-tune of MiniCPM5-1B (core entry)
|
| 12 |
+
- backyard-ai # track: local, self-hosted AI on CPU
|
| 13 |
+
- best-use-of-codex # sponsor: code + Codex-attributed commits on GitHub
|
| 14 |
+
- best-use-of-modal # sponsor: GGUF evaluated on Modal (see "How it was built")
|
| 15 |
+
- off-brand # badge: custom UI well past the default Gradio look
|
| 16 |
+
- best-agent # badge: the write -> run -> read -> debug -> verify loop
|
| 17 |
+
- best-demo # badge: GIF + video demo
|
| 18 |
+
- tiny-titan # badge: a 1B doing the real agentic loop
|
| 19 |
+
- bonus-quest-champion # badge: most bonus criteria across the board
|
| 20 |
+
- judges-wildcard # badge: auto-considered for every entry
|
| 21 |
- well-tuned # full fine-tune of MiniCPM5-1B, published on the Hub
|
| 22 |
- llama-champion # served on the llama.cpp runtime
|
| 23 |
- off-the-grid # runs fully local on a CPU, no cloud model APIs
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 24 |
---
|
| 25 |
|
| 26 |
# 🛠️ MiniCPM5-1B-Agent
|
|
|
|
| 64 |
It is a tiny 1B on a free CPU: expect **~4 min per simple turn**, longer for multi-step tasks (the demo video
|
| 65 |
shows it working end-to-end, so it can be judged even if a live run is slow).
|
| 66 |
|
| 67 |
+
|
| 68 |
+
<details><summary><b>Output examples</b></summary>
|
| 69 |
+
|
| 70 |
+
Real single-turn outputs from the Q8_0 GGUF, generated on Modal (CPU):
|
| 71 |
+
|
| 72 |
+
**Prompt:** Write a Python function `fib(n)` that returns the nth Fibonacci number iteratively. Print fib(10).
|
| 73 |
+
|
| 74 |
+
```python
|
| 75 |
+
def fib(n):
|
| 76 |
+
if n == 0:
|
| 77 |
+
return 0
|
| 78 |
+
elif n == 1:
|
| 79 |
+
return 1
|
| 80 |
+
a, b = 0, 1
|
| 81 |
+
for _ in range(2, n + 1):
|
| 82 |
+
a, b = b, a + b
|
| 83 |
+
return b
|
| 84 |
+
|
| 85 |
+
print(fib(10))
|
| 86 |
+
```
|
| 87 |
+
|
| 88 |
+
**Prompt:** Convert an integer (1-3999) to a Roman numeral; demonstrate on 1994.
|
| 89 |
+
|
| 90 |
+
```python
|
| 91 |
+
def int_to_roman(num):
|
| 92 |
+
if not 1 <= num <= 3999:
|
| 93 |
+
raise ValueError("Number must be between 1 and 3999")
|
| 94 |
+
roman_map = [(1000,'M'),(900,'CM'),(500,'D'),(400,'CD'),(100,'C'),(90,'XC'),
|
| 95 |
+
(50,'L'),(40,'XL'),(10,'X'),(9,'IX'),(5,'V'),(4,'IV'),(1,'I')]
|
| 96 |
+
result = []
|
| 97 |
+
for value, symbol in roman_map:
|
| 98 |
+
while num >= value:
|
| 99 |
+
result.append(symbol); num -= value
|
| 100 |
+
return ''.join(result)
|
| 101 |
+
|
| 102 |
+
print(int_to_roman(1994)) # -> MCMXCIV
|
| 103 |
+
```
|
| 104 |
+
|
| 105 |
+
**Prompt:** How many $40 games can I buy with $200, and how much is left over?
|
| 106 |
+
|
| 107 |
+
> You can buy **5 games** with $200, and have **$0 left over**.
|
| 108 |
+
> Number of games = 200 / 40 = 5; remaining = 200 - (5 x 40) = $0.
|
| 109 |
+
|
| 110 |
+
</details>
|
| 111 |
+
|
| 112 |
## Model, dataset & full reproduction
|
| 113 |
|
| 114 |
→ **[Luminia/MiniCPM5-1B-Agent-GGUF](https://huggingface.co/Luminia/MiniCPM5-1B-Agent-GGUF)** (model card =
|