Curated on
November 2, 2023
In the rapidly changing world of programming and software development, efficiency and productivity are crucial. Innovations in the form of code generation models like Codex, StarCoder, and Code Llama have emerged, showing immense potential as coding assistants. However, the new horizon of innovation holds the possibility to customize a coding assistant to cater to specific needs. HugCoder is an example of such an assistant. In this blog post, we explain how HugCoder was created and fine-tuned on public repositories from the huggingface GitHub organization, demonstrating a workflow to create your own personalized coding assistant.
The blog post further delves into how to finetune models using techniques like bigcode/starcoder fine-tuning and using PEFT for further experiments. The training objective is to fill in the middle (FIM), wherein parts of a training sequence are moved to the end, and the reordered sequence is predicted in an auto-regressive way. The blog post also introduces methods to accommodate large models on a single GPU, covering topics like Flash Attention V2, Gradient Checkpointing, and their effects on GPU memory occupation. Finally, the blog explains how to create a personalized Co-Pilot and how to use it in VS Code. The post closes with instructions on how to run your assistant locally.
