A construção de grandes modelos de IA exige uma curva de aprendizado e exige muito tempo e recursos. Até recentemente, pensávamos nos pesos do modelo de IA pré-treinados como matrizes 2D ambíguas de números decimais, mas e se houvesse algo mais.
Hoje queremos compartilhar como estamos explorando os pesos dos modelos de IA, mas primeiro vamos ver como chegamos aqui.
Lemos esses documentos importantes
Classificação ImageNet com redes neurais convolucionais profundas
Atenção é tudo que você precisa
Conclusões / Destaques
Perguntas-chave
O que mais funciona com matrizes e dados float 32 de alta resolução? (imagens TIFF)?
Por que não podemos reutilizar técnicas semelhantes desses sistemas que possuem conjuntos de dados grandes e de alta resolução para navegar “pelos pesos” com um tipo diferente de iterador? Com a ferrugem atual e o desempenho do mmap carregando um arquivo de 100 GB no disco, quem sabe essa abordagem poderia funcionar sem uma GPU para modelos menores restritos apenas à CPU.
Quais peças técnicas estão faltando/necessárias para começar?
O que
Construímos um protótipo para extrair e, esperançosamente, identificar como os pesos:
relacionar-se com os dados de treinamento de origem originais
mudar ao longo de muitas gerações de treinamento
parecem representar um denso campo 3D de conhecimento de treinamento salvo como “pesos” incorporados (não comprovado, mas esta é a nossa hipótese baseada nas técnicas que parecem estar funcionando)
Por que
Queríamos entender por que os LLMs são especiais e como os pesos se encaixam nessa tecnologia inovadora.
Ao optar por gastar nosso tempo tentando visualizar quais são os pesos do LLM, acreditamos que podemos aplicar técnicas de visualização bem conhecidas para analisar varreduras do cérebro humano para extrair, identificar, reutilizar e auditar quais são os pesos.
Antes que os grandes pesos generativos do AI Transformer estivessem amplamente disponíveis, esses tipos de conjuntos de dados de treinamento densos e de alta resolução eram muito caros e não eram compartilhados com frequência.
Como
Construímos este protótipo usando algoritmos de processamento de sinal digital (DSP) para análise volumétrica de dados de alta resolução e combinamos o mecanismo de análise com o Blender (uma ferramenta de visualização de código aberto).
Abriremos o código-fonte e acompanharemos como uma IA aprende desde o início e usaremos o Blender para exportar e compartilhar a aparência dos pesos à medida que avançamos.
Ao optar por usar o Blender para analisar pesos de modelos em um volume 3D, construímos recursos de animação que nos permitem projetar nossa API v1 inicial para capturar um conjunto de dados de treinamento de série temporal. Este conjunto de dados de treinamento se concentra em capturar como um modelo fundamental de IA aprende em cada fase de treinamento usando análise de peso de alto desempenho em dados volumétricos.
Acreditamos que precisamos compartilhar a aparência desses modelos para que possamos entendê-los e treinar IAs para construir e auditar a si mesmas.
Também queremos ver como são as misturas de especialistas (baixe as versões mais recentes do Dolphin 2.5 Mixtral 8x7B STL/glTF mesh abaixo).
Este repositório é para criar perfis, extrair, visualizar e reutilizar pesos de IA generativos para construir modelos de IA mais precisos e pesos de auditoria/verificação em repouso para identificar domínios de conhecimento para risco(s).
Observação: a versão de hoje inclui apenas como criar perfil, extrair e visualizar pesos de modelos existentes. Agora que podemos visualizar como os modelos de IA aprendem, o próximo passo é o treinamento básico do modelo. A visualização do treinamento começará ensinando um novo modelo de IA sobre “como o repositório bampe-weights integrou numpy, pandas e Blender”. Temos cerca de 190 arquivos python/(tarefa, prompt, resposta) para organizar antes de compartilhar.
Este repositório está explorando visualizações do aprendizado do modelo ao longo do tempo e construindo conjuntos de dados de treinamento a partir de "formas de peso" extraídas para construir e prever novos pesos de modelos de IA (esperançosamente mais rápidos do que os métodos de treinamento tradicionais também).
Esta é a aparência do Llama 2 7B Chat GPTQ dentro do Blender e exportado como um gif usando este repositório:
As seguintes pastas do Google Drive contêm o índice emergente de visualizações glTF e STL de modelo de linguagem grande. Os arquivos variam de ~1 MB a +2 GB.
Entre em contato se quiser ver um novo modelo/densidade!
Se um arquivo STL for pequeno o suficiente, o GitHub poderá renderizar automaticamente as malhas 3D. Observação: visualizar o GitHub STL no celular não é ideal no momento, mas em um desktop você pode ampliar as camadas usando a roda do mouse ao contrário e girar com os botões esquerdo/direito do mouse:
Tentamos ficar abaixo do limite de 50 MB e armazenar ativos em nosso repositório no GitHub - https://github.com/matlok-ai/gen-ai-datasets-for-bampe-weights/docs/images/blender
Auto-hospede o Blender em um contêiner para ajudar a ver como são os pesos de IA generativos localmente:
Imagem do contêiner de demonstração do Blender com arquivos STL/GLB exportados já incluídos
A imagem matlok/blender-ai-demos foi criada a partir da imagem LinuxServer Blender e inclui arquivos 3D STL e GLB que você pode visualizar em um navegador. A imagem do contêiner extraída do blender-ai-demos tem >4,0 GB no disco e usa cerca de 3 GB de RAM para processar arquivos STL ou glTF >40 MB:
As visualizações de demonstração são encontradas neste diretório dentro do contêiner:
/config/bampe-visualizações
Docker
docker rm blender; docker-compose -f compose/blender-demos.yaml up -d
Podman
podman rm -t 0 -f blender; podman-compose -f compose/blender-demos.yaml up -d
Imagem base do servidor Linux
Execute a imagem LinuxServer/docker-blender (lscr.io/linuxserver/blender:latest) e gere novos arquivos STL/GLB que estão prontos para visualização usando um volume já montado entre o host e o contêiner do Blender (diretório .blender ). A imagem do contêiner extraída do docker-blender tem aproximadamente 3 GB no disco.
Docker
docker rm blender; docker-compose -f compose/blender-demos.yaml up -d
Podman
podman rm -t 0 -f blender; podman-compose -f compose/base.yaml up -d
Nota: artefatos visuais recém-criados (arquivos STL e glTF glb) só aparecem quando o container é reiniciado neste diretório dentro do container do Blender:
/config/bampe
Abra o Blender em um navegador
O Blender está ouvindo neste URL:
http://localhost:3000
Carregar manualmente uma visualização 3D Blender AI
Assim que o Blender estiver rodando no navegador, você poderá importar arquivos STL ou glTF clicando nestes menus:
Arquivo
Importar
STL ou glTF
Os arquivos estão em /config/bampe ou /config/bampe-visualizations dependendo da versão do contêiner em execução
Use Shift + ` para ativar o modo de navegação com o mouse e W, A, S, D para movimento em primeira pessoa.
Manter pressionado o botão Shift também se moverá com velocidade turbo.
Abra Editar -> Preferências -> Navegação -> Voar e Caminhar -> Caminhar Seta de alternância
Ajustar a sensibilidade do mouse -> 0,1
Ajustar velocidade de caminhada -> 20 m/s
Este repositório é para pesquisar abordagens alternativas para construir IA usando pesos de IA pré-treinados. É um trabalho em andamento, portanto consulte Configurando um ambiente de desenvolvimento para obter mais detalhes sobre como executá-lo a partir da linha de comando.
Podemos compartilhar e visualizar essas formas usando ferramentas online.
Este repositório foi testado nas seguintes plataformas: