使用Langchain构建LLM驱动应用程序的初学者指南!
#database #datascience #dataengineering #llm

如果您是开发人员或仅对技术充满热情的人,则可能遇到了诸如Chatgpt之类的AI工具。这些实用程序由高级大语言模型(LLMS)提供动力。有兴趣通过制定自己的基于LLM的应用程序来提高档位?如果是这样,Langchain是您的平台。

让我们首先将所有内容放在一边,了解LLMS。然后,我们可以使用简单的教程浏览Langchain。听起来很有趣吗?让我们开始吧。

什么是大型语言模型(LLM)?

大型语言模型(LLM)(例如GPT-3和Openai的GPT-4)是机器学习算法,旨在根据他们经过培训的数据来理解和生成类似人类的文本。这些模型是使用具有数百万甚至数十亿个参数的神经网络构建的,使它们能够执行复杂的任务,例如翻译,摘要,提问甚至创意写作。

经过培训,经过多种多样的数据集培训,通常包括互联网,书籍和其他文本的部分,分析了单词和短语之间的模式和关系,以产生连贯的和上下文相关的输出。尽管他们可以执行各种语言任务,但他们并不意识,也没有理解或情感,尽管他们能够在文本中模仿这种品质。

how llms work 来源信用NVIDIA

大语言模型主要属于被称为变压器网络的深度学习结构。变压器模型是一种神经网络,通过识别序列中元素之间的连接(例如给定句子中的单词)来获得对上下文和意义的理解。

中的单词。

什么是兰班?

Harrison Chase开发,并于2022年10月首次亮相,LangChain是一个开放式平台,旨在构建由大语言模型供电的坚固应用程序,例如Chatgpt和各种量身定制的应用程序。

Langchain试图为数据工程师配备一个全包装工具包,用于利用LLM在多种用例中,例如聊天机器人,自动化问题,文本摘要等。

Langchain由下面解释的6个模块组成:

Langchain explained 图像信用:ByteByteGo

  • 大语言模型
    Langchain用作标准接口,允许与广泛的大型语言模型(LLMS)进行交互。

  • 提示施工
    Langchain提供了各种旨在简化创建和处理提示过程的类和功能。

  • 对话记忆
    Langchain合并了可实现过去聊天对话的管理和更改的内存模块,这是聊天机器人的关键功能,需要回忆以前的交互。

  • 智能代理
    Langchain为代理提供了全面的工具包。这些代理可以根据用户输入选择哪些工具。

  • 索引
    Langchain中的索引是以促进与LLM有效相互作用的方式组织文档的方法。

  • 链条
    虽然使用单个LLM可能足以实现更简单的任务,但Langchain提供了标准接口和一些常用的实现,以将LLM链接在一起以进行更复杂的应用程序,无论是自己还是其他专业模块。

Langchain如何工作?

how langchain works

Langchain由大量数据组成,并且将数据分解成较小的块,这些块可以很容易地嵌入到矢量存储中。现在,在LLM的帮助下,我们可以检索唯一需要的信息。

当用户插入提示时,Langchain会查询Vector Store以获取相关信息。当找到准确或几乎匹配的信息时,我们将这些信息提供给LLM以完成或生成用户正在寻找的答案。

开始使用Langchain

让我们使用Singlestore的笔记本功能(免费使用)作为本教程的开发环境。

singlestore sql database queries

SINGLESTORE笔记本扩展了Jupyter笔记本的功能,以使数据专业人员可以轻松地工作和玩耍。

什么是单闸?

SingleStore是一种分布式内存,SQL数据库管理系统,旨在高性能,高速应用。它提供了实时分析,并将传统操作数据库的功能与分析数据库的功能混合在一起,以允许在单个系统中执行交易和分析。

SingleStore使用笔记本的注册。

SingleStore Notebooks feature

注册到Singlestore后,您还将获得600美元的免费计算资源。那为什么不利用这个机会

单击“笔记本”,然后从空白笔记本开始。
singlestore notebooks usage

将其命名为“ Langchain-Tutorial”或根据您的愿望。
blank notebook

让我们开始使用刚创建的笔记本。
遵循本步骤指南,并继续添加笔记本中每个步骤中显示的代码并执行。让我们开始!

现在,要使用langchain,让我们首先使用pip命令安装。

!pip install -q langchain

要与Langchain合作,您需要与一个或多个模型提供者(例如OpenAI或Hugging Face)进行集成。在此示例中,让我们利用OpenAi的API,让我们安装它。

!pip install -q openai

adding dependencies

接下来,我们需要设置环境变量以进行游戏。
让我们来做。

import os
os.environ["OPENAI_API_KEY"] = "Your-API-Key"

API key added

希望您知道如何获得您的api-key,如果没有,请访问this link获取OpenAi API键。

[注意:确保您仍然有使用API​​键的配额]

接下来,让我们像OpenAi这样的LLM并通过此模型进行预测。

让我们问我们的模型是世界上人口最多的5个城市。

from langchain.llms import OpenAI
llm = OpenAI(temperature=0.7)
text = "what are the 5 most populated cities in the world?"
print(llm(text))

llm prediction

您可以看到,我们的模型做出了预测,并打印了世界上5个人口最多的城市。

提示模板

让我们首先定义提示模板。

from langchain.prompts import PromptTemplate

# Creating a prompt
prompt = PromptTemplate(
    input_variables=["input"],
    template="what are the 5 most {input} cities in the world?",
)

prompt template

我们创建了提示。要获得预测,现在让我们称之为格式方法并将其传递给输入。

get predictions

创建连锁店

到目前为止,我们看到了如何初始化LLM模型,以及如何使用此模型进行预测。现在,让我们向前迈出一步,使用LLMCHAIN类链接这些步骤。

from langchain.chains import LLMChain
# Instancing a LLM model
llm = OpenAI(temperature=0.7)
# Creating a prompt
prompt = PromptTemplate(
  input_variables=["attribute"],
  template= "What is the largest {attribute} in the world?",
)

creating chains

您可以看到模型的预测。

使用Langchain LLM开发应用程序

再次将Singlestore的笔记本作为开发环境。

让我们开发一个非常简单的聊天应用程序。

以空白笔记本开始,然后按照您的意愿命名。

  • 首先,安装依赖项。
pip install langchain openai

langchain using notebooks

  • 接下来,导入已安装的依赖项。
from langchain import ConversationChain, OpenAI, PromptTemplate, LLMChain

from langchain.memory import ConversationBufferWindowMemory

Import libraries

  • 获取您的OpenAI API密钥并安全保存。
    safe openai api key

  • 添加并自定义LLM模板

# Customize the LLM template 
template = """Assistant is a large language model trained by OpenAI.

{history}
Human: {human_input}
Assistant:"""

prompt = PromptTemplate(input_variables=["history", "human_input"], template=template)

customize LLM

  • 用安全保存的API密钥加载ChatGpt链。将人类的输入添加为“什么是单闸?”。您可以将输入更改为您想要的任何东西。
chatgpt_chain = LLMChain(

           llm=OpenAI(openai_api_key="YOUR-API-KEY",temperature=0),
           prompt=prompt,
           verbose=True,
           memory=ConversationBufferWindowMemory(k=2),

           )
# Predict a sentence using the chatgpt chain
output = chatgpt_chain.predict(
       human_input="What is SingleStore?"
       )
# Display the model's response
print(output)

脚本使用OpenAI API键和预设提示来初始化LLM链。然后,它需要用户输入并显示结果输出。

预期输出如下所示,
LLM and chat application

通过更改人类输入文本/内容来播放。

GitHub可用代码格式的完整执行步骤。

Langchain是数据工程师和开发人员努力构建由大语言模型提供支持的尖端应用程序的必不可少框架。与传统的工具和平台不同,Langchain提供了针对复杂AI应用程序量身定制的更强大,更广泛的框架。 Langchain不仅是开发商武器库中的另一个工具。这是一个变革性的框架,它重新定义了AI驱动应用程序领域的可能性。

在Genai应用程序和LLM的领域中,强烈建议了解向量数据库。我最近在矢量数据库上写了一个完整的概述,您可能想浏览该文章。

注意:学习LLMS和Langchain还有更多,这是我第一次写有关此框架的尝试。这不是兰链的完整指南。请浏览更多文章和教程,以了解有关Langchain的深入了解。

不要忘记signup for SingleStore使用免费笔记本功能。玩耍并学习有趣的学习。

免责声明:Chatgpt仅协助本文的某些部分。