MultiPL-E logo

MultiPL-E

nuprl/MultiPL-E

A multi-programming language benchmark for LLMs

GraphCanon updated 2w · GitHub synced 2w · 27 views this month

313 stars57 forksLast push 4mo Python Other

Decision brief

MultiPL-E is a benchmark system translating Python-based coding challenges across multiple programming languages.

Good fit when

  • Use MultiPL-E for evaluating large language models' performance on code generation tasks in different languages directly without needing to create new benchmarks from scratch.

Avoid when

  • Avoid using MultiPL-E if you need a more challenging benchmark; consider Ag-LiveCodeBench-X instead.
  • Do not use MultiPL-E if your evaluation environment lacks GPU resources for completion generation or does not support Docker or Podman for execution of generated code.
Pricing:
freemium - Free to use but requires local compute resources and potentially licensed libraries

Observed Jul 17, 2026 · Source: enrich:decision_facts

Verify the decision

Maintenance and security

Full trust report
Maintenance
Slowing (115d since push)
As of 2w
Provenance
Not a fork · Organization account
As of 2w
Security (OSV)
No lockfile
As of 1mo

Public GitHub metadata and optional OSV scans. Signals, not a guarantee. Trust methodology.

Install

pip install MultiPL-E
PyPI

Similar tools

Same-category neighbours. No typed graph edges are catalogued for this tool yet.

Evidence and technical details

Sourced facts, taxonomy, compatibility claims, README excerpt, and machine-readable endpoints.

Overview

MultiPL-E is a system for translating unit test-driven neural code generation benchmarks to new languages. It translates popular Python benchmarks (HumanEval and MBPP) into multiple programming languages, facilitating the evaluation of Large Language Models across different coding environments.

Capability facts

Languages
python

Source: github.language · Aug 5, 2026

Categories

Compatibility

Sourced claims from the README excerpt - not unsourced marketing copy.

Python runtimePython

Source: README excerpt (regex_v1, Aug 5, 2026)

Python benchmarks (HumanEval and MBPP) to 18 other programming languages.
Source link

Tags

README

Multi-Programming Language Evaluation of Large Language Models of Code (MultiPL-E)

New: For a more challenging multi-language benchmark, check out Ag-LiveCodeBench-X and its accompanying paper, Agnostics.

Introduction

MultiPL-E is a system for translating unit test-driven neural code generation benchmarks to new languages. We have used MultiPL-E to translate two popular Python benchmarks (HumanEval and MBPP) to 18 other programming languages.

For more information:

  • MultiPL-E is part of the [BigCode Code Generation LM Harness]. This is the easiest way to use MultiPL-E.
  • The [Multilingual Code Models Evaluation] by BigCode evaluates Code LLMs using several benchmarks, including MultiPL-E.
  • Read our paper [MultiPL-E: A Scalable and Polyglot Approach to Benchmarking Neural Code Generation].
  • The [MultiPL-E dataset] of translated prompts is available on the Hugging Face Hub.

Tutorial

These are instructions on how to use MultiPl-E directly, without the BigCode evaluation harness.

In this tutorial, we will run a small experiment to evaluate the performance of [SantaCoder] on Rust with a small subset of the MBPP benchmarks. We will only fetch 20 completions per problem, so that you can run it quickly on a single machine. You can also run on the full suite of benchmarks or substitute your own benchmark programs. Later, we'll show you how to add support for other languages and evaluate other models.

Prerequisites

  1. You will need Python 3.8 or higher.

  2. You will need to install some Python packages:

    pip3 install aiohttp numpy tqdm pytest datasets torch transformers
    
  3. You need to install one of [Podman] or [Docker].

  4. Check out the repository:

    git clone https://github.com/nuprl/MultiPL-E
    
  5. Enter the repository directory:

    cd MultiPL-E
    

Background

Out of the box, MultiPL-E supports several models, programming languages, and datasets. Using MultiPL-E is a two step process:

  1. We generate completions, which requires a GPU.

  2. We execute the generated completions, which requires a machine that supports Docker or Podman.

Generation

**The following directions are for evaluating base models. If you want to evaluate a chat model, see chat_completions.py.

The following command will generate completions for the HumanEval benchmark, which is originally in Python, but translated to Rust with MultiPL-E:

mkdir tutorial
python3 automodel.py \
    --name bigcode/gpt_bigcode-santacoder \
    --root-dataset humaneval \
    --lang rs \
    --temperature 0.2 \
    --batch-size 20 \
    --completion-limit 20 \
    --output-dir-prefix tutorial

The model name above refers to the SantaCoder model on the Hugging Face Hub. You can use any other text generation model instead.

Notes:

  1. This command requires about 13 GB VRAM and takes 30 minutes with a Quadro RTX 6000.

  2. If you have less VRAM, you can set --batch-size to a smaller value. E.g., with --batch-size 10 it should work on consumer graphics cards, such as the RTX series cards.

  3. If you're feeling impatient, you can kill the command early (use Ctrl+C) before all generations are complete. Your results won't be accurate, but you can move on to the evaluation step to get a partial result. Before killing generation, ensure that a few files have been generated:

    ls tutorial/*/*.json.gz
    

Execution

You can run MultiPL-E's execution with or without a container, but we strongly recommend using the container that we have provided. The container includes the toolchains for all languages that we support. Without it, you will need to painstakingly install them again. There is also a risk that the generated code may do something that breaks your system. The container

For agents

This page has a .md twin and JSON over the API.

Was this helpful?

Anonymous feedback helps us improve pages and translations.