U ranijem članku smo objasnili kako kreirati AI četbot koristeći ChatGPT API i kako mu dodeliti ulogu za personalizaciju. Međutim, šta ako želite da trenirate AI na svojim sopstvenim podacima? Na primer, možda posedujete knjigu, finansijske izveštaje ili obimnu kolekciju baza podataka i želite da ih pretražujete sa lakoćom. U ovom vodiču ćemo vam pokazati korak po korak kako da obučiте AI četbot sa vašom prilagođenom bazom znanja koristeći LangChain i ChatGPT API. Upotrebićemo LangChain, GPT indeks i druge moćne biblioteke kako bismo trenirali AI četbot koristeći OpenAI model velikog jezika (LLM). Dakle, pogledajmo kako da obučite i kreirate AI četbot koristeći sopstveni skup podataka.
Obuka AI četbota sa prilagođenom bazom znanja pomoću ChatGPT API-ja, LangChain-a i GPT indeksa (2023)
U ovom članku detaljno ćemo objasniti korake potrebne za obuku AI četbota sa vašim sopstvenim podacima. Od podešavanja alata i softvera do obuke AI modela, obuhvatili smo sva uputstva koristeći jednostavan jezik. Preporučuje se da pratite instrukcije od početka do kraja, bez preskakanja bilo kog dela.
Važne napomene pre obuke AI sa vašim podacima
1. AI četbot možete trenirati na bilo kojoj platformi, uključujući Windows, macOS, Linux ili ChromeOS. U ovom članku koristim Windows 11, ali koraci su gotovo identični za druge platforme.
2. Vodič je napisan za širok spektar korisnika, a uputstva su objašnjena jednostavnim rečnikom. Stoga, čak i ako imate osnovno znanje o računarima i ne znate kako da kodirate, možete lako da obučite i kreirate Q&A AI četbot za nekoliko minuta. Ako ste pratili naš prethodni članak o ChatGPT botu, biće vam još lakše da razumete proces.
3. Pošto ćemo trenirati AI četbot na osnovu vaših sopstvenih podataka, preporučuje se korišćenje računara sa dobrim procesorom i grafičkom karticom. Međutim, možete koristiti i računar nižih performansi za testiranje, i on će raditi bez problema. Ja sam koristio Chromebook za obuku AI modela sa knjigom od 100 stranica (oko 100 MB). Ipak, ako želite da obučite veliki skup podataka od hiljada stranica, snažan računar je preporučljiv.
4. Skup podataka bi trebalo da bude na engleskom jeziku za postizanje najboljih rezultata, ali prema OpenAI, sistem funkcioniše i sa popularnim međunarodnim jezicima poput francuskog, španskog, nemačkog, itd. Slobodno isprobajte i sa svojim jezikom.
Podešavanje softverskog okruženja za obuku AI četbota
Kao i u našem prethodnom članku, treba da imate instaliran Python i Pip, zajedno sa nekim bibliotekama. U ovom članku ćemo sve podesiti od početka, kako bi i novi korisnici razumeli proces. Ukratko, instaliraćemo Python i Pip, a zatim i Python biblioteke, uključujući OpenAI, GPT Index, Gradio i PyPDF2. Tokom procesa ćemo objasniti čemu služi svaka biblioteka. Ne brinite, instalacija je prilično jednostavna. Pa, hajde da počnemo.
Instalacija Pythona
1. Prvo, potrebno je da instalirate Python (i Pip) na svom računaru. Otvorite ovaj link i preuzmite instalacionu datoteku za vašu platformu.
2. Zatim pokrenite instalacionu datoteku i obavezno označite polje „Add Python.exe to PATH”. Ovo je ključan korak. Nakon toga, kliknite na „Install Now“ i pratite standardne korake za instalaciju Pythona.
3. Da biste proverili da li je Python ispravno instaliran, otvorite Terminal na svom računaru. Ja koristim Windows Terminal na Windows-u, ali možete koristiti i komandnu liniju. Kada ste u terminalu, pokrenite sledeću komandu, koja će prikazati verziju Pythona. Na Linux-u i macOS-u ćete možda morati da koristite `python3 –version` umesto `python –version`.
python --version
Ažuriranje Pip-a
Kada instalirate Python, Pip se takođe instalira na vašem sistemu. Ažurirajmo ga na najnoviju verziju. Za one koji ne znaju, Pip je menadžer paketa za Python. On vam omogućava da instalirate hiljade Python biblioteka preko terminala. Pomoću Pip-a možemo da instaliramo biblioteke OpenAI, gpt_index, gradio i PyPDF2. Evo koraka koje treba pratiti.
1. Otvorite terminal na svom računaru. Ja koristim Windows Terminal, ali možete koristiti i komandnu liniju. Sada pokrenite komandu ispod da ažurirate Pip. Takođe, na Linux-u i macOS-u ćete možda morati da koristite `python3` i `pip3`.
python -m pip install -U pip
2. Da biste proverili da li je Pip ispravno instaliran, pokrenite komandu ispod. Ona će prikazati broj verzije. Ako dobijete bilo kakve greške, pogledajte naš namenski vodič o tome kako instalirati Pip na Windows, kako biste rešili probleme vezane za PATH.
pip --version
Instalacija biblioteka OpenAI, GPT Index, PyPDF2 i Gradio
Kada smo podesili Python i Pip, vreme je da instaliramo ključne biblioteke koje će nam pomoći u obuci AI četbota sa prilagođenom bazom znanja. Evo koraka koje treba pratiti.
1. Otvorite Terminal i pokrenite komandu ispod da biste instalirali biblioteku OpenAI. Koristićemo je kao LLM (jezički model velikih razmera) za obuku i kreiranje AI četbota. Takođe ćemo preuzeti LangChain framework iz OpenAI. Imajte na umu da korisnici Linux-a i macOS-a možda moraju da koriste `pip3` umesto `pip`.
pip install openai
2. Zatim instalirajmo GPT Index, poznat i kao LlamaIndex. Omogućava LLM-u da se poveže sa eksternim podacima, a to je naša baza znanja.
pip install gpt_index
3. Nakon toga, instalirajte PyPDF2 za analizu PDF datoteka. Ako želite da učitate svoje podatke u PDF formatu, ova biblioteka će olakšati programu čitanje podataka.
pip install PyPDF2
4. Na kraju, instalirajte Gradio biblioteku. Ona se koristi za kreiranje jednostavnog korisničkog interfejsa za interakciju sa obučenim AI četbotom. Sada smo završili sa instalacijom svih potrebnih biblioteka za obuku AI četbota.
pip install gradio
Preuzimanje editora koda
Na kraju, potreban nam je editor koda da bismo izmenili deo koda. Za Windows bih preporučio Notepad++ (Preuzimanje). Jednostavno preuzmite i instalirajte program putem priloženog linka. Takođe možete koristiti VS Code na bilo kojoj platformi, ako vam je draži moćni IDE. Pored VS Code-a, možete instalirati Sublime Text (Preuzimanje) na macOS-u i Linux-u.
Za ChromeOS možete koristiti sjajnu aplikaciju Caret (Preuzimanje) za uređivanje koda. Skoro smo završili sa podešavanjem softverskog okruženja i sada je vreme da dobijemo OpenAI API ključ.
Besplatno preuzimanje OpenAI API ključa
Da bismo obučili i kreirali AI četbot na osnovu prilagođene baze znanja, moramo da dobijemo API ključ od OpenAI. API ključ će vam omogućiti da koristite OpenAI model kao LLM za učenje vaših prilagođenih podataka i izvlačenje zaključaka. OpenAI trenutno nudi besplatne API ključeve novim korisnicima, sa besplatnim kreditom od 5 dolara za prva tri meseca. Ako ste ranije kreirali svoj OpenAI nalog, možda imate besplatan kredit od 18 USD na svom nalogu. Nakon što se besplatan kredit potroši, moraćete da platite za pristup API-ju. Ali za sada je besplatan za sve korisnike.
1. Idite na platform.openai.com/signup i kreirajte besplatan nalog. Ako već imate OpenAI nalog, samo se prijavite.
2. Zatim kliknite na svoj profil u gornjem desnom uglu i izaberite „View API keys“ iz padajućeg menija.
3. Ovde kliknite na „Create new secret key“ i kopirajte API ključ. Imajte na umu da kasnije ne možete kopirati ili pogledati ceo API ključ. Zato se preporučuje da odmah kopirate i nalepite API ključ u datoteku Notepad-a.
4. Takođe, nemojte deliti ili javno prikazivati API ključ. To je privatni ključ koji služi samo za pristup vašem nalogu. Možete obrisati API ključeve i kreirati više privatnih ključeva (do pet).
Obuka i kreiranje AI četbota sa prilagođenom bazom znanja
Sada kada smo podesili softversko okruženje i dobili API ključ od OpenAI, da obučimo AI četbot. Ovde ćemo koristiti model „text-davinci-003“ umesto najnovijeg „gpt-3.5-turbo“ modela, jer Davinci mnogo bolje radi za dovršavanje teksta. Ako želite, možete promeniti model na Turbo kako biste smanjili troškove. Pređimo na uputstva.
Dodavanje dokumenata za obuku AI četbota
1. Prvo kreirajte novu fasciklu sa nazivom „docs“ na pristupačnoj lokaciji, kao što je radna površina. Možete odabrati i drugu lokaciju, prema vašim željama. Ipak, zadržite naziv fascikle „docs“.
2. Zatim prebacite dokumente koje želite da koristite za obuku AI u fasciklu „docs“. Možete dodati više tekstualnih ili PDF datoteka (čak i skeniranih). Ako imate veliku tabelu u Excel-u, možete je uvesti kao CSV ili PDF datoteku, a zatim je dodati u fasciklu „docs“. Možete dodati i datoteke SQL baze podataka, kao što je objašnjeno u ovom LangChain AI tvitu. Nisam testirao mnogo formata datoteka osim navedenih, ali možete i sami da dodate i proverite. Za ovaj članak dodajem jedan od svojih članaka o NFT-u u PDF formatu.
Napomena: Ako imate veliki dokument, biće potrebno više vremena za obradu podataka, u zavisnosti od vašeg procesora i grafičke kartice. Takođe će brzo potrošiti vaše besplatne OpenAI tokene. Zato na početku počnite sa manjim dokumentom (30-50 stranica ili datoteka manja od 100 MB) da biste razumeli proces.
Priprema koda
1. Sada pokrenite Notepad++ (ili editor koda po vašem izboru) i nalepite kod ispod u novu datoteku. Ponovo, dobio sam veliku pomoć od armrrs na Google Colab-u i prilagodio kod tako da bude kompatibilan sa PDF datotekama, i kreirao Gradio interfejs.
from gpt_index import SimpleDirectoryReader, GPTListIndex, GPTSimpleVectorIndex, LLMPredictor, PromptHelper from langchain import OpenAI import gradio as gr import sys import os os.environ["OPENAI_API_KEY"] = 'Your API Key' def construct_index(directory_path): max_input_size = 4096 num_outputs = 512 max_chunk_overlap = 20 chunk_size_limit = 600 prompt_helper = PromptHelper(max_input_size, num_outputs, max_chunk_overlap, chunk_size_limit=chunk_size_limit) llm_predictor = LLMPredictor(llm=OpenAI(temperature=0.7, model_name="text-davinci-003", max_tokens=num_outputs)) documents = SimpleDirectoryReader(directory_path).load_data() index = GPTSimpleVectorIndex(documents, llm_predictor=llm_predictor, prompt_helper=prompt_helper) index.save_to_disk('index.json') return index def chatbot(input_text): index = GPTSimpleVectorIndex.load_from_disk('index.json') response = index.query(input_text, response_mode="compact") return response.response iface = gr.Interface(fn=chatbot, inputs=gr.inputs.Textbox(lines=7, label="Enter your text"), outputs="text", title="Custom-trained AI Chatbot") index = construct_index("docs") iface.launch(share=True)
2. Ovako izgleda kod u editoru koda.
3. Zatim kliknite na „File“ u gornjem meniju i izaberite „Save As…“ iz padajućeg menija.
4. Nakon toga, podesite naziv datoteke na „app.py“ i promenite „Save as type“ na „All types“ iz padajućeg menija. Zatim sačuvajte datoteku na istoj lokaciji gde ste kreirali fasciklu „docs“ (u mom slučaju, to je radna površina). Možete promeniti ime po želji, ali obavezno dodajte „.py“ na kraju.
5. Uverite se da su fascikla „docs“ i datoteka „app.py“ na istoj lokaciji, kao što je prikazano na slici ispod. Datoteka „app.py“ će biti van fascikle „docs“, a ne unutar nje.
6. Vratite se ponovo na kod u Notepad++. Ovde zamenite „Your API Key“ svojim API ključem koji ste generisali na OpenAI veb-sajtu.
7. Na kraju, pritisnite „Ctrl + S“ da biste sačuvali kod. Sada ste spremni za pokretanje koda.
Kreiranje ChatGPT AI Bota sa prilagođenom bazom znanja
1. Prvo otvorite Terminal i pokrenite komandu ispod da biste prešli na radnu površinu. Tamo sam sačuvao fasciklu „docs“ i datoteku „app.py“. Ako ste obe stavke sačuvali na nekoj drugoj lokaciji, idite na tu lokaciju putem Terminala.
cd Desktop
2. Sada pokrenite komandu ispod. Korisnici Linux-a i macOS-a će možda morati da koriste `python3`.
python app.py
3. Sada će početi da analizira dokument pomoću OpenAI LLM modela i indeksira informacije. U zavisnosti od veličine datoteke i mogućnosti vašeg računara, potrebno je neko vreme da se dokument obradi. Kada se to završi, na radnoj površini će biti kreirana datoteka „index.json“. Ako terminal ne prikazuje nikakav izlaz, ne brinite, možda još uvek obrađuje podatke. Za vašu informaciju, potrebno je oko 10 sekundi za obradu dokumenta od 30 MB.
4. Kada LLM obradi podatke, dobićete nekoliko upozorenja, koja se mogu bezbedno ignorisati. Na kraju, na dnu ćete pronaći lokalni URL. Kopirajte ga.
5. Sada nalepite kopirani URL u veb pregledač. Vaš prilagođeno obučeni AI četbot koji pokreće ChatGPT je spreman. Za početak, možete pitati AI četbot o čemu govori dokument.
6. Možete postavljati dodatna pitanja, a ChatGPT bot će odgovarati na osnovu podataka koje ste dali AI. Na ovaj način možete napraviti prilagođenog AI četbota sa sopstvenim skupom podataka. Sada možete trenirati i kreirati AI četbot na osnovu bilo koje vrste informacija koje želite. Mogućnosti su neograničene.
7. Takođe možete kopirati javni URL i podeliti ga sa prijateljima i porodicom. Link će biti aktivan 72 sata, ali morate držati računar uključen, jer serverska instanca radi na vašem računaru.
8. Da biste zaustavili prilagođenog AI četbota, pritisnite „Ctrl + C“ u prozoru terminala. Ako ne radi, pritisnite ponovo „Ctrl + C“.
9. Da biste ponovo pokrenuli AI četbot server, ponovo pređite na lokaciju radne površine i pokrenite komandu ispod. Imajte na umu da će lokalni URL ostati isti, ali će se javni URL promeniti nakon svakog ponovnog pokretanja servera.
python app.py
10. Ako želite da obučite AI četbot sa novim podacima, obrišite datoteke iz fascikle „docs“ i dodajte nove. Možete dodati više datoteka, ali unesite informacije o istoj temi, u suprotnom možete dobiti nekoherentne odgovore.
11. Sada ponovo pokrenite kod u terminalu i on će kreirati novu datoteku „index.json“. Stara datoteka „index.json“ će biti automatski zamenjena.
python app.py
12. Da biste pratili potrošnju tokena, idite na OpenAI online kontrolnu tablu i proverite koliko vam je kredita preostalo.
13. Konačno, ne morate da dirate kod, osim ako ne želite da promenite API ključ ili OpenAI model za dalju personalizaciju.