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

  • 电脑管家怎么修复dll文件(电脑管家怎么修改下载路径)

    电脑管家怎么修复dll文件(电脑管家怎么修改下载路径)

  • 开启手机定位权限怎么设置(开启手机定位权限是什么意思)

    开启手机定位权限怎么设置(开启手机定位权限是什么意思)

  • 红米note8能升级miui12吗(红米note8能升级miui14吗)

    红米note8能升级miui12吗(红米note8能升级miui14吗)

  • 电脑快捷键全部失效(电脑快捷键全部用不了了)

    电脑快捷键全部失效(电脑快捷键全部用不了了)

  • 微信来源朋友验证消息是从哪里加的(微信来源朋友验证消息是通过什么方式添加的)

    微信来源朋友验证消息是从哪里加的(微信来源朋友验证消息是通过什么方式添加的)

  • 快手本地作品突然不见了怎么回事(快手本地作品突然不见了)

    快手本地作品突然不见了怎么回事(快手本地作品突然不见了)

  • 快手直播怎么清屏(快手直播怎么清除屏幕上的字幕)

    快手直播怎么清屏(快手直播怎么清除屏幕上的字幕)

  • 笔记本电脑自带wifi吗(笔记本电脑自带WiFi吗)

    笔记本电脑自带wifi吗(笔记本电脑自带WiFi吗)

  • 表格打开是灰色空白(表格打开是灰色怎么调)

    表格打开是灰色空白(表格打开是灰色怎么调)

  • 钉钉视频通话要钱吗

    钉钉视频通话要钱吗

  • 华为手机拍照不清晰(华为手机拍照不好看怎么调)

    华为手机拍照不清晰(华为手机拍照不好看怎么调)

  • 华为matex支持无线充电吗

    华为matex支持无线充电吗

  • 显示手机在线啥意思(手机显示在线是什么意思)

    显示手机在线啥意思(手机显示在线是什么意思)

  • 如何跨列居中(跨列居中excel)

    如何跨列居中(跨列居中excel)

  • 手机qq怎么换气泡(手机qq怎样切换qq号码)

    手机qq怎么换气泡(手机qq怎样切换qq号码)

  • 手机返回键不好使怎么办(手机返回键怎么调出来)

    手机返回键不好使怎么办(手机返回键怎么调出来)

  • vsco怎么取消付费订阅(vsco自动扣款怎么退)

    vsco怎么取消付费订阅(vsco自动扣款怎么退)

  • 怎么阻止网络电话来电(怎么阻止网络电话打进来)

    怎么阻止网络电话来电(怎么阻止网络电话打进来)

  • win10怎么录屏(电脑win10怎么录屏)

    win10怎么录屏(电脑win10怎么录屏)

  • 三星s9支持分屏吗(三星s9手机分屏功能怎么用)

    三星s9支持分屏吗(三星s9手机分屏功能怎么用)

  • 谷歌地图app怎么设置中文(谷歌地图app怎么看街景图)

    谷歌地图app怎么设置中文(谷歌地图app怎么看街景图)

  • 拍风景用多大光圈(风景用多少光圈)

    拍风景用多大光圈(风景用多少光圈)

  • 怎么用winpe安装win7 iso?使用winpe装win7 iso系统的方法详细图文教程(怎么用winpe安装系统)

    怎么用winpe安装win7 iso?使用winpe装win7 iso系统的方法详细图文教程(怎么用winpe安装系统)

  • 关于Mac OS X5个屏幕截图功能使用介绍(imac 5k屏幕参数)

    关于Mac OS X5个屏幕截图功能使用介绍(imac 5k屏幕参数)

  • 苏门答腊海岸正在喷发的喀拉喀托火山,印度尼西亚 (© Martin Rietze/Alamy)(苏门答腊岛海岸线多少)

    苏门答腊海岸正在喷发的喀拉喀托火山,印度尼西亚 (© Martin Rietze/Alamy)(苏门答腊岛海岸线多少)

  • CLIP模型(CLIP模型原理)

    CLIP模型(CLIP模型原理)

  • 汇算清缴补交所得税怎么做凭证
  • 个人经营所得税减免税优惠政策
  • 工程物资什么时候结转到开发成本里面
  • 网络贷款需要缴纳保证金吗
  • 消费税为什么要计入成本
  • 对公账户发工资怎么操作
  • 公司组织运动会后的感想
  • 个人如何对公账户汇款
  • 工资表领导签字怎么签
  • 个体户一直零申报会不会罚款
  • 进口货物需要交哪些税
  • 现金支票 差旅费
  • 公司账户转账转错了能退回来吗
  • 现金不够怎么办
  • 换汇成本跟进项有关系吗
  • 所得税汇算清缴调整项目
  • 增值税抵扣期限多少天
  • 企业所得税月交还是年交
  • 印花税按次申报怎么报
  • 我们4月10日
  • 总资产周转率ttm
  • 研发人员的社保可以加计扣除吗
  • 高新企业研发投入后产出增加
  • 可以背书转让的公司
  • 三代税款手续费是什么意思
  • 所得税汇算清缴截止日期
  • 税前扣除是好事吗
  • 工资薪金所得税前扣除项目标准
  • 机器用油怎么做成的
  • macos新版本
  • 其他综合收益和其他收益的区别
  • 对公帐户定期存款利率
  • web前端开发学什么
  • 航天金税盘发票作废流程视频
  • open是什么含义
  • php 压缩文件
  • 什么情况可以行政拘留不予执行
  • 为什么计入资本公积
  • 发票报销可以跨年吗
  • 弃置费用预计负债的摊余成本
  • 银行存款存款单丢了怎么办
  • 策划费多少钱
  • 出口商品没有发票可以入收入吗
  • 政府专项补贴税收
  • Switch Between Gnome And KDE Desktops In Ubuntu Or Kubuntu
  • mysql 使用索引
  • 事务所的账务处理
  • 资产减值损失包括什么
  • 调转会计证需要什么资料
  • 商业一般纳税人辅导期截止时间
  • 水库水面经营权如何取得
  • 印花税的征收方式有哪些
  • 非盈利组织接受劳务捐赠怎么入账
  • 销售补偿法
  • a公司持有b公司
  • 未发生账务类交易
  • 一般纳税人的税负率是多少
  • 加计扣除是指什么意思
  • 电影赠票怎么用
  • 公益性捐赠要确认递延吗
  • 股东注入资金转出股权
  • 工程担保属于什么
  • 收到政策性搬迁短信
  • 营业外支出明细科目有哪些
  • 新开办企业如何建账
  • sqlserver合并脚本工具
  • SQLServer XML数据的五种基本操作
  • 配置windows server essentials出错
  • ubuntu安装lamp
  • win8设置宽带连接
  • 关于模型视图变化的说法
  • js创建元素
  • 安卓工程如何正常启动
  • unity3d怎么用
  • websocket npm
  • django返回json数据
  • 整理的什么
  • 成都市武侯区地址
  • 银行前置利息什么意思
  • 临汾的公司需要交社保吗
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

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

    友情链接: 武汉网站建设