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
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 | |
|---|---|---|---|
| gimbench-0.5.1.tar.gz | 24.1 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| gimbench-0.5.1-py3-none-any.whl | Python 3 | none | any | Details |
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}
|