A agenda foi anunciada! Salvar um lugar na Women in ML Simpósio sobre 19 outubro Register now

Otimização Colaborativa

Mantido por Arm ML Tooling

Este documento fornece uma visão geral das APIs experimentais para combinar várias técnicas para otimizar modelos de aprendizado de máquina para implantação.

Visão geral

A otimização colaborativa é um processo abrangente que engloba várias técnicas para produzir um modelo que, na implantação, exibe o melhor equilíbrio de características de destino, como velocidade de inferência, tamanho do modelo e precisão.

A ideia das otimizações colaborativas é desenvolver técnicas individuais, aplicando-as uma após a outra para obter o efeito de otimização acumulado. Várias combinações das seguintes otimizações são possíveis:

O problema que surge ao tentar encadear essas técnicas é que a aplicação de uma normalmente destrói os resultados da técnica anterior, prejudicando o benefício geral de aplicar todas elas simultaneamente; por exemplo, o armazenamento em cluster não preserva a dispersão introduzida pela API de remoção. Para resolver esse problema, apresentamos as seguintes técnicas experimentais de otimização colaborativa:

Eles fornecem vários caminhos de implantação que podem ser usados ​​para compactar um modelo de aprendizado de máquina e aproveitar a aceleração de hardware no momento da inferência. O diagrama abaixo demonstra vários caminhos de implantação que podem ser explorados em busca do modelo com as características de implantação desejadas, onde os nós folha são modelos prontos para implantação, o que significa que são parcial ou totalmente quantizados e em formato tflite. O preenchimento verde indica as etapas em que o retreinamento / ajuste fino é necessário e uma borda vermelha tracejada destaca as etapas de otimização colaborativa. A técnica usada para obter um modelo em um determinado nó está indicada no rótulo correspondente.

collaborative optimization

O caminho de implantação direto, apenas de quantização (pós-treinamento ou QAT) é omitido na figura acima.

A ideia é alcançar o modelo totalmente otimizado no terceiro nível da árvore de implantação acima; no entanto, qualquer um dos outros níveis de otimização pode ser satisfatório e atingir a latência de inferência / compensação de precisão necessária, caso em que nenhuma otimização adicional é necessária. O processo de treinamento recomendado seria percorrer iterativamente os níveis da árvore de implantação aplicáveis ​​ao cenário de implantação de destino e ver se o modelo atende aos requisitos de latência de inferência e, se não, usar a técnica de otimização colaborativa correspondente para compactar ainda mais o modelo e repetir até que o modelo esteja totalmente otimizado (podado, agrupado e quantizado), se necessário.

A figura abaixo mostra os gráficos de densidade do kernel de peso de amostra passando pelo pipeline de otimização colaborativa.

collaborative optimization density plot

O resultado é um modelo de implantação quantizado com um número reduzido de valores exclusivos, bem como um número significativo de pesos esparsos, dependendo da dispersão alvo especificada no momento do treinamento. Além das vantagens significativas de compactação do modelo, o suporte de hardware específico pode tirar proveito desses modelos esparsos em cluster para reduzir significativamente a latência de inferência.

Resultados

Abaixo estão alguns resultados de precisão e compressão que obtivemos ao experimentar os caminhos de otimização colaborativa PQAT e CQAT.

Treinamento ciente de quantização para preservação de escassez (PQAT)

Modelo Itens Linha de base Modelo podado (50% esparsidade) Modelo QAT Modelo PQAT
DS-CNN-L Precisão FP32 Top1 95,23% 94,80% (Fake INT8) 94,721% (Fake INT8) 94,128%
Quantização inteira completa INT8 94,48% 93,80% 94,72% 94,13%
Compressão 528.128 → 434.879 (17,66%) 528.128 → 334.154 (36,73%) 512.224 → 403.261 (21,27%) 512.032 → 303.997 (40,63%)
Mobilenet_v1-224 Precisão FP32 Top 1 70,99% 70,11% (Fake INT8) 70,67% (Fake INT8) 70,29%
Quantização inteira completa INT8 69,37% 67,82% 70,67% 70,29%
Compressão 4.665.520 → 3.880.331 (16,83%) 4.665.520 → 2.939.734 (37,00%) 4.569.416 → 3.808.781 (16,65%) 4.569.416 → 2.869.600 (37,20%)

Treinamento ciente de quantização com preservação de cluster (CQAT)

Modelo Itens Linha de base Modelo Agrupado Modelo QAT Modelo CQAT
Mobilenet_v1 em CIFAR-10 Precisão FP32 Top1 94,88% 94,48% (Fake INT8) 94,80% (Fake INT8) 94,60%
Quantização inteira completa INT8 94,65% 94,41% 94,77% 94,52%
Tamanho 3,00 MB 2,00 MB 2,84 MB 1,94 MB
Mobilenet_v1 na ImageNet Precisão FP32 Top 1 71,07% 65,30% (Fake INT8) 70,39% (Fake INT8) 65,35%
Quantização inteira completa INT8 69,34% 60,60% 70,35% 65,42%
Compressão 4.665.568 → 3.886.277 (16,7%) 4.665.568 → 3.035.752 (34,9%) 4.569.416 → 3.804.871 (16,7%) 4.569.472 → 2.912.655 (36,25%)

Exemplos

Para exemplos end-to-end das técnicas de otimização de colaboração descrito aqui, por favor consulte as CQAT , PQAT , agrupamento de preservação da dispersão , e PCQAT exemplo notebooks.