Introdução geral
O llm.pdf é um projeto de código aberto que permite aos usuários executar modelos de linguagem grandes (LLMs) diretamente em arquivos PDF. Desenvolvido por EvanZhouDev e hospedado no GitHub, esse projeto demonstra uma abordagem inovadora: compilar llama.cpp para asm.js via Emscripten e combiná-lo com o recurso de injeção de JavaScript do PDF para permitir que o processo de inferência do LLM seja feito inteiramente no arquivo PDF. O projeto é compatível com modelos quantitativos no formato GGUF e recomenda o uso do modelo quantitativo Q8 para obter o melhor desempenho. Os usuários podem gerar um arquivo PDF contendo o LLM por meio do script Python fornecido, que é simples e eficiente. Esse projeto é uma prova de conceito que demonstra a viabilidade de executar modelos complexos de IA em um ambiente não tradicional para desenvolvedores e pesquisadores interessados em tecnologias de IA e PDF.
Experiência: https://evanzhoudev.github.io/llm.pdf/
Lista de funções
- Execute modelos de linguagem grandes em arquivos PDF para oferecer suporte à geração e interação de texto.
- Compile llama.cpp para asm.js usando Emscripten para implementar a inferência de modelo em um ambiente de navegador.
- Os modelos quantitativos no formato GGUF são compatíveis, e a quantificação Q8 é recomendada para aumentar a velocidade do tempo de execução.
- Fornecimento de scripts Python
generatePDF.py
É usado para gerar arquivos PDF contendo LLM. - Oferece suporte à incorporação de arquivos de modelo em PDF por meio da codificação base64, simplificando a distribuição e o uso.
- São fornecidos tutoriais em vídeo do YouTube para mostrar em detalhes como o projeto é criado e como usá-lo.
- Código-fonte aberto, permitindo a personalização do usuário e a ampliação da funcionalidade.
Usando a Ajuda
Instalação e preparação do ambiente
Para usar o projeto llm.pdf, os usuários precisam preparar um ambiente que suporte Python 3 e instalar as dependências necessárias. Veja a seguir as etapas detalhadas de instalação:
- Clonagem do depósito do projeto
Abra um terminal e execute o seguinte comando para clonar o repositório llm.pdf:git clone https://github.com/EvanZhouDev/llm.pdf.git cd llm.pdf
- Instalação das dependências do Python
O projeto depende de um ambiente Python, sendo recomendado o Python 3.8 ou superior. Ir parascripts
catalogar e instalar as bibliotecas necessárias:cd scripts pip install -r requirements.txt
Certifique-se de que o Emscripten e outras ferramentas de compilação necessárias estejam instalados. Se o Emscripten não estiver instalado, consulte sua documentação oficial para configurá-lo.
- Preparação do modelo GGUF
O llm.pdf é compatível apenas com modelos quantitativos no formato GGUF; os modelos quantitativos Q8 são recomendados para melhor desempenho. Os usuários podem fazer download de modelos GGUF do Hugging Face ou de outros repositórios de modelos, como o TinyLLaMA ou outros LLMs pequenos. Os arquivos de modelos precisam ser salvos localmente, por exemplo/path/to/model.gguf
. - Gerar arquivos PDF
O projeto fornece um script PythongeneratePDF.py
Usado para gerar um arquivo PDF contendo o LLM. Execute o seguinte comando:python3 generatePDF.py --model "/path/to/model.gguf" --output "/path/to/output.pdf"
--model
Especifica o caminho para o modelo GGUF.--output
Especifique o caminho para salvar o arquivo PDF gerado.
O script incorpora o arquivo de modelo em PDF por meio da codificação base64 e injeta o código JavaScript necessário para executar a inferência. O processo de geração pode levar alguns minutos, dependendo do tamanho do modelo e do desempenho do dispositivo.
- Execução de arquivos PDF
O arquivo PDF gerado pode ser aberto em um leitor de PDF habilitado para JavaScript, como o Adobe Acrobat ou o visualizador de PDF de um navegador moderno. Depois que o PDF for aberto, o modelo será carregado automaticamente e executará o raciocínio. O usuário pode inserir texto por meio da interface do PDF e o modelo gerará a resposta apropriada. Observação: devido a limitações de desempenho, o modelo paramétrico 135M leva cerca de 5 segundos para gerar um token.
Operação da função em destaque
- Geração de texto
No arquivo PDF, o usuário pode interagir com o LLM por meio de uma caixa de entrada de texto. Depois de inserir um prompt, o modelo gera uma resposta token a token. Recomenda-se o uso de prompts curtos para reduzir o tempo de inferência. Por exemplo, se você digitar "Write a short sentence about cats" (Escreva uma frase curta sobre gatos), o modelo poderá responder "Cats like to chase hairballs" (Gatos gostam de perseguir bolas de pelo). O texto gerado é exibido na área de saída do PDF. - Seleção e otimização de modelos
O projeto oferece suporte a vários modelos de GGUF, e os usuários podem escolher tamanhos diferentes de acordo com suas necessidades. O modelo quantitativo Q8 é a escolha recomendada, pois atinge um equilíbrio entre desempenho e velocidade. Se os usuários precisarem de uma resposta mais rápida, poderão tentar modelos menores (por exemplo, parâmetros de 135M), mas a qualidade da geração poderá ser ligeiramente inferior. - Extensões personalizadas
O llm.pdf é um projeto de código aberto, os usuários podem modificar oscripts/generatePDF.py
ou código JavaScript injetado para implementar funcionalidades personalizadas. Por exemplo, para adicionar novas interfaces interativas ou para oferecer suporte a outros formatos de modelo. Os usuários precisam estar familiarizados com a API JavaScript para Emscripten e PDF.
advertência
- Requisitos de desempenho: Recursos computacionais mais altos são necessários para executar a inferência LLM em PDF. Recomenda-se a execução em um dispositivo com pelo menos 8 GB de RAM.
- Compatibilidade de modelosModelos quantitativos: Somente modelos quantitativos no formato GGUF são compatíveis. Modelos não quantitativos ou formatos não GGUF causarão falha na geração.
- Compatibilidade do navegadorAlguns navegadores mais antigos podem não oferecer suporte ao asm.js, portanto, recomendamos o uso da versão mais recente do Chrome ou do Firefox.
- ajustar os componentes durante o testeSe o arquivo PDF não funcionar, verifique se há erros de JavaScript no registro do terminal ou nas ferramentas de desenvolvedor do navegador (F12).
Recursos de aprendizado
O projeto fornece um tutorial em vídeo do YouTube que explica detalhadamente o processo de criação do llm.pdf. Os usuários podem visitar o README no repositório do GitHub ou o docs
para obter mais documentação. As discussões da comunidade podem ser encontradas na página de problemas do GitHub, onde os desenvolvedores podem fazer perguntas ou contribuir com código.
cenário do aplicativo
- Mostra de tecnologia de IA
O llm.pdf pode ser usado para demonstrar a clientes ou alunos a capacidade dos modelos de IA de operar em ambientes não tradicionais. Por exemplo, em uma conferência técnica, os desenvolvedores podem abrir o PDF e demonstrar os recursos de geração de texto do LLM em tempo real, destacando a portabilidade e a inovação da IA. - Educação e pesquisa
Estudantes e pesquisadores podem usar o llm.pdf para aprender o processo de inferência do LLM com a funcionalidade JavaScript do PDF. O projeto oferece uma plataforma prática para ajudar os usuários a entender a função da quantificação do modelo e como o Emscripten é compilado. - Implementação de IA off-line
Em ambientes com restrições de rede, o llm.pdf oferece uma maneira sem servidor de implementar a IA. Os usuários podem incorporar modelos em PDFs e distribuí-los a outras pessoas para geração e interação de texto off-line.
QA
- Quais modelos são compatíveis com o llm.pdf?
O llm.pdf é compatível apenas com modelos quantificados no formato GGUF; os modelos quantificados Q8 são recomendados para obter o melhor desempenho. Os usuários podem fazer download de modelos compatíveis no Hugging Face. - Por que os arquivos PDF gerados estão sendo executados lentamente?
A inferência de peep LLM em PDF é limitada pelo desempenho do navegador e pelo tamanho do modelo. Os modelos de parâmetros 135M levam cerca de 5 segundos por token. Recomenda-se usar o modelo quantitativo Q8 e executá-lo em um dispositivo de alto desempenho. - Preciso de uma conexão com a Internet para usar o llm.pdf?
Não é necessário. Depois de gerar o PDF, o modelo e o código de inferência são incorporados ao arquivo e podem ser executados off-line. No entanto, o processo de geração do PDF requer uma conexão com a Internet para fazer o download das dependências. - Como depurar erros em arquivos PDF?
Use as ferramentas de desenvolvedor do seu navegador (F12) para verificar se há erros de JavaScript ao abrir arquivos PDF. Consulte tambémgeneratePDF.py
do registro do terminal.