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

  • 抖音扣钱了在哪里查询(抖音app扣费是怎么找回)

    抖音扣钱了在哪里查询(抖音app扣费是怎么找回)

  • 华为p30出现一个圆圈怎么取消(华为P30出现一个白点)

    华为p30出现一个圆圈怎么取消(华为P30出现一个白点)

  • 计算机上的ac是什么键(计算机上的ac是干嘛的)

    计算机上的ac是什么键(计算机上的ac是干嘛的)

  • QQ健康系统实名认证修改为什么不符合条件

    QQ健康系统实名认证修改为什么不符合条件

  • i3 2350m什么水平(i3 2350m性能怎么样)

    i3 2350m什么水平(i3 2350m性能怎么样)

  • 微星进bios按哪个键(微星进去bios按什么键)

    微星进bios按哪个键(微星进去bios按什么键)

  • oppo外放不出声音(oppor15外音放不出来)

    oppo外放不出声音(oppor15外音放不出来)

  • 华为手机忘了密码怎么解(华为手机忘了密码怎么解锁)

    华为手机忘了密码怎么解(华为手机忘了密码怎么解锁)

  • 华为手机死机无法开机(华为手机死机无法启动)

    华为手机死机无法开机(华为手机死机无法启动)

  • 安卓7.0以上的手机有哪些(安卓7.1以上的手机有哪些)

    安卓7.0以上的手机有哪些(安卓7.1以上的手机有哪些)

  • 快手涨粉丝有什么用(快手涨粉丝能挣钱吗)

    快手涨粉丝有什么用(快手涨粉丝能挣钱吗)

  • vivo在哪里设置兼容性(一键锁屏vivo在哪里设置)

    vivo在哪里设置兼容性(一键锁屏vivo在哪里设置)

  • word怎么删除格式标记(word怎么删除格子里的内容)

    word怎么删除格式标记(word怎么删除格子里的内容)

  • 苹果手机怎么安装小红书(苹果手机怎么安装卡)

    苹果手机怎么安装小红书(苹果手机怎么安装卡)

  • 小米9pro怎么禁止锁屏时状态栏下拉(小米九怎么禁止软件下载应用)

    小米9pro怎么禁止锁屏时状态栏下拉(小米九怎么禁止软件下载应用)

  • 微信怎么停止二维码收款(微信怎么停止二维码收款功能)

    微信怎么停止二维码收款(微信怎么停止二维码收款功能)

  • 苹果xr是第几代产品(xr是苹果几代)

    苹果xr是第几代产品(xr是苹果几代)

  • 如何确定手机主板坏了(如何确定手机主号副号)

    如何确定手机主板坏了(如何确定手机主号副号)

  • 华为p30pro上市时间(华为p30pro上市时间及上市日期)

    华为p30pro上市时间(华为p30pro上市时间及上市日期)

  • 什么是带有pe功能的u盘(pe表示什么功率怎么计算)

    什么是带有pe功能的u盘(pe表示什么功率怎么计算)

  • 怎样看浏览器是ie几(怎样看浏览器是不是ie8)

    怎样看浏览器是ie几(怎样看浏览器是不是ie8)

  • 微信个人年龄在那里改(微信个人年龄在哪里设置)

    微信个人年龄在那里改(微信个人年龄在哪里设置)

  • 智慧短信是什么(发短信显示智慧短信)

    智慧短信是什么(发短信显示智慧短信)

  • 快启动怎么安装xp系统 快启动U盘装xp系统图文教程(快启动u盘装系统教程)

    快启动怎么安装xp系统 快启动U盘装xp系统图文教程(快启动u盘装系统教程)

  • 阿里入局,通义千问备受期待(阿里什么)

    阿里入局,通义千问备受期待(阿里什么)

  • php中的四种标量类型(写出php的常用四种基本变量类型)

    php中的四种标量类型(写出php的常用四种基本变量类型)

  • 增值税结转会计科目
  • 公司的纳税人识别号怎么查询
  • 发票收款人和复核没写可以用吗
  • 丢失增值税发票已报税证明单怎么开
  • u8已记账怎么修改年初余额
  • 空白增值税报表在哪下载
  • 收到进度款开票如何做账务处理合适呢?
  • 支付开票税款计入什么科目
  • 开公司财务流程
  • 河道维护中心职责
  • 通讯费要计入应付账款吗
  • 施工企业开专票还是开普票好
  • 增值税滞留票产生的原因及处理办法
  • 增值税发票提示文件不匹配
  • 会计案例分析题万能模板
  • 小规模纳税人增值税超过30万怎么纳税
  • 商贸公司购买货物会计分录
  • 小规模免征增值税政策
  • 生产企业出口发票数量开错有什么影响
  • 安装设备用的材料计入什么科目
  • 下雨被水淹
  • 税控盘管理费会计分录
  • 非正常损失含义
  • php查找文件目录下文件
  • Linux Mint Cinnamon中安装MATE桌面详细步骤
  • windows 11硬件
  • 工程事故赔偿协议书怎么写
  • 防伪税控风险纳税人
  • 工程资金占用费的法律依据
  • 长期借款账务处理会计分录怎么写
  • thinkphp怎么用
  • linux0.11编译
  • 电子客票行程单怎么获取
  • 利润表中其他收益是什么
  • 其他免税销售额怎么算
  • 住宿费记入管理费用还是营业费
  • phpcms怎么用
  • 合作卖东西怎么分成
  • 进口税 增值税
  • 工程公司的材料员考试难吗
  • 免税农产品范围目录的文件
  • 税前列支的项目
  • 总资产增长率的定义
  • 购买固定资产用什么凭证
  • 亏损企业对外捐赠的税前扣除
  • 外出经营一定要开
  • 健身器材折旧年限及计提办法
  • 存货呆滞的原因及处理表格
  • 应交税金-应交增值税明细账
  • 私人借款条怎么写合法
  • 补缴增值税的会计处理
  • 退多收的费用计入什么科目
  • 自己开发建造的房屋
  • 建筑服务的税率是
  • 计提坏账准备的会计分录
  • 事业单位的在建工程包括
  • 企业共同控制持股比例怎么算
  • 锁mysql
  • 有备而来有备而去
  • linux开机启动ftp
  • xp系统的电脑无法启动
  • ubuntu20.10桌面
  • WIN7系统如何设置表格默认保存位置
  • vim 多窗口启动以及相互切换
  • linux无法登陆
  • win10周年版
  • win7开机提示音在哪里关闭
  • linux使用范围
  • win7怎么更改系统字体大小
  • nodejs后端教程
  • nodejs爬虫模拟浏览器
  • js函数详解
  • 置顶语句子
  • js操作对象的方法
  • javascript面向对象编程
  • 电力行业增值税管理办法
  • 专项附加扣除可以退多少钱
  • 小规模纳税人的开票
  • 进项税跨月转出
  • 甘肃省35条措施的内容是什么
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

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

    友情链接: 武汉网站建设