自定义氛围编码探索第一部分:探索开始 🧙

社区文章 发布于 2025 年 3 月 26 日

我正在开始一项新的探索,旨在构建我自己的自定义编码模型。我受到了“氛围编码”的启发,但我认为它由于使用一体化模型而受到根本性的限制。如果针对您的特定氛围使用多个不同的模型,则可以生成适合其应用程序的代码。

在这些博客文章中,我将试验并分享我关于微调模型的工作。我将使用开源工具和数据集,并且尽可能地依赖免费、廉价和本地的解决方案。

如果我能做到这一点,我的设置需要为您和您的工作进行调整,但是如果您按照我的步骤操作,这应该是可以实现的。

以下是一些其他资源可以帮助您入门

  • 我们正在向 LLM 课程添加新章节,重点关注 LLM 的微调
  • 如果您以前没有使用过 Transformers 和 Hugging Face 生态系统,您应该从头开始学习 LLM 课程

目标

如果我们使用像 Cursor 或 VSCode 的 Co-pilot 这样的 IDE,我们会发现它们将模型用于一系列核心任务。例如:

  • 检索文件或代码库的相关部分
  • 在打字时生成代码补全
  • 在聊天窗口中响应查询
  • 根据指令对一个或多个代码文件应用更改
  • 思考具有挑战性的问题
  • 使用文档检索等工具生成解决方案

这些任务可能以多种方式使用一组模型,并带有相关的提示,我们无法构建一个完整的应用程序。实际上,我希望大部分提示最初都由我来完成。这样我就可以专注于微调。幸运的是,有一些很酷的开源工具,如 Continue.dev,可以做到这一点。

呼……我没有构建一个新的 IDE。

开发环境

我们将使用一套简单的工具在本地运行 IDE 环境:VScodeZEDLMStudioContinue.dev。如果您想了解详细的设置指南,请参阅这篇博客文章

我们将使用在“我的笔记本电脑”上运行的本地推理,主要是因为这样便于我进行测试和演示。在此过程中,我将分享一些选项,以防您的计算资源比我多或少。这意味着我们将使用一台配备 64GB 内存的 M3 Mac。

训练设置

我们将完全依赖后训练技术,因为它们对预算影响最大,并且我们将使用 Unsloth、TRL 和 Accelerate 等库来保持简单和高效。如果您想阅读相关材料,请查看 LLM 课程中的这一单元

评估设置

这里的目标是建立一个可用的自定义编码环境,而不是从基准中挤出小数,因此我们将依赖编码问题、分享录音和审查定性性能。

话虽如此,我们需要一些基准来指导我们训练模型时的决策,因此我们将使用 HumanEvalLive Code Bench 来比较模型。我选择 HumanEval 是因为它速度快,而选择 Live Code Bench 是因为它健壮且无污染。

社区

科学计算器

注册登录以评论