|
--- |
|
language: |
|
- en |
|
pipeline_tag: text-generation |
|
--- |
|
# CodeQwen1.5-7B-OpenDevin |
|
|
|
## Introduction |
|
CodeQwen1.5-7B-OpenDevin is a code-specific model targeting on OpenDevin Agent tasks. |
|
The model is finetuned from CodeQwen1.5-7B, the code-specific large language model based on Qwen1.5 pretrained on large-scale code data. |
|
CodeQwen1.5-7B is strongly capable of understanding and generating codes, and it supports the context length of 65,536 tokens (for more information about CodeQwen1.5, please refer to the [blog post](https://qwenlm.github.io/blog/codeqwen1.5/) and [GitHub repo](https://github.com/QwenLM/Qwen1.5)). |
|
The finetuned model, CodeQwen1.5-7B-OpenDevin, shares similar features, while it is designed for rapid development, debugging, and iteration. |
|
|
|
## Performance |
|
We evaluate CodeQwen1.5-7B-OpenDevin on SWE-Bench-Lite by implementing the model on OpenDevin CodeAct 1.3 and follow the OpenDevin evaluation pipeline. |
|
CodeQwen1.5-7B-OpenDevin successfully solves 4 problems by commmiting pull requests targeting on the issues. |
|
|
|
## Requirements |
|
The code of Qwen1.5 has been in the latest Hugging face transformers and we advise you to install `transformers>=4.37.0`, or you might encounter the following error: |
|
``` |
|
KeyError: 'qwen2'. |
|
``` |
|
|
|
## Quickstart |
|
|
|
To use local models to run OpenDevin, we advise you to deploy CodeQwen1.5-7B-OpenDevin on a GPU device and access it through OpenAI API |
|
|
|
```bash |
|
python -m vllm.entrypoints.openai.api_server --model OpenDevin/CodeQwen1.5-7B-OpenDevin --dtype auto --api-key token-abc123 |
|
``` |
|
|
|
For more details, please refer to the official documentation of [vLLM for OpenAI Compatible server](https://docs.vllm.ai/en/stable/serving/openai_compatible_server.html). |
|
|
|
After the deployment, following the guidance of [OpenDevin](https://github.com/OpenDevin/OpenDevin) and run the following command to set up environment variables: |
|
|
|
```bash |
|
# The directory you want OpenDevin to work with. MUST be an absolute path! |
|
export WORKSPACE_BASE=$(pwd)/workspace; |
|
export LLM_API_KEY=token-abc123; |
|
export LLM_MODEL=OpenDevin/CodeQwen1.5-7B-OpenDevin; |
|
export LLM_BASE_URL=http://localhost:8000/v1; |
|
``` |
|
|
|
and run the docker command: |
|
|
|
```bash |
|
docker run \ |
|
-it \ |
|
--pull=always \ |
|
-e SANDBOX_USER_ID=$(id -u) \ |
|
-e LLM_BASE_URL=$LLM_BASE_URL \ |
|
-e LLM_API_KEY=$LLM_API_KEY \ |
|
-e LLM_MODEL=$LLM_MODEL \ |
|
-e WORKSPACE_MOUNT_PATH=$WORKSPACE_BASE \ |
|
-v $WORKSPACE_BASE:/opt/workspace_base \ |
|
-v /var/run/docker.sock:/var/run/docker.sock \ |
|
-p 3000:3000 \ |
|
--add-host host.docker.internal:host-gateway \ |
|
ghcr.io/opendevin/opendevin:0.5 |
|
``` |
|
|
|
Now you should be able to connect `http://localhost:3000/`. Set up the configuration at the frontend by clicking the button at the bottom right, and input the right model name and api key. |
|
Then, you can enjoy playing with OpenDevin based on CodeQwen1.5-7B-OpenDevin! |
|
|
|
|
|
## Citation |
|
|
|
``` |
|
@misc{codeqwen1.5, |
|
title = {Code with CodeQwen1.5}, |
|
url = {https://qwenlm.github.io/blog/codeqwen1.5/}, |
|
author = {Qwen Team}, |
|
month = {April}, |
|
year = {2024} |
|
} |
|
``` |