在自己的电脑上运行强大的大型语言模型正变得相当可行,这得益于Ollama和LM Studio等工具。您可能想知道,在不需要大型服务器的情况下,幕后有什么让这成为可能。通常,一个名为llama.cpp的重要软件会参与其中。可以将llama.cpp看作一个专门为运行特定类型大型语言模型而打造的高效引擎,而不是像LM Studio那样用户友好的应用程序。它是一个主要用C++编程语言编写的库。为什么要用C++?性能很重要为什么要用C++?主要原因是性能。C++代码编译后运行速度非常快,可以直接与电脑硬件交互。这很重要,因为大型语言模型生成文本需要大量的计算。llama.cpp经过优化,可以尽可能快地执行这些计算,尤其是在每台电脑都有的标准中央处理器(CPU)上。虽然图形处理器(GPU)可以进一步加速大型语言模型(如第2章所述),但llama.cpp使得仅用CPU和RAM运行中等大小的模型成为可能,从而降低了使用门槛。幕后引擎许多易于使用的工具,包括可能Ollama或LM Studio使用的后端,都在内部使用llama.cpp。想象一下您的大型语言模型运行程序(如LM Studio)是一辆汽车。您操作方向盘、踏板和仪表盘。llama.cpp就像引擎盖下的发动机——您通常不直接与其交互,但它正在进行处理模型和根据您的提示生成文本的重要工作。digraph G { rankdir=LR; node [shape=box, style=rounded, fontname="sans-serif", color="#495057", fontcolor="#495057"]; edge [color="#adb5bd"]; User [label="您"]; App [label="Ollama / LM Studio\n(用户界面)"]; Engine [label="llama.cpp\n(推理引擎)"]; Model [label="大型语言模型\n(例如,GGUF文件)"]; User -> App [label="输入提示"]; App -> Engine [label="发送提示和模型信息"]; Engine -> Model [label="加载并运行模型"]; Model -> Engine [label="生成输出词元"]; Engine -> App [label="发送生成的文本"]; App -> User [label="显示响应"]; }一个简化视图,展示了用户界面如何通常依赖于像llama.cpp这样的底层引擎来与模型文件交互。与GGUF模型的关联还记得我们在第3章讨论的GGUF模型格式吗?llama.cpp与它紧密相关。GGUF格式是与llama.cpp一起开发的,专门设计用于被该引擎高效加载和运行。GGUF文件以一种llama.cpp可以轻松地在CPU和GPU上使用的方式打包模型权重(通常经过量化以节省空间和内存)。这种密切关系是GGUF成为本地共享和运行模型的流行标准的原因。llama.cpp的优点因此,尽管您可能不会直接输入llama.cpp命令(除非您选择之后了解更高级的用法),但了解它的存在很重要,因为它为本地大型语言模型社区提供了多项好处:CPU效率高: 使得在标准硬件上运行有能力的大型语言模型成为可能。跨平台: 可在Windows、macOS和Linux上运行。重要支持: 为许多用户友好的工具提供了核心推理能力。优化: 与GGUF等量化模型格式有效配合,减少了资源需求。总的来说,llama.cpp是一个重要的C++库,专注于在消费级硬件上高效运行大型语言模型,尤其是在GGUF格式下。它是本章所学工具能将大型语言模型的能力直接带到您的台式机或笔记本电脑上的一个重要原因。了解它的作用有助于弄清这些模型如何在本地运行。