首页/文章/ 详情

LangChain---大型语言模型(LLM)的标准接口

1年前浏览3417
1 引言

所以想到使用LangChain [V0.0.123],是因为在应用中遇到了瓶颈问题,如在【使用自定义的岩土数据(GeotechSet)增强ChatGPT的回答能力】中讨论的,OpenAI的所有预训练模型都是收费的,尽管每个token的收费为$0.002~$0.005,但如果输入和输出的内容较多,特别在调试阶段,需要反复测试不同情况下系统的响应,这样积累下来的花费是非常大的。因此决定尝试使用其它的LLM模型代替OpenAI模型,例如Meta于2月份推出的LLaMa模型以及Google的flan-t5-xxl模型


LangChain是一个围绕大型语言模型(Large Language Models, LLMs)建立的开源框架。LangChain不是LLM的提供者,而是提供了一个标准接口,它简化了提示(prompt)管理和优化,通过这个接口,用户可以与各种LLM进行交互,并包括与LLM一起工作的通用工具。LangChain为链(chains)提供了一个标准接口,使开发者能够创建超越单一LLM调用的调用序列。此外,它能够对长篇文字进行总结和对特定数据源的提问进行回答。


LangChain的特性

大型语言模型 (LLMs) 是一种日益变革的技术,使开发者能够建立以前无法想象的应用程序。然而,孤立地使用LLM往往不足以创建真正强大的应用程序,LLMs的真正力量在于它们与其他计算或知识来源的整合。Langchain是一个尖端的开源Python库,专门提供先进的LLM链、代理、工具和索引,它以创新的面向对象的方式创建提示 (prompts),并将工具的输出链化。LangChain和Llama-index正试图准确地解决这些挑战。LangChain为开发者提供了以下功能,其复杂程度依次递增:

(1) LLMs and Prompts

(2) Chains

(3) Data Augmented Generation

(4) Agents

(5) Memory

(6) Evaluation

LangChain的其他一些特点包括它对数据增强生成、代理、内存和评估的支持。它为链提供了一个标准的接口,并与其他工具进行了大量的整合。LangChain还提供了一个标准的代理(agents)接口,提供了一些可供选择的代理,以及端到端的代理实例。这些代理可用于更接地气的问题回答、与API的互动,甚至采取行动。在LangChain中,代理是使用语言模型与其他工具互动的系统。这些代理可以用来为下一代个人助理提供动力--这些系统可以智能地理解用户的意思,然后采取行动来帮助完成目标。内存是LangChain的另一个特点,它允许在链或代理的调用之间持久保存状态。


3 试验

为了取代OpenAI,首先想到的是HuggingFace库中的模型,在GPT-2时代,我们一直使用该库中的模型,本公 众 号在2021年写了大量这方面的文章,下面是一个简单应用例子,在这个例子中,共使用了3个类:PromptTemplate用来创建创建提示行的格式prompt,HuggingFaceHub用来建立预训练模型hub_llm,LLMChain用来产生模型链llm_chain。在本例中,使用了google/flan-t5-xxl模型,该模型是在T5【生成摘要(Summarization)的新方法】的基础上发展而来的。




from langchain import PromptTemplate, HuggingFaceHub, LLMChaintemplate = """Question: {question}Answer: Let's think step by step."""prompt = PromptTemplate(template=template, input_variables = ["question"])hub_llm = HuggingFaceHub(        repo_id = model_id,    model_kwargs={"temperature":1, "max_length":364})llm_chain = LLMChain(prompt=prompt, llm=hub_llm)question = "What is mining engineering?"print(llm_chain.run(question))
问题:What is mining engineering?

回答:Mining engineering is the engineering discipline that applies science and technology to the extraction of minerals from the earth.(采矿工程是将科学和技术应用于从地球上提取矿物的工程学科) [first.py]

4 结束语

本文讨论了LangChain的使用,LangChain是一个围绕大型语言模型(LLM)建立的开源框架,是为了解决成本问题预先训练好的模型。LangChain简化了提示管理和优化,允许用户与各种LLM互动,并创建调用链以超越单一的LLM。该框架还支持数据生成文章。提供了一个使用LangChain的例子,用HuggingFace库中的模型作为预训练模型,用LLMChain生成一个模型链。这个例子的应用成功地回答了"什么是采矿工程"的问题。

来源:计算岩土力学
通用岩土试验
著作权归作者所有,欢迎分享,未经许可,不得转载
首次发布时间:2023-04-10
最近编辑:1年前
计算岩土力学
传播岩土工程教育理念、工程分析...
获赞 147粉丝 1058文章 1779课程 0
点赞
收藏
未登录
还没有评论
课程
培训
服务
行家
VIP会员 学习 福利任务 兑换礼品
下载APP
联系我们
帮助与反馈