BigDL-LLM实践(2):LangChain的简单使用

BigDL-LLM 提供了 TransformerLLM,它实现了 LangChain 的 LLM wrapper 的标准接口。因此可以利用LangChain的各种方法。

1.1 模型加载

以TransformerLLM方法为例,可以从 huggingface model_id 或路径实例化llm。可以在 model_kwargs 中以字典形式传入与模型生成相关的参数(如 temperaturemax_length)。以 vicuna-7b-v1.5 模型为例实例化创建一个 TransformerLLM

from bigdl.llm.langchain.llms import TransformersLLM

llm = TransformersLLM.from_model_id(
        model_id="lmsys/vicuna-7b-v1.5",
        model_kwargs={"temperature": 0, "max_length": 1024, "trust_remote_code": True},
    )

1.2 使用 Chains

在简单应用中,单独使用LLM是可以的, 但更复杂的应用需要将LLM进行链接 - 要么相互链接,要么与其他组件链接.LangChain为这种"链接"应用提供了Chain接口。chain 中的组件可以是 prompt 模板、模型、内存缓冲区等。

LLMChain是最基本的构建块链。它接受一个提示模板,将其与用户输入进行格式化,并返回 LLM 的响应。

from langchain import PromptTemplate   //创建模板
from langchain import LLMChain      // 引入Chain组件
from bigdl.llm.langchain.llms import TransformersLLM    //导入模型的方法

//导入模型
llm = TransformersLLM.from_model_id(
        model_id="lmsys/vicuna-7b-v1.5",
        model_kwargs={"temperature": 0, "max_length": 1024, "trust_remote_code": True},
    )

//创建模板
prompt = PromptTemplate(
    input_variables=["product"],
    template="What is a good name for a company that makes {product}?",
)

llm_chain = LLMChain(prompt=prompt, llm=llm)  //构建Chain


question = "What is AI?"
result = llm_chain.run(question)

1.3 多个参数模板

如果模板中有多个变量,您可以使用字典一次性输入它们。

prompt = PromptTemplate(
    input_variables=["company", "product"],
    template="What is a good name for {company} that makes {product}?",
)
chain = LLMChain(llm=llm, prompt=prompt)
print(chain.run({
    'company': "ABC Startup",
    'product': "colorful socks"
    }))

                
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值