使用 LLAMA-CPP 服务器部署开放式 LLMs:分步指南

使用 LLAMA-CPP 服务器部署开放式 LLM:分步指南。了解如何安装和设置 LLAMA-CPP 服务器,以提供开源大型语言模型,通过 cURL、OpenAI 客户端和 Python 的 requests 包进行请求。优化本地和远程部署。

2025年2月15日

party-gif

使用这个全面的 LLAMA-CPP 服务器部署指南,释放开源大型语言模型 (LLM) 的力量。了解如何使用单个 LLM 高效地为多个用户提供服务,优化您的 AI 驱动应用程序的性能和可访问性。

安装 LLAMA-CPP

使用Homebrew软件包管理器安装LLAMA-CPP是最简单的方法。这在macOS和Linux机器上都可以原生工作。要在Windows机器上安装LLAMA-CPP,您需要使用Windows子系统for Linux (WSL)。

要使用Homebrew安装LLAMA-CPP,请在终端中运行以下命令:

brew install llama-cpp

此命令将下载并在您的系统上安装LLAMA-CPP软件包。安装完成后,您可以开始使用llama-server命令来服务您的LLM模型。

启动 LLAMA-CPP 服务器

要启动LLAMA-CPP服务器,请按照以下步骤操作:

  1. 使用Homebrew软件包管理器安装LLAMA-CPP:

    brew install llama.cpp
    

    此命令将在您的Mac或Linux机器上安装LLAMA-CPP。对于Windows用户,您需要使用WSL(Windows子系统for Linux)来安装LLAMA-CPP。

  2. 通过运行以下命令启动LLAMA-CPP服务器:

    llama-server --model <hugging-face-repo-id> --model-file <quantization-file>
    

    <hugging-face-repo-id>替换为您要服务的模型的Hugging Face存储库ID,将<quantization-file>替换为您要使用的特定量化文件(例如,GGML格式的4位量化版本)。

  3. LLAMA-CPP服务器将默认在localhost:8080上监听传入的请求。您可以使用可用的选项(如--host--port)自定义主机地址和端口。

  4. 该服务器支持各种配置选项,包括设置最大上下文窗口、批量大小等。您可以通过运行llama-server --help来探索这些选项。

  5. 服务器运行后,您可以使用不同的方法与之交互,如cURL、OpenAI客户端或Python的requests包,如前几节所示。

请记住,LLAMA-CPP服务器旨在在您的本地机器或生产环境中提供一种快速高效的方式来服务开源大型语言模型。通过利用该服务器,您可以轻松地将这些模型集成到您的应用程序中,并使用单个GPU为多个用户提供服务。

向 LLAMA-CPP 服务器发出请求

有几种方法可以与LLAMA-CPP服务器交互并向服务的模型发出请求:

  1. 使用cURL命令:

    curl -X POST -H "Content-Type: application/json" -d '{"prompt": "Hello, how are you?", "max_tokens": 50}' http://localhost:8080/v1/chat/completions
    

    这将向在本地主机端口8080上运行的聊天完成端点发出POST请求。

  2. 使用OpenAI客户端:

    import openai
    
    openai.api_base = "http://localhost:8080/v1"
    openai.Model.list()
    
    response = openai.ChatCompletion.create(
        model="chat-gpt-3.5",
        messages=[
            {"role": "system", "content": "You are a helpful assistant."},
            {"role": "user", "content": "Hello, how are you?"}
        ]
    )
    
    print(response.choices[0].message.content)
    

    这使用OpenAI客户端与LLAMA-CPP服务器交互,该服务器与OpenAI API兼容。

  3. 使用Python Requests包:

    import requests
    
    url = "http://localhost:8080/v1/chat/completions"
    headers = {"Content-Type": "application/json"}
    data = {
        "prompt": "Hello, how are you?",
        "max_tokens": 50
    }
    
    response = requests.post(url, headers=headers, json=data)
    print(response.json())
    

    这使用Python Requests包向聊天完成端点发出POST请求。

在所有这些示例中,LLAMA-CPP服务器在本地主机端口8080上运行,提供指定的模型。您可以根据需要自定义服务器配置,如主机地址、端口和模型。

自定义 LLAMA-CPP 服务器

LLAMA-CPP提供了一个高度可定制的服务器,允许您微调LLM部署的行为。以下是您可以配置的一些关键选项:

  1. 最大上下文窗口: 您可以定义LLM的最大上下文窗口大小,这决定了模型可以处理的输入序列的最大长度。

  2. 批量大小: LLAMA-CPP支持批量处理提示,允许您同时处理多个输入以提高吞吐量。您可以配置批量大小来优化性能。

  3. 主机地址: 默认情况下,LLAMA-CPP服务器监听localhost,但您可以更改主机地址以使服务器可从您网络上的其他机器访问。

  4. 端口: 服务器默认监听端口8080,但您可以指定不同的端口(如果需要)。

  5. 模型路径: LLAMA-CPP允许您自定义加载LLM模型文件的路径,给您灵活性来组织模型资产。

  6. 嵌入模型: 除了语言模型,LLAMA-CPP还可以提供嵌入模型,允许您将文本生成和文本编码功能集成到您的应用程序中。

  7. 指标跟踪: LLAMA-CPP服务器可以跟踪各种指标,如请求延迟和吞吐量,帮助您监控和优化部署的性能。

通过利用这些定制选项,您可以根据特定的部署要求调整LLAMA-CPP服务器,无论您是在生产环境中运行它还是在本地开发和实验中使用它。

使用不同方法与 LLAMA-CPP 服务器交互

要与LLAMA-CPP服务器交互,我们可以使用各种方法:

  1. 使用cURL命令:

    • 向在localhost上运行的聊天完成端点发出POST请求。
    • 提供必要的标头和包含提示和所需生成令牌数的数据对象。
    • 响应将包括生成的文本,以及关于生成过程的信息,如温度、top-P、top-K和预测的每秒令牌数。
  2. 使用OpenAI客户端:

    • 创建一个OpenAI客户端,将基URL设置为本地LLAMA-CPP服务器的URL。
    • 使用聊天完成端点客户端并提供模型名称(例如chat-gpt-3.5)。
    • 设置系统提示和用户提示,然后向服务器发出请求。
    • 响应将以与OpenAI API相同的格式返回。
  3. 使用Requests包(Python):

    • 定义POST请求的URL和标头。
    • 向服务器传递多个不同的消息,观察它如何并发处理请求。
    • 服务器将对请求进行排队并逐一处理,而不会被淹没。

通过使用这些不同的方法,您可以与LLAMA-CPP服务器交互,并使用单个LLM和单个GPU为多个用户提供服务。该服务器提供了一种灵活且可定制的方式来部署开源语言模型,允许您调整各种参数以满足您的特定需求。

结论

在这个视频中,我们探讨了LlamaCPP的安装和使用,这是一个强大的开源项目,用于提供开源大型语言模型。我们学习了如何在本地机器上安装LlamaCPP、启动服务器,以及使用各种方法(包括cURL、OpenAI客户端和Python requests包)与之交互。

我们还讨论了LlamaCPP中可用的各种配置选项,允许我们根据具体需求定制服务器,如设置最大上下文窗口、批量大小和主机地址。此外,我们了解到LlamaCPP可以跟踪指标,使其成为生产环境的合适选择。

最后,我们简要介绍了LlamaCPP的实际应用,特别是在部署大型语言模型方面的应用。我们提到了Rasa框架作为一个潜在的应用,并在视频描述中提供了相关课程的链接。

总的来说,这个视频为您提供了对LlamaCPP及其功能的全面介绍,使您能够开始在本地机器或生产环境中提供开源大型语言模型。

FAQ