gpt4all/README.md

87 lines
2.8 KiB
Markdown
Raw Normal View History

2023-03-28 00:20:59 +00:00
<h1 align="center">GPT4All</h1>
2023-03-28 21:06:53 +00:00
<p align="center">Demo, data and code to train an assistant-style large language model with ~800k GPT-3.5-Turbo Generations based on LLaMa</p>
2023-03-28 20:04:18 +00:00
<p align="center">
2023-03-28 20:12:30 +00:00
<a href="https://s3.amazonaws.com/static.nomic.ai/gpt4all/2023_GPT4All_Technical_Report.pdf">:green_book: Technical Report</a>
2023-03-28 20:04:18 +00:00
</p>
2023-03-28 19:55:45 +00:00
![gpt4all-lora-demo](https://user-images.githubusercontent.com/13879686/228352356-de66ca7a-df70-474e-b929-2e3656165051.gif)
2023-03-28 21:06:28 +00:00
Run on M1 Mac (not sped up!)
2023-03-25 16:43:27 +00:00
2023-03-28 00:20:59 +00:00
# Try it yourself
2023-03-28 19:55:45 +00:00
2023-03-28 20:38:45 +00:00
Clone this repository down and download the CPU quantized gpt4all model.
2023-03-28 20:21:09 +00:00
- [gpt4all-quantized](https://s3.amazonaws.com/static.nomic.ai/gpt4all/models/gpt4all-lora-quantized.bin)
2023-03-28 00:20:59 +00:00
2023-03-28 20:38:17 +00:00
Place the quantized model in the `chat` directory and start chatting by running:
2023-03-28 21:02:54 +00:00
- `./chat/gpt4all-lora-quantized-OSX-m1` on M1 Mac/OSX
2023-03-28 20:42:30 +00:00
- `./chat/gpt4all-lora-quantized-linux-x86` on Windows/Linux
2023-03-25 16:43:27 +00:00
2023-03-28 20:31:53 +00:00
To compile for custom hardware, see our fork of the [Alpaca C++](https://github.com/zanussbaum/gpt4all.cpp) repo.
2023-03-25 16:43:27 +00:00
2023-03-28 21:05:03 +00:00
Note: the full model on GPU (16GB of RAM required) performs much better in our qualitative evaluations.
2023-03-28 15:56:16 +00:00
# Reproducibility
2023-03-28 16:26:23 +00:00
2023-03-28 20:21:09 +00:00
Trained LoRa Weights:
- gpt4all-lora: https://huggingface.co/nomic-ai/gpt4all-lora
- gpt4all-lora-epoch-2 https://huggingface.co/nomic-ai/gpt4all-lora-epoch-2
Raw Data:
- [Training Data Without P3](https://s3.amazonaws.com/static.nomic.ai/gpt4all/2022_03_27/gpt4all_curated_data_without_p3_2022_03_27.tar.gz)
- [Full Dataset with P3](https://s3.amazonaws.com/static.nomic.ai/gpt4all/2022_03_27/gpt4all_curated_data_full_2022_03_27.tar.gz)
2023-03-28 16:26:23 +00:00
2023-03-28 19:39:03 +00:00
We are not distributing a LLaMa 7B checkpoint.
2023-03-28 16:26:23 +00:00
2023-03-28 19:32:48 +00:00
You can reproduce our trained model by doing the following:
2023-03-28 15:56:16 +00:00
## Setup
2023-03-25 16:43:27 +00:00
Clone the repo
`git clone --recurse-submodules git@github.com:nomic-ai/gpt4all.git`
2023-03-28 00:46:14 +00:00
`git submodule configure && git submodule update`
2023-03-28 00:46:24 +00:00
2023-03-25 16:43:27 +00:00
Setup the environment
```
python -m pip install -r requirements.txt
cd transformers
pip install -e .
cd ../peft
pip install -e .
```
2023-03-28 20:11:43 +00:00
## Training
2023-03-25 16:43:27 +00:00
2023-03-28 18:52:27 +00:00
```bash
2023-03-28 20:11:43 +00:00
accelerate launch --dynamo_backend=inductor --num_processes=8 --num_machines=1 --machine_rank=0 --deepspeed_multinode_launcher standard --mixed_precision=bf16 --use_deepspeed --deepspeed_config_file=configs/deepspeed/ds_config.json train.py --config configs/train/finetune-7b.yaml
2023-03-28 18:52:27 +00:00
```
2023-03-25 21:57:01 +00:00
2023-03-28 20:11:43 +00:00
## Generate
2023-03-25 21:57:01 +00:00
2023-03-28 18:52:27 +00:00
```bash
2023-03-28 20:11:43 +00:00
python generate.py --config configs/generate/generate.yaml --prompt "Write a script to reverse a string in Python
2023-03-28 18:52:27 +00:00
```
2023-03-28 16:00:25 +00:00
If you utilize this reposistory, models or data in a downstream project, please consider citing it with:
```
@misc{gpt4all,
2023-03-28 18:50:27 +00:00
author = {Yuvanesh Anand and Zach Nussbaum and Brandon Duderstadt and Benjamin Schmidt and Andriy Mulyar},
2023-03-28 16:00:25 +00:00
title = {GPT4All: Training an Assistant-style Chatbot with Large Scale Data Distillation from GPT-3.5-Turbo},
year = {2023},
publisher = {GitHub},
journal = {GitHub repository},
howpublished = {\url{https://github.com/nomic-ai/gpt4all}},
}
```