| --- |
| 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! |
|
|
| ## Note |
| This is just a finetuning experiment, and we admit that the performance of the model is still lagging far behind GPT-4. In the future, we will update our datasets for agent-specific finetuning and provide better and larger models. Stay tuned! |
|
|
| ## Citation |
|
|
| ``` |
| @misc{codeqwen1.5, |
| title = {Code with CodeQwen1.5}, |
| url = {https://qwenlm.github.io/blog/codeqwen1.5/}, |
| author = {Qwen Team}, |
| month = {April}, |
| year = {2024} |
| } |
| ``` |