05|善用Embedding,我们来给文本分分类
该思维导图由 AI 生成,仅供参考
利用 Embedding,训练机器学习模型
- 深入了解
- 翻译
- 解释
- 总结
本文介绍了如何利用OpenAI的API获取文本Embedding并进行数据处理的具体操作,以及如何利用Embedding和机器学习算法进行文本分类。作者通过代码示例和问题解决方案,帮助读者快速了解了这一方法,并解释了模型输出报告中的准确率、召回率、F1分数和支持样本量等指标的含义。文章以实际操作为主,为读者提供了一种简单而有效的文本分类方法,无需深度学习模型和大量自然语言处理知识,即可在大规模数据集上训练出良好的分类模型。读者还被鼓励在完整的数据集上进行训练,并分享测试结果,以促进更多人了解用Embedding给文本分类的方法。
《AI 大模型之美》,新⼈⾸单¥68
全部留言(38)
- 最新
- 精选
- 麦耀锋应该这么去理解embedding的使用。以前我们做机器学习的时候(或者相对于深度学习之前的“浅层学习”),不管是有监督还是无监督,一般我们需要做feature engineering,也就是需要data scientist,根据业务、专家领域,对数据提取有用的feature;而在NLP领域,那么就是通过word2vec等各种方式来提取feature。通过openai的embedding接口,实际上就是openai帮我们做了feature engineering这一步,将文本映射到一个合适的vector space,得到的embedding其实就是文本的feature,所以可以基于这个embedding即feature X来做传统的机器学习
作者回复: 👍
2023-05-05归属地:广东221 - 浩仔是程序员老师,你好!既然都调用open ai的接口,为什么不直接让chatgpt直接返回分类结果呢
作者回复: 可以的啊,但是要考虑 1. 成本 2. 效果 在有标注数据的情况下,机器学习的效果通常比让ChatGPT只用先验知识效果还是要好不少的。
2023-03-28归属地:广东913 - 良辰美景“调用了 Tiktoken 这个库,使用了 cl100k_base 这种编码方式,这种编码方式和 text-embedding-ada-002 模型是一致的。如果选错了编码方式,你计算出来的 Token 数量可能和 OpenAI 的不一样。” 老师, 问你一个学习上的问题, 像这种API 文档里这么细节的东西,你是如何获取这些信息的
作者回复: 读一遍API文档,读一遍OpenAI Cookbook。这是看起来最笨,其实最节约时间的办法。
2023-04-07归属地:上海10 - 怡仔github中的找不到途中列举的数据文件
作者回复: 看一下github的README里给了一个百度网盘的下载方式 对应的数据文件比较大,GitHub里直接放也不太方便下载
2023-03-28归属地:上海45 - lala现在chatGPT是通用的问答应用。请问如何根据ChatGPT结合公司业务的知识库和商品信息,如何打造服务客户和内部顾问的机器人?比如根据用户问题,推荐对应产品给用户。根据内部知识库,回答内部同事关于产品使用,运营信息相关的问题呢。谢谢
作者回复: 看最新上线的10,11讲,以及后面会上线的14-17讲
2023-04-03归属地:北京4 - Toni训练一个能把从 1 分到 5 分的每一个级别都区分出来的机器学习模型. 使用下载的数据 fine_food_reviews_with_embeddings_1k.csv 随机森林模型,超参数 n_estimators=100 下跑的结果 precision recall f1-score support 1 0.86 0.30 0.44 20 2 1.00 0.38 0.55 8 3 1.00 0.18 0.31 11 4 1.00 0.26 0.41 27 5 0.74 1.00 0.85 134 accuracy 0.76 200 macro avg 0.92 0.42 0.51 200 weighted avg 0.81 0.76 0.71 200 极端随机森林模型 ExtraTreesClassifier() 下跑的结果 precision recall f1-score support 1 1.00 0.20 0.33 20 2 1.00 0.38 0.55 8 3 1.00 0.18 0.31 11 4 1.00 0.26 0.41 27 5 0.73 1.00 0.84 134 accuracy 0.75 200 macro avg 0.95 0.40 0.49 200 weighted avg 0.82 0.75 0.69 200
作者回复: 👍
2023-03-31归属地:瑞士24 - Toni在执行这段代码时会报ParserWarning df = pd.read_csv('data/toutiao_cat/toutiao_cat_data.txt', sep='_!_', names=['id', 'code', 'category', 'title', 'keywords']) ParserWarning: Falling back to the 'python' engine because the 'c' engine does not support regex separators (separators > 1 char and different from '\s+' are interpreted as regex); you can avoid this warning by specifying engine='python'. 原因是 'c' 引擎不支持分隔符sep='_!_'表达式,可指定 engine='python' 来避免此警告。 代码如下 df = pd.read_csv('data/toutiao_cat/toutiao_cat_data.txt', engine= 'python', sep='_!_', names=['id', 'code', 'category', 'title', 'keywords'])
作者回复: 👍 我本机是默认会退回到用python引擎来分割,感谢。
2023-03-30归属地:瑞士4 - Geek_513b7c老师,你能解释一下在ai中向量是什么意思吗?这几节看的云里雾里的
作者回复: 可以认为,就是把文本,用一组数字来表示,这组数字表示了这段文本在高维空间里面的坐标。两段文本相似,就是他们坐标之间比较近。
2023-03-28归属地:吉林23 - 四月. 🕊请问一下老师,既然已经按照batch_size划分出来了prompt_batches,为什么在get_embeddings_with_backoff函数中还要划分一次batch呢?是不是重复了?
作者回复: 看了一下的确是可以不用的。原来是想做成两层batch_size的,就是1000个batch扔给get_embeddings_with_backoff,然后里面再100个一个batch这样,不过后来发现没有必要。
2023-04-05归属地:北京2 - 王平老师请问如果把时序数据,比如用户行为序列作为输入给openAI 的 embedding, 根据行为判断用户情感的效果会好吗?
作者回复: 我没有试过,你可以试一下,如果有结果欢迎分享。我猜如果一般人能判断出来,它就能判断出来。
2023-04-03归属地:上海2