基于天池Better Synth多模态大模型数据合成挑战赛的多模态大模型数据合成(1) [Datawhale AI 夏令营]


前言

该问题背景基于 天池Better Synth多模态大模型数据合成挑战赛,详细可以参考该链接。
简而言之,本背景基于图片数据方面,在合成与清洗图文数据中提高多模态大模型的图片理解能力。
基于 Mini-Gemini 模型进行训练,只关注于预训练(模态间对齐)阶段的数据合成与清洗,指令微调阶段为固定数据集。选用 MGM-2B 规模的模型作为模型。

小题外话

基于大模型的数据任务一般占用的训练时间和推理时间都较长,海量的图片文字处理任务更提高了其存储和训练空间的压力。针对这类任务,比较推荐组显卡或服务器运行,例如 阿里云 等平台。

服务器下的数据下载和准备

可以借助于datawhale创建的镜像快速在平台中创建实例并下载基本的数据和准备工作(包括环境的设置和激活)(Bash代码)。

# 激活环境
conda activate name(环境名称)

git clone https:XXX 

小题外话

在服务器的terminal(终端)中,我们一般使用 Linux 语句提高执行和运行效率,同时可以借助于 git clone https:XXX(地址)快速部署。
Linux 语句和 git 的相关内容或者细节感兴趣的话可以自主搜索学习。

安装必要工具并下载实验数据集和图片描述(Bash代码):

apt update
apt install axel zip file
pip install modelscope

bash download.sh 

python download_blip.py

服务器下的数据处理、合成、推理

# 激活环境
conda activate name(环境名称)
# 进入指定目录
cd list(目录)
name-process xx(进程执行)
name-process xx(进程执行)
bash xx.sh   # 执行训练,推理程序

bash 具体用法可参考如下:bash具体用法

数据格式整合

借助于cp命令(主要用于复制文件或目录)可以便捷将不同目录整合打包在一起,最后整合输出:

cp -r xxx(目录)

zip -r submit.zip solution output

cp具体用法可参考如下:cp具体用法

提交结果(测评结果)

提交结果中由分数,MMBench,TextVQA构成

小题外话(两种评估详细解释可跳转以下链接)

MMBench:主要由两个元素组成。第一个元素是精心标注的数据集,在评估问题和能力的数量和种类方面超过了现有的类似基准。第二个元素引入了一种新的 CircularEval 策略,并结合了 ChatGPT 的使用。这种实现旨在将自由形式的预测转换为预定义的选择,从而促进对模型预测的更稳健的评估。MMBench 是一个系统设计的客观基准,用于稳健地评估视觉语言模型的各种能力。

TextVQA:详细数据集官网介绍

总结

该任务总体上来说难度较大,且利用大模型合成数据时间和空间存储占用都较大,环境配置等对未进行过服务器租借人员来说需要花费一定时间。

参考资料

1.天池Better Synth多模态大模型数据合成挑战赛
2.阿里云
3.Linux教程
4.多模态大模型评估基准
5.TextVQA数据集官网介绍

  • 7
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
您好!基于Qt框架实现中文语音合成的方法,可以使用科大讯飞提供的语音合成SDK。具体步骤如下: 1. 在科大讯飞官网注册账号,申请语音合成SDK的授权。 2. 在QT项目中添加SDK的头文件和库文件。 3. 调用SDK提供的接口,实现文字转语音的功能。 以下是一个简单的示例代码: ```c++ #include "qtts.h" #include "msp_cmn.h" #include "msp_errors.h" // 初始化语音合成 int InitTTS() { int ret = MSP_SUCCESS; const char* login_params = "appid = APPID, work_dir = ."; // 替换APPID为自己的应用ID ret = MSPLogin(nullptr, nullptr, login_params); if (MSP_SUCCESS != ret) { printf("MSPLogin failed, error code: %d.\n", ret); return ret; } // 设置语音合成参数 TTSConfig config = DEFAULT_TTS_CONFIG; config.vcn = "xiaoyan"; // 设置发音人为小燕 config.speed = 50; // 设置语速为50 config.volume = 50; // 设置音量为50 config.pitch = 50; // 设置音高为50 const char* session_begin_params = "voice_name = xiaoyan, text_encoding = UTF8, sample_rate = 16000, speed = 50, volume = 50, pitch = 50"; // 创建语音合成句柄 QTTSInit(); return MSP_SUCCESS; } // 文字转语音 int TextToSpeech(const char* text, const char* filename) { int ret = MSP_SUCCESS; const char* session_begin_params = "voice_name = xiaoyan, text_encoding = UTF8, sample_rate = 16000, speed = 50, volume = 50, pitch = 50"; const char* audio_format = "wav"; // 创建语音合成句柄 int synth_status = MSP_TTS_FLAG_STILL_HAVE_DATA; QTTSGetParam(nullptr, TTS_PARAM_SESSION_BEGIN, session_begin_params); const char* audio_data; unsigned int audio_len; FILE* fp = fopen(filename, "wb"); do { audio_data = QTTSSynthText(text, strlen(text), &audio_len, &synth_status, &ret); if (nullptr != audio_data) { fwrite(audio_data, audio_len, 1, fp); } } while (MSP_TTS_FLAG_STILL_HAVE_DATA == synth_status); fclose(fp); // 释放语音合成句柄 QTTSGetParam(nullptr, TTS_PARAM_SESSION_END, nullptr); return MSP_SUCCESS; } // 关闭语音合成 void CloseTTS() { QTTSFini(); MSPLogout(); } // 测试 int main(int argc, char** argv) { // 初始化语音合成 InitTTS(); // 文字转语音 TextToSpeech("科大讯飞,让世界聆听我们的声音。", "output.wav"); // 关闭语音合成 CloseTTS(); return 0; } ``` 需要替换代码中的APPID为自己的应用ID。同时,需要将SDK的头文件和库文件添加到QT项目中,并在项目中包含Qt5Core.dll、msc.dll等动态链接库文件。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值