Introdução geral
O R1-Omni é um projeto de código aberto lançado no GitHub pela equipe do HumanMLLM. Ele aplica, pela primeira vez, técnicas de Aprendizado por Reforço com Recompensas Verificáveis (RLVR) a um modelo multimodal de linguagem grande, com foco no reconhecimento de emoções. O projeto analisa dados de vídeo e áudio para identificar as emoções dos personagens, como raiva, felicidade ou surpresa. Ele foi desenvolvido com o HumanOmni-0.5B como modelo básico e oferece código gratuito e downloads de modelos para pesquisadores e desenvolvedores. O R1-Omni tem bom desempenho em conjuntos de dados como DFEW, MAFW etc. e compreende as emoções com mais precisão, especialmente em cenas complexas. O projeto ainda está sendo atualizado continuamente e planeja abrir mais dados e recursos de treinamento.
Lista de funções
- reconhecimento de emoçõesAnálise de vídeo e áudio para determinar o estado emocional de um personagem, por exemplo, raiva, felicidade, surpresa etc.
- processamento multimodal: Combinação de dados visuais e auditivos para melhorar a precisão do reconhecimento de emoções.
- Otimização do aprendizado aprimorado: Aprimoramento da inferência e adaptação de modelos por meio de técnicas de RLVR.
- Download do modeloModelos: HumanOmni-0.5B, EMER-SFT, MAFW-DFEW-SFT e R1-Omni estão disponíveis.
- Suporte a código abertoCódigo-fonte aberto e conjuntos de dados parciais para apoiar o desenvolvimento secundário pelos usuários.
- DesempenhoForneça resultados de testes em vários conjuntos de dados para facilitar a avaliação da eficácia pelo usuário.
Usando a Ajuda
Instalação e configuração do ambiente
O uso do R1-Omni requer um certo nível de habilidade. Veja a seguir as etapas detalhadas de instalação:
1. requisitos do sistema
- sistema operacionalSuporte para Linux, Windows ou macOS.
- Versão PythonPython 3.8 ou superior é recomendado.
- Suporte de hardwareGPUs NVIDIA são recomendadas (se a aceleração for necessária), mas as CPUs também podem ser executadas.
- Preparação de ferramentasÉ necessário instalar o Git para baixar o código.
2. acesso ao código
Digite o seguinte comando no terminal para baixar o código do R1-Omni:
git clone https://github.com/HumanMLLM/R1-Omni.git
cd R1-Omni
3. ambiente de configuração
O R1-Omni foi desenvolvido com base na estrutura do R1-V. Consulte o repositório do R1-V para obter informações sobre a configuração do ambiente. As etapas são as seguintes:
- Crie um ambiente virtual:
python -m venv venv
source venv/bin/activate # Linux/macOS
venv\Scripts\activate # Windows
- Instalação de pacotes de dependência: a versão a seguir é oficialmente recomendada; digite o comando para instalar:
pip install torch==2.5.1+cu124 torchvision==0.20.1+cu124 torchaudio==2.5.1+cu124 -f https://download.pytorch.org/whl/torch_stable.html
pip install transformers==4.49.0 flash-attn==2.7.4
Observação: certifique-se de que a versão do driver NVIDIA não seja inferior a 535.54. Se a lista completa de dependências estiver faltando, consulte o repositório R1-V.
4. download do modelo
O R1-Omni oferece várias versões de modelos que podem ser baixadas do Hugging Face ou do ModelScope. O Hugging Face é usado como exemplo:
- entrevistas Cara de abraço R1-Omni.
- download
R1-Omni-0,5B
salve-o em um caminho local, como/caminho/para/modelos/R1-Omni-0.5B
. - Download de modelos de dependência:
- Modelagem de áudio:whisper-large-v3Salvar em
/path/to/models/whisper-large-v3
. - Modelagem visual:siglip-base-patch16-224Salvar em
/caminho/para/modelos/siglip-base-patch16-224
.
5. modificação dos arquivos de configuração
existir R1-Omni-0,5B
Localize na pasta config.json
abra-o com um editor de texto e modifique as duas linhas a seguir:
"mm_audio_tower":"/path/to/models/whisper-large-v3", "mm_vision_tower":"/path/to/models/siglip-base-patch16-224
"mm_vision_tower":"/caminho/para/modelos/siglip-base-patch16-224"
Salve e feche o arquivo.
Função Fluxo de operação
1. raciocínio de reconhecimento de emoções
Fornecido por R1-Omni inference.py
Script para analisar o sentimento de um único vídeo. As etapas da operação são as seguintes:
- Prepare o arquivo de vídeo (por exemplo
vídeo.mp4
), verifique se há imagem e som. - É executado no terminal:
python inference.py --modal video_audio \ ---model_path /path/to/models/R1-Omni-0.5B \ --video_path video.mp4 \ --instruct "Como especialista em reconhecimento emocional, ao longo do vídeo, qual emoção transmitida pelos personagens é a mais óbvia para você? Produza o processo de pensamento em tags e a emoção final em tags ."
- Exemplo de saída:
O vídeo mostra um homem parado em frente a um mural colorido, vestindo uma jaqueta marrom, com a testa franzida e a boca aberta, parecendo agitado. O áudio contém as palavras "abaixe sua voz" e "não entre em pânico", e é rápido e tenso. A análise combinada sugere que suas emoções são raiva e agitação. </think raiva
2. teste de desempenho do modelo
O desempenho do modelo foi testado oficialmente nos conjuntos de dados DFEW, MAFW e RAVDESS. Os usuários podem fazer o download desses conjuntos de dados (consulte o site oficial do DFEW ou o site oficial do MAFW) e, em seguida, verificar os efeitos locais com os comandos acima. Os dados de comparação são os seguintes:
- O R1-Omni atinge 65,831 TP3T no DFEW (WAR), o que é melhor do que os 22,641 TP3T do HumanOmni-0.5B.
3. treinamento personalizado
- Treinamento de partida a frioDados: inicialize o modelo com base nos conjuntos de dados Explainable Multimodal Emotion Reasoning (232 amostras) e HumanOmni (348 amostras). Exemplo de formato de dados:
[{"video": "MER24/sample_00000967.mp4", "conversations": [{"from": "human", "value":"
Os dados ainda não são totalmente de código aberto, portanto, fique de olho no GitHub para obter atualizações.
- Treinamento em RLVRUtilizando os conjuntos de dados MAFW e DFEW (15.306 vídeos no total). Exemplos de formatos de dados:
[{"video": "DFEW/videos/1.mp4", "conversations": [{"from": "human", "value":"
Os detalhes do treinamento estão pendentes de esclarecimentos oficiais.
advertência
- Solicitação de vídeoSuporte a formatos como MP4 e deve conter imagem e áudio nítidos.
- Seleção de modelosR1-Omni: R1-Omni é a versão final com desempenho ideal; outros modelos estão disponíveis para experimentos de comparação.
- Suporte técnicoEnvie um problema no GitHub se tiver um problema e a equipe continuará a melhorar a documentação.
Com as etapas acima, os usuários podem instalar e usar rapidamente o R1-Omni para experimentar seu recurso de reconhecimento de emoções.