V předchozím článku jsme si ukázali, jak s pomocí ChatGPT API vytvořit a personalizovat chatbota s umělou inteligencí. Ale co když chcete AI trénovat na vlastních datech? Představte si, že máte knihu, finanční záznamy nebo rozsáhlou databázi, ve které potřebujete snadno vyhledávat. V tomto návodu vám krok za krokem vysvětlíme, jak naučit chatbota AI pracovat s vaší vlastní znalostní bází, a to s využitím LangChain a ChatGPT API. Využijeme LangChain, GPT Index a další efektivní knihovny, abychom umožnili trénování chatbotů AI pomocí velkého jazykového modelu OpenAI (LLM). Podívejme se tedy, jak trénovat a vytvořit AI chatbota s vaším vlastním datovým souborem.
Trénink chatbota AI s vlastní znalostní bází pomocí ChatGPT API, LangChain a GPT Index (2023)
V tomto článku detailně rozebíráme postup, jak naučit chatbota AI pracovat s vašimi daty. Od nastavení potřebných nástrojů a softwaru, až po trénink AI modelu, všechny instrukce jsou popsány srozumitelným způsobem. Doporučujeme sledovat kroky v uvedeném pořadí, bez přeskakování jakékoli části.
Důležité body před zahájením tréninku AI s vlastními daty
1. Chatbota AI můžete trénovat na jakékoli platformě, ať už používáte Windows, macOS, Linux nebo ChromeOS. V tomto návodu pracuji s Windows 11, ale kroky jsou prakticky identické i pro ostatní systémy.
2. Tento průvodce je navržen pro běžné uživatele a instrukce jsou formulovány jednoduchým jazykem. I pokud máte pouze základní znalosti o počítačích a nemáte zkušenosti s kódováním, dokážete snadno vytrénovat a vytvořit Q&A AI chatbota během několika minut. Pokud jste sledovali náš předchozí článek o ChatGPT botech, bude pro vás tento proces ještě srozumitelnější.
3. Vzhledem k tomu, že budeme AI Chatbota trénovat s použitím vlastních dat, je doporučeno používat počítač s dostatečně výkonným procesorem (CPU) a grafickou kartou (GPU). Pro testovací účely ale postačí i méně výkonný počítač. Já jsem například pro trénink AI modelu s použitím knihy o 100 stranách (~100 MB) použil Chromebook. Pokud ale plánujete trénovat s rozsáhlými datovými soubory o tisících stran, je silnější počítač vysoce doporučen.
4. Pro dosažení optimálních výsledků by měl být datový soubor v angličtině. Nicméně, dle OpenAI, by trénink měl fungovat i s dalšími populárními jazyky, jako je francouzština, španělština, němčina a další. Takže neváhejte a vyzkoušejte to i ve svém rodném jazyce.
Nastavení softwarového prostředí pro trénink AI Chatbota
Stejně jako v našem předchozím článku je nutné, abyste měli nainstalovaný Python a Pip spolu s několika knihovnami. V tomto návodu si vše ukážeme od začátku, aby i noví uživatelé pochopili proces nastavení. Stručně řečeno, nainstalujeme Python a Pip. Poté nainstalujeme Python knihovny, jako jsou OpenAI, GPT Index, Gradio a PyPDF2. Během procesu si vysvětlíme, k čemu každá z těchto knihoven slouží. Nebojte se instalačního procesu, je poměrně jednoduchý. Pojďme tedy na to.
Instalace Pythonu
1. Nejprve je třeba do počítače nainstalovat Python (Pip). OTEVŘETE tento odkaz a stáhněte instalační soubor pro vaši platformu.
2. Spusťte instalační soubor a ujistěte se, že je zaškrtnuto pole „Add Python.exe to PATH“. Tento krok je velmi důležitý. Poté klikněte na „Install Now“ a postupujte podle standardních kroků instalace Pythonu.
3. Pro ověření, zda je Python správně nainstalován, otevřete na počítači Terminál. V systému Windows používám Windows Terminal, můžete však použít i příkazový řádek. Zadejte níže uvedený příkaz, který zobrazí verzi Pythonu. V systémech Linux a macOS může být nutné použít příkaz `python3 –version` místo `python –version`.
python --version
Aktualizace Pip
S instalací Pythonu se do systému nainstaluje i Pip. Aktualizujme ho na nejnovější verzi. Pro ty, kdo neví, Pip je správce balíčků pro Python. V podstatě umožňuje instalovat tisíce Python knihoven z terminálu. Pomocí Pip nainstalujeme knihovny OpenAI, gpt_index, gradio a PyPDF2. Zde jsou kroky, které je nutné provést.
1. Otevřete terminál, který preferujete. Já používám Windows Terminal, ale můžete použít i příkazový řádek. Nyní zadejte níže uvedený příkaz pro aktualizaci Pip. Opět, na Linuxu a macOS může být nutné použít `python3` a `pip3`.
python -m pip install -U pip
2. Pro ověření, zda byl Pip úspěšně nainstalován, zadejte následující příkaz. Zobrazí se verze Pip. Pokud se objeví nějaké chyby, postupujte podle našeho podrobného návodu, jak nainstalovat Pip na Windows pro vyřešení problémů souvisejících s PATH.
pip --version
Instalace knihoven OpenAI, GPT Index, PyPDF2 a Gradio
Po nastavení Pythonu a Pip je čas nainstalovat klíčové knihovny, které nám pomohou trénovat AI chatbota s vlastní znalostní bází. Zde jsou kroky, které je třeba dodržet.
1. Otevřete Terminál a zadejte níže uvedený příkaz pro instalaci knihovny OpenAI. Použijeme ji jako LLM (Large language model) pro trénink a vytvoření AI chatbota. Z OpenAI importujeme i framework LangChain. Uživatelé Linuxu a macOS mohou namísto `pip` muset používat `pip3`.
pip install openai
2. Dále nainstalujeme GPT Index, také známý jako LlamaIndex. Umožňuje LLM připojit se k externím datům, což je naše znalostní báze.
pip install gpt_index
3. Nyní nainstalujeme PyPDF2 pro analýzu PDF souborů. Pokud máte data ve formátu PDF, tato knihovna pomůže programu s jejich snadným čtením.
pip install PyPDF2
4. Nakonec nainstalujeme knihovnu Gradio. Ta slouží k vytvoření jednoduchého uživatelského rozhraní pro interakci s vytrénovaným AI chatbotem. Nyní jsme dokončili instalaci všech potřebných knihoven pro trénink AI chatbota.
pip install gradio
Stažení editoru kódu
Nakonec potřebujeme editor kódu pro úpravu kódu. Pro Windows bych doporučil Notepad++ (Stáhnout). Stačí si program stáhnout a nainstalovat pomocí uvedeného odkazu. Pokud dáváte přednost výkonnějšímu IDE, můžete na jakékoli platformě použít VS Code. Kromě VS Code můžete nainstalovat i Sublime Text (Stáhnout) v systémech macOS a Linux.
Pro ChromeOS můžete použít vynikající aplikaci Caret (Stáhnout) pro úpravu kódu. S nastavením softwarového prostředí jsme téměř hotovi, nyní získáme OpenAI API klíč.
Získání OpenAI API klíče zdarma
Pro trénink a vytvoření AI chatbota na základě vlastní znalostní báze potřebujeme získat API klíč od OpenAI. API klíč vám umožní používat model OpenAI jako LLM pro studium vlastních dat a vyvozování závěrů. OpenAI aktuálně nabízí novým uživatelům API klíče s bezplatným kreditem 5 USD na první tři měsíce. Pokud jste si účet OpenAI vytvořili dříve, můžete mít na účtu bezplatný kredit 18 $. Po vyčerpání kreditu bude nutné za přístup k API platit. Ale prozatím je přístup pro všechny uživatele zdarma.
1. Přejděte na platform.openai.com/signup a vytvořte si bezplatný účet. Pokud již máte účet OpenAI, jednoduše se přihlaste.
2. Klikněte na svůj profil v pravém horním rohu a z rozbalovací nabídky vyberte „Zobrazit API klíče“.
3. Klikněte na „Vytvořit nový tajný klíč“ a zkopírujte si API klíč. Pamatujte, že později již nebude možné klíč zkopírovat nebo zobrazit celý. Proto doporučuji API klíč okamžitě zkopírovat a uložit do textového souboru.
4. API klíč s nikým nesdílejte a nikde veřejně nezobrazujte. Je to soukromý klíč určený pouze pro přístup k vašemu účtu. API klíče můžete také odstranit a vytvořit si nové (až pět).
Trénink a vytvoření AI chatbota s vlastní znalostní bází
Nyní, když máme nastavené softwarové prostředí a získali jsme API klíč od OpenAI, můžeme začít trénovat AI chatbota. Použijeme model „text-davinci-003″ místo novějšího modelu „gpt-3.5-turbo“, protože model Davinci funguje lépe pro dokončování textu. Pokud chcete, můžete model změnit na Turbo a snížit tak náklady. Pojďme k samotnému návodu.
Přidání dokumentů pro trénink AI Chatbota
1. Vytvořte novou složku s názvem „docs“ na přístupném místě, jako je Plocha. Můžete si zvolit i jiné umístění dle preferencí. Název složky ale ponechte „docs“.
2. Do složky „docs“ přesuňte dokumenty, které chcete použít pro trénink AI. Můžete přidat textové i PDF soubory (dokonce i naskenované). Pokud máte velkou tabulku v Excelu, můžete ji importovat jako CSV nebo PDF soubor a následně ji přidat do složky „docs“. Můžete přidat i databázové SQL soubory, jak je vysvětleno v Tweetu Langchain AI. Mnoho formátů souborů jsem netestoval, ale můžete si sami vyzkoušet. Pro tento článek přidávám jeden z mých článků o NFT ve formátu PDF.
Poznámka: Zpracování velkých dokumentů bude trvat déle, v závislosti na výkonu procesoru a grafické karty. Také se rychleji vyčerpají vaše bezplatné OpenAI tokeny. Proto pro začátek doporučuji používat menší dokument (30-50 stran nebo < 100 MB) pro pochopení celého procesu.
Příprava kódu
1. Spusťte Notepad++ (nebo editor kódu dle vašeho výběru) a vložte níže uvedený kód do nového souboru. Opět jsem čerpal z armrrs na Google Colab a kód vylepšil tak, aby byl kompatibilní s PDF soubory a aby vytvořil rozhraní Gradio.
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"] = 'Váš API Klíč' 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="Zadejte text"), outputs="text", title="Vlastní trénovaný AI Chatbot") index = construct_index("docs") iface.launch(share=True)
2. Takto vypadá kód v editoru kódu.
3. Klikněte na „Soubor“ v horní nabídce a vyberte „Uložit jako…“.
4. Nastavte název souboru na „app.py“ a změňte „Uložit jako typ“ na „Všechny typy“. Soubor uložte do složky, kde jste vytvořili složku „docs“ (v mém případě je to Plocha). Název souboru můžete změnit, ale ubezpečte se, že končí příponou .py.
5. Ujistěte se, že složka „docs“ a soubor „app.py“ jsou ve stejné složce, jak je znázorněno na obrázku. Soubor „app.py“ bude mimo složku „docs“, nikoli uvnitř.
6. Vraťte se ke kódu v Notepad++. Zde nahraďte „Váš API Klíč“ vygenerovaným API klíčem z webu OpenAI.
7. Pro uložení kódu stiskněte „Ctrl + S“. Nyní jste připraveni spustit kód.
Vytvoření ChatGPT AI Bota s vlastní znalostní bází
1. Otevřete Terminál a zadejte níže uvedený příkaz pro přesun na plochu. To je místo, kde jsem uložil složku „docs“ a soubor „app.py“. Pokud jste je uložili jinam, pomocí Terminálu se na toto místo přesuňte.
cd Desktop
2. Zadejte níže uvedený příkaz. Uživatelé Linuxu a macOS mohou muset používat python3.
python app.py
3. Nyní začne program analyzovat dokumenty s použitím modelu OpenAI LLM a indexovat informace. V závislosti na velikosti souboru a výkonu počítače bude zpracování nějakou dobu trvat. Po dokončení se na ploše objeví soubor „index.json“. Pokud terminál nezobrazuje žádný výstup, nebojte se, možná stále zpracovává data. Zpracování dokumentu o velikosti 30 MB trvá přibližně 10 sekund.
4. Jakmile LLM zpracuje data, zobrazí se několik varování, která lze bezpečně ignorovat. Nakonec ve spodní části najdete místní URL adresu. Zkopírujte ji.
5. Zkopírovanou URL adresu vložte do webového prohlížeče a máte hotovo. Váš vlastní trénovaný AI Chatbot s ChatGPT je připraven. Pro začátek se můžete AI chatbota zeptat, o čem dokument je.
6. Můžete se ptát na další otázky a ChatGPT bot odpoví na základě dat, která jste mu poskytli. Tímto způsobem si můžete vytvořit vlastního trénovaného AI chatbota s vaším datovým souborem. Nyní můžete trénovat a vytvářet AI chatbota na základě jakýchkoli informací. Možnosti jsou neomezené.
7. Můžete také zkopírovat veřejnou URL adresu a sdílet ji se svými přáteli a rodinou. Odkaz bude aktivní po dobu 72 hodin, ale váš počítač musí být zapnutý, protože server běží na vašem počítači.
8. Pro ukončení vašeho AI chatbota stiskněte „Ctrl + C“ v okně Terminálu. Pokud to nefunguje, stiskněte „Ctrl + C“ ještě jednou.
9. Pro restartování serveru AI chatbota se opět přesuňte na plochu a zadejte níže uvedený příkaz. Mějte na paměti, že místní URL zůstane stejná, ale veřejná URL se po každém restartu serveru změní.
python app.py
10. Chcete-li trénovat AI chatbota s novými daty, smažte soubory ve složce „docs“ a přidejte nové. Můžete přidat i více souborů, ale ujistěte se, že se jedná o data na stejné téma, jinak můžete dostat nesouvislou odpověď.
11. Nyní spusťte kód znovu v Terminálu a vytvoří se nový soubor „index.json“. Starý soubor „index.json“ bude automaticky nahrazen.
python app.py
12. Pro sledování počtu tokenů se podívejte na online přehled OpenAI a zkontrolujte si, kolik volného kreditu vám zbývá.
13. Nemusíte se dotýkat kódu, pokud nechcete změnit API klíč nebo model OpenAI pro další přizpůsobení.
Vytvořte si vlastního chatbota s umělou inteligencí s použitím vlastních dat
Tímto způsobem můžete trénovat AI chatbota s vlastní znalostní bází. Použil jsem tento kód pro trénování AI na lékařských knihách, článcích, datových tabulkách a zprávách ze