马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有账号?立即注册
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格式:
- 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([StreamingStdOutCallbackHandler()])
- # 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企服之家,中国第一个企服评测及商务社交产业平台。 |