编辑器内的完全开源 AI 代码助手
2024 年 5 月 31 日
这是一篇来自 Continue 联合创始人 Ty Dunn 的客座文章,介绍了如何设置、探索并找出将 Continue 和 Ollama 结合使用的最佳方式。
Continue 使您能够使用开源 LLM 在 Visual Studio Code 和 JetBrains 中轻松创建自己的代码助手。所有这些都可以在您自己的笔记本电脑上完全运行,或者将 Ollama 部署在服务器上,以远程驱动基于您需求的 code completion 和聊天体验。
要进行设置,您需要安装
下载完成后,我们建议您探索以下内容:
尝试 Mistral AI 的 Codestral 22B 模型进行自动补全和聊天
截至目前,Codestral 是我们目前最喜欢的能够同时进行自动补全和聊天的模型。该模型展示了 LLM 在编程任务方面的改进。然而,由于具有 220 亿参数和 非生产许可证,它需要相当多的 VRAM,并且只能用于研究和测试目的,因此可能不是日常本地使用的最佳选择。
a. 在您的终端中运行以下命令下载并运行 Codestral
ollama run codestral
b. 点击 Continue 右下角的齿轮图标,打开您的 config.json
文件并添加
{
"models": [
{
"title": "Codestral",
"provider": "ollama",
"model": "codestral"
}
],
"tabAutocompleteModel": {
"title": "Codestral",
"provider": "ollama",
"model": "codestral"
}
}
使用 DeepSeek Coder 6.7B 进行自动补全,使用 Llama 3 8B 进行聊天
根据您的机器上拥有的 VRAM 大小,您或许可以利用 Ollama 运行多个模型并处理多个并发请求的能力,方法是使用 DeepSeek Coder 6.7B 进行自动补全,使用 Llama 3 8B 进行聊天。如果您的机器无法同时处理两者,请分别尝试它们,并决定您更喜欢本地自动补全还是本地聊天体验。然后,您可以使用远程托管或 SaaS 模型来获得另一种体验。
a. 在您的终端中运行以下命令下载并运行 DeepSeek Coder 6.7B
ollama run deepseek-coder:6.7b-base
b. 在另一个终端窗口中运行以下命令下载并运行 Llama 3 8B
ollama run llama3:8b
c. 点击 Continue 右下角的齿轮图标,打开您的 config.json
文件并添加
{
"models": [
{
"title": "Llama 3 8B",
"provider": "ollama",
"model": "llama3:8b"
}
],
"tabAutocompleteModel": {
"title": "DeepSeek Coder 6.7B",
"provider": "ollama",
"model": "deepseek-coder:6.7b-base"
}
}
将 nomic-embed-text
嵌入与 Ollama 结合使用,以支持 @codebase
Continue 自带一个内置的 @codebase 上下文提供程序,可让您自动检索代码库中最相关的代码片段。假设您已经设置了聊天模型(例如 Codestral、Llama 3),借助 Ollama 和 LanceDB 的嵌入,您可以保持整个体验的本地化。目前,我们建议使用 nomic-embed-text
嵌入。
a. 在您的终端中运行以下命令下载 nomic-embed-text
ollama pull nomic-embed-text
b. 点击 Continue 右下角的齿轮图标,打开您的 config.json
文件并添加
{
"embeddingsProvider": {
"provider": "ollama",
"model": "nomic-embed-text"
}
}
c. 根据您的代码库大小,索引可能需要一些时间,之后您就可以提问,重要的代码库部分会自动被找到并在答案中使用(例如“@codebase Llama 3 的默认上下文长度是多少?”)
在您的开发数据上微调 StarCoder 2,并将其推送到 Ollama 模型库
当您使用 Continue 时,您会自动生成关于如何构建软件的数据。默认情况下,此开发数据会保存到您本地机器上的 .continue/dev_data
中。当与您最终提交的代码结合使用时,它可以用于改进您或您的团队使用的 LLM(如果您允许)。例如,您可以将团队接受的自动补全建议用于微调像 StarCoder 2 这样的模型,以便为您提供更好的建议。
a. 提取“接受的制表符建议”并将其加载到 Hugging Face Datasets 中
b. 使用 Hugging Face Supervised Fine-tuning Trainer 微调 StarCoder 2
c. 将模型推送到 Ollama 模型库,供您的团队使用并衡量您的接受率变化
通过使用 @docs
提问并在 Continue 的帮助下,了解更多关于 Ollama 的信息
Continue 还自带一个内置的 @docs
上下文提供程序,可让您从任何文档站点索引和检索代码片段。假设您已经设置了聊天模型(例如 Codestral、Llama 3),您可以通过提供 Ollama README 在 GitHub 上的链接并提出问题以了解更多信息,从而保持整个体验的本地化。
a. 在聊天侧边栏中输入 @docs
,选择“添加文档”,将“https://github.com/ollama/ollama” 复制粘贴到 URL 字段中,并在标题字段中输入“Ollama”
b. 它应该会快速索引 Ollama README,然后您就可以提问,重要的部分会自动被找到并在答案中使用(例如“@Ollama 我该如何运行 Llama 3?”)
加入我们的 Discord!
现在您已经尝试了这些不同的探索,您应该对哪种方式是您使用 Continue 和 Ollama 的最佳方式有更好的了解。如果您在途中遇到问题或有疑问,请加入 Continue Discord 或 Ollama Discord 以获得一些帮助和解答。