Giter VIP home page Giter VIP logo

swe-bench's Introduction

Kawi the SWE-Llama


Code and data for paper "SWE-bench: Can Language Models Resolve Real-World GitHub Issues?".

Build License

Please refer our website for the public leaderboard and the change log for information on the latest updates to the SWE-bench benchmark.

๐Ÿ‘‹ Overview

SWE-bench is a benchmark for evaluating large language models on real world software issues collected from GitHub. Given a codebase and an issue, a language model is tasked with generating a patch that resolves the described problem.

๐Ÿš€ Set Up

To build SWE-bench from source, follow these steps:

  1. Clone this repository locally
  2. cd into the repository.
  3. Run conda env create -f environment.yml to created a conda environment named swe-bench
  4. Activate the environment with conda activate swe-bench

๐Ÿ’ฝ Usage

You can download the SWE-bench dataset directly (dev, test sets) or from HuggingFace.

To use SWE-Bench, you can:

  • Train your own models on our pre-processed datasets
  • Run inference on existing models (either models you have on-disk like LLaMA, or models you have access to through an API like GPT-4). The inference step is where you get a repo and an issue and have the model try to generate a fix for it.
  • Evaluate models against SWE-bench. This is where you take a SWE-Bench task and a model-proposed solution and evaluate its correctness.
  • Run SWE-bench's data collection procedure on your own repositories, to make new SWE-Bench tasks.

โฌ‡๏ธ Downloads

Datasets Models
๐Ÿค— SWE-bench ๐Ÿฆ™ SWE-Llama 13b
๐Ÿค— "Oracle" Retrieval ๐Ÿฆ™ SWE-Llama 13b (PEFT)
๐Ÿค— BM25 Retrieval 13K ๐Ÿฆ™ SWE-Llama 7b
๐Ÿค— BM25 Retrieval 27K ๐Ÿฆ™ SWE-Llama 7b (PEFT)
๐Ÿค— BM25 Retrieval 40K
๐Ÿค— BM25 Retrieval 50K (Llama tokens)

๐ŸŽ Tutorials

We've also written the following blog posts on how to use different parts of SWE-bench. If you'd like to see a post about a particular topic, please let us know via an issue.

  • [Nov 1. 2023] Collecting Evaluation Tasks for SWE-Bench (๐Ÿ”—)
  • [Nov 6. 2023] Evaluating on SWE-bench (๐Ÿ”—)

๐Ÿ’ซ Contributions

We would love to hear from the broader NLP, Machine Learning, and Software Engineering research communities, and we welcome any contributions, pull requests, or issues! To do so, please either file a new pull request or issue and fill in the corresponding templates accordingly. We'll be sure to follow up shortly!

Contact person: Carlos E. Jimenez and John Yang (Email: {carlosej, jy1682}@princeton.edu).

โœ๏ธ Citation

If you find our work helpful, please use the following citations.

@misc{jimenez2023swebench,
      title={SWE-bench: Can Language Models Resolve Real-World GitHub Issues?}, 
      author={Carlos E. Jimenez and John Yang and Alexander Wettig and Shunyu Yao and Kexin Pei and Ofir Press and Karthik Narasimhan},
      year={2023},
      eprint={2310.06770},
      archivePrefix={arXiv},
      primaryClass={cs.CL}
}

๐Ÿชช License

MIT. Check LICENSE.md.

swe-bench's People

Contributors

john-b-yang avatar carlosejimenez avatar sorendunn avatar ofirpress avatar rdnfn avatar ysymyth avatar

Stargazers

ChiYeung Law avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.