DataWhale暑期夏令营第一期——大模型技术方向task2笔记

Task 2 笔记

数据分析

可以先通过对标签中各个项进行数据分析(使用values_count方法),可以得到主要任务的各个指标的值分布情况。

我认为这一步的作用:

  1. 帮助理解数据。
  2. 大模型的本质还是概率生成,通过prompt提示词去进行生成

Baseline优化思路

1.数据处理

  1. 角色合并:将同一个说话人的话合并。频繁的角色转换可能会增加大模型处理数据的困难。
    • 个人预想的思路:可以对对话数据进行编号,将编号和对应语句封装为一个tuple,将每个角色的所有语句进行合并,减少频繁的角色转换。
  2. 信息清洗:去除一些不必要的信息(表情,图片,链接等,这些数据没有关联性,是无法解析的脏数据)
    • 模型的主要任务还是从文本中提取关键词
    • 表情,图片,链接并不是我们要提取的对象
    • 去掉以上这些部分的影响不大,因为这些信息本来就很难被大模型读取
  3. 信息总结:将聊天信息总结(总结之后的数据有可能会对后续大模型的关键字抽取工作造成影响)
    • 将聊天信息总结为一段话或者其他形式,这样做可能会提高信息的可阅读性。但是离开了真实的对话环境。
    • 某些情况下,对聊天信息进行预处理和总结可以减少噪声,提高后续处理的效率。但这也取决于模型是否能够从中获益。

2.Prompt工程

    • 任务信息分析:在设计Prompt时,理解每个任务的信息需求是非常重要的。这包括如何指导模型提取特定的信息,并避免提取不相关的信息。
  1. 任务2~10:
    • image-20240703233940356
    • 可以根据任务1得到的客户姓名以及数据分析中得到的值,让llm去做选择题,编写出Prompt,让大模型去运行
    • 缺点:费token
  2. 调优:
    • 使用训练集去调优。
    • 根据评价指标写一个评价函数,让大模型使用评价指标和标签对抽取进行一个评价
  3. 调优思路:
    1. 数据分析
    2. 保留基本字段信息,其他字段为空
    3. 全部字段为空(效果最好?)
  • 问题

    1. 为什么全写空,结果会好呢?

    当数据中空值较多时,模型可能会学习到一种倾向,即忽略缺失或不确定的信息。在这种情况下,如果测试集中的空值与训练集类似,模型就会表现得更好,因为它能够预期到这些缺失值。

    2. 大模型提取出多余信息,如何解决?

    可以通过后处理步骤来清理模型可能产生的多余信息。例如,在提取JSON数据时,可以设置一些规则来过滤掉不符合格式或逻辑的信息。

    3. Prompt原理?

    在自然语言处理中,Prompt工程的核心思想是利用预先设计的指令和信息来引导模型生成预期的输出。在Transformer或BERT这样的模型中,输入的序列通过自注意力机制捕捉不同部分之间的关系,而好的Prompt可以更有效地引导模型关注于关键信息,从而提高预测的准确性。

    在多选题的Prompt设计中,q,k,v指的是query, key, value这三个组件,在注意力机制中起着关键作用。query用于查找与之相关的信息(key, value),而value则包含了实际的信息内容。通过精心设计这两个部分,可以提高模型处理特定任务的性能。

posted @ 2024-07-04 00:28  zakarRoman  阅读(10)  评论(0编辑  收藏  举报