Crea il tuo clone di ChatGPT con alternative gratuite e open source! Scopri 12 opzioni per sviluppare il tuo chatbot senza costi aggiuntivi.
Se sei interessato a creare il tuo clone di ChatGPT ma preferisci alternative gratuite e open source, sei nel posto giusto. In questo articolo, esploreremo 12 alternative a ChatGPT che puoi utilizzare per creare il tuo modello di chatbot senza dover spendere soldi.
I vantaggi delle alternative gratuite e open source a ChatGPT
Prima di immergerci nelle alternative specifiche, è importante capire i vantaggi di utilizzare modelli di lingua open source rispetto a ChatGPT.
- Privacy dei dati. Molte aziende desiderano mantenere il controllo dei propri dati e non vogliono concedere l’accesso a terze parti.
- Personalizzazione. Le alternative open source consentono agli sviluppatori di addestrare modelli di lingua personalizzati utilizzando i propri dati e di applicare filtri su determinati argomenti, se necessario.
- Accessibilità economica. I modelli GPT open source ti permettono di addestrare modelli di lingua sofisticati senza preoccuparti di costosi hardware.
- Democratizzazione dell’AI. L’uso dei modelli open source apre la strada a ulteriori ricerche che possono essere utilizzate per risolvere problemi del mondo reale.
Ora che abbiamo chiarito i vantaggi, passiamo a esaminare le alternative gratuite e open source a ChatGPT.
1. Llama
Introduzione a Llama
Llama sta per Large Language Model Meta AI. È un modello che include una serie di dimensioni da 7 miliardi a 65 miliardi di parametri. I ricercatori di Meta AI si sono concentrati sul miglioramento delle prestazioni del modello aumentando il volume dei dati di addestramento, anziché il numero dei parametri. Hanno affermato che il modello da 13 miliardi di parametri superava in prestazioni i 175 miliardi di parametri del modello GPT-3. Llama utilizza l’architettura del transformer ed è stato addestrato su 1,4 trilioni di token estratti dal web scraping di Wikipedia, GitHub, Stack Exchange, libri di Project Gutenberg e articoli scientifici su ArXiv.
Codice Python per Llama
# Installa il pacchetto pip install llama-cpp-python from llama_cpp import Llama llm = Llama(model_path="./models/7B/ggml-model.bin") output = llm("Q: Elenco dei pianeti del sistema solare? A: ", max_tokens=128, stop=["Q:", "n"], echo=True) print(output)
2. Llama 2
Cosa c’è di nuovo in Llama 2
Ci sono alcune differenze chiave tra Llama 2 e Llama:
Training data
: Llama 2 è stato addestrato su un numero di token maggiore del 40% rispetto a Llama, per un totale di 2 trilioni di token. Ciò gli conferisce una base di conoscenza più ampia e gli consente di generare risposte più accurate.Dimensioni del modello
: Llama 2 è disponibile in tre dimensioni: 7 miliardi di parametri, 13 miliardi di parametri e 70 miliardi di parametri. Mentre la dimensione massima di Llama è di 65 miliardi di parametri.Ottimizzazione della chat
: Llama 2-Chat è una versione specializzata di Llama 2 ottimizzata per le conversazioni bidirezionali. È stato addestrato su un dataset di conversazioni umane, il che gli consente di generare risposte più naturali e coinvolgenti.Sicurezza e mitigazione dei pregiudizi
: Llama 2 è stato addestrato con un’attenzione particolare alla sicurezza e alla mitigazione dei pregiudizi. Ciò significa che è meno probabile che generi contenuti tossici o dannosi.Open source
: Llama 2 è open source, il che significa che chiunque può utilizzarlo per scopi di ricerca o commerciali, a differenza di Llama che non può essere utilizzato per scopi commerciali.
Codice Python per Llama 2
Per eseguire il modello Llama2 da 7 miliardi di parametri, ecco il codice di riferimento:
%cd /content !apt-get -y install -qq aria2 !git clone -b v1.3 https://github.com/camenduru/text-generation-webui %cd /content/text-generation-webui !pip install -r requirements.txt !pip install -U gradio==3.28.3 !mkdir /content/text-generation-webui/repositories %cd /content/text-generation-webui/repositories !git clone -b v1.2 https://github.com/camenduru/GPTQ-for-LLaMa.git %cd GPTQ-for-LLaMa !python setup_cuda.py install !aria2c --console-log-level=error -c -x 16 -s 16 -k 1M https://huggingface.co/4bit/Llama-2-7b-Chat-GPTQ/raw/main/config.json -d /content/text-generation-webui/models/Llama-2-7b-Chat-GPTQ -o config.json !aria2c --console-log-level=error -c -x 16 -s 16 -k 1M https://huggingface.co/4bit/Llama-2-7b-Chat-GPTQ/raw/main/generation_config.json -d /content/text-generation-webui/models/Llama-2-7b-Chat-GPTQ -o generation_config.json !aria2c --console-log-level=error -c -x 16 -s 16 -k 1M https://huggingface.co/4bit/Llama-2-7b-Chat-GPTQ/raw/main/special_tokens_map.json -d /content/text-generation-webui/models/Llama-2-7b-Chat-GPTQ -o special_tokens_map.json !aria2c --console-log-level=error -c -x 16 -s 16 -k 1M https://huggingface.co/4bit/Llama-2-7b-Chat-GPTQ/resolve/main/tokenizer.model -d /content/text-generation-webui/models/Llama-2-7b-Chat-GPTQ -o tokenizer.model !aria2c --console-log-level=error -c -x 16 -s 16 -k 1M https://huggingface.co/4bit/Llama-2-7b-Chat-GPTQ/raw/main/tokenizer_config.json -d /content/text-generation-webui/models/Llama-2-7b-Chat-GPTQ -o tokenizer_config.json !aria2c --console-log-level=error -c -x 16 -s 16 -k 1M https://huggingface.co/4bit/Llama-2-7b-Chat-GPTQ/resolve/main/gptq_model-4bit-128g.safetensors -d /content/text-generation-webui/models/Llama-2-7b-Chat-GPTQ -o gptq_model-4bit-128g.safetensors %cd /content/text-generation-webui !python server.py --share --chat --wbits 4 --groupsize 128 --model_type llama
Per il modello Llama2 da 13 miliardi di parametri, puoi fare riferimento al codice seguente:
%cd /content !apt-get -y install -qq aria2 !git clone -b v1.8 https://github.com/camenduru/text-generation-webui %cd /content/text-generation-webui !pip install -r requirements.txt !aria2c --console-log-level=error -c -x 16 -s 16 -k 1M https://huggingface.co/4bit/Llama-2-13b-chat-hf/resolve/main/model-00001-of-00003.safetensors -d /content/text-generation-webui/models/Llama-2-13b-chat-hf -o model-00001-of-00003.safetensors !aria2c --console-log-level=error -c -x 16 -s 16 -k 1M https://huggingface.co/4bit/Llama-2-13b-chat-hf/resolve/main/model-00002-of-00003.safetensors -d /content/text-generation-webui/models/Llama-2-13b-chat-hf -o model-00002-of-00003.safetensors !aria2c --console-log-level=error -c -x 16 -s 16 -k 1M https://huggingface.co/4bit/Llama-2-13b-chat-hf/resolve/main/model-00003-of-00003.safetensors -d /content/text-generation-webui/models/Llama-2-13b-chat-hf -o model-00003-of-00003.safetensors !aria2c --console-log-level=error -c -x 16 -s 16 -k 1M https://huggingface.co/4bit/Llama-2-13b-chat-hf/raw/main/model.safetensors.index.json -d /content/text-generation-webui/models/Llama-2-13b-chat-hf -o model.safetensors.index.json !aria2c --console-log-level=error -c -x 16 -s 16 -k 1M https://huggingface.co/4bit/Llama-2-13b-chat-hf/raw/main/special_tokens_map.json -d /content/text-generation-webui/models/Llama-2-13b-chat-hf -o special_tokens_map.json !aria2c --console-log-level=error -c -x 16 -s 16 -k 1M https://huggingface.co/4bit/Llama-2-13b-chat-hf/resolve/main/tokenizer.model -d /content/text-generation-webui/models/Llama-2-13b-chat-hf -o tokenizer.model !aria2c --console-log-level=error -c -x 16 -s 16 -k 1M https://huggingface.co/4bit/Llama-2-13b-chat-hf/raw/main/tokenizer_config.json -d /content/text-generation-webui/models/Llama-2-13b-chat-hf -o tokenizer_config.json !aria2c --console-log-level=error -c -x 16 -s 16 -k 1M https://huggingface.co/4bit/Llama-2-13b-chat-hf/raw/main/config.json -d /content/text-generation-webui/models/Llama-2-13b-chat-hf -o config.json !aria2c --console-log-level=error -c -x 16 -s 16 -k 1M https://huggingface.co/4bit/Llama-2-13b-chat-hf/raw/main/generation_config.json -d /content/text-generation-webui/models/Llama-2-13b-chat-hf -o generation_config.json %cd /content/text-generation-webui !python server.py --share --chat --load-in-8bit --model /content/text-generation-webui/models/Llama-2-13b-chat-hf
3. Alpaca
Introduzione ad Alpaca
Un team di ricercatori dell’Università di Stanford ha sviluppato un modello di linguaggio open source chiamato Alpaca. Si basa sul grande modello di lingua di Meta chiamato Llama. Il team ha utilizzato l’API GPT di OpenAI (text-davinci-003) per migliorare il modello Llama da 7 miliardi di parametri. L’obiettivo del team è rendere l’IA disponibile gratuitamente per consentire agli accademici di fare ulteriori ricerche senza doversi preoccupare di costosi hardware per eseguire questi algoritmi intensivi in memoria. Sebbene questi modelli open source non siano disponibili per l’uso commerciale, le piccole aziende possono comunque utilizzarli per creare i propri chatbot.
Come funziona Alpaca
Il team di Stanford ha iniziato la loro ricerca con il modello di lingua più piccolo tra quelli di Llama, ovvero il modello Llama da 7 miliardi di parametri, e lo ha pre-addestrato con 1 trilione di token. Hanno iniziato con 175 coppie di istruzioni-risposta scritte da esseri umani provenienti dal seed set di auto-istruzione. Hanno poi utilizzato l’API di ChatGPT per chiedere a ChatGPT di generare ulteriori istruzioni utilizzando il seed set. In questo modo hanno ottenuto circa 52.000 conversazioni di esempio, che hanno utilizzato per ulteriori raffinamenti del modello Llama utilizzando il framework di addestramento di Hugging Face.
Llama è disponibile in diverse dimensioni: 7B, 13B, 30B e 65B di parametri. Alpaca è stato esteso anche a modelli da 13B, 30B e 65B.
Prestazioni di Alpaca
Il modello Alpaca è stato testato rispetto a ChatGPT in compiti come la creazione di email, i social media e gli strumenti di produttività, e Alpaca ha vinto 90 volte mentre ChatGPT ha vinto 89 volte. Il modello può essere utilizzato nel mondo reale per vari scopi. Sarà di grande aiuto per i ricercatori nel campo dell’IA etica e della sicurezza informatica, come nel rilevamento delle truffe e del phishing.
Limitazioni di Alpaca
Come la versione commerciale di ChatGPT, Alpaca presenta anche limitazioni simili, come l’hallicinazione, la tossicità e gli stereotipi. In altre parole, può essere utilizzato per generare testo che diffonde disinformazione, razzismo e odio nei confronti di sezioni vulnerabili della società.
Requisiti di memoria di Alpaca
Alpaca non può essere eseguito su CPU, richiede una GPU. Per i modelli da 7B e 13B, è sufficiente una singola GPU con 12 GB di RAM. Per il modello da 30B, sono necessarie risorse di sistema aggiuntive.
Codice Python per Alpaca
Ecco un codice di riferimento per Alpaca. Si tratta di un’applicazione di chat che utilizza il modello Alpaca 7B:
import sys sys.path.append("/usr/local/lib/python3.9/site-packages") !nvidia-smi !git clone https://github.com/deepanshu88/Alpaca-LoRA-Serve.git %cd Alpaca-LoRA-Serve !python3.9 -m pip install -r requirements.txt base_model = 'decapoda-research/llama-7b-hf' finetuned_model = 'tloen/alpaca-lora-7b' !python3.9 app.py --base_url $base_model --ft_ckpt_url $finetuned_model --share
Ricorda che questo è solo un codice di riferimento per Alpaca 7B. Puoi adattarlo per utilizzare modelli di dimensioni diverse, come Alpaca 13B e Alpaca 30B.
Output di Alpaca
Di seguito è riportato un esempio di output di Alpaca in risposta a due domande relativamente semplici. Una domanda riguarda un argomento generico e l’altra riguarda il coding. Alpaca risponde correttamente a entrambe le domande.
4. GPT4All
Introduzione a GPT4All
Il team di Nomic AI si è ispirato ad Alpaca e ha utilizzato l’API GPT-3.5-Turbo di OpenAI per raccogliere circa 800.000 coppie di prompt-risposta al fine di creare 430.000 prompt di stile assistente e generazioni, inclusi codici, dialoghi e narrazioni. Le 800.000 coppie sono circa 16 volte più grandi di Alpaca. La cosa interessante di questo modello è che può essere eseguito su CPU, non richiede una GPU. Come Alpaca, è anche open source, il che significa che puoi usarlo per scopi commerciali e puoi eseguirlo facilmente sul tuo computer.
Come funziona GPT4All
Funziona in modo simile ad Alpaca ed è basato sul modello Llama da 7 miliardi di parametri. Il team ha addestrato modelli Llama da 7B e il modello finale è stato addestrato sui 437.605 prompt di stile assistente post-elaborati.
Prestazioni di GPT4All
Nel processing del linguaggio naturale, la perplessità viene utilizzata per valutare la qualità dei modelli di linguaggio. Misura quanto sarebbe sorpreso un modello di linguaggio nel vedere una nuova sequenza di parole che non ha mai incontrato prima, basandosi sui suoi dati di addestramento. Un valore di perplessità più basso indica che il modello di linguaggio è migliore nel prevedere la prossima parola in una sequenza e quindi è più accurato. Il team di Nomic AI afferma che i loro modelli hanno una perplessità inferiore rispetto ad Alpaca. Tuttavia, l’accuratezza reale dipende dal tipo di prompt che si utilizza. Alpaca potrebbe avere una migliore accuratezza in alcuni casi.
Requisiti di memoria di GPT4All
Può essere eseguito su una CPU con 8GB di RAM. Se hai un laptop con 4GB di RAM, potrebbe essere il momento di fare un upgrade a almeno 8GB.
Codice Python per GPT4All
Ecco un codice di riferimento per GPT4All. Puoi utilizzarlo come riferimento, modificarlo in base alle tue esigenze o eseguirlo così com’è. È interamente a tua discrezione decidere come utilizzare il codice per meglio adattarlo alle tue esigenze.
# Clone il repository Git !git clone --recurse-submodules https://github.com/nomic-ai/gpt4all.git # Installa i pacchetti richiesti cd /content/gpt4all !python -m pip install -r requirements.txt cd transformers !pip install -e . cd ../peft !pip install -e . # Avvia l'addestramento !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.yaml # Scarica il checkpoint del modello GPT4All cd /content/gpt4all/chat !wget https://the-eye.eu/public/AI/models/nomic-ai/gpt4all/gpt4all-lora-quantized.bin # Esegui il sistema di conversazione !./gpt4all-lora-quantized-linux-x86
Se stai eseguendo il codice su una macchina locale che utilizza un sistema operativo diverso da Linux, utilizza invece i comandi seguenti:
Windows (PowerShell): ./gpt4all-lora-quantized-win64.exe Mac (M1): ./gpt4all-lora-quantized-OSX-m1 Mac (Intel): ./gpt4all-lora-quantized-OSX-intel
Output di GPT4All
GPT4All non è stato in grado di rispondere correttamente a una domanda relativa al coding. Questo è solo un esempio e non possiamo valutare l’accuratezza del modello in base a un solo caso. Potrebbe funzionare bene in altri prompt, quindi l’accuratezza del modello dipende dall’uso che ne fai. Inoltre, quando l’ho eseguito di nuovo dopo 2 giorni, ha funzionato bene per le domande relative al coding. Sembra che abbiano ulteriormente perfezionato il modello.
Risoluzione dei problemi di GPT4All
Se incontri problemi con la versione distribuita che non ha NCCL, potrebbe essere perché CUDA non è installato sul tuo computer.
Alcuni utenti hanno segnalato strani errori sulla piattaforma Windows 10/11. Come ultima risorsa, puoi installare il Windows Subsystem for Linux, che ti consente di installare una distribuzione Linux sul tuo computer Windows e seguire il codice sopra riportato.
5. GPT4All-J
Questo modello ha un nome simile al precedente, ma la differenza è che entrambi i modelli provengono dallo stesso team di Nomic AI. L’unico cambiamento è che ora è stato addestrato su GPT-J anziché su Llama. Il vantaggio di addestrarlo su GPT-J è che GPT4All-J è ora con licenza Apache-2, il che significa che puoi utilizzarlo per scopi commerciali e puoi eseguirlo facilmente sul tuo computer.
6. Dolly 2
Il team di Databricks ha creato un modello di linguaggio basato sul modello Pythia di EleutherAI, successivamente perfezionato su circa 15.000 istruzioni prese da un corpus. È disponibile in tre dimensioni: 12B, 7B e 3B di parametri.
Requisiti di memoria di Dolly 2
Richiede una GPU con circa 10GB di RAM per il modello da 7B con quantizzazione a 8 bit. Per il modello da 12B, è richiesto almeno 18GB di VRAM della GPU.
Codice Python per Dolly 2
Ecco un codice di riferimento per Dolly 2. Puoi utilizzarlo come riferimento per accedere al codice Python e a una descrizione dettagliata del modello Dolly.
7. Vicuna
Introduzione a Vicuna
Un team di ricercatori dell’UC Berkeley, della CMU, di Stanford e dell’UC San Diego ha sviluppato questo modello. È stato perfezionato su Llama utilizzando un dataset di chat estratto dal sito web ShareGPT. I ricercatori affermano che il modello ha ottenuto una qualità superiore al 90% rispetto a OpenAI ChatGPT-4. Vale la pena notare che le sue prestazioni sono quasi pari a Bard. Hanno utilizzato il programma di addestramento di Alpaca e hanno migliorato ulteriormente due aspetti: le conversazioni a più round e le sequenze lunghe.
Codice Python per Vicuna
Puoi fare riferimento a questo post – Vicuna Guida dettagliata per accedere al codice Python e a una descrizione dettagliata del modello Vicuna.
8. StableVicuna
Introduzione a StableVicuna
Stability AI ha rilasciato StableVicuna, una versione perfezionata del modello Vicuna da 13B. Per migliorare il modello Vicuna, lo hanno addestrato ulteriormente utilizzando il fine-tuning supervisionato (SFT). Hanno utilizzato tre diversi dataset per addestrarlo:
- OpenAssistant Conversations Dataset, che contiene 161.443 messaggi di conversazione umana in 35 lingue diverse.
- GPT4All Prompt Generations, che è un dataset di 437.605 prompt e risposte generate da GPT-3.5.
- Alpaca, che è un dataset di 52.000 prompt e risposte generate dal modello text-davinci-003.
Hanno utilizzato trlx per addestrare un modello di reward. Questo modello è stato impostato utilizzando il loro ulteriore modello SFT. Il modello di reward è stato addestrato utilizzando tre dataset con preferenze umane:
- OpenAssistant Conversations Dataset con 7213 campioni di preferenza.
- Anthropic HH-RLHF con 160.800 etichette di persone che esprimono ciò che pensano dell’utilità o dell’innocuità degli assistenti IA.
- Stanford Human Preferences con 348.718 preferenze umane su risposte a domande o istruzioni in diverse aree, come la cucina o la filosofia.
Infine, il modello SFT è stato addestrato utilizzando RLHF con trlX attraverso un processo chiamato Proximal Policy Optimization. Ecco come è stato creato StableVicuna.
Requisiti di memoria di StableVicuna
Per eseguire il modello GPTQ StableVicuna a 4 bit, sono necessari circa 10GB di VRAM della GPU.
Problemi di performance di StableVicuna
Stability AI afferma che questo modello è un miglioramento rispetto al modello Vicuna originale, ma molte persone hanno segnalato il contrario. Questo modello fa più “hallucinazioni” rispetto al modello originale, producendo risposte peggiori. In altre parole, il modello genera output inaccurato che non corrisponde alla domanda. Poiché questi modelli sono stati appena rilasciati, è ancora necessaria una valutazione rigorosa. È possibile che questo modello possa funzionare meglio in alcuni compiti, ma molto peggio in altri.
Codice Python per StableVicuna
Possiamo eseguire il modello utilizzando Text Generation WebUI, che rende facile eseguire il modello LLM open source. Il codice seguente esegue una quantizzazione a 4 bit che riduce i requisiti di memoria del modello e rende possibile l’esecuzione con meno VRAM.
%cd /content !apt-get -y install -qq aria2 !git clone -b v1
9. Alpaca GPT-4 Model
Introduzione all’Alpaca GPT-4
Alpaca GPT-4 è un modello di linguaggio sviluppato da OpenAI. È una versione migliorata del modello Alpaca che utilizza 10 trilioni di token per l’addestramento. Alpaca GPT-4 è noto per la sua capacità di generare testi di alta qualità e risposte coerenti.
Codice Python per Alpaca GPT-4
Al momento, OpenAI non ha rilasciato il codice o il modello pre-addestrato per Alpaca GPT-4. Tuttavia, è possibile utilizzare altre alternative gratuite e open source elencate in questo articolo per creare il tuo chatbot.
10. Cerebras-GPT
Introduzione a Cerebras-GPT
Cerebras-GPT è un modello di linguaggio sviluppato dalla società di intelligenza artificiale Cerebras. Utilizza la tecnologia di elaborazione parallela del chip Cerebras per addestrare modelli di linguaggio di grandi dimensioni. Cerebras-GPT è noto per le sue prestazioni di alto livello e per la sua capacità di elaborare grandi quantità di dati in modo efficiente.
Requisiti di memoria di Cerebras-GPT
Cerebras-GPT richiede una GPU con una grande quantità di memoria VRAM, preferibilmente 32 GB o più, per eseguire modelli di linguaggio di grandi dimensioni.
Codice Python per Cerebras-GPT
Al momento, Cerebras non ha rilasciato il codice o il modello pre-addestrato per Cerebras-GPT. Tuttavia, puoi utilizzare le alternative gratuite e open source elencate in questo articolo per creare il tuo chatbot.
11. GPT-J 6B
Introduzione a GPT-J 6B
GPT-J 6B è un modello di linguaggio di grandi dimensioni sviluppato da EleutherAI. È stato addestrato su 6 miliardi di parametri utilizzando tecniche di apprendimento automatico avanzate. GPT-J 6B è noto per la sua capacità di generare testi coerenti e di alta qualità su una vasta gamma di argomenti.
Codice Python per GPT-J 6B
Al momento, EleutherAI non ha rilasciato il codice o il modello pre-addestrato per GPT-J 6B. Tuttavia, puoi utilizzare le alternative gratuite e open source elencate in questo articolo per creare il tuo chatbot.
12. OpenChatKit Model
Introduzione all’OpenChatKit Model
OpenChatKit Model è un modello di chatbot open source sviluppato da OpenAI. È basato sull’architettura del transformer e può essere utilizzato per creare chatbot con risposte coerenti e di alta qualità.
Codice Python per OpenChatKit Model
Al momento, OpenAI non ha rilasciato il codice o il modello pre-addestrato per OpenChatKit Model. Tuttavia, puoi utilizzare le alternative gratuite e open source elencate in questo articolo per creare il tuo chatbot.
Pubblicato in Innovazione, Programmazione
Commenta per primo