大家好!今天来聊聊如何使用百度AI云的Qianfan平台与Langchain进行集成,以便进行大模型的开发和应用。这个教程主要聚焦在如何使用Completion功能,而这些功能在Langchain中对应的是langchain/llms
包。
技术背景介绍
Baidu Qianfan是一个一站式的企业开发者大模型开发和服务运营平台。它不仅提供了包括文心一言(ERNIE-Bot)在内的多种模型,还支持第三方开源的模型。对于老铁们想要快速上手大模型来说,这个平台提供了一整套开发环境和各种AI开发工具,使用起来相当方便。
原理深度解析
在Qianfan中,大模型主要分为以下类型:
- Embedding
- Chat
- Completion
其中Completion是最常使用的功能之一,适合生成任务。在Langchain里,我们主要通过QianfanLLMEndpoint
来调用这些API服务。
实战代码演示
以下是如何快速上手使用Langchain与Qianfan集成的代码示例:
首先,确保您已经安装了必要的Langchain软件包:
%pip install -qU langchain-community
然后,初始化API参数(可以将AK和SK设置为环境变量或者初始化参数):
import os
from langchain_community.llms import QianfanLLMEndpoint
os.environ["QIANFAN_AK"] = "your_ak"
os.environ["QIANFAN_SK"] = "your_sk"
llm = QianfanLLMEndpoint(streaming=True)
res = llm.invoke("hi")
print(res)
这里我们用了一个稳定的API服务去调用模型进行简单的问候。
优化建议分享
在开发过程中,我发现使用Qianfan提供的流式传输功能可以极大提升生成速度和交互体验。建议大家在需要实时结果的时候开启streaming
参数。此外,对于模型的选择和部署,我们可以灵活地使用Qianfan Console来自定义模型的部署端点。
补充说明和总结
如果你需要使用不同的模型,Baidu Qianfan提供了多种选项,包括ERNIE-Bot-turbo、BLOOMZ-7B、Llama-2系列等。特别是对ERNIE-Bot和ERNIE-Bot-turbo支持的一些参数,如temperature
、top_p
等,可以帮助我们更细粒度地控制生成内容。
res = llm.generate(
prompts=["hi"],
streaming=True,
**{"top_p": 0.4, "temperature": 0.1, "penalty_score": 1},
)
说白了就是这么个原理,灵活使用参数调节可以帮助我们得到更符合预期的输出。
今天的技术分享就到这里,希望对大家有帮助。开发过程中遇到问题也可以在评论区交流~
—END—