Skip to main content

Explore the answer-space for any prompt and any MLX-supported model.

Project description

llmwalk

Explore the answer-space for any prompt and any MLX-supported model. See https://huggingface.co/mlx-community/models for supported models.

Usage example gif

Instead of sampling from the possible tokens each step, llmwalk branches out and completes all of the branches the sampler would consider based on --top-k, --top-p and --temperature, ranking the results by probability as it goes.

The tree is walked prioritising the most likely branches, until it finds -n branches and then it stops. It doesn't enumerate all possibilities, just enough to know for sure it has found the -n most likely branches.

Usage

  • uvx llmwalk -p "In what year was Barack Obama born?"
  • uvx llmwalk -p "Write a haiku about compilers" -n 5
  • uvx llmwalk -p "Give me one word: " --top-k 200 --temperature 0.7

Options

  • -p, --prompt TEXT: Prompt to score (wrapped with the model’s chat template).
  • -m, --model MODEL: MLX-LM model identifier or path (default: mlx-community/Llama-3.2-1B-Instruct-4bit), supported models can be found at https://huggingface.co/mlx-community/models
  • -n N: Number of answers to show. The search stops once it has N finished answers and no unfinished branch can beat the worst of those N.
  • --min-probability FLOAT: Any branch whose cumulative probability falls below this is marked finished (low_probability) and not expanded further.
  • --top-k INT: At each step, expand at most k next tokens (highest probability).
  • --top-p FLOAT: Nucleus cutoff applied within the top-k tokens at each step (keep adding tokens until cumulative probability ≥ p).
  • --temperature FLOAT: Softmax temperature applied when computing per-step probabilities (1.0 is the model distribution; must be > 0).
  • --stats-interval SECONDS: How often to refresh the live view (<= 0 disables periodic refresh; still renders at start/end).
  • --format {csv,json}: Output format for machine-readable output. When specified, disables the interactive display and prints results to stdout when the job completes.

Machine-readable output

Use --format to get structured output for scripting or further processing:

# JSON output
uvx llmwalk -p "What is 2+2?" --format json

# CSV output
uvx llmwalk -p "What is 2+2?" --format csv

JSON output includes detailed token-level information:

[
  {
    "answer": "4",
    "probability": 0.95,
    "finish_reason": "eos_token",
    "tokens": [
      {"token": "4", "probability": 0.95}
    ]
  }
]

CSV output provides a simpler tabular format with columns: answer, probability, finish_reason.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

llmwalk-0.2.0.tar.gz (85.5 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

llmwalk-0.2.0-py3-none-any.whl (10.8 kB view details)

Uploaded Python 3

File details

Details for the file llmwalk-0.2.0.tar.gz.

File metadata

  • Download URL: llmwalk-0.2.0.tar.gz
  • Upload date:
  • Size: 85.5 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: uv/0.9.26 {"installer":{"name":"uv","version":"0.9.26","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"macOS","version":null,"id":null,"libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}

File hashes

Hashes for llmwalk-0.2.0.tar.gz
Algorithm Hash digest
SHA256 f49fa4943efa6c534dd9e1e42c065dd9223b9fc3c0150d3cc77aa3195a402181
MD5 7370bcd6d510389bcf03645250b5030f
BLAKE2b-256 28284adc1af51b55736ba14dd58f7ef20b28805c98dde5e8877395b1554e589a

See more details on using hashes here.

File details

Details for the file llmwalk-0.2.0-py3-none-any.whl.

File metadata

  • Download URL: llmwalk-0.2.0-py3-none-any.whl
  • Upload date:
  • Size: 10.8 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: uv/0.9.26 {"installer":{"name":"uv","version":"0.9.26","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"macOS","version":null,"id":null,"libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}

File hashes

Hashes for llmwalk-0.2.0-py3-none-any.whl
Algorithm Hash digest
SHA256 71d60494abb9f1b3f9d3d1a357799007ac1c7fe33e472d9b7ff8d2f304ac5979
MD5 260a3300531a668479d04455e664dafa
BLAKE2b-256 67a0beee1a05346b782c78b060871bd8b2663b2cc1ab5778b52fc063aff44cab

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page