Datawhale AI夏令营 从零入门 AI 逻辑推理 心得第二弹

一、前言

完成了上一次的任务之后,大家都对AI大模型的相关概念(如API的调用,模型的训练等),亦或是云计算平台的相关操作流程,有了初步的了解。所以这次,Datawhale平台只是提供了一块一块的代码(如图),需要我们自己去写出ipynb的文件,附件中的ipynb文件便是我自己一步步把原有的代码cv上去的(上次是直接把ipynb文件给我们自己去跑)。

Datawhale平台提供的代码

 这次的任务我是在29日晚的直播结束之后才开始执行的。在观看直播的过程中,我见到了诸多大佬,问了一些我根本没听过的名词,因此,也不免觉得我只是一只井底之蛙。

二、大模型的相关概念

在执行任务之前,Datawhale团队先是给我们科普了大语言模型(Large Language Model,LLM)的许多概念,以及大语言模型的一些能力、特点。我们本次比赛的内容便是运用大语言模型进行逻辑推理,其中最常用的方法便是提示工程(prompt engineering)。

这边附上一些基本的关于LLM的学习材料,也都是由Datawhale团队编写或是翻译的:

1. 《Hugging LLM》:

介绍 ChatGPT 原理、使用和应用,聚焦于如何使用ChatGPT相关API创造新的功能和应用

https://github.com/datawhalechina/hugging-llm

2. 《面向开发者的 LLM 入门课程》:

包括 Prompt Engineering、LangChain、Gradio 等内容,指导国内开发者如何基于 LLM 快速、高效开发具备强大能力的应用程序

https://github.com/datawhalechina/prompt-engineering-for-developers

这两本书较为通俗易懂,并且也都能在B站上找到视频详解,适合像我这种新手进行学习。

注意:学之前一定要有python的基础,并且要掌握anaconda创建本地虚拟环境的相关流程才可以开始这两本书的学习。

 三、任务运行

任务主要分为三个大步骤:

①环境配置

②答案生成

③纠错与结果文件生成

和上一个任务一样,我们运行的结果需要提交到第二届世界智能科学大赛的平台上进行打分。

但是我们这次只是对代码进行改进,还没有在本地构建大模型,因此,我们仍然是使用API来完成我们的模型训练,依然使用'qwen2-7b-instruct’模型,大致消耗了60w的token,费用折合下来是1元不到。

在运行完代码后我才发现‘qwen2-1.5b-instruct’模型竟然限免了!(早知道用它了,虽然1.5B的模型跑出来的结果可能不是很理想)

环境的配置

环境配置的过程与上次差不多,也就是ipynb文件的前三个代码块,我们只需要填入自己的APIkey,然后一步步执行即可。

答案生成

相比上一次,这次的‘call_qwen_api’函数中加入了‘print(response)’一条,有助于我们更清晰看到API在调用中的进程。API调用间隔从0.5秒被改为0.6秒,虽然得到最终运行结果的速度慢了许多,但是也降低了调用过程中出错的可能。

纠错与结果文件生成

这一块是新代码较之上一个version的代码最大的不同!

新代码添加了‘find_missing_ids’函数,它可以找出缺失的序号,这有助于我们接下来提到的缺失数据处理的环节。

新代码不仅继承了上一版代码中的过滤和排序功能,并增加了缺失数据处理的功能(如图),将原本返回为空的答案统一填写为A选项。(小学老师就告诉过我们:空着的不会的选择题要随便蒙一个上去)

缺失数据处理部分

新代码是一次对原来的版本的一次具有一定规模的补充与完善,如果不出意外的话,我们能拿到更高的运行结果分数。

四、提交结果与结果分析

同样地,我们将结果提交至第二届世界智能科学大赛的平台上进行打分。这次相比上次有了些许的进步!

第四次的分数达到了0.6544分

由于我们缺失的结果只有9个(在本次的代码运行中,如图) ,因此补上缺失值对最终总分的影响期望应该是\Delta score=\frac{9}{500}*\frac{1}{4}=0.0045分(每道题姑且认为是四个选项)。这与我们这次运行结果增加的分数相近。(前三次是同一条代码,也不知为何会呈现出一次比一次高的趋势,因此前三次结果我们取平均值)。也就是说,我们这次的代码改进对结果的影响主要是发生在数据缺失的处理这一环节上。

缺失结果

 五、其他

这一章主要是记录我在完成任务的过程中或者我在听直播课的过程中遇到中一些问题与得到的提示:

1. 在‘环境的配置’这一步中,我们应当先导入我们的APIkey(也就是第三个代码块),然后再去安装库函数(第二个代码块),否则在运行第二个代码块时会报错。

2. 我们可以尝试在本地使用anaconda构建一个虚拟环境来运行这些代码,前提是要先用pip把这些库函数安装好。

3. 我们也可以使用一些其他的API,例如openai/讯飞星火,或者是一些开源的API,多去尝试尝试,总没坏处。

4. 在真正的比赛过程中,由于我们的代码及数据集要求是50GB以内,因此,我们使用的开源模型的参数数量应该控制在20B以内。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值