Text Generation
Transformers
PyTorch
gpt_bigcode
fill-mask
code
Eval Results (legacy)
text-generation-inference
Instructions to use bigcode/santacoderpack with libraries, inference providers, notebooks, and local apps. Follow these links to get started.
- Libraries
- Transformers
How to use bigcode/santacoderpack with Transformers:
# Use a pipeline as a high-level helper from transformers import pipeline pipe = pipeline("text-generation", model="bigcode/santacoderpack")# Load model directly from transformers import AutoTokenizer, AutoModelWithLMHead tokenizer = AutoTokenizer.from_pretrained("bigcode/santacoderpack") model = AutoModelWithLMHead.from_pretrained("bigcode/santacoderpack", device_map="auto") - Notebooks
- Google Colab
- Kaggle
- Local Apps Settings
- vLLM
How to use bigcode/santacoderpack with vLLM:
Install from pip and serve model
# Install vLLM from pip: pip install vllm # Start the vLLM server: vllm serve "bigcode/santacoderpack" # Call the server using curl (OpenAI-compatible API): curl -X POST "http://localhost:8000/v1/completions" \ -H "Content-Type: application/json" \ --data '{ "model": "bigcode/santacoderpack", "prompt": "Once upon a time,", "max_tokens": 512, "temperature": 0.5 }'Use Docker
docker model run hf.co/bigcode/santacoderpack
- SGLang
How to use bigcode/santacoderpack with SGLang:
Install from pip and serve model
# Install SGLang from pip: pip install sglang # Start the SGLang server: python3 -m sglang.launch_server \ --model-path "bigcode/santacoderpack" \ --host 0.0.0.0 \ --port 30000 # Call the server using curl (OpenAI-compatible API): curl -X POST "http://localhost:30000/v1/completions" \ -H "Content-Type: application/json" \ --data '{ "model": "bigcode/santacoderpack", "prompt": "Once upon a time,", "max_tokens": 512, "temperature": 0.5 }'Use Docker images
docker run --gpus all \ --shm-size 32g \ -p 30000:30000 \ -v ~/.cache/huggingface:/root/.cache/huggingface \ --env "HF_TOKEN=<secret>" \ --ipc=host \ lmsysorg/sglang:latest \ python3 -m sglang.launch_server \ --model-path "bigcode/santacoderpack" \ --host 0.0.0.0 \ --port 30000 # Call the server using curl (OpenAI-compatible API): curl -X POST "http://localhost:30000/v1/completions" \ -H "Content-Type: application/json" \ --data '{ "model": "bigcode/santacoderpack", "prompt": "Once upon a time,", "max_tokens": 512, "temperature": 0.5 }' - Docker Model Runner
How to use bigcode/santacoderpack with Docker Model Runner:
docker model run hf.co/bigcode/santacoderpack
| pipeline_tag: text-generation | |
| inference: true | |
| widget: | |
| - text: '<commit_before>def has_close_elements(numbers: List[float], threshold: float) -> bool:\n for idx, elem in enumerate(numbers):\n for idx2, elem2 in enumerate(numbers):\n if idx != idx2:\n distance = elem - elem2\n if distance < threshold:\n return True\n\n return False<commit_message>Fix bugs in has_close_elements.<commit_after>' | |
| example_title: Fix has_close_elements | |
| group: Python | |
| license: bigcode-openrail-m | |
| datasets: | |
| - bigcode/commitpack-subset-cf | |
| metrics: | |
| - code_eval | |
| library_name: transformers | |
| tags: | |
| - code | |
| model-index: | |
| - name: SantaCoderPack | |
| results: | |
| - task: | |
| type: text-generation | |
| dataset: | |
| type: bigcode/humanevalpack | |
| name: HumanEvalFix Python | |
| metrics: | |
| - name: pass@1 | |
| type: pass@1 | |
| value: 3.2 | |
| verified: false | |
| - task: | |
| type: text-generation | |
| dataset: | |
| type: bigcode/humanevalpack | |
| name: HumanEvalFix JavaScript | |
| metrics: | |
| - name: pass@1 | |
| type: pass@1 | |
| value: 4.9 | |
| verified: false | |
| - task: | |
| type: text-generation | |
| dataset: | |
| type: bigcode/humanevalpack | |
| name: HumanEvalFix Java | |
| metrics: | |
| - name: pass@1 | |
| type: pass@1 | |
| value: 1.8 | |
| verified: false | |
| - task: | |
| type: text-generation | |
| dataset: | |
| type: bigcode/humanevalpack | |
| name: HumanEvalFix Go | |
| metrics: | |
| - name: pass@1 | |
| type: pass@1 | |
| value: 3.6 | |
| verified: false | |
| - task: | |
| type: text-generation | |
| dataset: | |
| type: bigcode/humanevalpack | |
| name: HumanEvalFix C++ | |
| metrics: | |
| - name: pass@1 | |
| type: pass@1 | |
| value: 4.2 | |
| verified: false | |
| - task: | |
| type: text-generation | |
| dataset: | |
| type: bigcode/humanevalpack | |
| name: HumanEvalFix Rust | |
| metrics: | |
| - name: pass@1 | |
| type: pass@1 | |
| value: 1.7 | |
| verified: false | |
| - task: | |
| type: text-generation | |
| dataset: | |
| type: bigcode/humanevalpack | |
| name: HumanEvalFix Average | |
| metrics: | |
| - name: pass@1 | |
| type: pass@1 | |
| value: 3.3 | |
| verified: false | |
|  | |
| # Table of Contents | |
| 1. [Model Summary](#model-summary) | |
| 2. [Use](#use) | |
| 3. [Training](#training) | |
| 4. [Citation](#citation) | |
| # Model Summary | |
| SantaCoderPack is an pre-trained model with the same architecture of SantaCoder on | |
| <th><a href=https://huggingface.co/datasets/bigcode/commitpack>CommitPack</a> using this format: | |
| ``` | |
| <commit_before>code_before<commit_msg>message<commit_after>code_after | |
| ``` | |
| - **Repository:** [bigcode/octopack](https://github.com/bigcode-project/octopack) | |
| - **Paper:** [TODO]() | |
| - **Languages:** Python, JavaScript, Java, C++, Go, Rust | |
| - **SantaCoderPack:** | |
| <table> | |
| <tr> | |
| <th>Data</t> | |
| <th><a href=https://huggingface.co/datasets/bigcode/commitpack>CommitPack</a></th> | |
| <td>4TB of GitHub commits across 350 programming languages</td> | |
| </tr> | |
| <tr> | |
| <th>Model</t> | |
| <th><a href=https://huggingface.co/bigcode/octocoder>SantaCoderPack</a></th> | |
| <td>SantaCoderPack (1.1B parameters) pre-trained on CommitPack</td> | |
| </tr> | |
| <tr> | |
| <th>Evaluation </t> | |
| <th><a href=https://huggingface.co/datasets/bigcode/humanevalpack>HumanEvalPack/HumanEvalFix</a></th> | |
| <td>Extension of OpenAI's HumanEval to HumanEvalFix</td> | |
| </tr> | |
| </table> | |
| # Use | |
| ## Intended use | |
| The model follows instructions provided in the input. We recommend prefacing your input with "<commit_before>def has_close_elements(numbers: List[float], threshold: float) -> bool:\n for idx, elem in enumerate(numbers):\n for idx2, elem2 in enumerate(numbers):\n if idx != idx2:\n distance = elem - elem2\n if distance < threshold:\n return True\n\n return False<commit_message>Fix bugs in has_close_elements.<commit_after>" | |
| **Feel free to share your generations in the Community tab!** | |
| ## Generation | |
| ```python | |
| # pip install -q transformers | |
| from transformers import AutoModelForCausalLM, AutoTokenizer | |
| checkpoint = "bigcode/santacoderpack" | |
| device = "cuda" # for GPU usage or "cpu" for CPU usage | |
| tokenizer = AutoTokenizer.from_pretrained(checkpoint) | |
| model = AutoModelForCausalLM.from_pretrained(checkpoint).to(device) | |
| inputs = tokenizer.encode("Q<commit_before>def has_close_elements(numbers: List[float], threshold: float) -> bool:\n for idx, elem in enumerate(numbers):\n for idx2, elem2 in enumerate(numbers):\n if idx != idx2:\n distance = elem - elem2\n if distance < threshold:\n return True\n\n return False<commit_message>Fix bugs in has_close_elements.<commit_after>", return_tensors="pt").to(device) | |
| outputs = model.generate(inputs) | |
| print(tokenizer.decode(outputs[0])) | |
| ``` | |
| # Training | |
| ## Model | |
| - **Architecture:** GPT-2 model with multi-query attention | |
| - **Steps:** 250k pretraining | |
| - **Pretraining tokens:** 131B | |
| - **Precision:** bfloat16 | |
| ## Hardware | |
| - **Pretraining:** | |
| - **GPUs:** 32 Tesla A100 | |
| - **Training time:** 15 days | |
| ## Software | |
| - **Orchestration:** [Megatron-LM/Transformers](https://github.com/bigcode-project/santacoderpack#training) | |
| - **Neural networks:** [PyTorch](https://github.com/pytorch/pytorch) | |
| # Citation | |
| TODO |