Posts 基于 CodeFuse-CodeLlama-34B-4bits 模型部署你的私人AI编程助手【编程能力超越 GPT4】
Post
Cancel

基于 CodeFuse-CodeLlama-34B-4bits 模型部署你的私人AI编程助手【编程能力超越 GPT4】

如果想快速部署体验,可参考 llamafile 文件部署 CodeLlama-7b-Instruct

CodeLlama-7b-Instruct 只需一个 ”exe“ 文件本地部署方案 (支持 openai api 及 Chatbox使用,CPU/GPU 兼容,Mac/Windows/Linux 兼容)

CodeFuse 是什么?

CodeFuse 是蚂蚁自研的代码生成专属大模型,根据开发者的输入提供智能建议和实时支持,帮助开发者自动生成代码、自动增加注释,自动生成测试用例,修复和优化代码等,以提升研发效率。目前已经发布了 CodeFuse-13B、CodeFuse-CodeLlama-34B、CodeFuse-StarCoder-15B 以及 int4 量化模型 CodeFuse-CodeLlama-34B-4bits。目前已在阿里巴巴达摩院的模搭平台 modelscope codefusehuggingface codefuse 上线。值得一提的是,CodeFuse-CodeLlama-34B 基于 CodeLlama 作为基础模型,并利用 MFT 框架进行微调,在 HumanEval Python pass@1 评估中取得高达的74.4%(贪婪解码)的好成绩,甚至超过了 GPT-4(67%)的表现。对比数据如下:

模型HumanEval(pass@1)日期
CodeFuse-CodeLlama-34B74.4%2023.9
CodeFuse-CodeLlama-34B-4bits73.8%2023.9
WizardCoder-Python-34B-V1.073.2%2023.8
GPT-4(zero-shot)67.0%2023.3
PanGu-Coder2 15B61.6%2023.8
CodeLlama-34b-Python53.7%2023.8
CodeLlama-34b48.8%2023.8
GPT-3.5(zero-shot)48.1%2022.11
OctoCoder46.2%2023.8
StarCoder-15B33.6%2023.5
LLaMA 2 70B(zero-shot)29.9%2023.7

数据来自官方发布,仅供参考,4bits 版本测试结果 73.8% 超过了 GPT-4 的 67.0%。

非常期待能够看到基于该模型的应用或插件的出现,以使我们的编程更加高效。不过,目前官方提供的推理方案是基于 AutoGPTQ,对于普通用户来说可能并不友好。因此,笔者花费了一番功夫进行研究,找到了一个基于 llama-cpp-python 且使用 CodeFuse-CodeLlama-34B-4bits 推理方案的方法。借助这种方案,可以轻松部署一个类似 openai-API 的接口服务,然后通过 Chatbox 等 GPT 客户端进行对话使用,非常方便。

显存占用情况

精度模型空载输入2048 tokens + 输出1024 tokens输入1024 tokens + 输出2048 tokens
bfloat1664.89GB69.31GB66.41GB
int419.09GB22.19GB20.78GB

数据来自官方发布,笔者实际使用情况基本一致。

总的来说,如果你的显卡有 24G 显存,就可以全部由显卡推理。经过实践,发现显卡推理速度很快,对话过程顺畅。然而,如果显存不足,可以考虑使用 llama.cppllama-cpp-python)进行推理,因为它可以同时利用 CPU 和 GPU,即使显存不足也可以使用部分 CPU 推理或者使用内存来补充,但这样会显著降低推理速度。此外,llama.cpp(llama-cpp-python)还支持在 Mac 上使用,尤其是 Apple Silicon 版的 Mac 电脑,可以利用其 GPU 进行推理。

先看对话效果

chatbox 对话效果1

chatbox 对话效果2

chatbox 对话效果3

chatbox 对话效果4

安装 llama-cpp-python

下面的安装环境是 Ubuntu 22.04 + Nvidia 显卡,其他系统环境,请参考官方文档 llama-cpp-python

前置条件

  • 装好 Nvidia 显卡驱动和 cuda 库。
  • 装好 c 编译环境,比如 gcc、g++、cmake 等等。
    1
    2
    
      sudo apt update
      sudo apt install gcc g++
    

llama-cpp-python 安装命令

1
2
3
# 环境变量 CMAKE_ARGS="-DLLAMA_CUBLAS=on" 是为了使用 cuBLAS 库
# [server] 是为了支持启动类 openai-api 的接口服务
CMAKE_ARGS="-DLLAMA_CUBLAS=on" pip install llama-cpp-python[server]

下载模型

目前最新版本的 llama.cpp 仅支持 GGUF 格式的模型,但是 CodeFuse 官方只提供了 GPTQ 格式的量化模型。您可以从这个链接下载所需要的 GGUF 格式的模型:https://huggingface.co/TheBloke/CodeFuse-CodeLlama-34B-GGUF,该模型提供了从最低 2bit 到最高 8bit 的多个量化版本,但请注意,精度会有所损失: | Name | Quant method | Bits | Size | Max RAM required | Use case | | — | — | — | — | — | — | | codefuse-codellama-34b.Q2_K.gguf | Q2_K | 2 | 14.21 GB | 16.71 GB | smallest, significant quality loss - not recommended for most purposes | | codefuse-codellama-34b.Q3_K_S.gguf | Q3_K_S | 3 | 14.61 GB | 17.11 GB | very small, high quality loss | | codefuse-codellama-34b.Q3_K_M.gguf | Q3_K_M | 3 | 16.28 GB | 18.78 GB | very small, high quality loss | | codefuse-codellama-34b.Q3_K_L.gguf | Q3_K_L | 3 | 17.77 GB | 20.27 GB | small, substantial quality loss | | codefuse-codellama-34b.Q4_0.gguf | Q4_0 | 4 | 19.05 GB | 21.55 GB | legacy; small, very high quality loss - prefer using Q3_K_M | | codefuse-codellama-34b.Q4_K_S.gguf | Q4_K_S | 4 | 19.15 GB | 21.65 GB | small, greater quality loss | | codefuse-codellama-34b.Q4_K_M.gguf | Q4_K_M | 4 | 20.22 GB | 22.72 GB | medium, balanced quality - recommended | | codefuse-codellama-34b.Q5_0.gguf | Q5_0 | 5 | 23.24 GB | 25.74 GB | legacy; medium, balanced quality - prefer using Q4_K_M | | codefuse-codellama-34b.Q5_K_S.gguf | Q5_K_S | 5 | 23.24 GB | 25.74 GB | large, low quality loss - recommended | | codefuse-codellama-34b.Q5_K_M.gguf | Q5_K_M | 5 | 23.84 GB | 26.34 GB | large, very low quality loss - recommended | | codefuse-codellama-34b.Q6_K.gguf | Q6_K | 6 | 27.68 GB | 30.18 GB | very large, extremely low quality loss | | codefuse-codellama-34b.Q8_0.gguf | Q8_0 | 8 | 35.86 GB | 38.36 GB | very large, extremely low quality loss - not recommended |

笔者下载的是 codefuse-codellama-34b.Q4_K_M.gguf 版本,网盘下载 https://www.123pan.com/s/HcuEjv-Cfw3A.html

启动 api 服务

1
2
3
4
5
6
7
8
9
10
11
# --model 指定模型路径
# --n_gpu_layers 指定模型的多少层使用 GPU 进行推理
# CodeFuse-CodeLlama-34B 模型总共有 51 层,如果全部使用 gpu 推理则设置大于等于 51 即可
# 如果显存不够,可以适当调低,剩余层数则会加载到内存,由 cpu 进行推理。

# --n_ctx 用于设置模型的最大上下文大小,默认值是 512 个token。

# --host 指定服务地址,默认为 127.0.0.1(只有本机可以访问),如果想要网络其他机器可以访问可设置为 0.0.0.0

# --port 指定服务端口
python -m llama_cpp.server --model /models-path/codefuse-codellama-34b.Q4_K_M.gguf --n_gpu_layers 100 --host 0.0.0.0 --port 8080 --n_ctx 2048

如果启动过程不出错,就可以使用了。

通过 Chatbox 进行对话

安装

如果没有安装 Chatbox,可从 Chatbox下载链接 下载安装。

设置

选择 openapi api 接口,api-key 为空即可,具体如下截图: chatbox 设置方法

模型有关参数设置 chatbox 模型设置方法

具体可以根据自己的情况设置。

然后就可以愉快的对话了。


邀请您关注我的公众号,我将会不时地为您推送独家原创的技术内容分享。
This post is licensed under CC BY 4.0 by the author.

通义千问-7B(Qwen-7b)大模型本地部署实践:超简单教程(通过 chatbox 等 GPT客户端使用)

AI 项目推荐: 文字转语音 edge-tts 使用指南 (白嫖)

Trending Tags