GIMBench
GIMBench is a benchmarking framework for evaluating Guided Infilling Models (GIM).
Overview
This project provides tools and benchmarks to evaluate models' ability to perform guided infilling tasks - generating text that follows specific constraints and patterns.
Installation
Install GIMBench using pip:
pip install gimbench
For development:
make install-dev
Usage
GIMBench provides several benchmark types:
- CV Parsing: Evaluate models on structured information extraction from CVs
- Regex Matching: Test models' ability to generate text matching specific patterns
- Multiple Choice QA: Assess guided generation in question-answering contexts
- Perplexity: Measure language modeling quality with constraints
- Code Infilling: Evaluate code infilling via unit-test execution (pass@k)
- SciERC Relation Extraction: Evaluate scientific relation extraction on the Hugging Face dataset
Sculpt-AI/GIMBench-sci-erc
Example Commands
Run MMLU-Pro benchmark:
python -m gimbench.mcqa.mmlu_pro \
--model_type vllm \
--model_name meta-llama/Llama-3.1-8B-Instruct \
--base_url http://localhost:8000/v1
Run GPQA Diamond benchmark:
python -m gimbench.mcqa.gpqa_diamond \
--model_type openai \
--model_name gpt-4 \
--api_key YOUR_API_KEY
Run GIM-SFT perplexity evaluation:
python -m gimbench.ppl.gim_sft \
--model_type vllm-offline \
--model_name meta-llama/Llama-3.1-8B-Instruct
Run HumanEval Infilling benchmark (code generation + unit-test execution, pass@k):
# GIM-guided infilling (default), pass@1
python -m gimbench.code.humaneval_infilling \
--model_type vllm \
--model_name meta-llama/Llama-3.1-8B-Instruct \
--base_url http://localhost:8000/v1
# Sample 20 completions per problem, report pass@1 and pass@10
python -m gimbench.code.humaneval_infilling \
--model_type vllm \
--model_name meta-llama/Llama-3.1-8B-Instruct \
--base_url http://localhost:8000/v1 \
--temperature 0.8 \
--num_samples 20 \
--pass_k 1 10
# Plain LLM (no GIMKit)
python -m gimbench.code.humaneval_infilling \
--model_type vllm \
--model_name meta-llama/Llama-3.1-8B-Instruct \
--base_url http://localhost:8000/v1 \
--no_gimkit
Run SciERC relation extraction benchmark (Hugging Face dataset):
python -m gimbench.scierc.scierc \
--model_type vllm \
--model_name meta-llama/Llama-3.1-8B-Instruct \
--base_url http://localhost:8000/v1 \
--scierc_split test
# Plain LLM (no GIMKit)
python -m gimbench.scierc.scierc \
--model_type vllm \
--model_name meta-llama/Llama-3.1-8B-Instruct \
--base_url http://localhost:8000/v1 \
--scierc_split dev \
--no_gimkit
If you need to rebuild and upload the dataset, use:
python benchmarks/GIMBench-sci-erc/1_build_dataset.py \
--raw_dir benchmarks/GIMBench-sci-erc/data/raw_data \
--repo_id Sculpt-AI/GIMBench-sci-erc \
--push_to_hub
Development
Run linting:
make lint
Fix linting issues automatically:
make lint-fix
Run pre-commit hooks:
make pre-commit
Metadata
Release files for gimbench 0.5.1
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | Provenance | Actions |
|---|---|---|---|---|
| gimbench-0.5.1.tar.gz | 24.1 kB | Without provenance | Details for gimbench-0.5.1.tar.gz |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Actions Reset |
|---|---|---|---|---|
| gimbench-0.5.1-py3-none-any.whl | Python 3 | none | any | Details for gimbench-0.5.1-py3-none-any.whl |
Total release size: 61.8 kB
Release files / gimbench-0.5.1.tar.gz
| Download URL | gimbench-0.5.1.tar.gz |
|---|---|
| Size | 24.1 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
ef4a92f91fab15d711da8e176cb9640ba4aa8c0269f5f6278cf12c5ad29959c7
|
|
BLAKE2b-256 checksum How to use checksums |
5f1073d1b5653b5070d273303c94e2282b6c29d38aeafaa2194da6d9b9d8a7f4
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
uv/0.11.6 {"installer":{"name":"uv","version":"0.11.6","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}
|
Release files / gimbench-0.5.1-py3-none-any.whl
| Download URL | gimbench-0.5.1-py3-none-any.whl |
|---|---|
| Size | 37.7 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
d1a831dd9e998be89da9fe84fa894caca6088bcc904faf8426163c13c7ae6c7c
|
|
BLAKE2b-256 checksum How to use checksums |
7f6621b9ec27499de03b666eb0325e8f0517f00240871ed25212bc7ac9e12e67
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
uv/0.11.6 {"installer":{"name":"uv","version":"0.11.6","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}
|
Security for gimbench 0.5.1
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
No provenance found
None of the files in this release were uploaded with provenance metadata.
A note on package security
PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.
To learn more about protecting yourself from malicious actors, visit our package security documentation.