fatihturker commited on
Commit
19bbfec
Β·
verified Β·
1 Parent(s): faf793b

Upload README.md with huggingface_hub

Browse files
Files changed (1) hide show
  1. README.md +101 -0
README.md ADDED
@@ -0,0 +1,101 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ ---
2
+ license: apache-2.0
3
+ base_model: Qwen/Qwen2.5-Coder-7B-Instruct
4
+ base_model_relation: finetune
5
+ language:
6
+ - en
7
+ - code
8
+ library_name: mlx
9
+ pipeline_tag: text-generation
10
+ tags:
11
+ - go
12
+ - golang
13
+ - code-generation
14
+ - guildlm
15
+ - code-guild
16
+ - mlx
17
+ - coding-assistant
18
+ ---
19
+
20
+ # GuildLM Β· go-dev
21
+
22
+ **A small, sharp Go *development* specialist from the GuildLM Code Guild.**
23
+
24
+ `go-dev` writes clean, idiomatic, **standard-library-first** Go β€” types, functions, concurrency, and whole multi-file packages. It is one of three specialists in the GuildLM Code Guild (`go-dev` Β· [`go-test`](https://huggingface.co/guildlm/go-test) Β· [`go-review`](https://huggingface.co/guildlm/go-review)) designed to be wrapped in a **verification-driven agent loop** rather than used as a lone chatbot.
25
+
26
+ > **The bet:** capability = model Γ— **algorithm**. A 7B specialist inside a compile-and-test loop, grounded by retrieval and guarded by deterministic gates, writes correct backends that a much larger general model β€” with no scaffolding β€” does not. `go-dev` is the *model* half. The [Builder](https://github.com/guildlm/builder) agent loop is the *algorithm* half.
27
+
28
+ ---
29
+
30
+ ## Why this isn't "just Qwen with a name"
31
+
32
+ `go-dev` is a **fused, standalone** model (no separate adapter) with its **own identity** β€” ask it who it is and it answers *GuildLM go-dev*, not the base model. It is fine-tuned for one job (writing Go) and shipped as part of a guild that works together. Under the hood it is an honest Apache-2.0 derivative of [Qwen2.5-Coder-7B-Instruct](https://huggingface.co/Qwen/Qwen2.5-Coder-7B-Instruct) β€” we attribute the base proudly, and the value we add is **specialization + the agent algorithm around it**.
33
+
34
+ ## What it's for
35
+
36
+ - Generating idiomatic Go: structs, methods, generics, error handling, concurrency.
37
+ - Stdlib-first HTTP services (`net/http`, `ServeMux`) β€” **no reflexive third-party routers**.
38
+ - Working as the *implementation* role inside the [GuildLM Builder](https://github.com/guildlm/builder): decompose a spec β†’ `go-dev` writes the code β†’ `go-test` writes the tests β†’ `go build/vet/test` β†’ fix β†’ `go-review` audits.
39
+
40
+ ## Benchmarks
41
+
42
+ Measured locally with the real Go toolchain (no LLM-as-judge). See the [research log](https://guildlm.github.io/research/) for the full, honest story β€” including where fine-tuning helps and where the *base* and the *algorithm* are the real levers.
43
+
44
+ <!-- BENCH:go-dev -->
45
+ | Benchmark | Metric | go-dev | base 7B |
46
+ |---|---|---|---|
47
+ | crucible `go_dev_bench` (24 tasks) | pass@1 (real `go build`+`go test`) | 17/24 | 19/24 |
48
+ | project-level `score_backend` (in the Builder loop) | build + vet + test | **3/3 first try** on tractable stdlib specs (numkit, jsonapi, worker-pool) | β€” |
49
+
50
+ > **Honest note (this is the whole point of GuildLM):** on the solo unit benchmark `go-dev` lands within measurement noise of its base β€” for *pure* code-generation, per-role fine-tuning is **not** the lever; base choice and the **agent loop** are. `go-dev`'s real edge shows up at the project level: driven by the [Builder](https://github.com/guildlm/builder) with retrieval grounding, it writes whole stdlib backends that **build, vet and test green on the first try** (`score_backend` 3/3) β€” which a lone model, prompted once, does not. Use it in the loop; that's where it shines.
51
+
52
+ ## Quickstart
53
+
54
+ ### Apple Silicon (MLX)
55
+
56
+ ```bash
57
+ pip install mlx-lm
58
+ python -m mlx_lm generate --model guildlm/go-dev \
59
+ --prompt "Write an idiomatic Go function MergeIntervals(intervals [][]int) [][]int." \
60
+ --max-tokens 400
61
+ ```
62
+
63
+ ### Ollama (GGUF)
64
+
65
+ ```bash
66
+ ollama run guildlm/go-dev "Write a stdlib-only Go net/http key/value service with GET/PUT."
67
+ ```
68
+
69
+ ### Inside the agent loop (recommended)
70
+
71
+ ```bash
72
+ # serve OpenAI-compatible, then let the Builder drive it
73
+ python -m mlx_lm server --model guildlm/go-dev --port 8080
74
+ guildlm-build --spec specs/myservice.yaml --out ./out \
75
+ --base-url http://localhost:8080/v1 \
76
+ --test-model guildlm/go-test --review-model guildlm/go-review \
77
+ --examples examples/verified_contracts.jsonl --candidates 3
78
+ ```
79
+
80
+ ## Prompting
81
+
82
+ `go-dev` is trained with the system prompt:
83
+
84
+ > *You are GuildLM go-dev, a Go development specialist from the GuildLM Code Guild.*
85
+
86
+ Ask for complete, runnable Go. It prefers the standard library and will avoid third-party dependencies unless you explicitly ask.
87
+
88
+ ## The Guild
89
+
90
+ | Specialist | Job |
91
+ |---|---|
92
+ | [**go-dev**](https://huggingface.co/guildlm/go-dev) | writes the implementation |
93
+ | [**go-test**](https://huggingface.co/guildlm/go-test) | writes thorough table-driven tests |
94
+ | [**go-review**](https://huggingface.co/guildlm/go-review) | audits for bugs a green build hides |
95
+
96
+ - Agent loop: **https://github.com/guildlm/builder**
97
+ - Research log (every experiment, wins *and* losses): **https://guildlm.github.io/research/**
98
+
99
+ ## License & attribution
100
+
101
+ Apache-2.0, inherited from the base model [Qwen2.5-Coder-7B-Instruct](https://huggingface.co/Qwen/Qwen2.5-Coder-7B-Instruct) (Β© Alibaba Cloud). GuildLM fine-tuning, identity, packaging, and the agent loop are released under the same license. All training was done locally on Apple Silicon with MLX β€” **total cloud spend: $0**.