文章目录
- MusicGen
- 权重选择
- 生成音乐
- 采样模式(Sampling)
- 贪心模式(Greedy Search)
- 使用
学习使用MindNLP+MusicGen生成自己的个性化音乐的流程
MusicGen
MusicGen模型基于Transformer结构,可以分解为三个不同的阶段:
- 用户输入的文本描述作为输入传递给一个固定的文本编码器模型,以获得一系列隐形状态表示。
- 训练MusicGen解码器来预测离散的隐形状态音频token。
- 对这些音频token使用音频压缩模型(如EnCodec)进行解码,以恢复音频波形。
权重选择
使用预训练方式,选择谷歌的t5-base及其权重作为文本编码器模型,使用EnCodec 32kHz及其权重作为音频压缩模型。选择权重时,选择small规格的预训练权重
生成音乐
MusicGen支持两种生成模式:贪心(greedy)和采样(sampling)。
采样模式(Sampling)
- 特点:
采样模式是基于概率分布随机选择词作为输出。这种方法能够增加输出的多样性,使得生成的文本更加自然和富有变化。
在大语言模型中,采样模式通常涉及从模型预测的概率分布中随机选择一个词作为下一个词,然后根据这个选择继续生成后续的文本。 - 优势:
多样性:采样模式能够生成多样化的文本,避免重复和单调。
自然性:生成的文本在连贯性和自然性方面通常优于贪心模式,因为它考虑了概率分布中的多个候选词。
采样模式更适用于需要生成多样化、自然文本的场景。
贪心模式(Greedy Search)
- 特点:
贪心模式在每一步都选择概率最高的词作为输出,直到生成结束符。这种方法追求局部最优解,但在整体上可能不是最优的。
在大语言模型中,贪心模式通常涉及在每一步都选择模型预测概率最高的词,并基于这个选择继续生成后续的文本。 - 优势:
效率:贪心模式实现简单,计算效率高,因为它不需要考虑多个候选词。
确定性:生成的文本是确定的,因为每一步都选择了概率最高的词。 - 缺点:
多样性不足:由于每一步都选择概率最高的词,生成的文本可能缺乏多样性。
可能陷入局部最优:贪心模式可能无法找到全局最优解,因为它只关注当前步骤的最优选择。
贪心模式则更适用于对计算资源有严格限制且对输出多样性要求不高的场景。
使用
在实际执行过程中,采样模式得到的结果要显著优于贪心模式。因此我们默认启用采样模式。
例如,在生成音乐时,调用MusicgenForConditionalGeneration.generate,设置do_sample=True来显式指定使用采样模式。
audio_values = model.generate(**unconditional_inputs, do_sample=True, max_new_tokens=256)
此章节学习到此结束,感谢昇思平台。