大模型部署工具 llama.cpp 介绍与安装使用_看完这篇就够了

1. 大模型部署工具 llama.cpp

大模型的研究分为训练和推理两个部分。训练的过程,实际上就是在寻找模型参数,使得模型的损失函数最小化,推理结果最优化的过程。训练完成之后,模型的参数就固定了,这时候就可以使用模型进行推理,对外提供服务。

llama.cpp(https://github.com/ggerganov/llama.cpp) 主要解决的是推理过程中的性能问题。主要有两点优化:

  • llama.cpp 使用的是 C 语言写的机器学习张量库 ggml

  • llama.cpp 提供了模型量化的工具

计算类 Python 库的优化手段之一就是使用 C 重新实现,这部分的性能提升非常明显。另外一个是量化,量化是通过牺牲模型参数的精度,来换取模型的推理速度。llama.cpp 提供了大模型量化的工具,可以将模型参数从 32 位浮点数转换为 16 位浮点数,甚至是 8、4 位整数。

除此之外,llama.cpp 还提供了服务化组件,可以直接对外提供模型的 API 。

2. 使用 llama.cpp 量化模型
2.1 下载编译 llama.cpp

克隆代码,编译 llama.cpp

git clone https://github.com/ggerganov/llama.cpp``cd llama.cpp``make

在目录下会生成一系列可执行文件:

  • main:使用模型进行推理

  • quantize:量化模型

  • server:提供模型 API 服务

2.2 准备 llama.cpp 支持的模型

llama.cpp 支持转换的模型格式有 PyTorch 的 .pth 、huggingface 的 .safetensors 、还有之前 llama.cpp 采用的 ggmlv3

在 huggingface 上找到合适格式的模型,下载至 llama.cpp 的 models 目录下。

git clone https://huggingface.co/4bit/Llama-2-7b-chat-hf ./models/Llama-2-7b-chat-hf

2.3 转换为 GGUF 格式
  1. 安装依赖

llama.cpp 项目下带有 requirements.txt 文件,直接安装依赖即可。

pip install -r requirements.txt

  1. 转换模型
python convert.py ./models/Llama-2-7b-chat-hf --vocabtype spm``   ``params = Params(n_vocab=32000, n_embd=4096, n_mult=5504, n_layer=32, n_ctx=2048, n_ff=11008, n_head=32, n_head_kv=32, f_norm_eps=1e-05, f_rope_freq_base=None, f_rope_scale=None, ftype=None, path_model=PosixPath('models/Llama-2-7b-chat-hf'))``Loading vocab file 'models/Llama-2-7b-chat-hf/tokenizer.model', type 'spm'``...``Wrote models/Llama-2-7b-chat-hf/ggml-model-f16.gguf

vocabtype 指定分词算法,默认值是 spm,如果是 bpe,需要显示指定。

2.4 开始量化模型

quantize 提供各种精度的量化。

./quantize``   ``usage: ./quantize [--help] [--allow-requantize] [--leave-output-tensor] model-f32.gguf [model-quant.gguf] type [nthreads]``   `  `--allow-requantize: Allows requantizing tensors that have already been quantized. Warning: This can severely reduce quality compared to quantizing from 16bit or 32bit`  `--leave-output-tensor: Will leave output.weight un(re)quantized. Increases model size but may also increase quality, especially when requantizing``   ``Allowed quantization types:`   `2  or  Q4_0   :  3.56G, +0.2166 ppl @ LLaMA-v1-7B`   `3  or  Q4_1   :  3.90G, +0.1585 ppl @ LLaMA-v1-7B`   `8  or  Q5_0   :  4.33G, +0.0683 ppl @ LLaMA-v1-7B`   `9  or  Q5_1   :  4.70G, +0.0349 ppl @ LLaMA-v1-7B`  `10  or  Q2_K   :  2.63G, +0.6717 ppl @ LLaMA-v1-7B`  `12  or  Q3_K   : alias for Q3_K_M`  `11  or  Q3_K_S :  2.75G, +0.5551 ppl @ LLaMA-v1-7B`  `12  or  Q3_K_M :  3.07G, +0.2496 ppl @ LLaMA-v1-7B`  `13  or  Q3_K_L :  3.35G, +0.1764 ppl @ LLaMA-v1-7B`  `15  or  Q4_K   : alias for Q4_K_M`  `14  or  Q4_K_S :  3.59G, +0.0992 ppl @ LLaMA-v1-7B`  `15  or  Q4_K_M :  3.80G, +0.0532 ppl @ LLaMA-v1-7B`  `17  or  Q5_K   : alias for Q5_K_M`  `16  or  Q5_K_S :  4.33G, +0.0400 ppl @ LLaMA-v1-7B`  `17  or  Q5_K_M :  4.45G, +0.0122 ppl @ LLaMA-v1-7B`  `18  or  Q6_K   :  5.15G, -0.0008 ppl @ LLaMA-v1-7B`   `7  or  Q8_0   :  6.70G, +0.0004 ppl @ LLaMA-v1-7B`   `1  or  F16    : 13.00G              @ 7B`   `0  or  F32    : 26.00G              @ 7B

执行量化命令

./quantize ./models/Llama-2-7b-chat-hf/ggml-model-f16.gguf ./models/Llama-2-7b-chat-hf/ggml-model-q4_0.gguf Q4_0``   ``llama_model_quantize_internal: model size  = 12853.02 MB``llama_model_quantize_internal: quant size  =  3647.87 MB``llama_model_quantize_internal: hist: 0.036 0.015 0.025 0.039 0.056 0.076 0.096 0.112 0.118 0.112 0.096 0.077 0.056 0.039 0.025 0.021

量化之后,模型的大小从 13G 降低到 3.6G,但模型精度从 16 位浮点数降低到 4 位整数。

大模型岗位需求

大模型时代,企业对人才的需求变了,AIGC相关岗位人才难求,薪资持续走高,AI运营薪资平均值约18457元,AI工程师薪资平均值约37336元,大模型算法薪资平均值约39607元。
在这里插入图片描述

掌握大模型技术你还能拥有更多可能性

• 成为一名全栈大模型工程师,包括Prompt,LangChain,LoRA等技术开发、运营、产品等方向全栈工程;

• 能够拥有模型二次训练和微调能力,带领大家完成智能对话、文生图等热门应用;

• 薪资上浮10%-20%,覆盖更多高薪岗位,这是一个高需求、高待遇的热门方向和领域;

• 更优质的项目可以为未来创新创业提供基石。

可能大家都想学习AI大模型技术,也想通过这项技能真正达到升职加薪,就业或是副业的目的,但是不知道该如何开始学习,因为网上的资料太多太杂乱了,如果不能系统的学习就相当于是白学。为了让大家少走弯路,少碰壁,这里我直接把全套AI技术和大模型入门资料、操作变现玩法都打包整理好,希望能够真正帮助到大家。

-END-


👉AI大模型学习路线汇总👈

大模型学习路线图,整体分为7个大的阶段:(全套教程文末领取哈)

第一阶段: 从大模型系统设计入手,讲解大模型的主要方法;

第二阶段: 在通过大模型提示词工程从Prompts角度入手更好发挥模型的作用;

第三阶段: 大模型平台应用开发借助阿里云PAI平台构建电商领域虚拟试衣系统;

第四阶段: 大模型知识库应用开发以LangChain框架为例,构建物流行业咨询智能问答系统;

第五阶段: 大模型微调开发借助以大健康、新零售、新媒体领域构建适合当前领域大模型;

第六阶段: 以SD多模态大模型为主,搭建了文生图小程序案例;

第七阶段: 以大模型平台应用与开发为主,通过星火大模型,文心大模型等成熟大模型构建大模型行业应用。

如何学习AI大模型?

作为一名热心肠的互联网老兵,我决定把宝贵的AI知识分享给大家。 至于能学习到多少就看你的学习毅力和能力了 。我已将重要的AI大模型资料包括AI大模型入门学习思维导图、精品AI大模型学习书籍手册、视频教程、实战学习等录播视频免费分享出来。

这份完整版的大模型 AI 学习资料已经上传CSDN,朋友们如果需要可以微信扫描下方CSDN官方认证二维码免费领取【保证100%免费

一、全套AGI大模型学习路线

AI大模型时代的学习之旅:从基础到前沿,掌握人工智能的核心技能!

img

二、640套AI大模型报告合集

这套包含640份报告的合集,涵盖了AI大模型的理论研究、技术实现、行业应用等多个方面。无论您是科研人员、工程师,还是对AI大模型感兴趣的爱好者,这套报告合集都将为您提供宝贵的信息和启示。

img

三、AI大模型经典PDF籍

随着人工智能技术的飞速发展,AI大模型已经成为了当今科技领域的一大热点。这些大型预训练模型,如GPT-3、BERT、XLNet等,以其强大的语言理解和生成能力,正在改变我们对人工智能的认识。 那以下这些PDF籍就是非常不错的学习资源。

img

四、AI大模型商业化落地方案

img

作为普通人,入局大模型时代需要持续学习和实践,不断提高自己的技能和认知水平,同时也需要有责任感和伦理意识,为人工智能的健康发展贡献力量。

<think>好的,我现在需要解决用户关于如何通过pip安装llama_index.llms.llama_cpp依赖的问题。用户提到了使用`pip install llama-index[llama-cpp]`的要求和依赖,我需要先了解这个包的具体情况。 首先,我应该回忆一下llama-index和llama-cpp-python的关系。llama-index可能是一个高层库,而llama-cpp-python是底层绑定,用于C++实现的模型交互。所以安装llama_index的llama-cpp支持可能需要先正确安装llama-cpp-python。 接下来,用户提供的引用中有几个关于安装llama-cpp-python的问题和解决方法。例如,引用[2]提到安装时出现OpenMP相关的错误,需要设置环境变量如`LDFLAGS`来链接libomp或libgomp。还有针对不同硬件(如Apple M系列、NVIDIA、AMD显卡)的CMAKE_ARGS参数。这些信息很重要,因为不同硬件需要不同的编译选项。 另外,引用[1]提到使用预编译的wheel文件安装,可以避免本地编译的问题,节省时间。用户可能需要优先推荐使用预编译版本,尤其是在CPU环境下。 然后,我需要整理安装步骤。首先,确保llama-cpp-python正确安装,可能包括处理环境变量和硬件特定的编译标志。然后,安装llama-index时指定llama-cpp的额外依赖,即使用`pip install llama-index[llama-cpp]`。可能还需要注意Python版本和系统依赖库,比如OpenMP的支持。 同时,用户可能遇到的问题包括编译失败、依赖缺失等。例如,在Linux系统中,可能需要安装gcc、cmake等构建工具,或者安装libopenblas-dev等库。对于错误信息如未找到libomp.so,需要指导用户如何查找并设置正确的环境变量。 最后,需要验证安装是否成功,可以建议用户导入模块并检查是否有错误。例如,尝试`from llama_index.llms import LlamaCPP`,如果没有报错则说明安装成功。 总结步骤应该是:安装系统依赖,设置硬件相关的环境变量,安装llama-cpp-python,最后安装llama-index的额外依赖。同时提供常见问题的解决方法,比如编译错误、缺少库文件等。</think>### 安装 `llama_index.llms.llama_cpp` 依赖的步骤 #### 1. **安装 `llama-cpp-python` 基础依赖** `llama_index` 的 `llama-cpp` 模块依赖 `llama-cpp-python` 库,需先正确安装它。以下是具体步骤: - **使用预编译版本(推荐)** 对于CPU环境,直接安装预编译的wheel文件,避免本地编译: ```bash pip install llama-cpp-python --extra-index-url https://abetlen.github.io/llama-cpp-python/whl/cpu ``` 这适用于大多数场景且节省时间[^1]。 - **硬件加速支持(可选)** 根据硬件类型添加编译参数: - **Apple M系列(Metal GPU加速)** ```bash CMAKE_ARGS="-DLLAMA_METAL=on" pip install llama-cpp-python ``` - **NVIDIA显卡(CUDA加速)** ```bash CMAKE_ARGS="-DLLAMA_CUBLAS=on" pip install llama-cpp-python ``` - **AMD显卡(HIP加速)** ```bash CMAKE_ARGS="-DLLAMA_HIPBLAS=on" pip install llama-cpp-python ``` 这些参数会启用GPU加速功能[^2]。 #### 2. **解决常见编译问题** 若安装时出现编译错误(如缺少OpenMP库): - **查找并链接缺失的库** 例如,解决 `undefined reference to 'omp_get_thread_num'` 错误: ```bash # 查找 libomp.so 或 libgomp.so 的路径 find / -name "libomp.so" # 设置环境变量(路径需替换为实际值) export LDFLAGS="-L/usr/lib -lomp" # 或 -lgomp ``` 然后重新运行安装命令。 - **安装系统依赖** 确保已安装编译工具链: ```bash # Ubuntu/Debian sudo apt install build-essential cmake libopenblas-dev ``` #### 3. **安装 `llama-index` 的 `llama-cpp` 扩展** 安装主库并指定额外依赖: ```bash pip install "llama-index[llama-cpp]" ``` 这会自动安装 `llama-cpp-python` 和其他相关依赖。 #### 4. **验证安装** 测试是否成功导入模块: ```python from llama_index.llms import LlamaCPP # 无报错则安装成功 ``` ### 关键依赖说明 | 依赖项 | 作用 | 安装方式 | |----------------------|-----------------------------|------------------------------| | `llama-cpp-python` | 底层模型推理库 | 预编译或源码编译(需硬件参数) | | `llama-index` | 高层接口和功能实现 | `pip install "llama-index[llama-cpp]"` | | OpenMP库(如libomp) | 多线程并行计算支持 | 系统包管理或环境变量配置 | ### 常见问题解决 - **错误:`Failed to build wheels`** 检查Python版本(需≥3.8)和编译工具链,或尝试预编译版本[^3]。 - **GPU加速未生效** 确认硬件参数(如`CMAKE_ARGS`)正确设置,并安装对应驱动(如CUDA Toolkit)。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值