Skip to main content

ViREx-Bench: A framework for inference-time scaling on Vietnamese reasoning tasks.

Project description

ViREX-Bench ViREx-Bench

A framework for inference-time scaling on Vietnamese reasoning tasks

Installation · Example of Usage · Development

Zenodo DOI ViREX-Bench latest release License


[!WARNING] Work in progress: dataset format, evaluation protocol, and supported reasoning methods are under active development.

Overview

ViREx-Bench is a framework for inference-time scaling on Vietnamese reasoning tasks. The project is designed to benchmark different prompting strategies under consistent evaluation settings and measure how much each strategy improves over a direct-answer baseline.

Installation

You can install ViREx-Bench using uv:

uv add virex-bench

or using pip:

pip install virex-bench

Verify the installation by running:

uv run virex-bench --version

# or simply
uv run vb --version

Example of Usage

ViREx-Bench evaluates a model on a Vietnamese reasoning task using a prompting strategy and a decoding method. Models are served behind any OpenAI-compatible endpoint (e.g. vLLM, SGLang).

The example below evaluates a model on vietnamese-logical-reasoning, which is scored with an LLM-as-a-judge. The default judge model is deepseek/deepseek-v4-flash (you can override this via setting VIREX_BENCH_JUDGE_MODEL, e.g. export VIREX_BENCH_JUDGE_MODEL=deepseek/deepseek-v4-pro). To use the judge, export VIREX_BENCH_JUDGE_API_KEY with a valid API key.

Via the CLI

# Evaluate Qwen3.5-4B with Tree-of-Thought (with Beam search) on the vietnamese-logical-reasoning task
uv run vb run \
  --model Qwen/Qwen3.5-4B \
  --task vietnamese-logical-reasoning \
  --strategy tot-beam \
  --backend hosted_vllm \
  --api-base https://your-endpoint/v1 \
  --api-key "$OPENAI_API_KEY" \
  --num-threads 32 \
  --output-dir results

Via Python

import virex_bench as vb

# Init the model
lm = vb.get_model(
    "Qwen/Qwen3.5-4B",
    backend="hosted_vllm",
    api_base="https://your-endpoint/v1",
    api_key="<empty>",
)

# Get the task
task = vb.get_task("vietnamese-logical-reasoning")

# Select a strategy and decoding method
# Here we will use Tree-of-Thought with Beam search (tot-beam) as the strategy and single-pass decoding
strategy = task.get_strategy("tot-beam")
decoding = vb.get_decoding(name="single-pass", strategy=strategy)

report = vb.evaluate(
    task=task,
    lm=lm,
    strategy=strategy,
    decoding=decoding,
    num_threads=32,
    # max_examples=10,  # Uncomment this line for quick testing with a small number of examples
)
vb.save_report(report, "./results")

print(f"{report.metric}={report.score:.4f} over {report.num_evaluated_examples} examples")

Development

Clone the repository and sync the environment with uv:

git clone https://github.com/minhnguyent546/ViREx-Bench.git
cd ViREx-Bench
uv sync  # creates the venv and installs the package with dev dependencies

Quality checks — prefix commands with uv run so they use the project environment:

uv run --no-sync ruff check             # lint
uv run --no-sync ruff format            # format
uv run --no-sync pytest                 # test suite
uv run --no-sync ruff check path/to/file.py   # scope lint/format to a single file
uv run --no-sync ruff format path/to/file.py

Serving models locally

ViREx-Bench talks to models through any OpenAI-compatible endpoint. To serve a model locally with vLLM or SGLang, install the corresponding dependency group and use the provided launchers — see scripts/serving/README.md for hardware requirements and full instructions.

uv sync --group vllm-v0-23        # or: uv sync --group sglang-v0-5-14

[!IMPORTANT] These groups pull custom-built wheels (compiled against glibc 2.31 so they run on older Linux distros) that only target Python 3.12, Linux, x86_64. On anything else, the sync still succeeds but quietly installs nothing from the group. So if a serving import fails right after syncing, check python --version first — you likely need a 3.12 environment (uv venv --python 3.12). The benchmark itself works fine on Python 3.12–3.14.

License

This repository's source code and associated datasets are licensed under the GNU General Public License v3.0. See LICENSE for details.

Citing

If you find ViREx-Bench useful in your research, please consider citing:

@misc{nguyen2026virexbench,
    author={Minh-Thien Nguyen},
    title={{ViREx-Bench}: A Framework for Inference-Time Scaling on {Vietnamese} Reasoning Tasks},
    year={2026},
    howpublished={\url{https://github.com/minhnguyent546/ViREx-Bench}}
}

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

virex_bench-0.1.3.tar.gz (1.0 MB view details)

Uploaded Source

Built Distribution

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

virex_bench-0.1.3-py3-none-any.whl (121.5 kB view details)

Uploaded Python 3

File details

Details for the file virex_bench-0.1.3.tar.gz.

File metadata

  • Download URL: virex_bench-0.1.3.tar.gz
  • Upload date:
  • Size: 1.0 MB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.13

File hashes

Hashes for virex_bench-0.1.3.tar.gz
Algorithm Hash digest
SHA256 3d46e5f5b6a997a77853333976f85de134539b38999254e8df9a83d59f0d9039
MD5 4a687490411f2967fe8bf192e7a2630a
BLAKE2b-256 40025085fb85543e2b62ebb8545ae5170575e9d7a7cbb1a0ae3bccfff2061990

See more details on using hashes here.

Provenance

The following attestation bundles were made for virex_bench-0.1.3.tar.gz:

Publisher: release.yml on minhnguyent546/ViREx-Bench

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file virex_bench-0.1.3-py3-none-any.whl.

File metadata

  • Download URL: virex_bench-0.1.3-py3-none-any.whl
  • Upload date:
  • Size: 121.5 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.13

File hashes

Hashes for virex_bench-0.1.3-py3-none-any.whl
Algorithm Hash digest
SHA256 392e7d74f88124e0c4cc20999987d73b1b2047bf205d1c21d9dd9b82d4f643a9
MD5 036bc724e12c3e071795acb5c1a699b1
BLAKE2b-256 f4a2b14ef4dcd43eee5dc677ffd90493586710c5767d9e12baa3ff5dcb5e9001

See more details on using hashes here.

Provenance

The following attestation bundles were made for virex_bench-0.1.3-py3-none-any.whl:

Publisher: release.yml on minhnguyent546/ViREx-Bench

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

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