0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

LangChain:为你定制一个专属的GPT

阿尔法工场研究院 来源:阿尔法工场研究院 2023-04-24 11:27 次阅读

导语:用户可以利用LangChain的模块来改善大语言模型的使用,通过输入自己的知识库来“定制化”自己的大语言模型。

LLM(大语言模型) 是一项变革性的技术,它将人类的各类知识和逻辑能力打包进入了一个体积庞大的模型当中。

但是通常来说,包括当前公认效果最好的LLM GPT-4都会有一个问题——事实问题错误,也常被称之为幻觉。幻觉(Hallucination),或者说人工智能幻觉是人工智能的自信反应。

当模型输出欺骗性数据的倾向时,其使用的的训练数据并不能证明输出的合理性。人工智能幻觉的危险之处之一是模型的输出看起来是正确的,其实它本质上是错误的。

基于这种前提条件下,若是直接将LLM利用于生产环境中(例如客服答疑,新形式文档等)时,那么事实幻觉就可能会造成极其严重的影响。

但是通过LangChain,我们可以通过将其它计算资源和自有的知识库结合。依托于当前的各类产品,在整合了当前的语料资源库后,各类LLM都会进入到一个新的实用化发展阶段。

LangChain介绍

LangChain是一个用于开发基于语言模型的应用程序开发框架。总的来说,LangChain是一个链接面向用户程序和LLM之间的一个中间层。

它在 2023 年 3 月获得了 Benchmark Capital 的 1000 万美元种子轮融资,在近期又拿到了红杉2000-2500万美金的融资,估值已经提升到了2亿美金左右。

LangChain 可以轻松管理与语言模型的交互,将多个组件链接在一起,并集成额外的资源,例如 API 和数据库。其组件包括了模型(各类LLM),提示模板(Prompts),索引,代理(Agent),记忆等等。

当前GitHub上的热门项目Auto-GPT和Babyagi所使用的链式思考能力都是由LangChain启发而来。

0bb89c10-df25-11ed-bfe3-dac502259ad0.png

LangChain项目主页图

LangChain工作流程

本次重点介绍LangChain搭配自有的知识库让LLM发挥更大功能的流程。

在缺少了上下文的情况下,即使是目前公认最顶级的LLM GPT-4也无法回答部分需要特定领域的知识。

而要是想仅用自有知识库来训练出LLMs又是不可能的,这个时候最好的方法就是利用LangChain的模块来改善LLM的使用,通过输入自己的知识库来“定制化”自己的LLM。

Question Answering over specific documents是一个写在LangChain主页的主推功能。翻译过来就是 基于特定文档的问答

1.准备自定义数据

准备好需要LLM学习的内容,它可以是一个纯文本文件或者其他类型的文本(不同类型的文本需要不同的文档加载器)。

2.拆分文档

一般来讲,每个文档都是由复杂长短句、多种语法结合写作而成的。在进行输入之前,就必须对这些文字进行解构处理。

对于英文LangChain一般会使用RecursiveCharacterTextSplitter处理。由于中文的复杂性,会使用到jieba等处理工具预处理中文语句。

3.文本嵌入(Embeddings)

处理完文本之后,就可以对文本进行嵌入(Embeddings)了。通过调用OpenAI的Embeddings API将文本向量化。在这步处理之后,文本就已经不再是文字,而是以向量化存储的信息

再使用一个开源的Embeddings数据库ChromaDB保存Embeddings数据,就可以达到使用数据长期存储和快速调用。

0be7ed76-df25-11ed-bfe3-dac502259ad0.jpg

图:将原文本嵌入

4.使用链(Chain)对矢量数据库进行问答

在拥有了嵌入数据之后,我们就可以利用LangChain的强大链功能来执行我们的问答。这时就可以通过自然语言对于文档内容进行提问了。

0bfcdeb6-df25-11ed-bfe3-dac502259ad0.jpg

通过LangChain回答问题/完成任务

LangChain可能的应用场景

当前的AI热潮吸引了很多人,而除了ChatGPT这类问答还有New Bing这种搜索服务外,并没有什么可以将LLM商业化的案例。甚至可以说只有New Bing才是目前唯一一个成功的商业化案例。

LangChain为所有人提供了一个新的商业化方案。此前有将LLM导入客服软件中应用的方案,但是由于LLM容易出现事实幻觉而无法实施。

同时,将所需内容通过Prompt导入LLM的想法也由于LLM的对话(Context)输入限制而不可能实施。LangChain则通过将数据向量化避免了使用输入限制,从而将所需内容导入LLM进行问答。

当下的人工成本逐渐提升,例如淘宝客服等人工密集型产业的成本逐步提升。当前的智能问答距离可用仍有较远的距离。

通过已经预训练好的LLM是一个快速降本增效的方案。基于每个产品的数据,可以将数据引入LLM中,让LLM接替客服工作,准确、快速的回答客户的定制化问题,同时语气贴合自然口吻,避免了情绪化工作。

基于文档的工作还可以在各类公司培训和智能化文档方面提供作用。很多产品文档随着时间的积累变得越来越复杂,多层跳转也会让人学习起来效率低下且不适。

此时基于LangChain就可以将文档重新梳理,输出为大纲类,在使用的时候可以随时通过问答的形式将内容输出。类似于新员工培训和产品说明书等等场景都可以有所应用。这就极大的拓宽了文字类LLM的使用场景。

0c24a89c-df25-11ed-bfe3-dac502259ad0.png

基于LangChain的问答

除了直接与人交互的方面外,还可以导入特定领域的知识库,实时更新LLM的内容,让LLM的知识时刻处于最新的状态。依赖于此,LangChain除了可以完成自然语言文档搜索外,还可以基于及时的资源进行快速开发。

0c482632-df25-11ed-bfe3-dac502259ad0.jpg

导入资源后LangChain开发出的网页

当前LangChain的局限性

目前,由于整个AI生态还处于一种快速发展期,各类工具和平台还没有完全成熟,因此LangChain的各类链和模块的定制性和功能都还不够强大。对于有高性能场景需求和定制化任务的可能需要自己重新修改。

事实合法性也是未来需要解决的一个痛点。LLM的各类越狱层出不穷。虽然在引入了嵌入之后LLM只会对文档内容进行问答,但是仍然需要有一套额外的监督系统防止出现任何非法的回答。

同时当前LangChain还有使用难度较高等问题。目前的各类AI工具都面临着普通用户无法轻松驾驭等等的问题,而LangChain的问题更盛。

普通产品或者开发者的上手学习成本较高,使用起来难度很大。这一切都需要社区和商业资本的共同投入才有可能解决。

结语

LangChain是当前众多的AGI实验性工具的基石项目。基于链(Chain)的LLM调用思维势必会贯穿未来LLM的发展生态。

提前关注AI发展动向,关注LangChain的开发进度,会对未来的AI应用落地有极大的帮助。

审核编辑 :李倩

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • AI
    AI
    +关注

    关注

    87

    文章

    26457

    浏览量

    264070
  • 数据库
    +关注

    关注

    7

    文章

    3591

    浏览量

    63371
  • GPT
    GPT
    +关注

    关注

    0

    文章

    302

    浏览量

    14869

原文标题:LangChain:为你定制一个专属的GPT

文章出处:【微信号:alpworks,微信公众号:阿尔法工场研究院】欢迎添加关注!文章转载请注明出处。

收藏 人收藏

    评论

    相关推荐

    【Longan Pi 3H 开发板试用连载体验】给ChatGPT装上眼睛,并且还可以语音对话:8,GPT接入,功能整合完成项目

    GPT接入 Github上有非常有名的开源项目,曾经还引来了不少争议,这个项目叫gpt4free。实际原理与poe wrapper相似,都是利用网络请求的方法从各个第三方平台的
    发表于 04-18 12:43

    TC275如何设定GPT模块分频?

    在illd里没找到相关函数,请问各位高手如何设定GPT模块分频,谢谢。
    发表于 02-22 07:37

    使用TC21x的GPT实现1m计时器执行定时任务,怎么配置GTM和GPT

    专家们好,我想使用TC21x的GPT实现1m计时器执行定时任务,不知道怎么配置GTM和GPT
    发表于 02-06 06:47

    探索LangChain:构建专属LLM应用的基石

    LangChain通过Loader加载外部的文档,转化为标准的Document类型。Document类型主要包含两个属性:page_content 包含该文档的内容。meta_data 为文档相关的描述性数据,类似文档所在的路径等。
    发表于 01-30 10:33 251次阅读
    探索<b class='flag-5'>LangChain</b>:构建<b class='flag-5'>专属</b>LLM应用的基石

    GPT EVAL_BDPS_DRIVER可以使用GPT12 IP或GTM IP来实现连续定时器和单次定时器吗?

    GPT EVAL_BDPS_DRIVER可以使用GPT12 IP或GTM IP来实现连续定时器和单次定时器? 是吗?
    发表于 01-22 08:16

    虹科分享 | 用Redis为LangChain定制AI代理——OpenGPTs

    OpenAI最近推出了OpenAI GPTs——一个构建定制化AI代理的无代码“应用商店”,随后LangChain开发了类似的开源工具OpenGPTs。OpenGPTs是一款低代码的开源框架,专用于构建定制化的人工智能代理。
    的头像 发表于 01-18 10:39 147次阅读
    虹科分享 | 用Redis为<b class='flag-5'>LangChain</b><b class='flag-5'>定制</b>AI代理——OpenGPTs

    用Redis为LangChain定制AI代理——OpenGPTs

    OpenAI最近推出了OpenAIGPTs——一个构建定制化AI代理的无代码“应用商店”,随后LangChain开发了类似的开源工具OpenGPTs。OpenGPTs是一款低代码的开源框架,专用
    的头像 发表于 01-13 08:03 560次阅读
    用Redis为<b class='flag-5'>LangChain</b><b class='flag-5'>定制</b>AI代理——OpenGPTs

    LangChain 0.1版本正式发布

    LangChain 由 Harrison Chase 于 2022 年 10 月推出,是一个开源编排框架,用于使用 LLM 开发应用程序,推出后迅速脱颖而出,截至 2023 年 6 月,它是 GitHub 上增长最快的开源项目。
    的头像 发表于 01-10 10:28 477次阅读

    如何利用OpenVINO加速LangChain中LLM任务

    LangChain 是一个高层级的开源的框架,从字面意义理解,LangChain 可以被用来构建 “语言处理任务的链条”,它可以让AI开发人员把大型语言模型(LLM)的能力和外部数据结合起来,从而
    的头像 发表于 12-05 09:58 406次阅读

    OpenAI开放大模型微调功能 GPT-3.5可以打造专属ChatGPT

    OpenAI还透露GPT-4微调将于今年秋天推出。 大模型微调功能很简单,上传自己的数据,就可以运行专属定制大模型。个性化的专属ChatGPT一键生成,比如你可以让ChatGPT输出
    的头像 发表于 08-23 19:34 772次阅读

    chatGPT和GPT4有什么区别

    chatGPT和GPT4有什么区别 GPT(Generative Pre-trained Transformer)系列模型由OpenAI公司开发,是一组用于自然语言处理(NLP)任务的人工智能模型
    的头像 发表于 08-09 15:18 1795次阅读

    LangChain跑起来的3个方法

    使用 LangChain 开发 LLM 应用时,需要机器进行 GLM 部署,好多同学第一步就被劝退了,
    的头像 发表于 07-05 09:59 875次阅读
    把<b class='flag-5'>LangChain</b>跑起来的3个方法

    LangChain简介

    对 ChatGPT 等应用着迷?想试验他们背后的模型吗?甚至开源/免费模型?不要再观望……LangChain 是必经之路……
    的头像 发表于 05-22 09:14 7957次阅读
    <b class='flag-5'>LangChain</b>简介

    如何将分区格式从MBR更改为GPT

    中的图像,但分区格式配置 MBR。 Q2)为什么LF_v5.15.5-1.0.0_images_iMX8MPEVK镜像配置了MBR?有理由吗? Q3) 是否可以从 MBR 更改为 GPT?任何问题? Q4) 我应该在哪里修
    发表于 05-17 09:29

    IMX8MN如果我们配置GPT在上升沿/下降沿触发中断,如何知道中断是由下降沿还是上升沿触发?

    以获得数组,其中包含每个 0 和 1 转换的持续时间 我的想法是在输入捕获模式下使用 GPT 1,配置触发上升沿和下降沿的中断,并在中断中获取位 (0/1) 的持续时间并将其
    发表于 05-12 06:35