### [打造本地 GitHub Copilot 替代品:FauxPilot 完全设置指南](https://dashen.wang/article/30831) **Published:** 2023-09-14T14:47:25 **Author:** 大神 **Excerpt:** 你是否曾经想要在本地使用强大的代码生成工具,但却不想依赖云服务?FauxPilot正是为此而生。本文将向你介绍如何搭建一个本地托管的代码生成服务器,它使用了SalesForce CodeGen模型以及NVIDIA的Triton Inference Server和FasterTransformer后端。这是你在本地环境中获得GitHub Copilot类似功能的完整指南。 引子:代码生成的新时代 在过去,写代码是一项需要耐心和时间的任务。然而,随着机器学习的发展,我们迎来了代码生成的新时代。GitHub Copilot是一个广受欢迎的云端代码生成工具,但是它需要连接到互联网,而且有一些隐私和依赖性的顾虑。FauxPilot则是一个本地解决方案,让你在本地环境中获得了相似的强大功能。 准备工作 在开始之前,你需要确保满足以下几个先决条件: Docker docker-compose >= 1.28 一块NVIDIA GPU,计算能力需大于等于6.0,并且具备足够的显存来运行你选择的模型。 nvidia-docker curl和zstd,用于下载和解压模型。 请注意,所需的显存是总数,如果你有多个GPU,你可以将模型分配到它们中间。例如,如果你有两块NVIDIA RTX 3080 GPU,你可以将6B模型的一半放在每块GPU上。 支持与保修 是不是觉得FauxPilot的支持和保修信息很有趣?其实,目前它仍然处于早期阶段,虽然有一些维基页面和讨论论坛可以提供一些帮助,但它仍然没有正式的支持和保修。 安装步骤 现在,让我们一起来安装FauxPilot服务器和客户端。 步骤1:选择模型 首先,运行设置脚本来选择要使用的模型。这将从Huggingface/Moyix下载模型,该模型以GPT-J格式提供,然后将其转换为FasterTransformer可用的格式。运行以下命令: 你将看到以下选项: 在这里,你可以选择模型(选择2代表codegen-350M-multi),输入使用的GPU数量,以及模型保存的位置。脚本将自动下载和转换模型,这可能需要一些时间。 步骤2:启动FauxPilot服务器 安装完成后,运行以下命令来启动FauxPilot服务器: 你将看到类似以下的输出: 至此,你已经成功启动了FauxPilot服务器。 结束语 FauxPilot为代码生成提供了一个本地解决方案,让你无需依赖云服务,同时享受到强大的功能。尽管它仍然处于早期阶段,但它有着巨大的潜力,可以帮助开发人员更高效地编写代码。 无论你是想要提高工作效率,还是只是对这个项目感兴趣,都可以尝试一下FauxPilot,看看它能为你带来什么好处。现在,你已经了解了如何设置FauxPilot服务器和客户端,是时候开始你的本地代码生成之旅了! 你是否曾经想要在本地使用强大的代码生成工具,但却不想依赖云服务?FauxPilot正是为此而生。本文将向你介绍如何搭建一个本地托管的代码生成服务器,它使用了SalesForce CodeGen模型以及NVIDIA的Triton Inference Server和FasterTransformer后端。这是你在本地环境中获得GitHub Copilot类似功能的完整指南。 ## 引子:代码生成的新时代 在过去,写代码是一项需要耐心和时间的任务。然而,随着机器学习的发展,我们迎来了代码生成的新时代。GitHub Copilot是一个广受欢迎的云端代码生成工具,但是它需要连接到互联网,而且有一些隐私和依赖性的顾虑。FauxPilot则是一个本地解决方案,让你在本地环境中获得了相似的强大功能。 ## 准备工作 在开始之前,你需要确保满足以下几个先决条件: - Docker - docker-compose >= 1.28 - 一块NVIDIA GPU,计算能力需大于等于6.0,并且具备足够的显存来运行你选择的模型。 - nvidia-docker - curl和zstd,用于下载和解压模型。 请注意,所需的显存是总数,如果你有多个GPU,你可以将模型分配到它们中间。例如,如果你有两块NVIDIA RTX 3080 GPU,你可以将6B模型的一半放在每块GPU上。 ## 支持与保修 是不是觉得FauxPilot的支持和保修信息很有趣?其实,目前它仍然处于早期阶段,虽然有一些维基页面和讨论论坛可以提供一些帮助,但它仍然没有正式的支持和保修。 ## 安装步骤 现在,让我们一起来安装FauxPilot服务器和客户端。 ### 步骤1:选择模型 首先,运行设置脚本来选择要使用的模型。这将从Huggingface/Moyix下载模型,该模型以GPT-J格式提供,然后将其转换为FasterTransformer可用的格式。运行以下命令: ``` $ ./setup.sh ``` 你将看到以下选项: ``` Models available: [1] codegen-350M-mono (2GB total VRAM required; Python-only) [2] codegen-350M-multi (2GB total VRAM required; multi-language) [3] codegen-2B-mono (7GB total VRAM required; Python-only) [4] codegen-2B-multi (7GB total VRAM required; multi-language) [5] codegen-6B-mono (13GB total VRAM required; Python-only) [6] codegen-6B-multi (13GB total VRAM required; multi-language) [7] codegen-16B-mono (32GB total VRAM required; Python-only) [8] codegen-16B-multi (32GB total VRAM required; multi-language) Enter your choice [6]: 2 Enter number of GPUs [1]: 1 Where do you want to save the model [/home/moyix/git/fauxpilot/models]? /fastdata/mymodels Downloading and converting the model, this will take a while... ``` 在这里,你可以选择模型(选择2代表codegen-350M-multi),输入使用的GPU数量,以及模型保存的位置。脚本将自动下载和转换模型,这可能需要一些时间。 ### 步骤2:启动FauxPilot服务器 安装完成后,运行以下命令来启动FauxPilot服务器: ``` $ ./launch.sh ``` 你将看到类似以下的输出: ``` [+] Running 2/0 ⠿ Container fauxpilot-triton-1 Created ⠿ Container fauxpilot-copilot_proxy-1 Created Attaching to fauxpilot-copilot_proxy-1, fauxpilot-triton-1 fauxpilot-triton-1 | fauxpilot-triton-1 | ============================= fauxpilot-triton-1 | == Triton Inference Server == fauxpilot-triton-1 | ============================= fauxpilot-triton-1 | ... ``` 至此,你已经成功启动了FauxPilot服务器。 ## 结束语 FauxPilot为代码生成提供了一个本地解决方案,让你无需依赖云服务,同时享受到强大的功能。尽管它仍然处于早期阶段,但它有着巨大的潜力,可以帮助开发人员更高效地编写代码。 无论你是想要提高工作效率,还是只是对这个项目感兴趣,都可以尝试一下FauxPilot,看看它能为你带来什么好处。现在,你已经了解了如何设置FauxPilot服务器和客户端,是时候开始你的本地代码生成之旅了! **Tags:** Python, 教程 **Categories:** 技术折腾 ---