

# camlcoder

## Model Description
`camlcoder` is a 2.7B Causal Language Model focused on **Code Completion** for OCaml. It is a fine-tuned version of [replit-code-v1-3b](https://www.huggingface.co/replit/replit-code-v1-3b). The model has been trained on a subset of the [Stack Dedup v1.2 dataset](https://arxiv.org/abs/2211.15533) and the most recent version of [all packages in Opam that compile on OCaml 5.0](https://www.huggingface.com/sadiqj/opam-source).

## License
The model checkpoint and vocabulary file are licensed under the Creative Commons license (CC BY-SA-4.0).

## Contact
For questions and comments about the model, please post in the community section.

## How to Use
First of all, you need to install the latest versions of the following dependencies:
```
einops
sentencepiece
safetensors
torch
transformers
```

You can then use the model as follows:
```python
from transformers import AutoTokenizer, AutoModelForCausalLM, AutoConfig, StoppingCriteria, StoppingCriteriaList
import torch

max_length = 256

tokenizer = AutoTokenizer.from_pretrained('sadiqj/camlcoder', trust_remote_code=True, max_length=max_length, use_safetensors=True)
model = AutoModelForCausalLM.from_pretrained('sadiqj/camlcoder', trust_remote_code=True, use_safetensors=True).to(device='cuda:0', dtype=torch.bfloat16)

input_ids = tokenizer.encode('(* Return the middle element of the list *)\nlet get_middle l =', return_tensors='pt').to(device='cuda:0')

newline_id = tokenizer.encode('\n\n', return_tensors='pt')[0][0].item()
class StopOnNewlines(StoppingCriteria):
    def __call__(self, input_ids: torch.LongTensor, scores: torch.FloatTensor, **kwargs) -> bool:
        return newline_id in input_ids

output = model.generate(input_ids, max_length=max_length, stopping_criteria=StoppingCriteriaList([StopOnNewlines()]), use_cache=True)

print(tokenizer.decode(output[0], skip_special_tokens=True))
```
{"language": ["code"], "license": "cc-by-sa-4.0", "tags": ["code"], "datasets": ["bigcode/the-stack-dedup", "sadiqj/opam-source"], "programming_language": ["OCaml"]}
transformers safetensors replit_lm text-generation code custom_code dataset:bigcode/the-stack-dedup dataset:sadiqj/opam-source arxiv:2211.15533 license:cc-by-sa-4.0 autotrain_compatible region:us
TAGS
#transformers #safetensors #replit_lm #text-generation #code #custom_code #dataset-bigcode/the-stack-dedup #dataset-sadiqj/opam-source #arxiv-2211.15533 #license-cc-by-sa-4.0 #autotrain_compatible #region-us 



# camlcoder

## Model Description
'camlcoder' is a 2.7B Causal Language Model focused on Code Completion for OCaml. It is a fine-tuned version of replit-code-v1-3b. The model has been trained on a subset of the Stack Dedup v1.2 dataset and the most recent version of all packages in Opam that compile on OCaml 5.0.

## License
The model checkpoint and vocabulary file are licensed under the Creative Commons license (CC BY-SA-4.0).

## Contact
For questions and comments about the model, please post in the community section.

## How to Use
First of all, you need to install the latest versions of the following dependencies:


You can then use the model as follows:

# camlcoder ## Model Description
'camlcoder' is a 2.7B Causal Language Model focused on Code Completion for OCaml. It is a fine-tuned version of replit-code-v1-3b. The model has been trained on a subset of the Stack Dedup v1.2 dataset and the most recent version of all packages in Opam that compile on OCaml 5.0. ## License
The model checkpoint and vocabulary file are licensed under the Creative Commons license (CC BY-SA-4.0). ## Contact
For questions and comments about the model, please post in the community section. ## How to Use
First of all, you need to install the latest versions of the following dependencies:


You can then use the model as follows:
TAGS
#transformers #safetensors #replit_lm #text-generation #code #custom_code #dataset-bigcode/the-stack-dedup #dataset-sadiqj/opam-source #arxiv-2211.15533 #license-cc-by-sa-4.0 #autotrain_compatible #region-us 
 # camlcoder ## Model Description
'camlcoder' is a 2.7B Causal Language Model focused on Code Completion for OCaml. It is a fine-tuned version of replit-code-v1-3b. The model has been trained on a subset of the Stack Dedup v1.2 dataset and the most recent version of all packages in Opam that compile on OCaml 5.0. ## License
The model checkpoint and vocabulary file are licensed under the Creative Commons license (CC BY-SA-4.0). ## Contact
For questions and comments about the model, please post in the community section. ## How to Use
First of all, you need to install the latest versions of the following dependencies:


You can then use the model as follows: