位置: IT常识 - 正文

大语言模型集成工具 LangChain(大语言模型集成工具)

编辑:rootadmin
大语言模型集成工具 LangChain 大语言模型集成工具 LangChainLangChain 介绍介绍:通过可组合性使用大型语言模型构建应用程序【背景】大型语言模型 (LLM) 正在成为一种变革性技术,使开发人员能够构建他们以前无法构建的应用程序,但是单独使用这些 LLM 往往不足以创建一个真正强大的应用程序,当可以将它们与其他计算或知识来源相结合时,就有真的价值了。LangChain 旨在协助开发这些类型的应用程序使用文档:https://langchain.readthedocs.io/en/latest/index.html代码:https://github.com/hwchase17/langchain安装介绍库安装pip install langchainpip install openaiOPENAI KEY 获取:淘宝上花几块钱购买一个是最方便的途径或到 https://openai.com/blog/openai-api/ 网站申请账号,申请周期有可能会比较长添加环境变量在终端运行:export OPENAI_API_KEY="..."或在 python 脚本中添加:import os; os.environ["OPENAI_API_KEY"] = "..."LangChain 应用(基于0.0.64 版本测试)获取 LLM 的预测 (QA 任务)获取 LLM 的预测是最直接的应用方式,测试样例如下text = "What would be a good company name a company that makes colorful socks?"print(llm(text)) # 返回 Socktastic!

推荐整理分享大语言模型集成工具 LangChain(大语言模型集成工具),希望有所帮助,仅作参考,欢迎阅读内容。

文章相关热门搜索词:语言学集群模型,语言模型算法,语言模型perplexity,语言模型plug,语言模型plug,语言模型有什么用,大语言模型集成有哪些,大语言模型集成有哪些,内容如对您有帮助,希望把文章链接给更多的朋友!

简单数学问题:

from langchain.llms import OpenAI # 导入 LLM wrapperllm = OpenAI(temperature=0.9) # 大的 temperature 会让输出有更多的随机性text = "what is the results of 5+6?"print(llm(text)) # 返回 11text = "what is the results of 55+66?"print(llm(text)) # 返回 121text = "what is the results of 55555+66666?"print(llm(text)) # 返回 122221text = "what is the results of 512311+89749878?"print(llm(text)) # 返回 89,876,189,终于错了...大语言模型集成工具 LangChain(大语言模型集成工具)

另一个例子,这里返回的是同义词,如果要返回同音词则需要修改输入的 prompt(另外一个解决方式是基于以下章节中的 Memory 模式):

text = "what word is similar to good?"print(llm(text)) # 返回 Excellenttext = "what word is homophone of good?"print(llm(text)) # 返回 Goo输入 prompts 模板设置在上面根据公司生产的产品生成公司名字的应用中,一种让用户输入更简单的方式是仅让客户输入公司生产的产品即可,不需要输入整个语句,这需要对 prompts 设置模板:from langchain.prompts import PromptTemplateprompt = PromptTemplate( input_variables=["product"], template="What is a good name for a company that makes {product}?",)print(prompt.format(product="colorful socks")) # 返回 What is a good name for a company that makes colorful socks?text = prompt.format(product="colorful socks")print(llm(text)) # 返回 Socktastic!text = prompt.format(product="chocolates")print(llm(text)) # 返回 ChocoDelightz!Memory 功能: 在 LLM 交互中记录交互的历史状态,并基于历史状态修正模型预测

该实现基于论文: MemPrompt

即当模型出错了之后,用户可以反馈模型错误的地方,然后这些反馈会被添加到 memory 中,以后遇到类似问题时模型会提前找到用户的反馈,从而避免犯同样的错

对话任务中的 ConversationChain 示例(ConversationBufferMemory 模式),verbose=True 会输出对话任务中的 prompt,可以看到之前聊天会作为短期 memory 加在 prompt 中,从而让模型能有短时间的记忆能力:

from langchain import OpenAI, ConversationChainllm = OpenAI(temperature=0)conversation = ConversationChain(llm=llm, verbose=True)conversation.predict(input="Hi there!") # 返回如下#> Entering new ConversationChain chain...#Prompt after formatting:#The following is a friendly conversation between a human and an AI. The AI is talkative and provides lots of specific #details from its context. If the AI does not know the answer to a question, it truthfully says it does not know.#Current conversation:#Human: Hi there!#AI:#> Finished chain.# Out[53]: " Hi there! It's nice to meet you. How can I help you today?"conversation.predict(input="I'm doing well! Just having a conversation with an AI.") # 返回如下#Prompt after formatting:#The following is a friendly conversation between a human and an AI. The AI is talkative and provides lots of specific #details from its context. If the AI does not know the answer to a question, it truthfully says it does not know.#Current conversation:#Human: Hi there!#AI: Hi there! It's nice to meet you. How can I help you today?#Human: I'm doing well! Just having a conversation with an AI.#AI:#> Finished chain.#Out[54]: " That's great! It's always nice to have a conversation with someone new. What would you like to talk about?"LangChain 这里看起来没有直接在 QA 任务中集成 memprompt,不过可以基于对话任务来测试之前 QA 任务中出错的问题,可以看到基于 memprompt 确实可以利用用户的反馈来修正模型预测结果:conversation.predict(input="what word is similar to good?") # 返回 ' Synonyms for "good" include excellent, great, fine, and superb.'conversation.predict(input="similar to means with similar pronunciation") # 返回 ' Ah, I see. Synonyms for "good" with similar pronunciation include wood, hood, and should.'

这里的实现看起来和 memprompt 非常类似,每个问题不会直接回答答案,而是回答 understating+answer,从而让用户可以基于对 understating 的理解来判断模型反馈是否符合用户的预期,而不用直接判断 answer 的正确性

对话任务中的其他几种 memory 添加模式

ConversationSummaryMemory:与 ConversationBufferMemory 类似,不过之前的对话会被总结为一个 summary 加在 prompt 中ConversationBufferWindowMemory:在 ConversationBufferMemory 模式基础上加个滑窗,即只加入最近几次对话的记录,避免 memory buffer 过大ConversationSummaryBufferMemory:结合以上两种方式,将之前的对话总结为一个 summary 加在 prompt 中,同时会设置一个 prompt 最大词汇数量,超过该词汇数量的时候会抛弃更早的对话来使 prompt 的词汇数量符合要求

更高级的 memory 使用方式

Adding Memory to a Multi-Input Chain:主要用于 QA 任务,用一个语料库作为 memory,对于输入的 prompt,找到与该 prompt 类似的信息加在 prompt 中,从而能利用上语料库中的信息Adding Memory to an Agent:对于具备 google 搜索功能的 Agent,可以将对话历史记录到 memory 中,从而能让 Agent 对某些与之前历史结合的对话理解更准确总结LangChain 基于 OPENAI 的 GPT3 等大语言模型设计一系列便于集成到实际应用中的接口,降低了在实际场景中部署大语言模型的难度
本文链接地址:https://www.jiuchutong.com/zhishi/299861.html 转载请保留说明!

上一篇:vue中的provide/inject你知道吗(vue2、vue3)?(vue中的路由参数如何获取)

下一篇:立体匹配入门指南(8):视差图、深度图、点云(立体匹配原理)

  • 京东账单在哪里看(京东账单明细怎么看)

    京东账单在哪里看(京东账单明细怎么看)

  • 怎么在wps上贴照片(怎么在wps上贴照片然后在照片上打字)

    怎么在wps上贴照片(怎么在wps上贴照片然后在照片上打字)

  • 红米10x和10xpro区别(红米10x 和10xpro)

    红米10x和10xpro区别(红米10x 和10xpro)

  • 平板4g和6g运行有什么区别(平板6gb和4gb运行有什么区别)

    平板4g和6g运行有什么区别(平板6gb和4gb运行有什么区别)

  • Pr是什么剪辑(pr剪辑视频教程)

    Pr是什么剪辑(pr剪辑视频教程)

  • 手机正确的充电方式(手机正确的充电顺序)

    手机正确的充电方式(手机正确的充电顺序)

  • 华为手机怎样设置定时开关机(华为手机怎样设置铃声)

    华为手机怎样设置定时开关机(华为手机怎样设置铃声)

  • 一个企业可以认证几个抖音号(一个企业可以认证几个小红书)

    一个企业可以认证几个抖音号(一个企业可以认证几个小红书)

  • 网络显示拒绝接入是什么意思(网络显示拒绝接入网络)

    网络显示拒绝接入是什么意思(网络显示拒绝接入网络)

  • gf940m显卡是什么水平(gf9400m显卡)

    gf940m显卡是什么水平(gf9400m显卡)

  • 小米10第一次充电要充多久(小米10第一次充电需要注意什么)

    小米10第一次充电要充多久(小米10第一次充电需要注意什么)

  • 在计算机系统中硬件的核心是(在计算机系统中任何外部设备都必须通过)

    在计算机系统中硬件的核心是(在计算机系统中任何外部设备都必须通过)

  • 淘宝app怎么撤回投诉(手机淘宝怎么撤回订单)

    淘宝app怎么撤回投诉(手机淘宝怎么撤回订单)

  • 怎样判断qq对方拉黑(怎样判断qq对方屏蔽)

    怎样判断qq对方拉黑(怎样判断qq对方屏蔽)

  • 浏览器的兼容模式在哪(浏览器的兼容模式和极速模式有什么区别)

    浏览器的兼容模式在哪(浏览器的兼容模式和极速模式有什么区别)

  • 快手极速版绑定手机号安全吗(快手极速版绑定微信安全吗?)

    快手极速版绑定手机号安全吗(快手极速版绑定微信安全吗?)

  • 小米收音机在哪(小米收音机在哪个系统文件夹里)

    小米收音机在哪(小米收音机在哪个系统文件夹里)

  • 手机上如何修改qq密码(手机上如何修改文件名称)

    手机上如何修改qq密码(手机上如何修改文件名称)

  • 二维码收款码怎么申请(二维码收款码怎么变成商家码)

    二维码收款码怎么申请(二维码收款码怎么变成商家码)

  • ipad怎么同步相册(ipad怎样同步iphone照片)

    ipad怎么同步相册(ipad怎样同步iphone照片)

  • 金蝶软件使用方法(金蝶软件使用方法及步骤)

    金蝶软件使用方法(金蝶软件使用方法及步骤)

  • 支付宝有夜间模式吗(支付宝有夜间模式)

    支付宝有夜间模式吗(支付宝有夜间模式)

  • 2016111是什么型号(小米2016112是什么型号)

    2016111是什么型号(小米2016112是什么型号)

  • duilib丢失怎么办(duilib.dill丢失)

    duilib丢失怎么办(duilib.dill丢失)

  • jovi智慧场景怎么关闭(jovi智慧场景怎么设置在桌面)

    jovi智慧场景怎么关闭(jovi智慧场景怎么设置在桌面)

  • Broken Pipe问题及其解决(broken pipe write failed)

    Broken Pipe问题及其解决(broken pipe write failed)

  • 纳税人期末存货怎么结转
  • 税款征收方式是指
  • 买材料通过公司走账合法吗
  • 工资怎么扣费
  • 分公司可以独立签约吗
  • 其他应收款增加银行存款减少的原因
  • 其他收益属于什么类
  • 现金流量表抵消分录
  • 第一次购买税控盘
  • 企业缴纳增值税后还需缴纳所得税吗
  • 厂家试驾车和经销商试驾车
  • 房地产企业营销设施建造费包括哪些
  • 一般纳税人只交进项税吗
  • 应交税金审计
  • 报关单上金额要和合同上一样吗
  • 企业所得税预缴可以不交吗
  • 增值税预交款怎么算
  • 房租费简易征收税率
  • 公司向个人租车协议范本
  • 机械租赁费如何入账科目
  • 公司按揭购车
  • 一般企业利润表格式
  • 员工交通费报销标准
  • windows10如何设置密码
  • 企业收到农产品普通发票
  • 计提的跌价准备销售时怎么处理
  • 给供应商垫付运费合法吗
  • windows11关机键怎么设置经典菜单
  • 为员工租房租金怎么入账
  • win10通讯
  • 票据贴现办法
  • 企业重组并购条件
  • php接收数据的方法
  • php reference
  • 营改增通俗
  • 微信小程序计算器代码
  • php array add
  • 对公打款打错了
  • 这是我见过最牛的人英语
  • imu定位
  • 购进免税农产品进项税额转出
  • 事业收入如何确认
  • 小规模纳税人附加税会计分录
  • 实收资本退回给股东需要交印花税吗
  • python中的装饰器的使用实战
  • 生产车间的辅助记录
  • 房地产企业样板间装修费账务处理
  • 合营企业和联营企业构成关联方吗
  • 个税出现负数是什么意思
  • 公司不注销会坐牢吗
  • 基本户收到零余额转款怎么做分录
  • 固定资产以提足金为准吗
  • 公司注销时应付账款怎么处理
  • 同一客户有应收应付可以相互抵消吗
  • 申报系统中印花税报表怎么填
  • 电子银行承兑汇票怎么签收
  • 机票的电子发票可以报销吗
  • 未取得发票的固定资产入账规定
  • mysql索引类型及原理
  • 史上最全的mysql基础教程
  • linux如何读
  • centos 文件管理
  • ubuntu开机黑屏无法进入登录界面
  • 如何创建mac系统安装盘
  • win内存占用率过高
  • 在windowsxp的应用程序中,经常有一些菜单选项呈暗灰色
  • unix2dos linux实现
  • webuploader使用教程
  • 从零开始学什么
  • python的iloc
  • javascript总结
  • javascript编程语言
  • jquery课程内容总结
  • python文件遍历
  • 福建省个人所得税税率表查询
  • 计税核定价是什么
  • 扣缴义务人怎么改不过来呢
  • 北京增值税普通发票图片
  • 卷式发票如何查验真伪
  • 烟叶税的意义和感悟
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

    网站地图: 企业信息 工商信息 财税知识 网络常识 编程技术

    友情链接: 武汉网站建设