|
--- |
|
library_name: transformers |
|
tags: |
|
- code |
|
- hpc |
|
- parallel |
|
- axonn |
|
datasets: |
|
- hpcgroup/hpc-instruct |
|
- ise-uiuc/Magicoder-OSS-Instruct-75K |
|
- nickrosh/Evol-Instruct-Code-80k-v1 |
|
language: |
|
- en |
|
pipeline_tag: text-generation |
|
--- |
|
|
|
# HPC-Coder-v2 |
|
|
|
The HPC-Coder-v2-6.7b model is an HPC code LLM fine-tuned on an instruction dataset catered to common HPC topics such as parallelism, optimization, accelerator porting, etc. |
|
This version is a fine-tuning of the [Deepseek Coder 6.7b](https://huggingface.co/deepseek-ai/deepseek-coder-6.7b-base) model. |
|
It is fine-tuned on the [hpc-instruct](https://huggingface.co/datasets/hpcgroup/hpc-instruct), [oss-instruct](https://huggingface.co/datasets/ise-uiuc/Magicoder-OSS-Instruct-75K), and [evol-instruct](https://huggingface.co/datasets/nickrosh/Evol-Instruct-Code-80k-v1) datasets. |
|
We utilized the distributed training library [AxoNN](https://github.com/axonn-ai/axonn) to fine-tune in parallel across many GPUs. |
|
|
|
[HPC-Coder-v2-1.3b](https://huggingface.co/hpcgroup/hpc-coder-v2-1.3b), [HPC-Coder-v2-6.7b](https://huggingface.co/hpcgroup/hpc-coder-v2-6.7b), and [HPC-Coder-v2-16b](https://huggingface.co/hpcgroup/hpc-coder-v2-16b) are the most capable open-source LLMs for parallel and HPC code generation. |
|
HPC-Coder-v2-16b is currently the best performing open-source LLM on the [ParEval](https://github.com/parallelcodefoundry/ParEval) parallel code generation benchmark in terms of _correctness_ and _performance_. |
|
It scores similarly to 34B and commercial models like Phind-V2 and GPT-4 on parallel code generation. |
|
HPC-Coder-v2-6.7b is not far behind the 16b in terms of performance. |
|
|
|
## Using HPC-Coder-v2 |
|
|
|
The model is provided as a standard huggingface model with safetensor weights. |
|
It can be used with [transformers pipelines](https://huggingface.co/docs/transformers/en/main_classes/pipelines), [vllm](https://github.com/vllm-project/vllm), or any other standard model inference framework. |
|
HPC-Coder-v2 is an instruct model and prompts need to be formatted as instructions for best results. |
|
It was trained with the following instruct template: |
|
|
|
```md |
|
Below is an instruction that describes a task. Write a response that appropriately completes the request. |
|
|
|
### Instruction: |
|
{instruction} |
|
|
|
### Response: |
|
|
|
``` |
|
|
|
## Quantized Models |
|
|
|
4 and 8 bit quantized weights are available in the GGUF format for use with [llama.cpp](https://github.com/ggerganov/llama.cpp). |
|
The 4 bit model requires ~3.8 GB memory and can be found [here](https://huggingface.co/hpcgroup/hpc-coder-v2-6.7b-Q4_K_S-GGUF). |
|
The 8 bit model requires ~7.1 GB memory and can be found [here](https://huggingface.co/hpcgroup/hpc-coder-v2-6.7b-Q8_0-GGUF). |
|
Further information on how to use them with llama.cpp can be found in [its documentation](https://github.com/ggerganov/llama.cpp). |