转载:从零开始,Mac Book本地化部署CodeShell大模型与智能代码助手
背景
最近在Medium上阅读了一篇非常引人入胜的文章-“Unleashing LLM Magic Practical Guide to Local Deployment of an Intelligent Code Assistant on Mac Book”,该文详细介绍了如何在Mac Book
上部署强大的多语言代码大模型CodeShell
,以及如何使用相关的VSCode
插件。这个解决方案非常实用且易于使用。但出于众所周知的原因,很多人无法访问开源的github以及模型所在的huggingface。因此,我将文章翻译成中文并转载在这里,并将模型文件和运行环境一并打包上传到百度网盘,以供大家下载使用。
模型文件和模型运行环境(百度网盘): 下载链接
提取码: 2yur
介绍
最近发现了一个有趣的大模型, WisdomShell 开源的一个多语言代码大模型 - CodeShell。这次开源涵盖了四种不同类型的模型,其中 CodeShell CPP 模型特别值得一提,它支持在没有GPU的个人电脑上使用。此外,CodeShell还提供了模型配套的智能编程助手插件,这些插件兼容主流的集成开发环境,如VSCode和JetBrains系列的IDEs。
本文将详细介绍如何部署 CodeShell CPP
模型,并展示如何在 PyCharm 中安装和配置 CodeShell 智能编程助手插件。这将为项目开发提供高度智能化的代码生成服务。如需了解更多具体的细节和步骤,请参阅 codeshell-intellij
项目的 README。
1.部署模型
使用的电脑为Mac BookPro
,配置为M2 CPU
,16GB unified memory
。
1.1 编译模型运行环境
将llama_cpp_for_codeshell
项目克隆到本地后,使用make
命令编译
git clone https://github.com/WisdomShell/llama_cpp_for_codeshell.git
cd llama_cpp_for_codeshell
make
1.2 下载模型
将CodeShell CPP
模型下载到本地目录
git clone https://huggingface.co/WisdomShell/CodeShell-7B-Chat-int4/blob/main/codeshell-chat-q4_0.gguf
1.3 启动模型服务
./server -m ./models/.gguf --host 127.0.0.1 --port 8080
参数 | 说明 |
---|---|
-m | 指定模型路径 |
–host | 指定服务器的主机地址,默认为localhost,即127.0.0.1 |
–port | 指定服务器监听的端口号,默认为8080 |
注:可通过置顶的百度网盘下载模型和运行环境项目
2.安装插件
可以在 Pycharm
的插件市场中搜索 CodeShell
,然后点击 Install
即可完成安装过程。
打开CodeShell
插件的setting
,可以配置Server Address
,Model Runtime Environment
,以及代码补全和代码问答的最大回复的tokens数,分别为Completion Max Tokens
和Chat Max Tokens
。
其中,Model Runtime Environment
有两种选项,Use CPU Model(with llama.cpp)
和Use GPU Model(with TGI framework)
两种类型的模型推理配置选项,具体见codeshell。
3.使用感受
CodeShell
模型不仅具备出色的自然语言处理能力,还能够理解和生成代码。开发者可以借助 CodeShell 来加速项目开发流程,减少繁琐的编码任务,从而提高代码质量和可维护性。以下是在项目开发中,发现的功能亮点:
- 代码补全
根据代码上下文,自动生成备选代码,用户可以通过按下 Tab
键来决定是否接受生成的代码内容。
- 代码辅助
在 PyCharm
的右侧边栏中打开插件问答界面。在编辑器中选中一段代码,然后在编辑器中右键点击 CodeShell
菜单并选择所需的功能项。插件将在问答界面中提供相应的答复。
- 代码问答
在开发过程中,可以直接向AI提出技术问题,无需离开IDE去搜索引擎搜寻答案。这有助于开发者更专注地投入到开发工作中。
总体而言,CodeShell是一款令人兴奋的多语言代码大模型,它不仅提供了强大的自然语言处理和代码生成能力,还可以在个人电脑上部署模型,并提供了与多个IDE兼容的插件。这为项目开发带来了更多的灵活性和效率,为开发者们提供了优化和拓展他们工作的机会。随着CodeShell的不断发展和改进,我们可以期待它在开发领域中发挥越来越重要的作用。