Skip to content

About

No description, website, or topics provided.

Resources

Stars

3 stars

Watchers

0 watching

Forks

Latest commit

 

History

5 Commits

Folders and files

Repository files navigation

boost-kaggle — long-running, zero-cost Kaggle agent

A local LLM (Phi-4 14B via Ollama) works on the Titanic problem autonomously and indefinitely. Each iteration the model proposes one experiment (a complete Python script); the harness runs it in a sandboxed subprocess, parses the 5-fold cross-validation accuracy, records it, and feeds the result back so the model keeps improving. No Kaggle account, no API keys, no money.

Run it

./run.sh        # foreground (Ctrl-C to stop; state is saved, resumes next run)
./run.sh bg     # detached; logs to harness.log  ->  tail -f harness.log

It auto-starts Ollama, ensures the model is present, and (optionally) installs xgboost/lightgbm to give the model stronger tools. Everything is restart-safe: progress lives in state/journal.jsonl and state/best.json.

Updates

By default updates land every hour in STATUS.md plus a macOS notification. The harness picks a notifier in this order: Telegram → Slack → desktop.

Telegram (recommended):

  1. Message @BotFather -> /newbot -> copy the bot token.
  2. Send your new bot any message, then open https://api.telegram.org/bot<TOKEN>/getUpdates and copy result[0].message.chat.id.
  3. Save both (token on line 1, chat id on line 2):
    printf '%s\n%s\n' '123456:ABC-bottoken' '987654321' > telegram.txt
    # or: export TELEGRAM_BOT_TOKEN=... TELEGRAM_CHAT_ID=...

Slack (alternative): create an Incoming Webhook (https://api.slack.com/messaging/webhooks) then:

echo 'https://hooks.slack.com/services/XXX/YYY/ZZZ' > slack_webhook.txt

Tuning (top of harness.py)

Setting Default Meaning
UPDATE_INTERVAL_SECS 3600 how often to send an update — raise this for less frequent updates
MODEL phi4:14b the brain (BRAIN_MODEL env overrides). Try gemma3:12b, mistral for lighter
EXPERIMENT_TIMEOUT 420 max seconds per experiment script
TEMPERATURE 0.7 higher = more exploration

E.g. updates every 6 hours: UPDATE_INTERVAL_SECS=21600 ./run.sh bg

Files

  • harness.py — the agent loop
  • data/titanic.csv — labeled data (891 rows)
  • workspace/exp_NNNN.py — every script the model wrote
  • state/best.json — best score + the winning script path
  • STATUS.md — latest status report

Extending to real Kaggle submissions

Currently it optimizes offline CV (the Kaggle test set is unlabeled anyway). To submit for real later: add Kaggle API creds (~/.kaggle/kaggle.json), pip install kaggle, and have the best script also write submission.csv against the official test set, then kaggle competitions submit.

About

No description, website, or topics provided.

Resources

Stars

3 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages