Adaptação de baixa classificação de tensores de grandes modelos de linguagem
Este repositório é a implementação original do LOTR (ARXIV: 2402.01376), uma abordagem nova para ajuste fino com eficiência de parâmetro, que representa uma atualização de gradiente para parâmetros em uma forma de decomposição tensor. O adaptador de baixo rank para cada camada é construído como um produto de três matrizes, e a estrutura do tensor surge do compartilhamento de multiplicadores esquerda e direita deste produto entre as camadas. A compressão simultânea de uma sequência de camadas com representação de tensor de baixo rank permite que o LOTR arquiva uma eficiência de parâmetros ainda melhor do que o LORA, especialmente para modelos profundos. Além disso, o tensor do núcleo não depende da dimensão do peso original e pode ser pequeno pequeno arbitrário, o que permite o ajuste fino extremamente barato e rápido a jusante.
@misc { bershatsky2024lotr ,
title = { {LoTR}: Low Tensor Rank Weight Adaptation } ,
author = { Daniel Bershatsky and Daria Cherniuk and Talgat Daulbaev and Aleksandr Mikhalev and Ivan Oseledets } ,
year = { 2024 } ,
eprint = { 2402.01376 } ,
archivePrefix = { arXiv } ,
primaryClass = { cs.CL }
} Assumimos que todos os resultados do experimento bruto (por exemplo, arquivos de log, antes de tudo) estão localizados no diretório log . A estrutura de alto nível deste diretório deve refletir a configuração experimental. Portanto, o caminho em relação a esse diretório deve ter estrutura da seguinte forma.
<dataset>/<model>/<method>/<param1>/<param2>/.../<seed>/<tfevents-file>
O segmento do modelo precede o segmento do caminho do método, pois o número de modelos diferentes geralmente é menor que o número de métodos e o pipeline de treinamento geralmente parametrizados pelo modelo e depois pelo método. Todos os parâmetros de ponto flutuante devem ser usados na notação científica para garantir que nenhum dígito significativo seja perdido. O diretório LAT é semente aleatória usada para executar um experimento.
Observe que os requisitos acima são involuntários, pois não há software de gerenciamento de experimentos de aprendizado de máquina completo.
O Tensorboard tfvents -File são arquivos bastante grandes que demoram muito tempo para ler e carregar. Por isso, convertemos os arquivos de tfevents em arquivos parquet com o seguinte comando.
python -m lotr.tb2parquet log/glue data/glue.parquet
--names model method task lr rank seed Agora, pode -se ler um único arquivo parquet com todas as séries temporais, como segue.
import pandas as pd
df = pd . read_parquet ( 'data/glue.parquet' ) Para ser mais específico, 20 MB de tfevents -File são convertidos em 200kb de arquivo parquet .