Views
No views yet

| Model | Base | Params | Training | 🤗 Hugging Face |
|---|---|---|---|---|
Finch-2B | Qwen3.5-2B | 2B | EFT | |
Finch-4B | Qwen3.5-4B | 4B | EFT | |
Finch-8B | Qwen3-8B | 8B | EFT | |
Finch-9B ← this model | Qwen3.5-9B | 9B | EFT | |
Finch-4B-KTO | Qwen3.5-4B | 4B | EFT + KTO | |
Finch-8B-KTO | Qwen3-8B | 8B | EFT + KTO |
T = 100, temperature 0.7, top-p 0.95, up to 30K tokens).
You can also use other scaffolds in the SkyDiscover framework, but we do not guarantee performance, as our model is trained on OpenEvolve's trajectories — one of this work's limitations.You are an expert mathematician specializing in circle packing problems and computational geometry.
Your task is to improve a constructor function that directly produces a specific arrangement of
26 circles in a unit square, maximizing the sum of their radii.
The AlphaEvolve paper achieved a sum of 2.635 for n=26.
Key geometric insights:
- Circle packings often follow hexagonal patterns in the densest regions
- Maximum density for infinite circle packing is pi/(2*sqrt(3)) ≈ 0.9069
- Edge effects make square container packing harder than infinite packing
- Similar radius circles often form regular patterns, while varied radii allow better space utilization# Current Program Information
- Fitness: 0.3642 (sum_radii: 0.9598)
- Focus areas: Fitness unchanged at 0.3642. Consider simplifying — code length exceeds 500 characters.
# Program Evolution History
## Previous Attempts
### Attempt 1
- Changes: Replace concentric ring placement with hexagonal lattice (5-6-5-6-5 row pattern)
- Metrics: sum_radii: 0.9598, validity: 1.0 — Improvement in all metrics
# Current Program
# EVOLVE-BLOCK-START
import numpy as np
def construct_packing():
n = 26
centers = np.zeros((n, 2))
centers[0] = [0.5, 0.5] # center circle
for i in range(8): # inner ring
angle = 2 * np.pi * i / 8
centers[i+1] = [0.5 + 0.3*np.cos(angle), 0.5 + 0.3*np.sin(angle)]
for i in range(16): # outer ring
angle = 2 * np.pi * i / 16
centers[i+9] = [0.5 + 0.7*np.cos(angle), 0.5 + 0.7*np.sin(angle)]
centers = np.clip(centers, 0.01, 0.99)
radii = compute_max_radii(centers)
return centers, radii, np.sum(radii)
# EVOLVE-BLOCK-END1import torch
2from transformers import AutoModelForCausalLM, AutoTokenizer
3
4model_id = "minnesotanlp/Finch-9B"
5tokenizer = AutoTokenizer.from_pretrained(model_id)
6model = AutoModelForCausalLM.from_pretrained(model_id, torch_dtype="auto", device_map="auto")
7
8# Given an evolutionary state — task instruction + parent program + evolutionary history
9# + evaluator feedback — Finch proposes an improved candidate program.
10messages = [
11 {"role": "system", "content": SYSTEM_PROMPT}, # provided by your evolutionary scaffold
12 {"role": "user", "content": USER_PROMPT}, # parent program + feedback + history
13]
14inputs = tokenizer.apply_chat_template(
15 messages, add_generation_prompt=True, return_tensors="pt"
16).to(model.device)
17
18out = model.generate(inputs, max_new_tokens=30000, do_sample=True, temperature=0.7, top_p=0.95)
19print(tokenizer.decode(out[0][inputs.shape[-1]:], skip_special_tokens=True))improved transitions from the Finch Collection across 355 training tasks (16 of 371 held out). One evolutionary run is kept per task → 30,445 supervised examples; 900 uniformly-sampled examples for validation.


1@misc{lee2026evolutionfinetuninglearningdiscover,
2 title={Evolution Fine-Tuning: Learning to Discover Across 371 Optimization Tasks},
3 author={Young-Jun Lee and Seungone Kim and Minki Kang and Alistair Cheong Liang Chuen and Zerui Chen and Seungho Han and Taehee Jung and Dongyeop Kang},
4 year={2026},
5 eprint={2606.29082},
6 archivePrefix={arXiv},
7 primaryClass={cs.CL},
8 url={https://arxiv.org/abs/2606.29082},
9}