AI陪我做事 - 3 Llama.cpp核心开发和掌握
背景与概述Llama.cpp 是一个开源软件库,专注于在各种硬件上实行大型语言模子(LLM)的推理,特别是在 CPU 上运行。它由 Georgi Gerganov 开发,于 2023 年 3 月开始,旨在提供无依赖的纯 C/C++ 实现,特别优化了 Apple Silicon(通过 ARM NEON、Accelerate 和 Metal 框架)和 x86 架构(支持 AVX、AVX2、AVX512 和 AMX)。它与 GGML 项目共同开发,GGML 是一个通用的张量库,专注于严格的内存管理和多线程。
Llama.cpp 的主要目标是启用 LLM 推理,具备最小的设置和最先进的性能,实用于当地和云端硬件。它支持 1.5 位到 8 位的整数目化,以加速推理和减少内存利用,并包括自定义 CUDA 内核以支持 NVIDIA GPU,以及通过 HIP 和 MUSA 支持 AMD 和 Moore Threads MTT GPU。
截至 2025 年 3 月 24 日,GitHub 上的 Llama.cpp 仓库已有凌驾 67,000 颗星,体现其社区的活跃度和广泛利用。它最初设计为 CPU 优先,但厥后添加了 GPU 推理支持,适合没有专用硬件的用户,甚至可以在 Android 装备上运行。
更多AI资讯,请访问 2img.ai ,海量免费资源
https://i-blog.csdnimg.cn/img_convert/765601c9ca61655427342746772fbf79.jpeg
学习 Llama.cpp 的必要背景
学习 Llama.cpp 需要肯定的 C/C++ 编程知识,因为它是基于这些语言开发的。别的,了解深度学习和大型语言模子的基本概念(如 transformer 架构、量化、提示工程)将有助于更好地掌握其应用。Llama.cpp 支持多种模子,包括 LLaMA、LLaMA 2、Falcon、Alpaca、GPT4All 等,模子格式主要为 GGUF(GPT-Generated Unified Format),这是 GGML 的后继格式,包含架构元数据和特殊标记支持。
学习资源与教程
以下是学习 Llama.cpp 的详细资源,涵盖官方文档、教程和课程:
[*]官方 GitHub 仓库
[*]网址:GitHub - ggml-org/llama.cpp: LLM inference in C/C++
[*]内容包括开发文档、模子量化指南、后端支持(如 Metal、BLAS、CUDA)和贡献指南。特别推荐:
[*]开发文档:HOWTO-add-model.md
[*]模子量化:examples/quantize/README.md
[*]后端支持:如 CUDA 构建指南在 build.md
[*]这是学习和贡献的最佳起点,包含社区讨论和更新日记。
[*]DataCamp 教程
[*]网址:https://www.datacamp.com/tutorial/llama-cpp-tutorial
[*]这是一个全面的指南,更新于 2024 年 12 月 10 日,耗时约 11 分钟阅读。内容包括:
[*]设置开发情况(需要 Python 和 llama-cpp-python)
[*]明白 Llama.cpp 基础,如 Llama 类参数(model_path、prompt、max_tokens 等)
[*]实际项目示例,利用 Zephyr-7B-Beta 模子进行文本天生
[*]实际应用案例,如 ETP4Africa 教育应用的 CPU 优化
[*]教程还链接到相关资源,如 Transformers 和 Mistral 7B 的教程,适合初学者。
[*]PyImageSearch 指南
[*]网址:llama.cpp: The Ultimate Guide to Efficient LLM Inference and Applications - PyImageSearch
[*]发布于 2024 年 8 月 26 日,重点先容如何利用 Llama.cpp 进行高效 LLM 推理和构建应用。内容包括:
[*]核心组件和支持的模子
[*]设置过程和 llama-cpp-python 绑定
[*]实际应用示例,结合 LangChain 和 Gradio UI 构建多模态聊天应用
[*]提供视频课程(需订阅 PyImageSearch University),适合盼望深入学习的用户。
[*]Coursera 课程
[*]网址:Beginning Llamafile for Local Large Language Models (LLMs) | Coursera
[*]课程名称:Beginning Llamafile for Local Large Language Models (LLMs),由 Duke University 提供,适合初学者。
[*]持续时间:3 小时完成,3 周每周 1 小时,灵活学习。
[*]内容包括:
[*]利用 llama.cpp 框架将 LLM 作为生产就绪的 Web API 提供服务
[*]明白 llama.cpp 示例服务器的架构和本领(文本天生、标记化、嵌入提取)
[*]动手实践设置和定制服务器,利用下令行选项和 API 参数
[*]包括 8 个视频、17 个阅读质料、4 个作业、1 个讨论提示和 4 个非评分实验室,提供可分享的职业证书。
实践发起
为了深入学习,发起:
[*]设置开发情况:根据操作体系(MacOS、Windows、Linux)安装 llama-cpp-python,MacOS 需要 Xcode 和 Metal 支持,Windows 和 Linux 有详细构建指南。
[*]实验不同模子:选择适合硬件的量化模子,如 Mixtral-8x7B(高计算需求)或 Llama-2-7b(较少需求),从 Hugging Face 下载。
[*]加入社区:加入 Reddit 或 GitHub 讨论,获取及时支持和最新更新。
技能细节与优化
Llama.cpp 支持多种优化,包括:
[*]量化:从 1.5 位到 8 位整数目化,减少内存利用和加速推理。
[*]GPU 支持:通过 CUDA(NVIDIA)、HIP(AMD)、Metal(MacOS)等后端启用,需设置 n_gpu_layers=1。
[*]提示工程:利用 Jinja 模板匹配模子格式,GBNF 语法控制输出格式。
以下是支持的模子和格式的概览:
模子示例格式特点LLaMA, LLaMA 2GGUF基础模子,支持高上下文窗口Mixtral-8x7BGGUF高性能,多专家混合模子,32k 标记Zephyr-7B-BetaGGUF微调版,适合文本天生任务GPTQ(Linux/Windows)GPTQ实用于特定平台的量化格式 局限性与将来发展
Llama.cpp 主要为 CPU 优化,大概在大型模子或复杂工作流中不如 GPU 办理方案性能好。温度参数(0-1)影响模子输出的随机性,低值更确定,高值更具创造性。社区持续更新,发起关注 GitHub 仓库获取最新进展。
开始编译
Build llama.cpp locally
To get the Code:
git clone https://github.com/ggml-org/llama.cpp
cd llama.cpp
The following sections describe how to build with different backends and options.
CPU Build
Build llama.cpp using CMake:
cmake -B build
cmake –build build –config Release
编译完成之后,可以成果看到Lib,Include ,Bin等目录。
工程中用VS2022 打开,你也可以看到很多项目:
https://i-blog.csdnimg.cn/img_convert/133308b39f35a8d38c82af674a4dca0f.png
我之后想用QT做一套雷同LM Studio一样的产物。有无同砚有爱好一起弄?
关键引用
[*]GitHub – ggml-org/llama.cpp: LLM inference in C/C++
[*]Llama.cpp Tutorial: A Complete Guide to Efficient LLM Inference and Implementation | DataCamp
[*]Llama.cpp: The Ultimate Guide to Efficient LLM Inference and Applications – PyImageSearch
[*]Beginning Llamafile for Local Large Language Models (LLMs) | Coursera
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。
页:
[1]