0. 引子:
在这篇文章中会主要记录参加这次学习赛的项目,主要会记录一下构思过程,同时也会尝试实现一下项目的一些基础功能
1. Remix项目简介与系统架构设计:
这次其实要做的项目还是比较清晰明了的,Remix在我的最初构想中是一个简单的音乐学习大模型。我们希望在传统的教授乐理、演奏等知识的同时,也能够教授用户一些相对简单的音乐鉴赏技巧。
整体来说系统主要会支持辨认五线谱、音乐节拍等乐理知识,这一块算是比较传统音乐教学软件的功能,这次依托大语言模型,主要是希望能够提供一些比较简单的音乐鉴赏技巧教程,比如让用户了解流派之间的音乐的特点、根据音频来分辨不同的音乐流派。
2.具体实现尝试
这一次的我们所使用的技术主要是大模型调优技术中的微调,一般而言,微调的步骤如下图所示:
整个应用的功能会有不少,其中Remix最为位重要在于能够教会用户如何区分音乐风格,我们在这篇文中主要会尝试实现让大模型可以准确告诉我们不同流派音乐之间的分别,我们不妨先尝试看看在微调之前大模型对不同音乐风格之间的分辨情况
第一轮的测试主要集中在古典乐和流行乐这两种比较知名且区分度较高的音乐,微调之前的模型整体来说虽然回答还不够全面准确,但也算有基本的理解。
我们这里再来测试一轮,这轮我们测试冷爵士和酸爵士的了解情况。
整体来说未进行微调之前spark lite已经有一定的分辨音乐流派的能力了,但是还有两个问题
- 仍然对于音乐流派的描述有不正确的地方
- 介绍有时会忽略部分的重要信息 这里我们试试看可不可以更进一步
我们要开始进行微调了,微调的第一个步骤就是先寻找/制作一个数据集,目前来说音乐分类的数据集有很多,这里有两个例子:Dataset Card For Music,Nottingham Music Database,但是这类数据集不太能够符合我们的需求,这类数据集多是直接提供音频文件和音乐分类的对应关系,这类数据集可能会在我们之后的练习部分中的听音练习中起到作用
这里看起来我们得自己尝试一下自己制作数据集了,这里我们先尝试一下数据增强,我们先优化一下prompt。
这里的本质是我们需要通过通用大模型的总结能力,总结出特定的音乐风格的起源,特点和代表作。换句话说我们需要找出音乐名称和特定
这里我们继续进行一下推理,这里的推理出来的总结很不错,概括出了合成器浪潮的音乐特点。
这里之后还需要进行批量推理,从而获取训练集,这里我还在寻找合适的数据来源,这一部分就放在之后继续补充
3.下一步
整体的开发过程如下,目前架构的设计还需要进行些许调整,目前主要的问题在于对数据集选取,这会直接影响到后期大模型的回答质量,进而影响应用的整体使用感受。
目前主要踩坑的点在:
- 前期架构设计的时候尚未完全确定功能,导致后期频繁修改架构(其实是项目idea不够明确导致的)
- 数据集那边应该早点开始制作。
- 目前看来应该需要多模态支持,但是这块还没思路
(我真的应该参加头脑风暴会的)