当前位置:首页|资讯|OpenAI|谷歌|Claude|ChatGPT

6.大模型VS朴素贝叶斯,OpenAI API实战课,看大模型如何暴捶传统文本分类方法

作者:人工智能大讲堂发布时间:2024-03-13

1.图解tokenization

2.图解Word2vec

3.图解Transformer

4.图解GPT2

5.图解Bert

前面我通过5篇文章介绍了大模型的原理,现在是时候把大模型用起来了。

要使用大模型,你可以访问一些在线的网站。


国外

openAI:https://chat.openai.com/

Claude:https://claude.ai/chats

Gemini:https://gemini.google.com/app

POE:https://poe.com/ChatGPT
国内

kimi Chat:https://kimi.moonshot.cn/

ChatGLM:https://chatglm.cn/

相比国外的网站,国内的网站不用考虑账号注册和网络链接问题。

除了网站,也有一些公司将大模型嵌入到了现有产品中。

Windows操作系统下的Copilot

Github中的Copilot

头条中的豆包AI

但无论是网站,还是内嵌的形式,你都没办法进行自定义开发。
当然,你可以使用类似huggingface的Transformer库进行自定义开发,它会从自己的hub或者本地加载模型。
https://huggingface.co/docs/transformers/pipeline_tutorial

但本地推理需要有GPU,且目前性能好的大模型都是闭源的,没有公开模型文件。


幸好,一些公司开放了接口,我们可以通过调用API访问这些闭源模型,仅需要按流量付费。


今天,我们就基于OpenAI的API来开发一些功能,这些功能如果使用传统的机器学习或者深度学习方法,需要耗费很大的力气,而使用大模型,有的甚至一行代码就搞定了

注册账号
要访问OpenAI的接口,需要到它的官方网站注册账号,目前,OpenAI 还没有向中国大陆和香港地区开放,所以账号的注册需要你自己想想办法了 。账号注册完成之后,你点击右上角的账号,然后点击 “View API Keys”,就会进入一个管理API Keys 的页面。

你点击下面的 “+Create new secret key” 可以创建一个新的 API Key。


安装开发环境
推荐使用Conda包管理和环境管理工具,然后在Conda中配置一个独立的 Python 3.10 的环境,并安装好JupyterLab、OpenAI 以及后面要用到的一系列开发包。


安装完 JupyterLab 之后,你只需要把刚才我们获取到的 API Key 设置到环境变量里,后续调用API时,会自动从环境变量里搜索Key。


Complete和Embedding两大接口

OpenAI仅提供了Complete和Embedding两个接口,其中,Complete 可以让模型根据你的输入进行自动续写,Embedding 可以将你输入的文本转化成向量。但你可别小看这两个接口,传统的自然语言处理问题都可以通过这两个接口解决。比如情感分析、文本分类、文章聚类、摘要撰写、搜索等一些列NLP问题。

并且通过API访问大模型也不用考虑文本预处理,模型的加载,优化等乱七八糟的问题。

情感分类:大模型VS传统方法

传统的二分类方法:朴素贝叶斯
对用户评论进行情感分析,是将用户评论划分为正面的还是负面,这对电商产品会形成一个闭环反馈至关重要,本质上看,情感分析是一个二分类问题。
对于二分类问题,可以使用传统机器学习方法,如朴素贝叶斯。

朴素贝叶斯,就是简单地统计评论中的每个单词和好评/差评之间的条件概率。一般来说,如果一个词语在差评里出现的概率比好评里高得多,那这个词语所在的评论,就更有可能是一个差评。

为了理解朴素贝叶斯,最好是结合一个具体的例子,这里主要是为了表达传统方法的复杂性,所以就不过多讲解了,感兴趣的可以看我以前的文章。
[概率与统计]使用贝叶斯进行水果分类
【机器学习】动画讲解贝叶斯分类器

你也可以通过其它机器学习方法来完成这个分类问题,如逻辑回归,但传统机器学习方法要面临两个挑战:特征工程模型调优,这都非常依赖人的经验。

比如“这家咖啡馆太糟糕了,一点都不好喝”和 “这家咖啡馆太好喝了,一点都不糟糕”这样两句话,从意思上是完全相反的。但是里面出现的词语其实是相同的。此时就需要通过一些特征工程的方法来解决这个问题。

比如,通过所谓的 2-Gram和 3-Gram也来计算概率。在上面这个例子里,第一句差评,就会有“太”和“糟糕”组合在一起的“太糟糕”,以及“不”和“好吃”组合在一起的“不好吃”。而后面一句里就有“太好吃”和“不糟糕”两个组合。

此外,还需要考虑去除停用词和使用频率较少的词。

虽然,深度学习中的神经网络能够自动提取特征,很大程度上解决了传统机器学习需要特征工程的问题,但仍然避免不了模型调优。

大语言模型:20行代码搞定问题

通过大语言模型来进行情感分析,最简单的方式就是利用它提供的 Embedding 这个 API。这个 API 可以把一段文本变成一个向量,也就是用一组固定长度的数字列表来代表任何一段文本。
我们需要提前计算“好评”和“差评”这两个字的 Embedding ,而对于任何一段文本评论,也通过 API 计算它的 Embedding。然后,我们把这段文本的 Embedding 和“好评”以及“差评”通过余弦距离(Cosine Similarity)计算出它的相似度。就可以计算出这段评论的情感类型。


结果


总结:

1.如果想使用性能好的大模型,调用付费API是一种比较实际可行的方法。

2.对于常见NLP任务,传统方法能做的,大模型几乎都能做,性能上不输传统方法,且更加简单。



Copyright © 2024 aigcdaily.cn  北京智识时代科技有限公司  版权所有  京ICP备2023006237号-1