Kaggle比赛复盘

Kaggle - LLM Prompt Recovery 解决方案报告

比赛背景/目标

大型语言模型(Large Language Models,LLMs)通常被用于改写或对文本进行风格修改。本次Kaggle竞赛的目标是根据给定的改写文本,还原用于将原始文本转换为改写文本的LLM提示。这个机器学习竞赛旨在成为一种新颖的方式来深入研究这个问题。

我们面临的挑战是:给定1300多个原始文本,每个文本都配有一个来自Google新的开源模型Gemma 7b生成的改写版本,还原用于改写的LLM提示。

比赛运作流程

阶段1:数据生成

在过去的某个时间点,通过将original_text和rewrite_prompt传递给Gemma 7b LLM以某种期望的方式输出rewritten_text,生成了数据。

 

阶段2a:LLM模型(生成提示)

生成数据后,需要训练一个模型,通过将original_text和rewritten_text输入到模型中来预测rewrite_prompt:

 

阶段2b:T5模型(生成embedding)

将预测的rewritten_prompt和相应的真实rewritten_prompt传递给sentence-t5模型并获得两个embedding。

 

阶段3:评估(embedding比较)

获得embedding后,使用Sharpened Cosine Similarity指标(锐化余弦相似度)来比较它们的相似度。

 

解决方案流程 

1. 数据预处理

- 读取训练集和测试集数据。
- 由于只提供了一个训练样本,需要自己生成额外的数据来训练模型。

2. 模型训练


   - 加载预训练模型的tokenizer。 
   - 设置模型的配置,这里使用了4位量化。
   - 加载预训练模型,使用的是mistral-7b模型。
   - 设置训练参数。
   - 设置LORA的配置。
   - 设置数据的处理方式。
   - 初始化训练器并开始训练。
   - 保存训练好的模型。

3. 推理与后处理

- 加载训练好的模型。
- 对测试集数据进行推理,生成rewrite prompt。
- 将生成的rewrite prompt拼接上一个通用的平均prompt。
- 拼接好的prompt作为提交结果

 

解决方案重要参数

1. 模型训练相关:
   - 预训练模型:mistral-7b
   - 训练和测试的最大输入序列长度:1024
   - 训练和测试的最大输出序列长度:100  
   - 训练的批大小:1
   - 梯度累积步数:4
   - 学习率:1e-4
   - 训练epoch:5.0
   - LORA配置:r=16, a=32, d=0.05
2. 推理相关:
   - 通用平均prompt:用于在生成的rewrite prompt失败时作为备选
   - embedding模型:sentence-t5
   - 评估指标:Sharpened Cosine Similarity

总结

本次竞赛的目标是根据给定的改写文本还原用于将原始文本转换为改写文本的LLM提示。竞赛数据由Gemma 7b LLM生成,通过传入original_text和rewrite_prompt来修改文本。

我们采用了基于预训练大语言模型mistral-7b的解决方案,在模型训练阶段,我们通过将original_text和rewritten_text输入模型来预测rewrite_prompt。使用sentence-t5模型生成预测的prompt和真实prompt的embedding向量,并使用Sharpened Cosine Similarity指标比较它们的相似度。

在推理阶段,我们使用训练好的模型对测试集数据进行推理,生成rewrite prompt,并将其与通用平均prompt拼接得到最终的提交结果。

整体而言,我们的解决方案利用了预训练大语言模型的强大能力,同时使用了LORA等参数高效微调技术,在资源有限的情况下取得了不错的效果。未来可以尝试使用更大的预训练模型,以及更多的训练数据和训练时间,有望进一步提升模型性能。

 

具体代码:

Gittub: markchensiyuan/Kaggle2024-LLMPromptRecovery-GoldMedal 

 

 

 

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/458221.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

MetaArena推出《Final Glory》:引领Web3游戏技术新风向

随着区块链技术的日益成熟,Web3游戏成为了游戏产业探索的新方向,将去中心化经济与虚拟世界结合在一起,形成了一个全新的生态体系。然而,尽管Web3游戏展示了令人兴奋的可能性,但其背后的技术障碍依旧严峻,特…

Android Activity SingleTop启动模式使用场景

通知栏 当用户点击通知栏中的通知时,可以使用单顶启动模式来打开对应的活动,并确保只有一个实例存在。 简单集成极光推送 创建应用 获取appkey参数 切换到极光工作台 极光sdk集成 Project 根目录的主 gradle 配置 Module 的 gradle 配置 Jpush依赖配置 配置推送必须…

华为原生鸿蒙操作系统:我国移动操作系统的新篇章

华为原生鸿蒙操作系统:我国移动操作系统的新篇章 引言 在移动操作系统领域,苹果iOS和安卓系统一直占据主导地位。然而,随着华为原生鸿蒙操作系统的正式发布,这一格局正在发生深刻变化。作为继苹果iOS和安卓系统后的全球第三大移动…

Python酷库之旅-第三方库Pandas(170)

目录 一、用法精讲 781、pandas.arrays.IntervalArray.contains方法 781-1、语法 781-2、参数 781-3、功能 781-4、返回值 781-5、说明 781-6、用法 781-6-1、数据准备 781-6-2、代码示例 781-6-3、结果输出 782、pandas.arrays.IntervalArray.overlaps方法 782-1…

shodan3,vnc空密码批量连接,ip历史记录查找

shodan语法,count,honeyscore count 今天带大家继续学习shodan,今天会带大家学一学这个count命令,再学学其他小命令好其实关键命令也没那么多,就是很方便记忆一下就学会了这样子。 shodan count "/x03/x00/x00…

Docker下载途径

Docker不是Linux自带的,需要我们自己安装 官网:https://www.docker.com/ 安装步骤:https://docs.docker.com/engine/install/centos/ Docker Hub官网(镜像仓库):https://hub.docker.com/ 在线安装docker 先卸载旧的docker s…

JMeter实战之——模拟登录

本篇介绍使用JMeter 如何对需要登录的站点进行压力测试。 基本Session验证的机制 使用session进行请求验证的机制是一种常见的Web应用认证方式。 该认证方式的主要内容如下: 一、登录过程 用户输入:用户在登录页面输入用户名和密码。发送请求&#x…

JDBC: Java数据库连接的桥梁

什么是JDBC? Java数据库连接(Java Database Connectivity,简称JDBC)是Java提供的一种API,允许Java应用程序与各种数据库进行交互。JDBC提供了一组标准的接口,开发者可以利用这些接口执行SQL语句、处理结果集…

XQT_UI 组件|02| 按钮 XPushButton

XPushButton 使用文档 简介 XPushButton 是一个自定义的按钮类,基于 Qt 框架构建,提供了丰富的样式和功能选项。它允许开发者轻松创建具有不同外观和行为的按钮,以满足用户界面的需求。 特性 颜色设置:支持多种颜色选择。样式设…

Python之Excel自动化处理(三)

一、Excel数据拆分-xlrd 1.1、代码 import xlrd from xlutils.copy import copydef get_data():wb xlrd.open_workbook(./base_data/data01.xlsx)sh wb.sheet_by_index(0){a: [{},{},{}],b:[{},{},{}],c:[{},{},{}],}all_data {}for r in range(sh.nrows):d {type:sh.cell…

css知识点梳理2

1. 选择器拓展 在 CSS 中,可以根据选择器的类型把选择器分为基础选择器和复合选择器,复合选择器是建立在基础选择器之上,对基本选择器进行组合形成的。 ​ 复合选择器是由两个或多个基础选择器,通过不同的方式组合而成的&#xf…

《a16z : 2024 年加密货币现状报告》解析

加密社 原文链接:State of Crypto 2024 - a16z crypto译者:AI翻译官,校对:翻译小组 当我们两年前第一次发布年度加密状态报告的时候,情况跟现在很不一样。那时候,加密货币还没成为政策制定者关心的大事。 比…

服务器数据恢复—EXT3文件系统下邮件数据被误删的数据恢复案例

服务器数据恢复环境: 邮件服务器中有一组由8块盘组成的RAID5阵列, 上层是Linux操作系统EXT3文件系统。 服务器故障: 由于误删除导致文件系统中的邮件数据丢失。 服务器数据恢复过程: 1、将故障服务器中所有硬盘做好标记后取出,硬…

Python实现Android设备录屏功能及停止录屏功能

1、功能概述? 提供源码下载 之前通过ADB命令实现了实时的录屏功能。但是很遗憾,虽然通过adb命令录屏非常方便,但由于权限限制,无法在安卓系统较高的设备上使用。现选择使用另一开源工具来解决这一问题,并记录使用详细…

pytorh学习笔记——cifar10(六)MobileNet V1网络结构

基础知识储备: 一、深度可分离卷积(Depthwise Separable Convolution) MobileNet的核心是深度可分离卷积(Depthwise Separable Convolution),深度可分离卷积是卷积神经网络(CNN&#xf…

Java 基于 poi 和 itextpdf 实现 excel 转 pdf

目录 问题 实现思路 pom Excel2PDFUtil Excel2PDFUtilTest 输出结果 问题 工作中遇到一个需求,需要实现 excel 文件的预览,实现的思路就是将 excel 转成 pdf 文件,上传到文件服务器上得到文件地址,预览时只需要返回 pdf 预…

UHF机械高频头的知识和待学习的疑问

电路图如上所示: 实物开盖清晰图如下: 待学习和弄懂的知识: 这是一个四腔的短路线谐振。分别是输入调谐,放大调谐,变频调谐和本振 第一个原理图输入为75欧(应该是面向有同轴线的天线了)如下图…

【vue+leaflet】自定义控件(五)

老规矩, 一健三连, 先赞后看 先看效果图 自定义控件: 支持和自带控件有相同的增删改查功能, 处理与自带控件来回切换,互相使用的部分问题 新建一个组件 imgControl.vue 1, html 没什么东西,就一个div盒子装leaflet图层 <template><div class"imgBox">…

Java | Leetcode Java题解之第513题找树左下角的值

题目&#xff1a; 题解&#xff1a; class Solution {public int findBottomLeftValue(TreeNode root) {int ret 0;Queue<TreeNode> queue new ArrayDeque<TreeNode>();queue.offer(root);while (!queue.isEmpty()) {TreeNode p queue.poll();if (p.right ! nu…

Cursor的composer和chat的应用

提到 Cursor 就不得不提及它的 Composer 功能。“Composer” 的中文释义为 “作曲家”&#xff0c;在此处它有着特定的含义。 Cursor 提供了两种人机对话方式。一种是 Chat&#xff0c;它与 ChatGPT 之类的工具差别不大。另一种则是强大的 Compose。 在编写程序时&#xff0c…