各位佬们,请教一个OpenAi Assistant 调试问题

背景:
老板想要借用GPT4来批量处理判决书,目前处理过程为先调试Assistant,然后编写代码调用调试好的Assistant来进行批量处理,整体输出样式和输出内容,可以通过在Instructions里写提示词来控制,因为是语文阅读理解类的问题,所以输出部分有时候需要在thread里人为调试,告诉模型,怎样的答案是正确的
遇到问题:
当纠正模型少量问题时,模型可以正常输出,当需要纠正的问题比较多时,模型就会产生混乱,具体问题为:
1.前面纠正的问题,会影响后面内容的输出,比如前面纠正一份判决书的输出内容是A,再次输入一份新判决书时,模型的输出仍然为A,不是应该输出的B
2.同样一份判决书,前面发生的问题明明纠正过了,再次输入一样的判决书,纠正过的错误还是再次发生
解决方法:
各位佬,上面的问题有什么方法来解决吗,如何将assistant用于实际生产环境。(thread里纠正的问题没法在Instructions里写,1是Instructions里的指令长度有限制,2是语文阅读类的问题,太细节的内容没法控制)

1 Like

直接把要纠正的问题写在指令不行吗

这会有2个问题:
1.本身指令长度有限制,分析判决书是一个语文阅读理解的过程,所以模型输出不能说是错,只是不满足需求,这种语文理解问题,只能具体问题具体分析,没法用一个通用提示词去涵盖;
2.测试下来,提示词越长,提示词里的指令越可能被忽略,所以需要在thread输入框中教模型
现在遇到的问题就是一旦模型产生了混乱,就很难再纠正了,如果删除thead,那之前教过的内容就浪费了,得从头教,问题是,从头教,又很容易教坏,就这样死循环了

重新训吧,在thread最开始的时候直接把要限制的事情说完,然后开始喂文件微调,你的指令可以分成两类,一个是当给入文件的时候进行理解和分析,另一个就是当你输入## FineTune的时候进行约束增强,另外你的指令可以构造成调用的结构,比如:

## 阅读理解
- 对文件进行阅读,对提到“本院认为”字段的所有问题进行梳理总结,并逐个输入

## 问题分析
- 对给定输入的问题进行分析,并解释适用判决书中的哪些事实

## 技能修正
- 根据提示词对技能的输入、输出、格式等方面进行调整

## 判决书处理(默认)
- 1. 对输入判决书文件进行"## 阅读理解"
- 2. 针对输出问题逐个进行"## 问题分析"

我不确定这样效果会不会更好,但是我自己训的gpts是这样用

将提示词扔到thread里?不是已经在instructions里限定了么,这里的喂文件微调是指调用openai的模型微调功能,先微调一个模型之后,然后在assistant里调用?目前这是一个阅读理解的处理过程,好像没有什么需要微调的,唯一个文件,里面只是列出了一些问题,让模型直接按照问题去判决书里找文件,提示词已经按照格式来规定了,提示词如下:

技能

  • 能够通过阅读理解,得出“本院认为”中到底导论了几个问题
  • 根据得出的问题,能够分析出该问题适用了判决书中的哪些事实部分
  • 能够按照得出的已有条件,分析出原告和被告双方的具体争议焦点
  • 能够根据提取出的争议焦点,从输入中找出支持争议焦点的相关事实;

输出格式

  • 使用 Markdown 格式,设置为三级标题
  • 三级标题的取值为:案件基本信息,争议焦点,争议焦点详情分析且顺序固定
  • 详细的主题输出格式如下:

案件基本信息

原告:姓名或公司名称
被告:姓名或公司名称
第三人:姓名或公司名称
若提供的文本信息数据缺失,显示内容为:“无”

争议焦点

争议焦点具体内容,如果有多个争议焦点,按照争议焦点1,争议焦点2的方式列出

争议焦点详情分析

  1. 关于争议焦点1
  • 争议焦点1相关的事实:
    1. 争议焦点1相关的事实1(如果只有一个争议焦点,请直接输出争议焦点即可,不需要输出前面的序号1)
    2. 争议焦点1相关的事实2,以此类推
  1. 如果有多个争议焦点,输出格式参照争议焦点1

争议焦点处理过程

  1. 先学习什么是争议焦点,争议焦点的具体定义为:“争议焦点是指在民事案件中,双方当事人意见不一致且对案件处理结果有重大影响的事实问题和法律适用问题。它是案件审理的核心,需要通过归纳和提炼来明确,以便法官和当事人能够集中精力处理关键问题,提高审判效率和质量。“
  2. 如果输入内容中明显存在’争议焦点’,则直接取即可
  3. 如果输入内容中没有明显存在’争议焦点’
  • 先通篇阅读本院认为的所有内容,并分析出,本院认为到底讨论了几件事,每件事可以先假设成一个争议焦点
  • 针对假设的争议焦点,双方当事人意见不一致的才是真正需要输出的部分
  1. 争议焦点以原告为主语,疑问句式,只需要输出争议焦点,其它内容(比如对争议焦点的补充情况)不需要输出

争议焦点详情分析处理过程

1、阅读并学习已上传的文件" 争议焦点常见关键问题(发起设立含代持).docx"
2、根据该文件中"此案件可能涉及的待证事实"所列出的问题,结合具体的’争议焦点’并在输入中的“本院认为”段落中寻找具体相关事实,不是所有问题都能找到对应的相关事实,仅需输出能够匹配上相关事实即可
3、法院支持或者驳回的相关事实不需要输出,但导致法院支持或者驳回的原因相关事实需要输出(比如:因xxx,xx事实,法院支持这样的句式中,因xx的相关事实需要输出,法院支持的xx事实不需要输出)
注意!!!
输出的具体’相关事实’仅来自于大括号包含的tag='本院认为’中的内容且所有输出主语需要包含原告,被告,第三人,案外人等等修饰词,且修饰词后面需要加上主语,比如原告xx,被告xx

约束

  • 严格按照给定格式输出,无需添加不必要的额外内容。
  • 秉持精准性原则,确保所有源信息被严谨转录,不得有任何遗漏。

受限于token数量,它肯定会忘记前面内容的,这个时候你也许需要RAG压缩。
真要弄,可能模型微调才可以。

1 Like

你这个太长了,gpt会发散注意力的,我是指,instruction去定义好指令和微调的指令模式,否则你在thread里面微调会容易让他出幻觉。instruction只定义指令,thread去微调行为

是的,thread本质上不是微调,只能算剪枝

判决书本身内容就比较多,instructions没法精简了 :joy:

我也咨询过我这边的大佬,按照大佬的意思,assistant的thread记忆是无上限的,只会越来越聪明, :joy:,目前只是第一步,这是一个纯粹的语文阅读理解过程,暂时用不上微调和RAG,所有待处理内容均来自判决书,模型要做的就是按照指令来分析总结

不会无限的

第一眼看这instruction我肉眼都注意力发散了,这个要求感觉对gpt-4还是需要很多人工辅助的。我建议instruction只定义指令和必要的约束,其它的学习thread少量进行,当然这也没办法完全保证能work,感觉这个上下文和难度比较高

咋可能是无上限的啊