CodeFinetuner:在您自己的代码库上微调本地代码自动补全模型

Reddit r/LocalLLaMA 工具

摘要

CodeFinetuner 是一个完整的流程,用于使用 LoRA 在个人代码库上微调像 Qwen2.5-Coder-3B 这样的小型代码自动补全模型,支持通过 llama.vim 和 llama.vscode 等工具进行本地推理,并提供评估指标。

大家好,我对学习 LoRA 微调感兴趣,最终在过去的几个月里构建了 CodeFinetuner,这是一个完整的流程,用于微调特定于代码库的小型代码自动补全模型(例如 Qwen2.5-Coder-3B)。然后,您可以通过 llama.vim/llama.vscode 使用生成的 GGUF 模型,并完全本地运行。支持在 Mac(MPS)和 NVIDIA GPU(CUDA)上进行微调,可选 Unsloth 支持以实现更快的训练和更低的显存使用。流程:原始代码 -> tree-sitter 解析为结构感知的 FIM 示例 -> LoRA 微调 -> 评估(CodeBLEU、编辑相似度、精确匹配、困惑度等)-> GGUF 转换用于本地推理。要尝试它:uv tool install codefinetuner 创建一个 data 文件夹并将您的代码库(或代码文件)放入其中。对于自动分割,只需直接放入文件;对于手动分割,创建 data/train/、data/eval/、data/test/ 子文件夹并设置 split_mode: "manual"。获取默认配置:curl -L -O https://raw.githubusercontent.com/cuolm/codefinetuner/master/config/codefinetuner_config.yaml 根据您的需求和硬件可用性进行调整,然后运行:codefinetuner --config="codefinetuner_config.yaml" 仓库中的示例运行显示在这些评估指标上相比基础模型有明显改进,但使用模型对正在编写的代码进行自动补全与在测试集上得分良好是不同的,而且自动补全工具本身(llama.vim/llama.vscode)的采样方式与评估中使用的贪心解码不同。因此,真正的有用性仍需在编辑器本身中验证。作为一个完整的工作 LoRA 微调流程端到端,它可能仅作为参考也很有用。希望有人觉得这个项目有趣或有帮助。https://github.com/cuolm/codefinetuner
查看原文

相似文章

本地VibeCoding非常有趣..

Reddit r/LocalLLaMA

一位程序员分享了使用本地LLM进行编码(VibeCoding)的个人实用规则清单,强调实验、任务分解、安全测试以及理解模型能力。技术栈包括llama.cpp和Qwen模型。

我做了我的第一次微调!

Reddit r/ArtificialInteligence

RustEAI 是一个为 Apple Silicon Mac 设计的本地 AI 驱动的 Rust 编码器,基于 Qwen2.5-Coder-0.5B 的 LoRA 微调,提供无需云依赖的一次性代码生成。