gpt4all: an ecosystem of open-source chatbots trained on a massive collections of clean assistant data including code, stories and dialogue
Go to file
eachadea b09ca009c5 Don't build a universal binary
unless -DBUILD_UNIVERSAL=ON
2023-04-20 06:37:54 -04:00
cmake Update the bundled model name. 2023-04-16 22:10:26 -04:00
ggml@cb43158f79 Update submodule. 2023-04-17 08:04:40 -04:00
icons add settings icon 2023-04-16 11:16:30 -04:00
llama.cpp@c8c2c52482 Add llama.cpp support for loading llama based models in the gui. We now 2023-04-20 06:19:09 -04:00
qml Add a new model download feature. 2023-04-18 21:10:06 -04:00
.gitignore Update .gitignore to ignore a local build directory. 2023-04-16 12:52:23 -04:00
.gitmodules Add llama.cpp support for loading llama based models in the gui. We now 2023-04-20 06:19:09 -04:00
CMakeLists.txt Don't build a universal binary 2023-04-20 06:37:54 -04:00
download.cpp Add a new model download feature. 2023-04-18 21:10:06 -04:00
download.h Add a new model download feature. 2023-04-18 21:10:06 -04:00
gptj.cpp Add llama.cpp support for loading llama based models in the gui. We now 2023-04-20 06:19:09 -04:00
gptj.h Add llama.cpp support for loading llama based models in the gui. We now 2023-04-20 06:19:09 -04:00
LICENSE Changing to MIT license. 2023-04-17 16:37:50 -04:00
llamamodel.cpp Add llama.cpp support for loading llama based models in the gui. We now 2023-04-20 06:19:09 -04:00
llamamodel.h Add llama.cpp support for loading llama based models in the gui. We now 2023-04-20 06:19:09 -04:00
llm.cpp Add llama.cpp support for loading llama based models in the gui. We now 2023-04-20 06:19:09 -04:00
llm.h Add llama.cpp support for loading llama based models in the gui. We now 2023-04-20 06:19:09 -04:00
llmodel.h Add llama.cpp support for loading llama based models in the gui. We now 2023-04-20 06:19:09 -04:00
main.cpp Add a new model download feature. 2023-04-18 21:10:06 -04:00
main.qml Add llama.cpp support for loading llama based models in the gui. We now 2023-04-20 06:19:09 -04:00
README.md readme: GPL -> MIT license 2023-04-17 16:45:29 -04:00
utils.cpp Add llama.cpp support for loading llama based models in the gui. We now 2023-04-20 06:19:09 -04:00
utils.h Add llama.cpp support for loading llama based models in the gui. We now 2023-04-20 06:19:09 -04:00

gpt4all-chat

Cross platform Qt based GUI for GPT4All versions with GPT-J as the base model. NOTE: The model seen in the screenshot is actually a preview of a new training run for GPT4All based on GPT-J. The GPT4All project is busy at work getting ready to release this model including installers for all three major OS's. In the meantime, you can try this UI out with the original GPT-J model by following build instructions below.

image

Features

  • Cross-platform (Linux, Windows, MacOSX)
  • Fast CPU based inference using ggml for GPT-J based models
  • The UI is made to look and feel like you've come to expect from a chatty gpt
  • Check for updates so you can alway stay fresh with latest models
  • Easy to install with precompiled binaries available for all three major desktop platforms

Feature wishlist

  • Multi-chat - a list of current and past chats and the ability to save/delete/export and switch between
  • Text to speech - have the AI response with voice
  • Speech to text - give the prompt with your voice
  • Multi-modal - Ability to load more than one model and switch between them
  • Python bindings
  • Typescript bindings
  • Plugin support for langchain other developer tools
  • Save your prompt/responses to disk
  • Upload prompt/respones manually/automatically to nomic.ai to aid future training runs
  • Syntax highlighting support for programming languages, etc.
  • REST API with a built-in webserver in the chat gui itself with a headless operation mode as well
  • Advanced settings for changing temperature, topk, etc. (DONE)
  • YOUR IDEA HERE

Building and running

git clone --recurse-submodules https://github.com/nomic-ai/gpt4all-chat
cd gpt4all-chat
mkdir build
cd build
cmake ..
cmake --build . --parallel
python3 ../ggml/examples/gpt-j/convert-h5-to-ggml.py /path/to/your/local/copy/of/EleutherAI/gpt-j-6B 0
./bin/gpt-j-quantize /path/to/your/local/copy/of/EleutherAI/gpt-j-6B/ggml-model-f32.bin ./ggml-model-q4_0.bin 2
./chat

Building and running CLI tools only (no Qt required)

git clone --recurse-submodules https://github.com/nomic-ai/gpt4all-chat
cd gpt4all-chat/ggml
mkdir build
cd build
cmake ..
cmake --build . --parallel
wget https://gpt4all.io/models/ggml-gpt4all-j.bin # Download GGML model if required
./bin/gpt-j -m ggml-gpt4all-j.bin -n 200 --top_k 40 --top_p 0.9 -b 9 --temp 0.9 -p "Below is an instruction that describes a task. Write a response that appropriately completes the request.
### Instruction:
Tell me about artifical intelligence
### Response:"

To get Qt installed for your system

  • Highly advise using the official Qt online open source installer.
  • You can obtain this by creating an account on qt.io and downloading the installer.
  • You should get latest Qt {Qt 6.5.x} for your system and the developer tools including QtCreator, cmake, ninja.
  • WINDOWS NOTE: you need to use the mingw64 toolchain and not msvc
  • ALL PLATFORMS NOTE: the installer has options for lots of different targets which will add a lot of download overhead. You can deselect webassembly target, android, sources, etc to save space on your disk.

Contributing

  • Pull requests welcome. See the feature wish list for ideas :)

License

The source code of this chat interface is currently under a MIT license. The underlying GPT4All-j model is released under non-restrictive open-source Apache 2 License.

The GPT4All-J license allows for users to use generated outputs as they see fit. Users take responsibility for ensuring their content meets applicable requirements for publication in a given context or region.