Treinamento de modelos
Além de dados e algoritmos, os desenvolvedores gastam muito tempo configurando os parâmetros de treinamento do modelo. Os parâmetros de treinamento do modelo determinam a precisão e o tempo de convergência do modelo. A seleção de parâmetros depende muito da experiência dos desenvolvedores. A seleção inadequada de parâmetros afetará a precisão do modelo ou aumentará significativamente o tempo necessário para o treinamento do modelo.
Para simplificar o desenvolvimento de IA e melhorar a eficiência do desenvolvimento e o desempenho do treinamento, o ModelArts oferece gerenciamento de tarefas visualizadas, gerenciamento de recursos e gerenciamento de versões e realiza otimização de hiperparâmetros com base em aprendizado de máquina e aprendizado por reforço. Ele fornece políticas automáticas de ajuste de hiperparâmetros, como taxa de aprendizado e tamanho de lote, e integra modelos comuns.
Atualmente, quando a maioria dos desenvolvedores constrói modelos, os modelos geralmente têm dezenas de camadas ou até centenas de camadas e parâmetros de nível MB ou GB para atender aos requisitos de precisão. Como resultado, as especificações dos recursos de computação são extremamente altas, especialmente o poder de computação dos recursos de hardware, memória e ROM. As especificações de recursos no lado do dispositivo são estritamente limitadas. Por exemplo, o poder de computação no lado do dispositivo é de 1 TFLOPS, o tamanho da memória é de cerca de 2 GB e o espaço da ROM é de cerca de 2 GB, então o tamanho do modelo no lado do dispositivo deve ser limitado a 100 KB e o atraso de inferência deve ser limitado a 100 milissegundos.
Portanto, tecnologias de compressão com precisão de modelo sem perdas ou quase sem perdas, como poda, quantização e destilação de conhecimento, são usadas para implementar compressão e otimização automática de modelos e iteração automática de compressão e reciclagem de modelos para controlar a perda de precisão do modelo. A tecnologia de quantização de bits baixos, que elimina a necessidade de reciclagem, converte o modelo de um ponto flutuante de alta precisão para uma operação de ponto fixo. Várias tecnologias de compactação e otimização são usadas para atender aos requisitos leves dos recursos de hardware de dispositivos e de borda. A tecnologia de compactação do modelo reduz a precisão em menos de 1% em cenários específicos.
Quando o volume de dados de treinamento é grande, o treinamento do modelo de aprendizado profundo é demorado. Em tecnologia de visão computacional, ImageNet-1k (um conjunto de dados de classificação contendo 1.000 classes de imagens, conhecido como ImageNet) é um conjunto de dados comumente usado. Se você usar uma GPU P100 para treinar um modelo ResNet-50 no conjunto de dados, levará quase uma semana. Isso dificulta o rápido desenvolvimento de aplicações de aprendizado profundo. Portanto, a aceleração do treinamento de aprendizado profundo sempre foi uma preocupação importante para a academia e a indústria.
A aceleração do treinamento distribuído precisa ser considerada em termos de software e hardware. Um único método de otimização não pode atender às expectativas. Portanto, a otimização da aceleração distribuída é um projeto de sistema. A arquitetura de treinamento distribuído precisa ser considerada em termos de design de hardware e chip. Para minimizar atrasos de computação e comunicação, muitos fatores precisam ser considerados, incluindo especificações gerais de computação, largura de banda da rede, cache de alta velocidade, consumo de energia e dissipação de calor do sistema e a relação entre a taxa de transferência de comunicação e computação.
O design do software precisa combinar recursos de hardware de alto desempenho para usar totalmente a rede de hardware de alta velocidade e implementar comunicação distribuída de alta largura de banda e cache de dados local eficiente. Usando algoritmos de otimização de treinamento, como paralelo híbrido, compressão de gradiente e aceleração de convolução, o software e o hardware do sistema de treinamento distribuído podem ser eficientemente coordenados e otimizados de ponta a ponta, e a aceleração de treinamento pode ser implementada em um ambiente distribuído de vários hosts e cartões. O ModelArts oferece uma aceleração líder do setor de mais de 0,8 para o ResNet50 no conjunto de dados ImageNet no ambiente distribuído com milhares de hosts e cartões.
Para medir o desempenho de aceleração do aprendizado profundo distribuído, os dois indicadores principais a seguir são usados:
- Taxa de transferência, ou seja, a quantidade de dados processados em uma unidade de tempo
- Tempo de convergência, ou seja, o tempo necessário para atingir certa precisão
A taxa de transferência depende do hardware do servidor (por exemplo, mais chips de aceleração de IA com maior capacidade de processamento FLOPS e maior largura de banda de comunicação alcançam maior taxa de transferência) leitura e cache de dados, pré-processamento de dados, computação de modelos (por exemplo, seleção de algoritmos de convolução) e otimização de topologia de comunicação. Exceto a computação de baixo bits e a compactação de gradiente (ou parâmetro), a maioria das tecnologias melhora a taxa de transferência sem afetar a precisão do modelo. Para alcançar o menor tempo de convergência, você precisa otimizar a taxa de transferência e ajustar os parâmetros. Se os parâmetros não forem ajustados corretamente, a taxa de transferência não poderá ser otimizada. Se o tamanho do lote for definido para um valor pequeno, o desempenho paralelo do treinamento do modelo será relativamente ruim. Como resultado, a taxa de transferência não pode ser melhorada mesmo que o número de nós de computação seja aumentado.
Os usuários estão mais preocupados com o tempo de convergência. A estrutura MoXing implementa otimização de pilha completa e reduz significativamente o tempo de convergência do treinamento. Para leitura e pré-processamento de dados, o MoXing usa pipelines de entrada simultânea de vários níveis para evitar que I/Os de dados se tornem um gargalo. Em termos de computação de modelos, o MoXing fornece cálculo de precisão híbrida, que combina semiprecisão e precisão única para os modelos de camada superior e reduz a perda causada pelo cálculo de precisão por meio de dimensionamento adaptativo. Políticas de hiperparâmetro dinâmico (como momento e tamanho do lote) são usadas para minimizar o número de épocas necessárias para a convergência do modelo. MoXing também trabalha com servidores e bibliotecas de computação subjacentes da Huawei para melhorar ainda mais a aceleração distribuída.
Otimização de treinamento distribuído de alto desempenho do ModelArts
- Precisão híbrida automática para utilizar totalmente os recursos de computação de hardware
- Tecnologias de ajuste de hiperparâmetro dinâmico (tamanho dinâmico do lote, tamanho da imagem e momento)
- Mesclagem e divisão automáticas do gradiente do modelo
- Otimização de agendamento do operador de comunicação com base na computação adaptativa de bolhas da BP
- Bibliotecas distribuídas de comunicação de alto desempenho (NStack e HCCL)
- Modelo de dados distribuídos paralelo híbrido
- Treinamento de compactação de dados e cache de vários níveis