【Kaggle】从chatgpt偷数据,助力上大分

文摘   科技   2023-05-15 16:25   浙江  

关注我 带你康好康的


    前言:参加的kaggle比赛明天就要结束了,最后一天又来发文啦~这周金牌区太卷了,众所周知,一般比赛到后期应该是很难上大分的,除了集成以外。但这比赛,最后一周,几乎每人都提了一个点以上,吓得我这周天天熬夜,赶紧提了两个点。。。最后能不能上金牌区,明天就知道啦,今天来聊聊chatgpt在我比赛期间对我的帮助。




Part.1 

chatgpt的作用强大,相信不用小律再做介绍,总之一个字,就是吊!就是香~比赛期间我用它写了至少四五个简单的脚本,比如爬取一些图像,多进程下载几百万的图像等等,都表现的很不错。也省了我很多的时间

但今天想聊的不是这个,而是关于如何利用chatgpt生产文本数据。相信这个思路,或许也可以用在一些其他的nlp比赛中!

再重新介绍一下我参加的这个比赛,它要求参赛者训练一个模型,模型能根据Stable Diffusion v2生成的图像,反推它的prompt是什么,是文生图的逆向工程了。

这自然要求我们有图文数据,能根据图片进行监督训练,生成预期的文本。而这个比赛官方并不提供训练集给我们,这就要求我们自己找一批Stable Diffusion的图文对作为训练集了,但是网上关于Stable Diffusion V2的图文训练数据并没有,只能找到v1的数据,于是我们一开始是先将就着使用。但是随着后续遇到瓶颈,我们逐渐达到了v1数据集的上限,很难做出更大的突破,我们开始思考如何自己生成v2数据。

Stable Diffusion由于是开源模型,它的权重任何人都可以使用,所以只要我们有合适的prompt,然后拿到Stable Diffusion里去生成图片,我们就能得到完整的图文对数据了!

但这时候困难又来了,合适的prompt从哪找呢?总不可能我自己手打几万个吧。这时候,我们就想到了风头最盛的chatgpt,只要我提供一两个例子给他,然后让chatgpt照着例子的样子去生成不就好了吗!似乎是一个很可行的想法!于是我便开始了这个计划,买了几个api,写个脚本后台开着让它一直跑,跑了一天之后,我顺利得到了十几万个prompt,看着确定很像一回事,但这prompt能不能用,还需要检验一下,我希望这一批prompt,是多样的, 而不是重复的,如果这十几万的prompt说来说去就那么一个意思,那语义的丰富性就太差了,是不合格的,经过检验发现,他们还真的不合格。。。通过计算语义相似性的方法,我发现这十几万的prompt只有一半不到是能用的,剩下的都是高度重复的,看样子利用chatgpt生成数据的方法不太好?标题告诉我们,事情并没这么简单。。。

Part.2

经过不断地总结和反思,我发现我给chatgpt发挥的自由度太高了,虽然给了他例子,他也确实按着例子去生成了,但是chatgpt会偷懒,让他自由发挥的下场就是他后续的prompt,都是在重复前面的prompt。

既然如此,我们就给chatgpt再加一些限制。根据小学二年级的语文知识,我们知道一句话的语义信息,很大程度上也就是主谓宾三者决定的,如果句子中的关键主语,动词等词发生变化,一句话的语义大概率会有其他的含义。按着这个思路,我给chatgpt的命令由一开始的让他照着例子生成prompt,改成了请把例子中的关键对象找到,并替换他,使之语义信息和之前的prompt有较大差别。

一个小小的改变,我再拿去生成prompt,发现chatgpt生成的prompt质量有了很大的提升!他不在重复之前的话,而是在认真的替换句子中的关键主语,生成的prompt也更丰富了!按着这个思路,主要我把之前找到的v1数据中的prompt发给chatgpt,让chatgpt帮我改,我不就可以得到几倍的文本数据了吗!说干就干,我一口气生成了50w的prompt,发现它们都具有不错的多样性,每10w的prompt,能给模型带来0.1%-0.2%的收益,这可比调参更容易带来收益,而且是稳定的,每加10w数据,都能带来提升,如果我有1000w的数据。。。那我不得直接第一名(做个梦,哈哈),总之,顺着这个思路,我的分数开始稳步提升。

最后再加上一些小小的训练trick,融合trick,我的分数在这一周快速提高,不过依旧和大佬们相差很大,真想知道大佬是怎么打比赛的,呜呜呜

End 

以上,是这次文章想介绍的内容,相信这个思路或许在其他的一些nlp甚至多模态的比赛中其能发挥作用!chatgpt现在这么牛,咱们不说要了解其中的原理,至少得学会利用这个工具!

这周卷成了麻花,金牌区人均百万数据集,烧卡比赛,咱也不知道自己最后的成绩是怎么样的,只能说,尽力吧!希望我能有机会写一篇金牌方案吧!


      你好,我是小律,一位数学专业转AI,热爱技术,思考新事物的算法工程师。在多家大厂呆过,目前就职于一家行业独角兽公司。

      这里,不止有算法干货,AI竞赛方案,还有劲燃鼓励,点滴分享!

      我每周至少更新一篇原创文章,也正在努力实现自己的人生目标,期待与你一起进步!



点个在看你最好看



不摸鱼的小律
互联网大厂算法工程师一枚,分享各种技术、职场热点和感悟。不做每日打卡的路人。
 最新文章