【LLM实战-大模型自动打标】一文搞懂基于LLM大模型进行自动化打标

【LLM实战-大模型自动打标】一文搞懂基于LLM大模型进行自动化打标
 
本次修炼方法请往下查看
在这里插入图片描述

🌈 欢迎莅临我的个人主页 👈这里是我工作、学习、实践 IT领域、真诚分享 踩坑集合,智慧小天地!
🎇 免费获取相关内容文档关注:微信公众号,发送 pandas 即可获取
🎇 相关内容视频讲解 B站

🎓 博主简介:AI算法驯化师,混迹多个大厂搜索、推荐、广告、数据分析、数据挖掘岗位 个人申请专利40+,熟练掌握机器、深度学习等各类应用算法原理和项目实战经验

🔧 技术专长: 在机器学习、搜索、广告、推荐、CV、NLP、多模态、数据分析等算法相关领域有丰富的项目实战经验。已累计为求职、科研、学习等需求提供近千次有偿|无偿定制化服务,助力多位小伙伴在学习、求职、工作上少走弯路、提高效率,近一年好评率100%

📝 博客风采: 积极分享关于机器学习、深度学习、数据分析、NLP、PyTorch、Python、Linux、工作、项目总结相关的实用内容。

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 


下滑查看解决方法

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

  

使用大模型进行自动标注:基于OpenAI的文本敏感性判断

🎯 1. 基本介绍

  在自然语言处理(NLP)领域,文本标注是一个耗时且需要专业知识的任务,尤其是对于涉及敏感内容的文本标注。随着大语言模型(LLM)的发展,我们可以利用这些强大的模型来自动化标注过程,从而提高效率并减少人工干预。本文将介绍如何使用OpenAI的API,结合Python脚本,实现对文本是否涉及敏感话题的自动标注。
  在许多应用场景中,如社交媒体监控、内容审核等,我们需要快速判断文本是否包含敏感内容。传统的文本标注方法依赖人工标注,不仅效率低下,还容易受到主观因素的影响。而大语言模型(如OpenAI的GPT系列)在理解和生成自然语言方面表现出色,可以作为自动标注的有力工具。

🎯 二、技术实现

  在开始之前,确保你已经安装了必要的Python库,并获取了OpenAI的API密钥:

pip install pandas openai

  以下是完整的Python脚本,用于从JSON文件中读取文本数据,并调用OpenAI的API进行敏感性判断,最终将结果保存为Excel文件。

import openai
import re
import datetime
import pandas as pd

# 配置OpenAI API
openai.api_key = "your_openai_api_key"
openai.api_base = "your_openai_api_base"

# 统计信息
cnt = 0
input_token = 0
out_token = 0

def get_prompt(mess):
    """
    对样本进行标签设置,判断文本是否涉及敏感话题或敏感内容。
    """
    prompt_info = f"""你现在是一个NLP专家,请对输入的文本进行判断,判断文本是否涉及敏感话题或敏感内容。
    如果涉及敏感话题或敏感内容,请输出:敏感话题。
    如果不涉及敏感话题或敏感内容,请输出:无敏感话题。
    具体的输入输出的例子如下所示:
    输入:
    你妹的,你大爷
    今天的天气真的好
    草你妈的,sb
    输出:
    敏感话题
    无敏感话题
    敏感话题
    具体的输入文本:{mess}。
    输出为:
    """
    result = openai.ChatCompletion.create(
        model="gpt-3.5-turbo",
        user="user参数可传递一个随机id,用于排查问题,例如traceId、uuid、requestId等",
        messages=[
            {"role": "user", "content": prompt_info},
        ]
    )
    global input_token, out_token, cnt
    input_token += result['usage']['prompt_tokens']
    out_token += result['usage']['total_tokens']
    cnt += 1
    res = result['choices'][0]['message']['content']
    res = res.strip('\n').replace(' ', '')
    print(res)
    return res

if __name__ == "__main__":
    print(f"开始时间:{datetime.datetime.now().strftime('%Y-%m-%d %H:%M:%S')}")
    df = pd.read_json('im_eval_200.json')
    mess_set_all = df['messages'].tolist()
    res = []

    for index, mess in enumerate(mess_set_all):
        prompt_info = '\n'.join([i['content'] for i in mess][1:-1])
        system_info = mess[0]['content']
        history = [] if len(mess[1:-1]) == 1 and mess[1]['role'] == "user" else mess[1:-2]
        prompt = mess[-2]['content']
        if index == 1:
            print(mess)
            print(prompt_info)
            get_prompt(prompt_info)
        try:
            label = get_prompt(prompt_info)
            res.append([system_info, history, prompt, label])
        except Exception as e:
            print(f"OpenAI API错误:{e}")
    pd.DataFrame(res, columns=['system', 'history', 'prompt', 'gpt3.5']).to_excel('im_gpt3.5_predict.xlsx', index=False)
    print(f"结束时间:{datetime.datetime.now().strftime('%Y-%m-%d %H:%M:%S')}")

  划分训练集和测试集, 使用train_test_split方法将数据划分为训练集和测试集,测试集占比为20%。

X_train, X_test, y_train, y_test = train_test_split(df_train['评论内容'].tolist(), df_train['label'].tolist(), 
                                                    test_size=0.2, random_state=42)

  代码说明,

  • OpenAI API配置:在代码中,需要将openai.api_key和openai.api_base替换为你的OpenAI API密钥和基础URL。
  • 数据读取:从im_eval_200.json文件中读取数据,该文件应包含需要标注的文本数据。
  • 调用OpenAI API:通过openai.ChatCompletion.create方法调用OpenAI的GPT模型,对文本进行敏感性判断。
  • 结果保存:将标注结果保存为Excel文件,方便后续分析。

🎯 三、注意事项

  API限制:OpenAI的API有调用频率和Token限制,请根据实际情况合理安排调用频率。
  数据隐私:确保处理的数据符合隐私政策,避免泄露敏感信息。
  模型选择:根据需求选择合适的OpenAI模型,例如gpt-3.5-turbo或gpt-4。

🎯 四、总结

  通过利用OpenAI的大语言模型,我们可以高效地实现文本的自动标注,尤其是在判断文本是否涉及敏感内容的场景中。本文提供的代码示例展示了如何结合Python和OpenAI API完成这一任务,希望对你的项目有所帮助。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

算法驯化师

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值