| --- |
| 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 |