滴水恩情 发表于 2025-1-26 07:57:38

深入探索Llama.cpp:在LangChain中利用llama-cpp-python

深入探索Llama.cpp:在LangChain中利用llama-cpp-python

随着大语言模子(LLMs)的普及,开发者需要更有用的方法来部署和利用这些模子。本文将介绍怎样利用Llama.cpp的Python绑定——llama-cpp-python,并展示怎样在LangChain中实现此功能。
1. 引言

llama-cpp-python是Llama.cpp的Python绑定,使开发者可以或许在当地运行多种大语言模子(LLMs)。这给开发者提供了一个在无需依靠外部API的环境下运行LLM的选项,非常得当用于需要数据隐私或低延迟的应用场景。
2. 重要内容

2.1 模子文件转换

新的版本的llama-cpp-python利用GGUF格式的模子文件。可以通过以下命令将现有的GGML模子转换为GGUF格式:
python ./convert-llama-ggmlv3-to-gguf.py --eps 1e-5 --input models/model.ggmlv3.q4_0.bin --output models/model.gguf.q4_0.bin
2.2 安装



[*] 仅CPU利用:
%pip install --upgrade --quiet llama-cpp-python

[*] 利用OpenBLAS/cuBLAS/CLBlast:
!CMAKE_ARGS="-DLLAMA_CUBLAS=on" FORCE_CMAKE=1 pip install llama-cpp-python --no-cache-dir

[*] 支持Metal(Apple Silicon):
!CMAKE_ARGS="-DLLAMA_METAL=on" FORCE_CMAKE=1 pip install llama-cpp-python --no-cache-dir

2.3 利用指南

在安装全部必要的模子文件后,可以在当地运行LLM而无需API_TOKEN。下面将介绍怎样利用LangChain与Llama.cpp集成。
3. 代码示例

下面的代码展示了怎样利用LangChain与llama-cpp-python进行集成:
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()

# LLaMA 2 7B 模型示例
llm = LlamaCpp(
    model_path="/Users/rlm/Desktop/Code/llama.cpp/models/openorca-platypus2-13b.gguf.q4_0.bin",# 使用API代理服务提高访问稳定性
    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?"
llm.invoke({"question": question})
4. 常见问题和办理方案

4.1 在不同后端的性能问题



[*]BLAS 参数: 利用n_gpu_layers和n_batch设置参数来优化GPU性能。
[*]Metal支持: 确保f16_kv设置为True以避免Metal下的错误。
4.2 网络限制

由于某些地域的网络限制,开发者可能需要思量利用API署理服务,以进步访问API端点的稳固性。
5. 总结和进一步学习资源

利用llama-cpp-python可以让开发者在当地部署LLMs,联合LangChain,可实现更强大的应用场景。对于感兴趣的开发者,建议访问LangChain官方文档和Llama.cpp的GitHub堆栈了解更多信息。
6. 参考资料



[*]Llama.cpp GitHub
[*]LangChain 官方文档
[*]Hugging Face模子
竣事语:假如这篇文章对你有资助,欢迎点赞并关注我的博客。您的支持是我连续创作的动力!
—END—

免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。
页: [1]
查看完整版本: 深入探索Llama.cpp:在LangChain中利用llama-cpp-python