LangChain+LLM被低估的few shot魔法

本文涉及的产品
阿里云百炼推荐规格 ADB PostgreSQL,4核16GB 100GB 1个月
简介: from:https://www.langchain.cn/t/topic/18/1GPT-base的LLM,相对与前LLM时代,比如bert,RNN时代,最典型的能力是跨领域泛化,在全新的未知领域会收获比后两者更强的能力。但是,回归到算法任务本身,是小样本任务能力的体现。换句话说:虽然LLM已经学到了很多知识,但是我们如果使用足够聪明的shot 作为当前任务的上文,可以极大地发挥LLM的能力。

from:https://www.langchain.cn/t/topic/18/1
GPT-base的LLM,相对与前LLM时代,比如bert,RNN时代,最典型的能力是跨领域泛化,在全新的未知领域会收获比后两者更强的能力。但是,回归到算法任务本身,是小样本任务能力的体现。换句话说:虽然LLM已经学到了很多知识,但是我们如果使用足够聪明的shot 作为当前任务的上文,可以极大地发挥LLM的能力。

fine-tune(监督模型微调)输入输出,如果不是同领域的模型,则不存在适应的可能性。
fine-tune(监督模型微调)输入输出,如果不是同领域的模型,则不存在适应的可能性。
情感分类模型:标签空间(积极/消极/中性)

输入:小哥哥,来跟我一起玩呀
输出:积极
有毒评论分类模型:标签空间(有毒/无毒)

输入:小哥哥,来跟我一起玩呀
输出:无毒
而针对小样本的效果,则可以通过增加上文(prompt),在推理阶段自定义跨领域的任务
few-shot 输入(注意观察,只有最后一句是我们要预测的内容,上面的6行都是prompt,其中第一行prompt指定了任务类别)

情绪分类:
小哥哥我今天不开心->消极
小哥哥真好->积极
小哥哥你吃饭了吗?->中性
啊啊啊小哥哥我摔到了->消极
小哥哥,天气不错呢->积极
小哥哥,来跟我一起玩呀->
chatgpt 输出:

积极
one-shot 输入:

情绪分类:
啊啊啊小哥哥我摔到了->消极
小哥哥,来跟我一起玩呀->
chatgpt 输出:

积极
zero-shot 输入:

情绪分类:
小哥哥,来跟我一起玩呀
chatgpt 输出:

情绪分类: 开心/友善
充足的prompt,会让输出限制在我们需要的值域(积极/消极/中性),上面的案例中,哪怕只有一个样例,也会胜于没有,实际使用中,可以通过这种方式构造更多的样例来提升ChatGPT的精度。

同时,如果采用Bloom,LLAMA,ChatGLM之类的模型,可以参考预训练阶段的数据组成结构,四两拨千斤。

如果需要背景知识来打样,可以选择LangChain
我们可以看一下文档中的可以外挂的列表

名称 描述
Apify 一个网络爬虫和自动化工具的平台
Arxiv API arXiv预印本数据库的API
Bash 一种Linux和Unix操作系统的命令行语言
Bing Search 微软的搜索引擎
ChatGPT Plugins ChatGPT模型的插件,提供额外的功能和定制化选项
DuckDuckGo Search 一个隐私保护的搜索引擎
Google Places Google提供的本地商家信息的服务
Google Search Google的搜索引擎
Google Serper API Google搜索结果的API
Gradio Tools 一个用于构建和部署自定义机器学习应用程序的开源工具
Human as a tool 将人的智力作为工具来解决问题
IFTTT WebHooks 一个可以将应用程序和设备连接起来的自动化服务
OpenWeatherMap API 提供全球天气预报和历史数据的API
Python REPL Python的交互式解释器
Requests 一个Python库,用于向Web服务器发出HTTP请求并获取响应
Search Tools 用于在互联网上搜索信息的工具
SearxNG Search API 一个元搜索引擎的API,可以从多个搜索引擎收集结果
SerpAPI 提供各种搜索引擎的搜索结果的API
Wikipedia API 提供维基百科内容的API
Wolfram Alpha 一个基于自然语言理解的计算知识引擎,可回答各种问题和计算结果
Zapier Natural Language Actixin 可以访问Zapier平台上的5,000多个应用程序和20,000多个操作
结合官方案例,简单用Google Serper 做一下演示:
安装

!pip install langchain
!pip install openai
!pip install google-search-results
运行

import os
from langchain.agents import load_tools
from langchain.agents import initialize_agent
from langchain.agents import AgentType
from langchain.llms import OpenAI

os.environ["OPENAI_API_KEY"] = "xxxx" # 隐藏
os.environ["SERPAPI_API_KEY"] = "xxx"

First, let's load the language model we're going to use to control the agent.

llm = OpenAI(temperature=0)

Next, let's load some tools to use. Note that the llm-math tool uses an LLM, so we need to pass that in.

tools = load_tools(["serpapi", "llm-math"], llm=llm)

Finally, let's initialize an agent with the tools, the language model, and the type of agent we want to use.

agent = initialize_agent(tools, llm, agent=AgentType.ZERO_SHOT_REACT_DESCRIPTION, verbose=True)

Now let's test it out!

agent.run("现在深圳的气温是多少摄氏度?")
输出:

Entering new AgentExecutor chain...
I need to find out the current temperature in Shenzhen.
Action: Search
Action Input: "Current temperature in Shenzhen"TodayHourly14 DaysPastClimate. Currently: 75 °F. Passing clouds. (Weather station: Shenzhen Airport, China). See more current weather. I now know the final answer
Final Answer: 75 °F

Finished chain.
75 °F
这样就完成了一个实时的天气播报助手,当然,你也可以问比特币的实时价格。

我们分析一下整个流程:

中文输入:现在深圳的气温是多少摄氏度?

英文翻译:I need to find out the current temperature in Shenzhen.

Google Serper API 输入:I need to find out the current temperature in Shenzhen.

搜索结果(Google Serper ,不是google-search)

经过模型的翻译和搜索引擎的补充,生成完整输入(包含prompt):

I need to find out the current temperature in Shenzhen.
Action: Search
Action Input: "Current temperature in Shenzhen"TodayHourly14 DaysPastClimate. Currently: 75 °F. Passing clouds. (Weather station: Shenzhen Airport, China). See more current weather. I now know the final answer
Final Answer:
LLM输出:

75 °F

相关实践学习
阿里云百炼xAnalyticDB PostgreSQL构建AIGC应用
通过该实验体验在阿里云百炼中构建企业专属知识库构建及应用全流程。同时体验使用ADB-PG向量检索引擎提供专属安全存储,保障企业数据隐私安全。
AnalyticDB PostgreSQL 企业智能数据中台:一站式管理数据服务资产
企业在数据仓库之上可构建丰富的数据服务用以支持数据应用及业务场景;ADB PG推出全新企业智能数据平台,用以帮助用户一站式的管理企业数据服务资产,包括创建, 管理,探索, 监控等; 助力企业在现有平台之上快速构建起数据服务资产体系
目录
相关文章
|
2月前
|
前端开发 机器人 API
前端大模型入门(一):用 js+langchain 构建基于 LLM 的应用
本文介绍了大语言模型(LLM)的HTTP API流式调用机制及其在前端的实现方法。通过流式调用,服务器可以逐步发送生成的文本内容,前端则实时处理并展示这些数据块,从而提升用户体验和实时性。文章详细讲解了如何使用`fetch`发起流式请求、处理响应流数据、逐步更新界面、处理中断和错误,以及优化用户交互。流式调用特别适用于聊天机器人、搜索建议等应用场景,能够显著减少用户的等待时间,增强交互性。
333 2
|
26天前
|
JSON 数据可视化 NoSQL
基于LLM Graph Transformer的知识图谱构建技术研究:LangChain框架下转换机制实践
本文介绍了LangChain的LLM Graph Transformer框架,探讨了文本到图谱转换的双模式实现机制。基于工具的模式利用结构化输出和函数调用,简化了提示工程并支持属性提取;基于提示的模式则为不支持工具调用的模型提供了备选方案。通过精确定义图谱模式(包括节点类型、关系类型及其约束),显著提升了提取结果的一致性和可靠性。LLM Graph Transformer为非结构化数据的结构化表示提供了可靠的技术方案,支持RAG应用和复杂查询处理。
77 2
基于LLM Graph Transformer的知识图谱构建技术研究:LangChain框架下转换机制实践
|
5月前
|
自然语言处理 API 开发工具
初识langchain:LLM大模型+Langchain实战[qwen2.1、GLM-4]+Prompt工程
【7月更文挑战第6天】初识langchain:LLM大模型+Langchain实战[qwen2.1、GLM-4]+Prompt工程
初识langchain:LLM大模型+Langchain实战[qwen2.1、GLM-4]+Prompt工程
|
6月前
|
存储 人工智能 自然语言处理
LangChain让LLM带上记忆
最近两年,我们见识了“百模大战”,领略到了大型语言模型(LLM)的风采,但它们也存在一个显著的缺陷:没有记忆。在对话中,无法记住上下文的 LLM 常常会让用户感到困扰。本文探讨如何利用 LangChain,快速为 LLM 添加记忆能力,提升对话体验。
49829 7
LangChain让LLM带上记忆
|
4月前
|
JSON Go 数据格式
langchain 入门指南 - 让 LLM 自动选择不同的 Prompt
langchain 入门指南 - 让 LLM 自动选择不同的 Prompt
94 0
|
6月前
|
存储 人工智能 机器人
LangChain结合LLM做私有化文档搜索
我们知道LLM(大语言模型)的底模是基于已经过期的公开数据训练出来的,对于新的知识或者私有化的数据LLM一般无法作答,此时LLM会出现“幻觉”。针对“幻觉”问题,一般的解决方案是采用RAG做检索增强。
LangChain结合LLM做私有化文档搜索
|
7月前
|
机器学习/深度学习 人工智能
【LangChain系列】第九篇:LLM 应用评估简介及实践
【5月更文挑战第23天】本文探讨了如何评估复杂且精密的语言模型(LLMs)应用。通过创建QA应用程序,如使用GPT-3.5-Turbo模型,然后构建测试数据,包括手动创建和使用LLM生成示例。接着,通过手动评估、调试及LLM辅助评估来衡量性能。手动评估借助langchain.debug工具提供执行细节,而QAEvalChain则利用LLM的语义理解能力进行评分。这些方法有助于优化和提升LLM应用程序的准确性和效率。
561 8
|
7月前
|
Shell Android开发
Android系统 adb shell push/pull 禁止特定文件
Android系统 adb shell push/pull 禁止特定文件
558 1
|
7月前
|
Android开发 Python
Python封装ADB获取Android设备wifi地址的方法
Python封装ADB获取Android设备wifi地址的方法
155 0
|
4月前
|
Shell Linux 开发工具
"开发者的救星:揭秘如何用adb神器征服Android设备,开启高效调试之旅!"
【8月更文挑战第20天】Android Debug Bridge (adb) 是 Android 开发者必备工具,用于实现计算机与 Android 设备间通讯,执行调试及命令操作。adb 提供了丰富的命令行接口,覆盖从基础设备管理到复杂系统操作的需求。本文详细介绍 adb 的安装配置流程,并列举实用命令示例,包括设备连接管理、应用安装调试、文件系统访问等基础功能,以及端口转发、日志查看等高级技巧。此外,还提供了常见问题的故障排除指南,帮助开发者快速解决问题。掌握 adb 将极大提升 Android 开发效率,助力项目顺利推进。
96 0