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

打印 上一主题 下一主题

主题 1754|帖子 1754|积分 5262

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?立即注册

x
深入探索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格式:
  1. 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利用:
    1. %pip install --upgrade --quiet llama-cpp-python
    复制代码
  • 利用OpenBLAS/cuBLAS/CLBlast:
    1. !CMAKE_ARGS="-DLLAMA_CUBLAS=on" FORCE_CMAKE=1 pip install llama-cpp-python --no-cache-dir
    复制代码
  • 支持Metal(Apple Silicon):
    1. !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进行集成:
  1. from langchain_community.llms import LlamaCpp
  2. from langchain_core.callbacks import CallbackManager, StreamingStdOutCallbackHandler
  3. from langchain_core.prompts import PromptTemplate
  4. # 模板设置
  5. template = """Question: {question}
  6. Answer: Let's work this out in a step by step way to be sure we have the right answer."""
  7. prompt = PromptTemplate.from_template(template)
  8. # 回调管理
  9. callback_manager = CallbackManager([StreamingStdOutCallbackHandler()])
  10. # LLaMA 2 7B 模型示例
  11. llm = LlamaCpp(
  12.     model_path="/Users/rlm/Desktop/Code/llama.cpp/models/openorca-platypus2-13b.gguf.q4_0.bin",  # 使用API代理服务提高访问稳定性
  13.     temperature=0.75,
  14.     max_tokens=2000,
  15.     top_p=1,
  16.     callback_manager=callback_manager,
  17.     verbose=True
  18. )
  19. question = "What NFL team won the Super Bowl in the year Justin Bieber was born?"
  20. 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企服之家,中国第一个企服评测及商务社交产业平台。
回复

使用道具 举报

0 个回复

倒序浏览

快速回复

您需要登录后才可以回帖 登录 or 立即注册

本版积分规则

滴水恩情

论坛元老
这个人很懒什么都没写!
快速回复 返回顶部 返回列表