## How C liberated the Memes Of Production
How C liberated the Memes Of Production.
by
Christoph Lohmann <
[email protected]>
## In the Beginning: Tensorflow
https://www.tensorflow.org/
* Required huge GPUs.
* Required much time.
* Was not easy to run everywhere.
## The Dark Times
* Big companies held back AI.
* Big companies told us, AI will always be only possible on their
hardware.
* Big companies told us, only their way is our way.
## Then came the Llama.
https://www.theverge.com/2023/3/8/23629362/meta-ai-language-model-llama-leak-online-misuse
Facebook/Meta's LLama model was leaked.
Facebook/Meta decided to not take it down.
Facebook/Meta decided to finally open source their model and regularily
release it.
But it all was made for Python, like Tensorflow.
## Then came C++ Llama.
https://github.com/ggerganov/llama.cpp
Inference of Meta's LLaMA model (and others) in pure C/C++
https://github.com/ggerganov/whisper.cpp
High-performance inference of OpenAI's Whisper automatic speech
recognition (ASR) model.
## Then came C.
https://github.com/ggerganov/ggml
http://ggml.ai/
The ggml way
Minimal
We like simplicity and aim to keep the codebase as small and as
imple as possible
Open Core
The library and related projects are freely available
under the MIT license. The development process is open
and everyone is welcome to join. In the future we may
choose to develop extensions that are licensed for
commercial use
Explore and have fun!
We built ggml in the spirit of play. Contributors
are encouraged to try crazy ideas, build wild
demos, and push the edge of what’s possible
## ggml
Written in C
16-bit float support
Integer quantization support (4-bit, 5-bit, 8-bit, etc.)
Automatic differentiation
ADAM and L-BFGS optimizers
Optimized for Apple Silicon
On x86 architectures utilizes AVX / AVX2 intrinsics
On ppc64 architectures utilizes VSX intrinsics
No third-party dependencies
Zero memory allocations during runtime
## gguf
https://huggingface.co/docs/hub/gguf
Hugging Face Hub supports all file formats, but has built-in features for
GGUF format, a binary format that is optimized for quick loading and
saving of models, making it highly efficient for inference purposes. GGUF
is designed for use with GGML and other executors. GGUF was developed by
@ggerganov who is also the developer of llama.cpp, a popular C/C++ LLM
inference framework. Models initially developed in frameworks like
PyTorch can be converted to GGUF format for use with those engines.
## Easy frontends.
https://www.nomic.ai/gpt4all
Run your GPT local in no time, everywhere.
## Stable Diffusion Followed
Stable Difussion:
https://github.com/CompVis/stable-diffusion
A slow python inference for image generation.
https://github.com/leejet/stable-diffusion.cpp
> Plain C/C++ implementation based on ggml, working in the same way as llama.cpp
## The Revolution at Bitreich
annna, how do I $someprompt?
/home/annna/scm/ggml/build/bin/gpt-2 \
-m models/gpt-2-1558M/ggml-model.bin \
-t 8
## The Revolution at Bitreich
*::*::*)
query=${text#**::} query=${query%%::*}
annna-say -s "${server}" -c "${channel}" \
"$(stable-diffusion-emoji "${query}")" &
stable-diffusion-emoji calls stable-diffusion
## The Revolution at Bitreich
sdbase="/br/ai/stable-diffusion.cpp"
sdcmd="${sdbase}/build/bin/sd -t 16 --steps 20 -s -1 -H 512 -W 512 \
--cfg-scale 8.0"
sdmodel="${SD_MODEL:-${sdbase}/models/v2-1_768-nonema-pruned-ggml-model-f16.bin}"
sdnegative='nipples, busty, nude, lowres, (worst quality, low quality,
normal quality:2), cropped, infant, blur, haze,
tiling, poorly drawn hands, poorly drawn feet, poorly drawn face, out of
frame, extra limbs, disfigured, deformed, body out of frame, bad anatomy,
watermark, signature, cut off, low contrast, underexposed, overexposed,
bad art, beginner, amateur, distorted face, blurry, draft, grainy, nsfw'
outputf="${1}"
shift 1
${sdcmd} -m ${sdmodel} -o "${outputf}" -p "$@" -n "${sdnegative}" \
>/dev/null 2>&1
## Generated Meme Count
annna meme count (total on 2024-08-03: 22834) set log y
100000 +-----------------------------------------------------------------+
|+ + + + + + +|
|+ total ***T*** TTTTTT +|
|+ memes ###M### TMMMMMMMMMMMMMMMMMMMMMMMMMMMMM +|
10000 |-emojis $$$E$$$ MMMMMMMMMMMMM +-|
|filters %%%F%%% MMMMMM +|
|+ MMM E +|
1000 |-+ MMM FFFFFFFFFFFFFFFFF +-|
|+ MM FFFFFFFFFFF EEE +|
|+ MMMMMM FFFFF E +|
|+ MMMM FF EE +|
100 |-MMM FFF E +-|
|MM F E +|
|M FF $ +|
10 |M+ F E +-|
|# +|
|M +|
|+ + + + + + +|
1 +-----------------------------------------------------------------+
2018-12 2019-12 2020-12 2021-12 2022-12 2023-12 2024-12
## The Revolution at Bitreich
And that is just the beginning.
When resources get cheaper, we can do:
* Image modification
* Image changing
* Text2Video
* Video modification
Want to help?
## Thanks
Thanks for Listening.
Questions?