O BAGEL é um modelo de base multimodal de código aberto desenvolvido pela equipe do ByteDance Seed e hospedado no GitHub, que integra recursos de compreensão de texto, geração de imagens e edição para dar suporte a tarefas multimodais. O modelo tem 7B parâmetros ativos (de um total de 14B parâmetros) e é treinado em dados multimodais intercalados em grande escala usando a arquitetura Mixture-of-Transformer-Experts (MoT). Qwen2.5-VL Ele oferece suporte a recursos avançados, como edição de imagens de forma livre, geração de sequências de vídeo e compreensão espacial em 3D, e é adequado para desenvolvedores e pesquisadores que exploram aplicativos de IA. O projeto fornece guias detalhados de instalação e raciocínio para que os usuários possam começar rapidamente.
Lista de funções
- Oferece suporte à geração de texto para imagem, que pode gerar imagens de alta qualidade com base em prompts de texto.
- Fornece uma função de compreensão de imagem que permite analisar o conteúdo das imagens e responder a perguntas relacionadas.
- Oferece suporte à edição de imagens de forma livre, modificando os detalhes da imagem por meio de comandos de texto.
- Permite a geração de sequência de vídeo, que pode gerar conteúdo de vídeo dinâmico com base em texto.
- Oferece recursos de raciocínio multimodal para combinar dados de texto, imagem e vídeo para tarefas complexas.
- Oferece suporte à compreensão espacial em 3D para composição de várias visualizações e tarefas de navegação mundial.
- Fornece scripts de avaliação para modelagem de linguagem visual (VLM), texto para imagem (T2I) e benchmarking de edição de imagens.
- Código-fonte aberto e pesos de modelo que permitem treinamento e ajuste fino definidos pelo usuário.
Usando a Ajuda
Processo de instalação
Para usar o BAGEL, é necessário instalar e configurar as dependências relevantes em seu ambiente local. Veja a seguir as etapas detalhadas de instalação:
- armazém de clones
Clone o projeto BAGEL localmente usando o Git:git clone https://github.com/bytedance-seed/BAGEL.git cd BAGEL
- Criação de um ambiente virtual
Crie um ambiente Python 3.10 com o Conda e ative-o:conda create -n bagel python=3.10 -y conda activate bagel
- Instalação de dependências
Instale as bibliotecas Python necessárias executando o seguinte comando no diretório do projeto:pip install -r requirements.txt
- Download dos pesos do modelo
Os pesos do modelo do BAGEL estão hospedados no Hugging Face. Execute o seguinte script Python para fazer o download do modelo:from huggingface_hub import snapshot_download save_dir = "/path/to/save/BAGEL-7B-MoT" repo_id = "ByteDance-Seed/BAGEL-7B-MoT" cache_dir = save_dir + "/cache" snapshot_download( cache_dir=cache_dir, local_dir=save_dir, repo_id=repo_id, local_dir_use_symlinks=False, resume_download=True, allow_patterns=["*.json", "*.safetensors", "*.bin", "*.py", "*.md", "*.txt"] )
comandante-em-chefe (militar)
/path/to/save/BAGEL-7B-MoT
Substitua pelo caminho local onde você deseja salvar o modelo. - Verificar a instalação
Quando a instalação estiver concluída, abra o arquivoinference.ipynb
siga as diretrizes do notebook para executar o código de amostra e verificar se o modelo é carregado corretamente.
Uso
As principais funções do BAGEL são invocadas por meio do Jupyter Notebook ou de scripts Python. Abaixo está um fluxo detalhado das principais funções:
1. geração de texto para imagem
O BAGEL suporta a geração de imagens a partir de prompts de texto. Por exemplo, o inference.ipynb
Depois de carregar o modelo, digite o seguinte código:
prompt = "一张夕阳下的海滩,椰树摇曳,浪花拍岸"
image = model.generate_image(prompt)
image.save("output/beach_sunset.png")
- procedimento::
- Verifique se o modelo está carregado.
- Digite um prompt de texto no bloco de notas.
- Execute o código de geração e o modelo produzirá a imagem e a salvará no caminho especificado.
- Verifica a qualidade e o conteúdo da imagem de saída quanto à conformidade com os prompts.
2. compreensão da imagem
O BAGEL pode analisar imagens e responder a perguntas relacionadas. Por exemplo, carregue uma imagem e faça uma pergunta:
image_path = "sample_image.jpg"
question = "图片中的主要物体是什么?"
answer = model.analyze_image(image_path, question)
print(answer)
- procedimento::
- Prepare uma imagem e especifique o caminho.
- Digite a pergunta e execute o código.
- O modelo retorna uma resposta com base no conteúdo da imagem, por exemplo, "O objeto principal da imagem é um gato".
3. edição de imagens
O BAGEL suporta a edição de imagens por meio de comandos de texto. Por exemplo, a substituição do plano de fundo em uma imagem por uma floresta:
image_path = "input_image.jpg"
instruction = "将背景替换为郁郁葱葱的森林"
edited_image = model.edit_image(image_path, instruction)
edited_image.save("output/edited_forest.png")
- procedimento::
- Carregue a imagem a ser editada.
- Insira instruções específicas de edição.
- Execute o código e verifique se a imagem de saída atende aos requisitos.
- Observação: A edição atual da imagem pode resultar em uma perda de nitidez, mas o efeito ainda está sendo otimizado.
4. geração de sequência de vídeo
O BAGEL oferece suporte à geração de sequências de vídeo com base em texto. Exemplo:
prompt = "一只猫在草地上追逐蝴蝶"
video = model.generate_video(prompt)
video.save("output/cat_chasing_butterfly.mp4")
- procedimento::
- Digite o prompt de geração de vídeo.
- Ao executar o código gerado, o modelo gera sequências de vídeo curtas.
- Verifique se o conteúdo do vídeo corresponde à descrição.
5. avaliação do desempenho do modelo
O BAGEL fornece scripts de avaliação para testar o desempenho do modelo em tarefas de compreensão de linguagem visual, geração e edição de imagens. Execute a avaliação:
cd EVAL
python run_benchmarks.py
- procedimento::
- entrar em
EVAL
Catálogo. - Execute o script de avaliação para ver o desempenho do modelo em testes de benchmark padrão.
- Os resultados são exibidos no terminal ou salvos como um arquivo de registro.
- entrar em
advertência
- Assegure o suporte de hardware: o BAGEL requer aceleração de GPU, sendo recomendadas GPUs NVIDIA com pelo menos 16 GB de memória de vídeo.
- Verifique a conexão de rede: o download de pesos de modelo requer uma rede estável.
- Documento de referência: Projeto no
README.md
responder cantandoinference.ipynb
Fornece exemplos detalhados de códigos e descrições de parâmetros. - Suporte da comunidade: Em caso de dúvidas, envie um problema na página de problemas do GitHub ou consulte a discussão sobre o Hugging Face. [](https://github.com/ByteDance-Seed/Bagel)
cenário do aplicativo
- criação de conteúdo
O BAGEL pode ser usado para gerar gráficos de blog, conteúdo de mídia social ou clipes de vídeo. Os criadores inserem descrições de texto e geram rapidamente imagens ou vídeos curtos que se encaixam no tema, economizando tempo de design. - Educação e pesquisa
Os pesquisadores podem usar o BAGEL para realizar experimentos de IA multimodal que testam a capacidade do texto de interagir com imagens. Os alunos podem aprender sobre o desenvolvimento e a implantação de modelos de IA por meio de código-fonte aberto. - Prototipagem de produtos
Os desenvolvedores podem criar aplicativos interativos baseados no BAGEL, como ferramentas inteligentes de edição de imagens ou aplicativos de geração de vídeo baseados em texto para prototipagem rápida de produtos. - desenvolvimento de jogos
Os recursos de compreensão espacial 3D e de geração de imagens do BAGEL podem ser usados para gerar cenas de jogos ou materiais dinâmicos, reduzindo os custos de desenvolvimento.
QA
- Quais idiomas são suportados pelo BAGEL?
O BAGEL oferece suporte principalmente à entrada e saída de texto em inglês e chinês. O suporte a outros idiomas pode ser menos eficaz devido às limitações dos dados de treinamento. - Quantos recursos de computação são necessários?
Para executar o BAGEL, é recomendável usar uma GPU com pelo menos 16 GB de memória de vídeo; as CPUs podem ser mais lentas e não são adequadas para gerar tarefas. - Como posso contribuir com o código ou aprimorar o modelo?
As Pull Requests podem ser enviadas no repositório do GitHub. A documentação de treinamento e ajuste fino estará disponível em breve, consulteREADME.md
Receba atualizações. - Qual é a qualidade da geração de imagens?
A qualidade da geração de imagens do BAGEL é próxima à do SD3, mas pode ser necessária uma otimização adicional para cenas complexas ou altas resoluções.