一、前期为上分准备的尝试
1.Baesline01中修改模型,关注模型的表现能力。
(使用Qwen2-72b-instruct加上Prompt细致化描述得分0.8178)
2.Baseline01中修改Prompt,上分失败。
3.Baseline02中修改投票的次数为15次(上分0.7485)。
总体来说,一个好的模型比微调做的很多努力要好很多,不过对于接下来的比赛而言,更重要的是学会对模型进行微调(Docker不允许提交参数过多的模型,同时也不允许调用模型的API)。
二、本Task的学习内容与要点
本Task主要是为了后面持续上分而提供相关的方法,因而只做一个比较简单的概述。
1.模型训练与微调
(1)或者可以从Prompt提示出发入手。
(2)改进微调方法,例如LoRA和Peft库。
(3)可以考虑一下增加数据集。
2.Prompt&Agent优化
(1)Prompt即为提示词。Prompt Engineering作为一门新兴的学科,关注提示词开发和优化,帮助用户将大语言模型(Large Language Model, LLM)用于各场景和研究领域。 掌握了提示工程相关技能将有助于用户更好地了解大型语言模型的能力和局限性。
Prompt的优化方法主要需要注意以下几点:
①指令性。正如程序需要指令运行一样,带有特定的指令可以减少随机性的产生。
②具体性。同样是为了减少随机性从而减少对具体任务的理解错误。
③精确性。
④不要单纯说不做什么,更多的需要说做什么。
(2)Agent=LLM+观察+思考+行动+记忆。
这个公式概括了智能体的功能本质。为了理解每个组成部分,让我们将其与人类进行类比:
LLM:LLM作为智能体的“大脑”部分,使其能够处理信息,从交互中学习,做出决策并执行行动。
观察:这是智能体的感知机制,使其能够感知其环境。智能体可能会接收来自另一个智能体的文本消息、来自监视摄像头的视觉数据或来自客户服务录音的音频等一系列信号。这些观察构成了所有后续行动的基础。
思考:思考过程涉及分析观察结果和记忆内容并考虑可能的行动。这是智能体内部的决策过程,其可能由LLM进行驱动。
行动:这些是智能体对其思考和观察的显式响应。行动可以是利用 LLM 生成代码,或是手动预定义的操作,如阅读本地文件。此外,智能体还可以执行使用工具的操作,包括在互联网上搜索天气,使用计算器进行数学计算等。
记忆:智能体的记忆存储过去的经验。这对学习至关重要,因为它允许智能体参考先前的结果并据此调整未来的行动。
这里给出LLM相关论文发展的一个概述:
一个大语言模型的框架由以下部分组成:用户请求、智能体、规划、记忆。
规划部分,主要涉及到推理的内容,而推理可以通过多种提示方法来引发和增强LLM的推理能力。推理方法研究分为推理增强策略和知识增强推理两大类。推理策略包括提示工程(Prompt Engineering)、过程优化和外部引擎。
对于记忆而言,根据
Machlab 和 Battle(2024)的新研究(opens in a new tab),大模型的记忆受提示工程非常明显。
模型的回忆能力可以通过增加模型大小、增强注意力机制、尝试不同的训练策略和进行微调来提高。
Agent的工作方式如下所述:
对于逻辑推理而言,逻辑推理Agent有以下构造方法:
A.使用另外一个Agent训练对结果的打分,原来的Agent需要同时给出理由,根据Agent的反馈结果给到最高分。
案例来源:
全球首届 AI 奥数竞赛,DeepSeekMath 成为 TOP 团队的共同选择
比赛中,亚军队伍的方案是用两个大语言模型,一个用作生成模型,一个用作奖励模型。
B.只做一个可以接入应用的Tool,接入Rag,在回答问题的时候给出参考。
3.Docker的使用(复赛会用到这个平台提交)
Docker是一个开源的应用引擎,可以用来管理自己的应用部署,其可以支持很多种应用例如Web应用、大数据应用、数据库应用等。可以节省开发者们的硬件成本。
这里详情看阿里云的相关教程视频。
从官网上按照教程的提示下载适配操作系统的Docker环境:https://docs.docker.com/docker-for-windows/install/
使用其打比赛的时候,可以上网去查找对应镜像仓库的创建方法。
4.数据集扩充思路。
(1)在原有样本问题上延伸子问题。
(2)仿照样本问题再让大模型生成类似问题。
三、本次夏令营总结
本次夏令营算是入了一点门,可以尝试理解LoRA内部的结构以及整个数据处理的过程以及大模型的调用过程。这期间学的也算是比较懵懂,很多内容如果抛开教程自己可能还是无从下手。对于大模型一个很深的领域,还是需要自己继续钻研!