649 karma · joined December 29, 2021
I did something similar ie llama2.c in a PDF in a PNG before:
https://news.ycombinator.com/item?id=42721805
https://x.com/VulcanIgnis/status/1879649889178837025
The non polyglot ie PDF only versions could run both in chrome and firefox.
I'll have a look at your github, you seem to have done it more elegantly.
I had done LLM in PDF sometime Nov last year but it wasn't released. Since the doom in pdf uptick, I had released a demo here:
https://x.com/VulcanIgnis/status/1879649889178837025
Actually you don't need an old version of emscripten, hit me up for the Makefile and pdf templates or wait till offical release. My build script will make the pdf work both on chrome and firefox, adobe support is pending.
This is also the guy who wrote a DtCyber that emulates many vintage super computers and stuff. Pretty cool! Thank you man!
adf on request, still in alpha
Visit: https://github.com/trholding/llama2.c
Download the header image from my repo, which is a Polyglot PNG (both a PNG and a PDF). Rename the extension from .png to .pdf and open it in Firefox to run llama2.c inside the PDF! Note that this doesn't work in Chrome.
The PDF contains a version of Karpathy's llama2.c running the tiny 260k model. For more details, check: https://twitter.com/VulcanIgnis/status/1879649889178837025.Y... can find the image here: https://github.com/trholding/llama2.c/blob/master/assets/l2e....
Pure PDF versions of the smaller and smol models are compatible with both Chrome and Firefox, but Adobe Acrobat is not yet supported. I created the PDF part back in November, planning to turn it into a self-regenerating comic demo and add Acrobat support. If Adobe doesn't update their JS engine or improve documentation, I might fork my own reader with WASM for better performance and AI capabilities in PDFs.
Emscripten was used to compile this to something between ASM.JS and JS. Enjoy experimenting with this, though remember it's a tiny 260k model, not super intelligent.
I am passionate about PDFs and frustrated with Adobe's JS engine, which isn't true JS 1.3. This project represents running LLMs inside documents, turning documents into LLM OS. If Adobe doesn't fix JS in PDF, I'm motivated to enhance PDF capabilities myself. This is not the thermodynamic god, just pee/acc where we accelerate peedf :)
I am pretty angry at Adobe as their JS Engine is not JS 1.3 as claimed. It is something in between... So we invented LLM inside Documents. And Documents becoming LLM OS. So Adobe, if you are not going to fix JS in PDF, I'll fork my own reader with WASM and all the bells and whistles!
This is not the thermodynamic god, just pee/acc where we accelerate peedf :)
It is a program that given a model file, tokenizer file and a prompt, it continues to generate text.
To get it to work, you need to clone and build this: https://github.com/trholding/llama2.c
So the steps are like this:
First you'll need to obtain approval from Meta to download llama3 models on hugging face.
Go to https://huggingface.co/meta-llama/Meta-Llama-3.1-8B-Instruct, fill the form and then go to https://huggingface.co/settings/gated-repos see acceptance status. Once accepted, do the following to download model, export and run.
huggingface-cli download meta-llama/Meta-Llama-3.1-8B-Instruct --include "original/*" --local-dir Meta-Llama-3.1-8B-Instruct
git clone https://github.com/trholding/llama2.c.git
cd llama2.c/
# Export Quantized 8bit
python3 export.py ../llama3.1_8b_instruct_q8.bin --version 2 --meta-llama ../Meta-Llama-3.1-8B-Instruct/original/
# Fastest Quantized Inference build
make runq_cc_openmp
# Test Llama 3.1 inference, it should generate sensible text
./run ../llama3.1_8b_instruct_q8.bin -z tokenizer_l3.bin -l 3 -i " My cat"