[比赛简介]Kaggle - LLM Science Exam

在这里插入图片描述
比赛链接

比赛简介

受OpenBookQA数据集的启发,本次比赛挑战参赛者回答由大型语言模型编写的基于科学的困难问题。

您的工作将帮助研究人员更好地了解LLM自我测试的能力,以及LLM可以在资源受限的环境中运行的潜力。

随着大型语言模型功能范围的扩大,越来越多的研究领域正在使用LLM来表征自己。由于许多预先存在的NLP基准已被证明对于最先进的模型来说是微不足道的,因此也有有趣的工作表明LLM可用于创建更具挑战性的任务,以测试更强大的模型。

与此同时,量化和知识蒸馏等方法正被用来有效地缩小语言模型,并在更适度的硬件上运行它们。Kaggle环境提供了一个独特的视角来研究这个问题,因为提交受到GPU和时间限制的约束。

这个挑战的数据集是通过给出gpt3.5的文本片段来生成的,这些文本片段来自维基百科的一系列科学主题,并要求它写一个多项选择题(有一个已知的答案),然后过滤掉简单的问题。

现在我们估计在 Kaggle 上运行的最大模型大约有 10 亿个参数,而 gpt3.5 有 175 亿个参数。如果一个问答模型能够在一个由问题写作模型编写的测试中胜出,超过其大小的 10 倍,这将是一个真正有趣的结果;另一方面,如果一个较大的模型可以有效地难倒一个较小的模型,这对LLM进行基准测试和测试的能力具有令人信服的影响。

评估方法

提交根据Mean Average Precision @ 3MAP@3) 进行评估:
在这里插入图片描述
U U U是测试集中的问题数, P ( k ) P(k) P(k)是截止 k k k时的精度, n n n是每个问题的数量预测,以及 r e l ( k ) rel(k) rel(k)是一个指标函数, 如果处于排名 k k k的结果是相关的(正确的)则指标函数等于 1,否则为0。

一旦为测试集中的单个问题赋予评分正确的标签后,在计算中将跳过该标签的其他预测。例如,如果用于观测值的正确的标签 A A A,则以下预测的平均精度均为 1.0 1.0 1.0

[A, B, C, D, E]
[A, A, A, A, A]
[A, B, A, C, A]

提交文件
对于测试集中的每个标签 i d id id,您最多可以预测 3 个标签在你的 p r e d i c t i o n prediction prediction中。该文件应包含标头并具有以下格式:

id,prediction
0,A B C
1,B C A
2,C A B
etc.

数据描述

您在本次比赛中的挑战是回答法学硕士编写的多项选择题。虽然用于生成这些问题的过程的细节并不公开,但我们提供了 200 个示例问题和答案,以显示格式,并大致了解测试集中的问题类型。但是,示例问题和测试集之间可能存在分布偏移,因此泛化为一组广泛问题的解决方案可能会表现得更好。每个问题由一个prompt(问题)、5 个标记为ABCDE 的选项以及标记的正确答案answer组成(这包含由生成的 LLM 定义的最正确答案的标签)。

本次比赛使用隐藏测试。对提交的笔记本进行评分后,实际测试数据(包括示例提交)将提供给笔记本。测试集与提供的test.csv具有相同的格式.csv但有 ~4000 个可能不同的主题问题。

文件
train.csv - 一组 200 个问题,带有答案列。
test.csv - 测试集;你的任务是预测给定提示的前三个最可能的答案。注意:您在此处看到的测试数据只是训练数据的副本,没有答案。看不见的重新运行测试集由 ~4000 个不同的提示组成。
sample_submission.csv - 正确格式的示例提交文件。

prompt- 所问问题的文本。
A- 备选方案A;如果此选项正确,则answerA
B- 备选案文B;如果此选项正确,则answerB
C- 备选方案C;如果此选项正确,则answerC
D- 备选方案D;如果此选项正确,则answerD
E- 备选方案E;如果此选项正确,则answerE
answer- 最正确的答案,由生成的 LLM定义(ABCD、或E 之一)。

在这里插入图片描述

在这里插入图片描述

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
以下是使用Python和Keras库来解决Kaggle Digit Recognizer比赛的代码示例: 首先,导入必要的库: ```python import pandas as pd import numpy as np from keras.models import Sequential from keras.layers import Dense, Dropout, Flatten, Conv2D, MaxPool2D from keras.optimizers import RMSprop from keras.preprocessing.image import ImageDataGenerator from sklearn.model_selection import train_test_split ``` 然后,读取和处理训练数据和测试数据: ```python train_data = pd.read_csv('train.csv') test_data = pd.read_csv('test.csv') # 将数据分成输入和输出 X_train = train_data.drop(['label'], axis=1) y_train = train_data['label'] # 将输入数据重塑为28x28像素 X_train = X_train.values.reshape(-1, 28, 28, 1) test_data = test_data.values.reshape(-1, 28, 28, 1) # 将像素值转换为浮点数并归一化 X_train = X_train.astype('float32') / 255 test_data = test_data.astype('float32') / 255 # 将输出数据转换为独热编码 y_train = pd.get_dummies(y_train).values ``` 接着,将数据分成训练集和验证集,设置数据增强器并构建卷积神经网络模型: ```python # 将数据分成训练集和验证集 X_train, X_val, y_train, y_val = train_test_split(X_train, y_train, test_size=0.1) # 设置数据增强器 datagen = ImageDataGenerator( rotation_range=10, zoom_range = 0.1, width_shift_range=0.1, height_shift_range=0.1) # 构建卷积神经网络模型 model = Sequential() model.add(Conv2D(filters=32, kernel_size=(5,5), padding='Same', activation='relu', input_shape=(28,28,1))) model.add(Conv2D(filters=32, kernel_size=(5,5), padding='Same', activation='relu')) model.add(MaxPool2D(pool_size=(2,2))) model.add(Dropout(0.25)) model.add(Conv2D(filters=64, kernel_size=(3,3), padding='Same', activation='relu')) model.add(Conv2D(filters=64, kernel_size=(3,3), padding='Same', activation='relu')) model.add(MaxPool2D(pool_size=(2,2), strides=(2,2))) model.add(Dropout(0.25)) model.add(Flatten()) model.add(Dense(256, activation="relu")) model.add(Dropout(0.5)) model.add(Dense(10, activation="softmax")) # 定义优化器和损失函数 optimizer = RMSprop(lr=0.001, rho=0.9, epsilon=1e-08, decay=0.0) model.compile(optimizer=optimizer, loss="categorical_crossentropy", metrics=["accuracy"]) ``` 最后,使用训练集和验证集来训练和评估模型,并对测试数据进行预测: ```python # 训练模型 history = model.fit_generator(datagen.flow(X_train, y_train, batch_size=64), epochs=30, validation_data=(X_val, y_val), verbose=2) # 在验证集上评估模型 score = model.evaluate(X_val, y_val, verbose=0) print("Validation loss:", score[0]) print("Validation accuracy:", score[1]) # 对测试数据进行预测 predictions = model.predict(test_data) ``` 这就是一个简单的使用卷积神经网络和数据增强器来解决Kaggle Digit Recognizer比赛的代码示例。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

Jiawen9

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

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

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

打赏作者

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

抵扣说明:

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

余额充值