Datawhale AI夏令营

Task1(附部分代码解析)

从零入门 AI 逻辑推理“AI+逻辑推理”方向

包含了

  1. 赛题分析
  2. 大模型技术基础方案
  3. 传统机器学习解题思路

(btw,抱着尝试的心态来看task1,以为很难,但是教程可以说是保姆级别的,一步一步的操作下来可以说是很丝滑,生成结果的时候花了较长的时间,得分并不是很高,但整体的感觉还是很棒的)

  • 启动魔塔Notebook!

新用户可能需要先开通灵积模型服务,申领大模型API

不需要选择GPU和CPU,选择默认的即可

  • 30 分钟体验一站式 baseline!

下载代码及测试集,导入并填写阿里云申请的API-KEY,一键跑通代码

下载结果文件,提交文件,拿下第一个分数!

  • 代码解析 

库文件的下载 

引用大部分文件作多进程处理异步任务执行日记记录,http请求,json处理,模型名称的定义等多项内容

 

api_retry函数用于调用自己编写的call_qwen_api函数(该函数用于调用一个名为 dashscope.Generation 的 API 来生成文本)时增加了一个重试机制,这意味着在调用 API 失败时,函数会自动重试最多 3 次,每次重试间隔 3 秒。

接下来是大模型常用的prompt提示词工程,作用是通过下的定义生成一个逻辑推理的问题的提示prompt。

这个函数接受三个参数:题目problem用于展示逻辑推理问题的背景或者情景),问题question(主要针对问题里的具体问题是什么)和 options(问题的多个选项,通常是列表式形式)。

需要注意的是:\n 是将列表的选项转换成字符串的形式,在每个选项前加一个abcdefg,并用换行符进行分割,也就是说可以将文字形式转换为电脑可读的形式。

处理过程

定义了process_datas函数,用于处理数据集,并使用多线程任务处理任务,每一个数据是一项字典,包含problem和多个question,函数通过调用API来获取问题的答案,并将最后的结果存储在返回的列表中。

文件的读取和操作

读取输入文件和设置输出文件的路径 ,检查文件是否是空的,检查输出文件是否存在。

如果存在不需要做任何操作,直接pass掉;如果不存在,那么进行下面的操作,首先定义空列表用于存储输入文件中读取的数据,之后打开输入文件,确保文件在使用后能正确关闭,之后循环读取文件中的内容,将每行数据转换为json可读文件(json对象),添加到data的列表中去,接下来处理数据。

 ifn是输入的文件的文件名,ofn是处理后的数据保存到输出文件中

评估模型在处理任务中的主要表现

这里主要注意这三个的作用

初始化计数器

pse主要用于记录是否包含MODEL_NAME键样本数量

cnt主要用于记录模型正确回答问题的数量

tot主要用于记录总的问题数量

之后遍历数据并计算准确率,然后输出结果,print一下

主要函数

主要用于提取文本中的特定信息,调用main函数传入两个文件作为参数(当然输出的就是这两个文件)最后的upload.json1就是我们要提交的最终文件

第一行代码是python中比较常见的语句,主要用于判断当前脚本是否可以作为主程序进行运行,如果是,就执行下面的代码

(注意这里,每个人生成的所需时间不同,需要耐心等待)

find_missing_ids

构造find_missing_ids函数,作用是寻找列表中缺失的序号,具体来说就是从我们的结果列表中提取出所有序号,和完整序号进行比较,去查找结果序号中缺失的部分并打印

这部分的代码还是较好理解的,用于数据完整性的检查,特别是有序数据的时候,确保所有的预期数据都存在。

通过这段代码的实现可以看出缺失的序号,证明前面的代码有需要迭代更新的工作(

总结

整体还是丝滑的,直播的讲解也很详细,学到了很多

关于分数

在find_missing_ids函数部分,会发现缺失了13个序号,说明之前的代码需要迭代更新。没处理的数据可以在后处理进行调整,这样可以提高一点分数。

源码中的思路是缺失的问题补充上答案A,要做到更好的话可以再多写一段代码,比如将答案缺失的数据重新整理为新的数据集等,保证每一个问题的答案都根据语言模型给出了 ,就可以得到更高的分数。

大模型会有幻觉,有时候不能按照要求输出,用已给的函数没办法提取出答案,就missing了。我们可以对这个没提取出来的样本继续重新调用api获得答案,也可以直接用默认值填充。

(排行榜的高分可能是优化了算法跑的,改prompt等)

综上,谢谢大家!

  • 13
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值