位置: 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):视差图、深度图、点云(立体匹配原理)

  • qq发文件夹必须要压缩吗(扣扣发送文件夹需要对方在线嘛)

    qq发文件夹必须要压缩吗(扣扣发送文件夹需要对方在线嘛)

  • 苹果13能装几张手机卡(苹果14plus多大尺寸)

    苹果13能装几张手机卡(苹果14plus多大尺寸)

  • 华为屏幕录制怎么去掉那个小点(华为屏幕录制怎么关闭)

    华为屏幕录制怎么去掉那个小点(华为屏幕录制怎么关闭)

  • 罗马仕充电宝灯不亮(罗马仕充电宝灯一直亮怎么办)

    罗马仕充电宝灯不亮(罗马仕充电宝灯一直亮怎么办)

  • 微信免流量的手机卡(微信免流量的手机卡移动)

    微信免流量的手机卡(微信免流量的手机卡移动)

  • 实现音频信号数字化最核心的硬件电路是(实现音频信号数字化最核心的硬件电路是AD转换器)

    实现音频信号数字化最核心的硬件电路是(实现音频信号数字化最核心的硬件电路是AD转换器)

  • 苹果换过屏幕有影响吗(苹果换过屏幕有原彩显示怎回事)

    苹果换过屏幕有影响吗(苹果换过屏幕有原彩显示怎回事)

  • 微信备注字数限制能改吗(微信备注有字数限制吗)

    微信备注字数限制能改吗(微信备注有字数限制吗)

  • 微信封号是不是不能用了(微信封号是不是收不到朋友发的信息)

    微信封号是不是不能用了(微信封号是不是收不到朋友发的信息)

  • pci设备是什么(pci设备有哪些)

    pci设备是什么(pci设备有哪些)

  • 爱奇艺不支持ios录屏版权(爱奇艺不支持ios录屏怎么关闭)

    爱奇艺不支持ios录屏版权(爱奇艺不支持ios录屏怎么关闭)

  • freebuds3与苹果适配吗(freebuds3和苹果)

    freebuds3与苹果适配吗(freebuds3和苹果)

  • 快手涉及A类还能解封吗(快手a类违规永久封号怎么解封)

    快手涉及A类还能解封吗(快手a类违规永久封号怎么解封)

  • 手机dxo是什么意思(手机dx是什么意思)

    手机dxo是什么意思(手机dx是什么意思)

  • f9键的作用(excelf9键的作用)

    f9键的作用(excelf9键的作用)

  • 华为小助手叫什么名字(你知道华为的小助手是谁吗)

    华为小助手叫什么名字(你知道华为的小助手是谁吗)

  • 苹果用美图秀秀总是显示无网络(苹果用美图秀秀容易糊)

    苹果用美图秀秀总是显示无网络(苹果用美图秀秀容易糊)

  • gtx1650用300w电源可以吗

    gtx1650用300w电源可以吗

  • 港版a1661是全网通吗(港版a1865)

    港版a1661是全网通吗(港版a1865)

  • word文档分割线怎么弄(word文档分割线怎么加)

    word文档分割线怎么弄(word文档分割线怎么加)

  • 华为保时捷mate30什么时候上市

    华为保时捷mate30什么时候上市

  • oppox5是双卡双待么(oppox5是双卡双待吗)

    oppox5是双卡双待么(oppox5是双卡双待吗)

  • 趣步怎么不能置换了(趣步怎么了)

    趣步怎么不能置换了(趣步怎么了)

  • 苹果11有呼吸灯提示吗(苹果11有呼吸灯闪烁吗)

    苹果11有呼吸灯提示吗(苹果11有呼吸灯闪烁吗)

  • 苹果11抬头灯怎么开启(苹果抬头灯怎么弄)

    苹果11抬头灯怎么开启(苹果抬头灯怎么弄)

  • 接听对方电话怎么录音(接听对方电话怎么关闭)

    接听对方电话怎么录音(接听对方电话怎么关闭)

  • 怎么获得最新的windows10产品密钥/神key/永久数字激活码 附激活工具(怎么获得2021)

    怎么获得最新的windows10产品密钥/神key/永久数字激活码 附激活工具(怎么获得2021)

  • 一般纳税人暂未开具发票
  • 房地产企业样板间装修费计入什么科目
  • 房地产企业年报台账怎么填
  • 贷款公司是怎么贷款的
  • 其他权益投资公允价值变动怎么计量
  • 房产税和城市房地产税
  • 现金日记账根据哪些凭证登记
  • 现金流管理模式
  • 税务退税会计分录
  • 货运代理公司会计涉及的科目
  • 抵押贷款评估费用标准
  • 个人所得税是否分段计算
  • 员工异地交纳保险怎么交
  • 发票票种核定怎么提交
  • 公司的差旅费
  • 基础年收入是什么意思
  • 投资收益税前扣除标准
  • 年利率的计算公式(免利息税)
  • 城建税是增值税的附加税吗
  • 手机压缩包损坏怎么修复
  • IE浏览器如何取消全屏
  • 苹果mac双系统按住哪个键
  • 水利工程水费怎样计算
  • 房产公司财务工作内容
  • 股东分担债务
  • 辅导期一般纳税人可以抵扣进项吗
  • 交通费补贴算工资吗?
  • 如何防范增值税的税收风险
  • yolov5损失
  • 投资企业撤回或减少投资企业所得税
  • 固定资产清理的累计折旧怎么算
  • 离职赔偿金计入什么费用
  • 高新企业技术服务成本核算
  • 在vue中如果computed属性是一个异步操作怎么办?
  • php实现留言板功能
  • 员工工资扣工作服合法吗?
  • 租赁收入确认时点
  • 微信小程序开发公司
  • php技术
  • 上月增值税报表还可以更正吗
  • 海关缴款书能重开吗
  • 印花税的缴税对象是
  • 合伙企业分红怎么做账
  • 税金及附加算什么
  • 实物投资入股
  • 家具厂成本
  • 第一次建账要填期初余额吗
  • 借款可以抵扣企业所得税
  • 固定资产超过多少入账
  • 带息票据贴现账务处理
  • 小规模纳税人采用简易计税方法征收增值税
  • 缴纳上月附加税怎么做分录
  • 私人贴现利息如何交税
  • 小规模升级一般纳税人有什么好处
  • 其他综合收益包括留存收益吗
  • win81蓝屏重启故障
  • win10好几个操作系统
  • 微软推出windows1
  • linux 桌面系统
  • linux添加新硬盘后网卡无法启动
  • linux 中断 处理
  • 自动隐藏桌面图标
  • cs1.6 linux
  • win8文件夹打不开
  • jquery解析json数据
  • unity3d跨平台
  • 用python模拟用户登录
  • 安卓修改udid
  • 现在的微信怎么用脚本登陆了
  • 实现非常简单的英文
  • javascript编程软件
  • js实现物体移动
  • ajax与java使用实例
  • js给input添加属性
  • Python实现类似jQuery使用中的链式调用的示例
  • 主管税务机关指的是
  • 上海42年工龄退休有没有补充养老金呢
  • 收入较去年同期增长怎么算
  • 房产税是按套还是按套
  • 2016年营改增房屋租赁
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

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

    友情链接: 武汉网站建设