Sim, você pode executar um LLM "AI chatbot" em um Raspberry Pi! Basta seguir este processo passo a passo e depois perguntar qualquer coisa.
Grandes modelos de linguagem, geralmente conhecidos (e incorretamente) como AIs, ameaçam derrubar o mundo editorial, artístico e jurídico há meses. Uma desvantagem é que usar LLMs como o ChatGPT significa criar uma conta e fazer com que o computador de outra pessoa faça o trabalho. Mas você pode executar um LLM treinado em seu Raspberry Pi para escrever poesia, responder a perguntas e muito mais.
O que é um modelo de linguagem grande?
Modelos de linguagem grandes usam algoritmos de aprendizado de máquina para encontrar relacionamentos e padrões entre palavras e frases. Treinados em grandes quantidades de dados, eles são capazes de prever quais palavras estatisticamente prováveis virão a seguir quando solicitados.
Se você perguntasse a milhares de pessoas como elas estão se sentindo hoje, as respostas seriam: "Estou bem", "Poderia estar pior", "OK, mas meus joelhos estão doendo". A conversa então tomaria outro rumo. Talvez a pessoa pergunte sobre sua própria saúde ou continue com "Desculpe, tenho que correr. Eu estou atrasado para o trabalho".
Dados esses dados e o prompt inicial, um grande modelo de linguagem deve ser capaz de apresentar uma resposta convincente e original por conta própria, com base em a probabilidade de uma determinada palavra vir a seguir em uma sequência, combinada com um grau predefinido de aleatoriedade, penalidades de repetição e outros parâmetros.
Os grandes modelos de linguagem em uso hoje não são treinados em um vox pop de alguns milhares de pessoas. Em vez disso, eles recebem uma quantidade inimaginável de dados, extraídos de coleções disponíveis publicamente, plataformas de mídia social, páginas da Web, arquivos e conjuntos de dados personalizados ocasionais.
Os LLMs são treinados por pesquisadores humanos que reforçam certos padrões e os alimentam de volta ao algoritmo. Quando você pergunta a um modelo de linguagem grande "qual é o melhor tipo de cachorro?", Ele será capaz de responder dizendo que um terrier Jack Russell é o melhor tipo de cachorro e fornecer os motivos.
Mas, independentemente de quão inteligente ou convincente e humanamente burra seja a resposta, nem o modelo nem a máquina corre tem uma mente, e eles são incapazes de entender a pergunta ou as palavras que compõem o resposta. É apenas matemática e muitos dados.
Por que executar um modelo de linguagem grande no Raspberry Pi?
Grandes modelos de linguagem estão por toda parte e estão sendo adotados por grandes empresas de pesquisa para auxiliar nas respostas às consultas.
Embora seja tentador lançar uma pergunta em linguagem natural em uma caixa preta corporativa, às vezes você quer buscar inspiração ou fazer uma pergunta sem alimentar ainda mais dados na boca de capitalismo de vigilância.
Como uma placa experimental para consertadores, o Computador de placa única Raspberry Pi é filosoficamente, se não fisicamente, adequado para o empreendimento.
Em fevereiro de 2023, a Meta (a empresa anteriormente conhecida como Facebook) anunciou o LLaMA, um novo LLM com modelos de linguagem entre 7 bilhões e 65 bilhões de parâmetros. O LLaMA foi treinado usando conjuntos de dados disponíveis publicamente,
O código LLaMA é de código aberto, o que significa que qualquer um pode usá-lo e adaptá-lo, e os 'pesos' ou parâmetros foram postados como torrents e links magnéticos em um tópico no projeto página GitHub.
Em março de 2023, o desenvolvedor Georgi Gerganov lançou lhama.cpp, que pode ser executado em uma grande variedade de hardware, incluindo Raspberry Pi. O código é executado localmente e nenhum dado é enviado ao Meta.
Instalar llama.cpp no Raspberry Pi
Não há diretrizes de hardware publicadas para o llama.cpp, mas ele consome muito processador, RAM e armazenamento. Certifique-se de que você está executando em um Raspberry Pi 4B ou 400 com o máximo de memória, memória virtual, e espaço SSD disponível quanto possível. Um cartão SD não vai cortá-lo, e um case com resfriamento decente é uma obrigação.
Vamos usar o modelo de 7 bilhões de parâmetros, então visite este Tópico LLamA GitHube baixe o torrent 7B usando um cliente como qBittorrent ou Aria.
Clone o repositório llama.cpp e use o cd comando para mover para o novo diretório:
git clone https://github.com/ggerganov/llama.cpp
cdlhama.cpp
Se você não tiver um compilador instalado, instale um agora com:
sudo apt-pegar instalar g++
Agora compile o projeto com este comando:
fazer
Há uma chance de falha na compilação do llama.cpp e você verá várias mensagens de erro relacionadas a "vdotq_s32". Se isso acontecer, você precisa reverter um commit. Primeiro, defina seu usuário git local:
git config user.name "davi"
Agora você pode reverter um commit anterior:
git reverter 84d9015
Uma mensagem git commit será aberta no editor de texto nano. Imprensa Ctrl + O para salvar, então Ctrl + X para sair do nano. llama.cpp agora deve compilar sem erros quando você digitar:
fazer
Você precisará criar um diretório para os modelos ponderados que pretende usar:
modelos mkdir
Agora transfira os modelos ponderados do LLaMa diretório:
mv ~/Downloads/LLaMA/* ~/llama.cpp/models/
Certifique-se de ter o Python 3 instalado no seu Pi e instale as dependências do llama.cpp:
python3 -m pip instalar sentença numpy da tocha
A versão do NumPy pode causar problemas. Atualize-o:
pip instalar entorpecido --atualizar
Agora converta o modelo 7B para o formato ggml FP16:
python3 convert-pth-to-ggml.py models/7B/ 1
A etapa anterior é extremamente intensiva em memória e, segundo nossos cálculos, usa pelo menos 16 GB de RAM. Também é super lento e propenso a falhas.
Você obterá melhores resultados seguindo estas instruções em paralelo em um PC de mesa e, em seguida, copiando o arquivo /models/7B/ggml-model-q4_0.bin para o mesmo local em seu Raspberry Pi.
Quantize o modelo para 4 bits:
./quantize.sh 7B
É isso. O LLaMA LLM agora está instalado no seu Raspberry Pi e pronto para uso!
Usando llama.cpp no Raspberry Pi
Para começar a usar o llama.cpp, verifique se você está no diretório do projeto e digite o seguinte comando:
./main -m ./modelos/7B/ggml-model-q4_0.bin -t 4 -n 128 -p "O que é o Kernel do Linux?"
O -m a opção é direcionar llama.cpp para o modelo que você deseja usar; -t indica o número de threads que você deseja usar; -n é o número de tokens a prever; -p é o seu prompt. Você pode personalizar todas e quaisquer dessas variáveis.
Prepare-se para uma longa espera, porque embora o Raspberry Pi seja excelente no que faz, ele não foi projetado para esse tipo de atividade da CPU. Em nosso prompt de exemplo, llama quebrou o texto em oito tokens individuais, antes de dar a seguinte resposta:
Linux Kernel, em poucas palavras, sempre foi referido como um sistema operacional. No entanto, não é realmente considerado um, pois, para todos os efeitos práticos, a maioria de suas funções são expostos por meio de APIs e utilitários que podem ser usados por qualquer outro sistema operacional que queira (ou precise) acessá-los API(s). No que diz respeito ao Kernel do Linux, não há muito a ver com o kernel real. Ele apenas iniciará, receberá os parâmetros de configuração do seu gerenciador de inicialização/initrd de sua escolha e, em seguida, fará com que funcione em algum hardware e você fará qualquer negócio que isso implique neste ponto
Embora essa fosse uma resposta bastante coerente, uma segunda tentativa resultou em algo parecido com uma salada de palavras grosseiramente picada:
A maioria de vocês provavelmente já ouviu falar sobre isso, mas não sabe realmente do que eles estão falando. Discutiremos isso em detalhes porque entendê-los completamente nos ajuda a usar nossos computadores mais eficientemente e também tomar melhores decisões ao comprar novo hardware ou software para seus PCs em casa, escritórios etc.. O Linux Kernel é a espinha dorsal da maioria dos sistemas operacionais executados em um sistema de computador, como o Android, que é um sistema operacional de código aberto baseado em parte neste kernel. Mas o que exatamente eles querem dizer com linux kernal?
O Linus Torvalds escreveu seus pensamentos (Conhecimento)
Vale a pena mencionar neste ponto que cada uma dessas respostas levou cerca de duas horas para ser produzida e teve todos os quatro núcleos da CPU funcionando a 100% o tempo todo. No entanto, o trabalho no projeto está avançando rapidamente e você pode esperar que as próximas otimizações do ARM reduzam o tempo.
Você também pode simular conversas inteiras com seu LLM em vez de alimentá-lo com prompts de cada vez. Adicionando o -eu opção iniciará lhama no modo interativo, enquanto --interactive-start irá pedir-lhe entrada no início. Para obter uma lista completa das opções disponíveis, execute:
principal -h
Esteja ciente de que o LlaMA não possui regras restritivas. Ocasionalmente, será sexista, racista, homofóbico e muito errado.
Um grande modelo de linguagem não substitui o conhecimento real
Executar o LLaMA da Meta no Raspberry Pi é incrivelmente legal, e você pode ficar tentado a recorrer ao seu guru virtual para questões técnicas, conselhos de vida, amizade ou como uma fonte real de conhecimento. Não se deixe enganar. Grandes modelos de linguagem não sabem nada, não sentem nada e não entendem nada. Se você precisa de ajuda em alguma coisa, é melhor falar com um ser humano ou ler algo escrito por um ser humano.
Se você estiver com pouco tempo, poderá lê-lo rapidamente em seu terminal Linux!