为俄语微调Mistral 7B:从LoRA到全微调实现对话摘要
Mistral 7B在俄语上表现不佳:存在变格错误、忽略提示以及长对话中意义丢失的问题。AiGenda团队决定微调该模型以自动化会议纪要生成。任务涉及语音识别、说话人识别、主题检测,以及使用最多70亿参数和8192个令牌上下文的LLM进行摘要生成。
架构设计注重可扩展性、安全性和容错性。后端通过RabbitMQ将请求路由到ML服务。ML控制器管理模型并与向量数据库交互以处理嵌入。数据隔离存储,使用S3存储并通过OpenStack API进行会议录制。
ML系统架构
处理流程:界面 → 后端 → RabbitMQ → ML → 响应。ML控制器在Whisper(语音)、pyannote/ResNet34(说话人)、主题嵌入和Mistral(文本)之间分配任务。
关键组件:
- RabbitMQ队列:批处理,降低延迟。
- ML控制器:路由、添加/替换模型。
- 向量数据库:说话人和文本嵌入。
- 会议控制器:动态资源用于录制。
- 监控:Grafana、Sentry。
这确保了灵活性和安全性,无需直接访问模型。
LoRA失败与转向全微调
LoRA平滑了错误,但由于基础模型中俄语数据不足,未能修复弱句子逻辑问题。我们转向了全微调。
我们编译了一个包含53.5亿个令牌的数据集:文本、对话、指令、机器翻译。在transformers(Hugging Face)上进行训练,并采用优化:
- 混合精度,bfloat16。
- 无填充采样器(速度提升10倍)。
- Flash Attention 2(节省VRAM)。
- ZeRO-2,卸载到CPU。
两台Nvidia RTX A6000(48 GB)符合预算。日志记录在wandb.ai。
在MERA上评估语言模型
在Ubuntu 20.04、RTX 4090、16个Ice Lake核心、32 GB RAM上测试。微调后的模型在以下方面优于基础Mistral 7B、GigaChat和MTS Chat:
- LCS。
- PARus。
- SimpleAR。
- RuHumanEval。
- ruHH。
实际应用:减少了对话中的错误,在8192个令牌内进行信息提取,幻觉率低。
关键要点:
- 对于预训练模型中数据有限的语言,全微调至关重要。
- 优化(Flash Attention、ZeRO-2)使得在消费级硬件上训练70亿参数模型成为可能。
- MERA是俄语的可靠基准测试。
- 8192个令牌的上下文足以处理会议对话。
- 与架构集成确保了生产就绪性。
任务特定微调与Whisper
在对话数据集上进行最终LoRA微调(摘要、行动项、主题)。标注:手动 + GPT-4 API。摘要的BertScore F1 = 0.93。
Whisper在50%以上俄语数据上微调:讲座、会议、访谈。伪标注 + 字典检查(例如,“ETMO” → “ITMO”)。降低了嘈杂会议音频的WER。
未来发展
计划:上下文扩展到128k个令牌,新架构。收集反馈以进行迭代。
— Editorial Team
暂无评论。