Adaptación de rango de bajo tensor de modelos de idiomas grandes
Este repositorio es la implementación original de LOTR (ARXIV: 2402.01376), un enfoque novedoso para el ajuste fino de los parámetros de LLM que representa una actualización de gradiente a los parámetros en forma de descomposición tensorial. El adaptador de bajo rango para cada capa se construye como un producto de tres matrices, y la estructura del tensor surge al compartir multiplicadores izquierdo y derecho de este producto entre las capas. La compresión simultánea de una secuencia de capas con representación del tensor de bajo rango permite a LOTR archivar una eficiencia de parámetros aún mejor que Lora, especialmente para modelos profundos. Además, el tensor central no depende de la dimensión de peso original y puede hacerse arbitraria pequeña, lo que permite ajustar fino extremadamente barato y rápido.
@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 }
} Suponemos que todos los resultados de experimentos sin procesar (es decir, los archivos de registro, en primer lugar) se encuentran en el directorio log . La estructura de alto nivel de este directorio debe reflejar la configuración experimental. Entonces, la ruta relativa a este directorio debe tener estructura de la siguiente manera.
<dataset>/<model>/<method>/<param1>/<param2>/.../<seed>/<tfevents-file>
El segmento del modelo precede al segmento de ruta del método ya que el número de modelos diferentes generalmente es menor que el número de métodos y la tubería de entrenamiento generalmente se parametrizan por modelo y luego por método. Todos los parámetros del punto flotante deben usarse en notación científica para garantizar que no se pierdan dígitos significativos. El directorio LAT es una semilla aleatoria utilizada para ejecutar un experimento.
Tenga en cuenta que los requisitos anteriores son involuntarios, ya que no hay un software de gestión de experimentos de aprendizaje automático con todas las funciones.
TensorBoard tfvents : el archivo son archivos bastante grandes que tardan notablemente mucho tiempo en leer y cargar. Así que convertimos los archivos tfevents a parquet -files con el siguiente comando.
python -m lotr.tb2parquet log/glue data/glue.parquet
--names model method task lr rank seed Ahora, uno puede leer un solo archivo parquet con todas las series de tiempo de la siguiente manera.
import pandas as pd
df = pd . read_parquet ( 'data/glue.parquet' ) Para ser más específicos, 20 MB de tfevents -File se convierten a 200 kb de archivo parquet .