LLM能力与应用全解析

一、简介

经过几年时间的发展,大语言模型(LLM)已经从新兴技术发展为主流技术。而以大模型为核心技术的产品将迎来全新迭代。大模型除了聊天机器人应用外,能否在其他领域产生应用价值?在回答这个问题前,需要弄清大模型的核心能力在哪?与这些核心能力关联的应用有哪些?

本文将重点关注以下三个方面:

1、LLM能力解析 2、LLM技术分析 3、LLM案例实践

二、LLM能力解析

 

LLM的核心能力大致分为:生成(Generate)、总结(Summarize)、提取(Extract)、分类(Classify)、检索(Search)与改写(Rewrite)六部分。 

1、生成(Generate)

生成是LLM最核心的能力。当谈论到LLM时,首先可能想到的是其能够生成原始且连贯的文本内容。其能力的建立来源于对大量的文本进行训练,并捕捉了语言的内在联系与人类的使用模式。充分利用模型的生成能力可以完成对话式(chat)&生成式(completion)应用。对于对话式应用,典型应用为聊天机器人,用户输入问题,llm对问题进行响应回答。对于生成式应用,典型应用为文章续写、摘要生成。比如,我们在写一段营销文案时,我们写一部分上下文,LLM可以在此基础上对文案进行续写,直至完成整个段落或整片文章。

【应用】:聊天助手、写作助手、知识问答助手。

2、总结(Summarize)

总结是LLM的重要能力。通过Prompt Engineering,LLM可对用户输入的文本提炼总结。在工作中我们每天会处理大量会议、报告、文章、邮件等文本内容,LLM总结能力有助于快速获取关键信息,提升工作效率。利用其总结提炼能力可以产生许多有价值应用。比如,每次参加线上或线下会议,会后需形成会议记录,并总结会议重要观点与执行计划。LLM利用完备的语音记录可完成会议内容与重要观点的总结。

【应用】:在线视频会议、电话会议内容总结;私有化知识库文档总结;报告、文章、邮件等工作性文本总结。

3、提取(Extract)

文本提取是通过LLM提取文本中的关键信息。比如命名实体提取,利用LLM提取文本中的时间、地点、人物等信息,旨在将文本关键信息进行结构化表示。除此之外,还可用于提取摘录合同、法律条款中的关键信息。

【应用】:文档命名实体提取、文章关键词提取、视频标签生成。

4、分类(Classify)

分类旨在通过LLM对文本类别划分。大模型对文本内容分类的优势在于强语义理解能力与小样本学习能力。也就是说其不需要样本或需要少量样本学习即可具备强文本分类能力。而这与通过大量语料训练的垂域模型相比,在开发成本与性能上更具优势。比如,互联网社交媒体每天产生大量文本数据,商家通过分析文本数据评估对于公众对于产品的反馈,政府通过分析平台数据评估公众对于政策、事件的态度。

【应用】:网络平台敏感内容审核,社交媒体评论情感分析,电商平台用户评价分类。

5、检索(Search)

文本检索是根据给定文本在目标文档中检索出相似文本。最常用的是搜索引擎,我们希望搜索引擎根据输入返回高度相关的内容或链接。而传统方式采用关键词匹配,只有全部或部分关键词在检索文档中命中返回目标文档。这对于检索质量是不利的,原因是对于关键词未匹配但语义高度相关的内容没有召回。在检索应用中,LLM的优势在于能够实现语义级别匹配。

【应用】:文本语义检索、图片语义检索、视频语义检索;电商产品语义检索;招聘简历语义检索。

6、改写(Rewrite)

文本改写是通过LLM对输入文本按照要求进行润色、纠错常见的应用为文本纠错,例如,在稿件撰写、编辑时可能出现词语拼写错误、句子语法错误,利用通过LLM与提示词工程(Prompt Engineering)自动对文本内容纠错。此外,还可用其对文章进行润色处理,使文章在表述上更加清晰流畅。同时,可以还可LLM进行文本翻译。

【应用】:文本纠错、文本润色、文本翻译。

三、LLM技术解析

以上列举了LLM的核心能力以及关联应用,这些应用在技术上如何实现?

1、生成(Generate)

文本生成是给定输入与上下文生成新文本。下面通过简单的例子说明:

import os
from langchain.llms import OpenAI
# 输入openai_api_key
openai_api_key = 'sk-D8rnXN4lDiYE2jyR6Cxxx3BlbkexywbgjUt5vegEeNpz8MF'
os.environ['OPENAI_API_KEY'] = openai_api_key
llm = OpenAI(temperature=0.9)
# 输入
text = "今天是个好天气,"
# 输出
print(llm(text))

输出:

很适合出门散步或者做一些活动。我们可以去公园、湖边或者有趣的地方游玩,享受美丽的自然风景。也可以去户外健身,锻炼身体。亦可以在室内做一些有趣的活动,比如看书、看电影或与朋友共度美好的时光。

以上例子使用的是openAI的gpt-3.5-turbo大语言模型文本生成示例。对于本地化的部署可以替换为chatglm-6b等开源模型。此外,利用prompts可指导LLM完成特定任务,如下文中的总结、分类、提取、改写等任务。

2、总结(Summarize)

如上图,在prompt中增加“总结”提示可指导LLM完成文本总结任务。下面通过简单的例子说明:

import os
from langchain.llms import OpenAI
from langchain import PromptTemplate# 输入openai_api_key
openai_api_key = 'sk-D8rnXN4lDiYE2jyR6xxxx3BlbkexywbgjUt5vegEeNpz8MF'
os.environ['OPENAI_API_KEY'] = openai_api_keyllm = OpenAI(temperature=0, model_name='gpt-3.5-turbo', openai_api_key=openai_api_key)template = """
请对以下文本进行总结,以一个5岁孩子能听懂的方式进行回答.
{text}
"""
prompt = PromptTemplate(input_variables=["text"],template=template,
)
# 输入文本
text = """
ChatGPT是美国人工智能研究实验室OpenAI新推出的一种人工智能技术驱动的自然语言处理工具,使用了Transformer神经网络架构,也是GPT-3.5架构,这是一种用于处理序列数据的模型,拥有语言理解和文本生成能力,尤其是它会通过连接大量的语料库来训练模型,这些语料库包含了真实世界中的对话,使得ChatGPT具备上知天文下知地理,还能根据聊天的上下文进行互动的能力,做到与真正人类几乎无异的聊天场景进行交流。ChatGPT不单是聊天机器人,还能进行撰写邮件、视频脚本、文案、翻译、代码等任务。
"""
prompt_format = prompt.format(text=text)
output = llm(prompt_format)
print(output)

 输出:

ChatGPT是一种很聪明的机器人,它可以帮助我们处理文字和语言。它学习了很多对话和文字,所以它知道很多东西。它可以和我们聊天,回答我们的问题,还可以帮我们写邮件、视频脚本、文案、翻译和代码。它就像一个真正的人一样,可以和我们进行交流。

在以上例子中,增加了prompt从而对总结任务进行了描述:“请对以下文本进行总结,以一个5岁孩子能听懂的方式进行回答。”LLM按照要求对文本内容进行了总结。为了提高总结内容的一致性,将温度参数值调低,上述代码设置为0,每次均会输出相同回答。

3、分类(Classify) 

文本分类是自然语言处理中最常见的应用。与小模型相比,大模型在开发周期、模型性能更具优势,该内容会在案例分析中详细说明。下面通过简单的例子说明LLM在情感分类中的应用。 

import os
from langchain.llms import OpenAI
from langchain import PromptTemplate# 输入openai_api_key
openai_api_key = 'sk-D8rnXN4lDiYE2jyR6xxxx3BlbkexywbgjUt5vegEeNpz8MF'
os.environ['OPENAI_API_KEY'] = openai_api_keyllm = OpenAI(temperature=0, model_name='gpt-3.5-turbo', openai_api_key=openai_api_key)template = """
请完成情感分类任务,给定一个句子,从['negative','positive']中分配一个标签,只返回标签不要返回其他任何文本.Sentence: 这真是太有趣了.
Label:positive
Sentence: 这件衣服的材质有点差.
Label:negative{text}
Label:
"""prompt = PromptTemplate(input_variables=["text"],template=template,
)
# 输入
text = """
他刚才说了一堆废话.
"""
prompt_format = prompt.format(text=text)
output = llm(prompt_format)
print(output)

 输出:

negative

在以上的例子中,增加了prompt对分类任务进行了描述:“请完成情感分类任务,给定一个句子,从['negative','positive']中分配一个标签,只返回标签不要返回其他任何文本.”同时,给出了examples,利用llm的in-context learning对模型进行微调。该方式较为重要,有研究表明经过in-context learning微调后的模型在分类任务上性能提升明显。

4、提取(Extract) 

提取文本信息是NLP中常见需求。LLM有时可以提取比传统NLP方法更难提取的实体。上图为LLM Extract示意图,LLM结合prompt对Input text中关键词进行提取。下面通过简单的例子说明LLM在关键信息提取中的应用。

import os
from langchain.llms import OpenAI
from langchain import PromptTemplateopenai_api_key = 'sk-D8rnXN4lDiYE2jyR6xxxx3BlbkexywbgjUt5vegEeNpz8MF'
os.environ['OPENAI_API_KEY'] = openai_api_keyllm = OpenAI(temperature=0, model_name='gpt-3.5-turbo', openai_api_key=openai_api_key)template = """
请完成关键词提取任务,给定一个句子,从中提取水果名称,如果文中没有水果请回答“文中没有提到水果”.不要回答其他无关内容.Sentence: 在果摊上,摆放着各式水果.成熟的苹果,香甜的香蕉,翠绿的葡萄,以及紫色的蓝莓.
fruit names: 苹果,香蕉,葡萄,蓝莓{text}
fruit names:
"""prompt = PromptTemplate(input_variables=["text"],template=template,
)text = """
草莓、蓝莓、香蕉和橙子等水果富含丰富的营养素,包括维生素、纤维和抗氧化剂,对于维持健康和预防疾病有重要作用。
"""prompt_format = prompt.format(text=text)
output = llm(prompt_format)
print(output)

 输出:

草莓, 蓝莓, 香蕉, 橙子

在以上的例子中,增加了prompt要求LLM能够输出给定文本中的“水果名称”。利用example与in-context learning,LLM能够提取文中关键信息。

5、检索(Search)

  • embedding:对文本进行编码。如上图,将每个text进行向量化表示。
# 加载pdf文档数据
loader = PyPDFLoader("data/ZT91.pdf")
doc = loader.load()
# 数据划分
text_splitter = RecursiveCharacterTextSplitter(chunk_size=3000, chunk_overlap=400)
docs = text_splitter.split_documents(doc)
# 文本embedding
embeddings = OpenAIEmbeddings(openai_api_key=openai_api_key)
docsearch = FAISS.from_documents(docs, embeddings)

similarity:输入文本与底库文本相似性度量检索。如上图中的query embedding search。 

retriever=docsearch.as_retriever(search_kwargs={"k": 5})

 summarize:对检索出的文本进行总结。并得到上图中的search results。

qa = RetrievalQA.from_chain_type(llm=llm, chain_type="stuff", retriever=docsearch.as_retriever(search_kwargs={"k": 5}),chain_type_kwargs={"prompt": PROMPT})print("answer:\n{}".format(qa.run(input)))

 LLM语义检索可弥补传统关键词匹配检索不足,在本地知识库与搜索引擎中的语义搜文、以文搜图中存在应用价值。

6、改写(Rewrite)

改写的主要应用为文本纠错与文本润色。通过prompt指导LLM完成改写任务。下面通过简单的例子进行说明:

import os
from langchain.llms import OpenAI
from langchain import PromptTemplateopenai_api_key = 'sk-D8rnXN4lDiYE2jxxxYiT3BlbkFJyEwbgjUt5vegEeNpz8MF'
os.environ['OPENAI_API_KEY'] = openai_api_keyllm = OpenAI(temperature=0, model_name='gpt-3.5-turbo', openai_api_key=openai_api_key)template = """
请完成文本纠错的任务,给定一段文本,对文本中的错别字或语法错误进行修改,并返回正确的版本,如果文本中没有错误,什么也不要返回.text: 黄昏,一缕轻烟从烟囱里请缨地飘出来,地面还特么的留有一丝余热,如果说正午像精力允沛的青年,那黄昏就像幽雅的少女,清爽的风中略贷一丝暖意。
correct: 黄昏,一缕轻烟从烟囱里轻轻地飘出来,地面还留有一丝余热,如果说正午像精力充沛的青年,那黄昏就像优雅的少女,清爽的风中略带一丝暖意。
text: 胎头望着天空,只见红彤彤的晚霞己经染红大半片天空了,形状更是千资百态。
correct: 抬头望着天空,只见红彤彤的晚霞己经染红大半片天空了,形状更是千姿百态。{text}
correct:
"""prompt = PromptTemplate(input_variables=["text"],template=template,
)text = """
孔雀开平是由一大盆菊花安照要求改造而成,它昂首廷胸翩翩起舞。
"""
prompt_format = prompt.format(text=text)
output = llm(prompt_format)
print(output)

 输出

孔雀开屏是由一大盆菊花按照要求改造而成,它昂首挺胸翩翩起舞。

以上为采用gpt-3.5-turbo进行文本纠错。给出了prompt描述与example。以上例子可以发现,llm能够发现文本中错误,并将错误内容修改。

四、LLM案例分析

需求描述:在社交媒体、电商平台、网络直播中每天产生大量文本内容。而这些文本内容中蕴含价值同时可能包含不良信息。比如,商家可以通过分析媒体数据来评估公众对于产品的反馈。再比如,相关机构可通过分析平台数据来了解公众对政策、事件的态度。除此之外,社交网络平台中可能掺杂不良信息、违法言论等网络安全问题。

如何对网络内容进行细粒度情感分析与内容审核

自2023年以来,以chatgpt为代表的大模型在全球范围内持续火热,原因是模型参数量的上升使其语义理解与文本生成能力得到了“涌现”。大模型是否可应用于情感分析与内容审核?

任务描述:情感分析是分析文本中蕴含的情感态度,一般分为积极(positive)/消极(negative)/中性(neutral),从分析维度上可划分为段落、句子以及方面三个级别。内容审核是分析文本中是否存在违规、违法不良言论。两者任务均为文本分类。

1、情感分析 

如上图为cohere情感分类产品设计,用户通过上传用于in-context learning的example可指导LLM调整模型。即在让LLM完成分析任务前,需要先为其打个样。让其按照example的样子完成任务。同时,可在Input中对example进行测试。

2、内容审核 

 

不同形式的内容源经转换器转换为文本形式。经LLM Engine完成语义内容审核。

 

以上为通过LLM对网络语言的测试结果,经过in-context learning,LLM具备语义审核能力。在prompt中每个class仅加入了两个example,如上图的简单测试在8个测试样本中正确命中6个。其能力通过进一步的example扩充有望继续提升。

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/179970.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

产品解读:GreatADM如何快速改造单实例为双主、MGR、读写分离架构?

前言 单机GreatDB/GreatSQL/MySQL将架构调整为多副本复制的好处有哪些?为什么要调整? 性能优化:如果单个GreatDB服务器的处理能力达到瓶颈,可能需要通过主从复制、双主复制或MGR及其他高可用方案来提高整体性能。通过将读请求分发…

STM32 ADC转换器、串口输出

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 文章目录 前言一、ADC是什么?二、STM32的ADC2.1 认识STM32 ADC2.2转换方式2.3 为什么要校准?2.4 采样时间计算2.5 触发方式2.6 多通道采集解决方案2.7…

手把手教你如何实现List——ArrayList

目录 前言: 线性表 顺序表 接口的实现 一. 打印顺序表 二.新增元素,默认在数组最后新增 三.在 pos 位置新增元素 四.判定是否包含某个元素 五. 查找某个元素对应的位置 六.获取 pos 位置的元素 七.给 pos 位置的元素设为 value 八.删除第一次出现的关键字k…

基于SSM的酒店预订管理系统设计与实现

末尾获取源码 开发语言:Java Java开发工具:JDK1.8 后端框架:SSM 前端:Vue 数据库:MySQL5.7和Navicat管理工具结合 服务器:Tomcat8.5 开发软件:IDEA / Eclipse 是否Maven项目:是 目录…

Matlab R2022b 安装成功小记

Matlab R2022b 安装成功小记 前言一、 下载链接二、 安装过程小记 叮嘟!这里是小啊呜的学习课程资料整理。好记性不如烂笔头,今天也是努力进步的一天。一起加油进阶吧! 前言 windows 10系统之前安装过Matlab R2010b做基础研究,最…

Anaconda离线下载torch与安装包

一、下载离线安装包 命令: pip download 安装包名 -d 安装到文件夹名 -i https://pypi.tuna.tsinghua.edu.cn/simple执行这样的命令就会把安装包的离线文件下载到指定文件夹中。 操作: 打开cmd命令行,并进入相应的目录中。 如果是tor…

k8s中pod的hostport端口突然无法访问故障处理

故障背景: 租户告知生产环境的sftp突然无法访问了,登录环境查看sftp服务运行都是正常的,访问sftp的hostport端口确实不通。 故障处理过程 既然访问不通那就先给服务做个全面检查,看看哪里出了问题,看下sftp日志&#…

Docker基本操作---镜像与容器操作

Docker基本操作---镜像与容器操作 1. 操作镜像1.1 查看镜像1.2 删除镜像1.2.1 删除镜像1.2.2 强制删除镜像1.2.3 删除所有镜像 1.3 启动镜像1.4 常见错误1.4.1 image is being used by stopped container e3b9df6dc6ae 2 操作容器2.1 新建启动容器2.2 查看正在运行的容器2.3 退…

Unity学习笔记11

一、视频播放功能 1.如何让视频在游戏场景中播放? 在Assets目录下添加一个渲染器纹理,步骤:新建→渲染器纹理 首先在创建一个平面,想让视频在平面上显示。在平面上添加一个组件 Video Player 然后将视频文件拖拽到视频剪辑位置上…

黄金比例设计软件Goldie App mac中文版介绍

Goldie App mac是一款测量可视化黄金比例的工具。专门为设计师打造,可以帮助他们在Mac上测量和可视化黄金比例,从而轻松创建出完美、平衡的设计。 Goldie App mac体积小巧,可以驻留在系统的菜单栏之上,随时提供给用户调用。 拥有独…

如何控制Spring工厂创建对象的次数?详解Spring对象的声明周期!

😉😉 学习交流群: ✅✅1:这是孙哥suns给大家的福利! ✨✨2:我们免费分享Netty、Dubbo、k8s、Mybatis、Spring...应用和源码级别的视频资料 🥭🥭3:QQ群:583783…

Dijkstra算法(贪心),Floyd-Warshall算法(动态规划), Bellman-Ford算法——用Python实现

图论中最短路径三剑客 前言一、Dijkstra算法(贪心)1.1 Dijkstra在生活中的应用举例1.2 设计思路1.3 算法应用实例1.3.1 以交通规划为例1.3.2 Dijkstra算法执行步骤1.3.3 python代码 1.4 时空复杂度 二、Floyd-Warshall算法(动态规划&#xff…

fiddler设置过滤你就这样做,一做一个不只声!

fiddler设置过滤 基本的过滤操作流程以百度为例 步骤: 1、右侧高级工具栏点击Filters》勾选Use Filters》选择Show only Internet Hosts和Show only the following Hosts》在文本框中输入host地址 2、点击Changes not yet saved》再点击Actions》Run Filterset …

如何获取高质量的静态住宅IP代理?常见误区与注意事项

静态住宅IP代理在今天的网络营销领域扮演着至关重要的角色,静态住宅IP代理以其稳定性和高匿名性,为互联网业务提供了一个安全的执行环境。通过模拟真实用户的网络行为,这些IP代理降低了企业在网络营销活动中被识别和封禁的风险。它保护了企业…

echarts修改tooltip默认的圆点图标为其他样式

业务需求,默认是圆点,需要把线的由圆点改为线 红色线是理论,点是历史理论,绿色线是实际, 点是历史实际,在series里的顺序也是这样排的。 打印出来的params里的marker就是圆点,改这段代码就可以了…

使用STM32 HAL库驱动光电传感器的设计和优化

光电传感器在许多应用中起着重要的作用,例如自动计数、距离测量等。STM32微控制器和HAL库提供了丰富的功能和易于使用的接口,使得光电传感器的设计和优化变得更加便捷。本文将介绍如何使用STM32 HAL库驱动光电传感器的设计和优化,包括硬件设计…

OpenCV | 傅里叶变换——低通滤波器与高通滤波器

import cv2 #opencv 读取的格式是BGR import numpy as np import matplotlib.pyplot as plt #Matplotlib是RGB %matplotlib inline def cv_show(img,name):cv2.imshow(name,img)cv2.waitKey()cv2.destroyAllWindows() 傅里叶变换 傅里叶变换的作用 高频:变化剧烈…

JAVA文件IO, File类, 字符流,字节流

文章目录 文件IO1. File2. IO流2.1 字符流2.1.1 Reader2.1.2 Writer 2.2 字节流2.2.1 InputStream2.2.2 FileInputStream2.2.3 利用Scanner进行字符读取2.2.4 OutputStream 文件IO I: Input, 从硬盘往内存读数据 O: Output, 从内存往硬盘输出数据 1. File Java 中通过 java…

解析d3dcompiler_47.dll缺失怎么修复,4种方法修复d3dcompiler_47.dll文件

d3dcompiler_47.dll缺失怎么修复?其实在我们使用计算机操作的过程中,有时会遇到一些由dll文件错误导致的问题,其中d3dcompiler_47.dll丢失就是这样一种。那么究竟d3dcompiler_47.dll缺失是什么意思,为何它会发生丢失,以…

PWM占空比原理是什么,几个实例带你进一步了解

PWM : 即脉冲宽度调制(Pulse Width Modulation) 脉冲宽度调制是利用微处理器的数字输出来对模拟电路进行控制的一种非常有效的技术,广泛应用在从测量、通信到功率控制与变换及嵌入式领域的许多领域中。 PWM控制技术以其控制简单,灵活和动态响应好的优点而…