Jak wyszkolić chatbota AI z niestandardową bazą wiedzy przy użyciu API ChatGPT

Photo of author

By maciekx

W poprzednim tekście omówiliśmy, jak stworzyć bota konwersacyjnego AI, wykorzystując interfejs programistyczny ChatGPT i przypisując mu określoną rolę. A co, jeśli zależy Ci na trenowaniu sztucznej inteligencji na własnych zasobach informacyjnych? Przykładowo, dysponując książką, danymi finansowymi czy rozbudowanym zbiorem baz danych, możesz chcieć mieć możliwość ich prostego przeszukiwania. W tym artykule pokażemy, jak w prosty sposób przeprowadzić szkolenie chatbota AI na podstawie spersonalizowanej bazy wiedzy, wykorzystując LangChain i API ChatGPT. Wdrożymy LangChain, GPT Index i inne zaawansowane biblioteki, aby przeprowadzić trening chatbota AI przy użyciu modelu językowego (LLM) OpenAI. Zobaczmy, jak wytrenować i skonstruować chatbota AI, bazując na własnym zestawie danych.

Szkolenie chatbota AI z wykorzystaniem spersonalizowanej bazy wiedzy – API ChatGPT, LangChain i GPT Index (2023)

W tym wpisie szczegółowo wyjaśnimy, jak nauczyć chatbota AI korzystania z Twoich własnych danych. Przedstawiamy całą procedurę, od konfiguracji niezbędnych narzędzi i oprogramowania po szkolenie modelu AI. Instrukcje są podane w przystępny sposób. Zaleca się postępować krok po kroku, nie pomijając żadnego etapu.

Kluczowe kwestie przed rozpoczęciem szkolenia AI na Twoich danych

1. Szkolenie chatbota AI możesz przeprowadzić na dowolnym systemie operacyjnym, takim jak Windows, macOS, Linux lub ChromeOS. W tym poradniku korzystam z Windows 11, jednak kroki są praktycznie identyczne dla innych platform.

2. Ten poradnik jest skierowany do przeciętnych użytkowników, a objaśnienia są podane w prosty sposób. Tak więc nawet jeśli masz podstawową wiedzę o komputerach i nie umiesz programować, z łatwością wyszkolisz i uruchomisz chatbota AI Q&A w ciągu kilku minut. Jeśli masz za sobą nasz wcześniejszy artykuł o bocie ChatGPT, ten proces będzie dla Ciebie jeszcze bardziej zrozumiały.

3. Ponieważ będziemy trenować chatbota AI, wykorzystując Twoje własne dane, sugerujemy użycie komputera o dobrej wydajności, wyposażonego w mocny procesor i kartę graficzną. Niemniej jednak, do celów testowych możesz użyć dowolnego, słabszego komputera i wszystko powinno działać bez problemów. Ja sam korzystałem z Chromebooka podczas szkolenia modelu AI z wykorzystaniem książki liczącej 100 stron (około 100 MB). Jednak, jeśli planujesz szkolenie na dużym zbiorze danych liczącym tysiące stron, zdecydowanie zalecany jest komputer o wysokiej mocy obliczeniowej.

4. Na koniec, aby uzyskać najlepsze rezultaty, zbiór danych powinien być w języku angielskim. Według OpenAI, proces powinien również działać z popularnymi językami, takimi jak francuski, hiszpański, niemiecki, itp. Zachęcamy do wypróbowania go z własnym językiem.

Konfiguracja środowiska oprogramowania do szkolenia chatbota AI

Podobnie jak w naszym poprzednim artykule, powinieneś mieć zainstalowane Python i Pip wraz z kilkoma bibliotekami. W tym poradniku wszystko skonfigurujemy od początku, aby nowi użytkownicy również zrozumieli proces instalacji. W skrócie, zainstalujemy Python i Pip. Następnie dodamy biblioteki Pythona, w tym OpenAI, GPT Index, Gradio i PyPDF2. W trakcie tego procesu poznasz funkcję każdej biblioteki. Nie martw się, proces instalacji jest bardzo prosty. Przejdźmy zatem od razu do działania.

Instalacja Pythona

1. Na początek musisz zainstalować Python (Pip) na swoim urządzeniu. Otwórz ten odnośnik i pobierz instalator odpowiedni dla Twojego systemu operacyjnego.

2. Uruchom pobrany plik instalacyjny i zaznacz opcję „Add Python.exe to PATH”. To jest kluczowy krok. Potem kliknij „Install Now” i postępuj zgodnie z instrukcjami, aby dokończyć instalację Pythona.

3. Aby zweryfikować, czy Python został poprawnie zainstalowany, uruchom Terminal na swoim urządzeniu. W systemie Windows korzystam z Terminala, ale możesz też użyć wiersza poleceń. Wpisz poniższą komendę, aby wyświetlić wersję Pythona. W systemach Linux i macOS może być konieczne użycie komendy python3 –version zamiast python –version.

python --version

Aktualizacja Pip

Podczas instalacji Pythona, Pip jest instalowany automatycznie. Zaktualizujmy go zatem do najnowszej wersji. Dla tych, którzy nie wiedzą, Pip to menedżer pakietów dla Pythona. Umożliwia on instalację tysięcy bibliotek Pythona za pomocą terminala. Dzięki Pip możemy zainstalować biblioteki OpenAI, gpt_index, gradio i PyPDF2. Oto co należy zrobić:

1. Otwórz preferowany Terminal na swoim komputerze. Ja używam Terminala Windows, ale możesz również użyć wiersza poleceń. Następnie wpisz poniższą komendę, aby zaktualizować Pip. W systemach Linux i macOS może być konieczne użycie komend python3 i pip3.

python -m pip install -U pip

2. Aby sprawdzić, czy Pip został poprawnie zainstalowany, wpisz poniższą komendę. Powinien wyświetlić się numer wersji. Jeśli napotkasz jakiekolwiek błędy, skorzystaj z naszego dedykowanego przewodnika, jak zainstalować Pip w systemie Windows, aby rozwiązać problemy związane z ustawieniem PATH.

pip --version

Instalacja bibliotek OpenAI, GPT Index, PyPDF2 i Gradio

Po skonfigurowaniu Pythona i Pip, nadszedł czas na instalację niezbędnych bibliotek, które pomogą nam wytrenować chatbota AI przy użyciu spersonalizowanej bazy wiedzy. Wykonaj następujące kroki:

1. Otwórz terminal i wpisz poniższą komendę, aby zainstalować bibliotekę OpenAI. Wykorzystamy ją jako model językowy (LLM) do szkolenia i tworzenia chatbota AI. Zaimportujemy również framework LangChain z OpenAI. Użytkownicy Linuksa i macOS mogą być zmuszeni używać pip3 zamiast pip.

pip install openai

2. Następnie zainstalujmy GPT Index, znany także jako LlamaIndex. Umożliwia on LLM dostęp do danych zewnętrznych, które stanowią naszą bazę wiedzy.

pip install gpt_index

3. Teraz zainstaluj PyPDF2, aby przetwarzać pliki PDF. Jeśli chcesz użyć danych w formacie PDF, ta biblioteka pozwoli programowi na ich bezproblemowe odczytanie.

pip install PyPDF2

4. Na koniec zainstaluj bibliotekę Gradio. Posłuży ona do utworzenia prostego interfejsu użytkownika do interakcji z wytrenowanym chatbotem AI. W ten sposób ukończyliśmy instalację wszystkich niezbędnych bibliotek do szkolenia chatbota AI.

pip install gradio

Pobranie edytora kodu

Na koniec, będziemy potrzebowali edytora kodu, aby edytować fragment kodu. W systemie Windows polecam Notepad++ (Pobierz). Po prostu pobierz i zainstaluj ten program za pomocą podanego linku. Jeśli czujesz się swobodnie z zaawansowanymi IDE, możesz też używać VS Code na dowolnym systemie operacyjnym. Oprócz VS Code, możesz zainstalować Sublime Text (Pobierz) na macOS i Linux.

W przypadku systemu ChromeOS, do edycji kodu można użyć znakomitej aplikacji Caret (Pobierz). Prawie zakończyliśmy konfigurację środowiska oprogramowania, nadszedł czas na uzyskanie klucza API OpenAI.

Uzyskanie darmowego klucza API OpenAI

Aby wytrenować i stworzyć chatbota AI na bazie własnej wiedzy, potrzebujemy klucza API od OpenAI. Klucz API pozwoli Ci wykorzystać model OpenAI jako LLM do analizy danych i wyciągania wniosków. Obecnie, OpenAI oferuje nowym użytkownikom darmowe klucze API z kredytem w wysokości 5 USD ważnym przez pierwsze trzy miesiące. Jeśli wcześniej utworzyłeś konto OpenAI, mogłeś otrzymać darmowy kredyt w wysokości 18 USD. Po wyczerpaniu darmowego kredytu, konieczne będzie płacenie za dostęp do API. Jednak na razie jest on dostępny bezpłatnie dla wszystkich.

1. Wejdź na platform.openai.com/signup i załóż darmowe konto. Jeśli masz już konto OpenAI, po prostu się zaloguj.

2. Następnie kliknij swój profil w prawym górnym rogu i wybierz „View API keys” z menu rozwijanego.

3. Kliknij opcję „Create new secret key” i skopiuj klucz API. Pamiętaj, że później nie będziesz mógł skopiować ani wyświetlić całego klucza API. Dlatego zaleca się, aby od razu skopiować i wkleić klucz API do pliku notatnika.

4. Nie udostępniaj publicznie swojego klucza API. Jest to klucz prywatny, służący wyłącznie do dostępu do Twojego konta. Możesz usuwać klucze API i tworzyć nowe (do pięciu kluczy prywatnych).

Szkolenie i tworzenie chatbota AI z wykorzystaniem spersonalizowanej bazy wiedzy

Teraz, gdy mamy skonfigurowane środowisko oprogramowania i uzyskaliśmy klucz API od OpenAI, przejdźmy do szkolenia chatbota AI. Wykorzystamy model „text-davinci-003” zamiast nowszego „gpt-3.5-turbo”, ponieważ Davinci lepiej sprawdza się w uzupełnianiu tekstu. Jeśli chcesz obniżyć koszty, możesz bez problemu zmienić model na Turbo. Mając to na uwadze, przejdźmy do instrukcji.

Dodawanie dokumentów do szkolenia chatbota AI

1. Najpierw utwórz nowy folder o nazwie „docs” w dogodnej lokalizacji, np. na Pulpicie. Możesz też wybrać inną lokalizację. Ważne jest jednak, aby nazwać folder „docs”.

2. Następnie przenieś do folderu „docs” dokumenty, które chcesz wykorzystać do szkolenia AI. Możesz dodać wiele plików tekstowych lub PDF (również zeskanowanych). Jeśli masz dużą tabelę w Excelu, możesz zaimportować ją jako plik CSV lub PDF, a następnie dodać do folderu „docs”. Możesz nawet dodać pliki bazy danych SQL, jak wyjaśniono w tym tweecie Langchaina. Nie próbowałem wielu formatów plików poza wymienionymi, ale możesz przetestować to samodzielnie. Do tego poradnika dodaję jeden ze swoich artykułów o NFT w formacie PDF.

Uwaga: W przypadku dużych dokumentów, przetwarzanie danych zajmie więcej czasu, w zależności od procesora i karty graficznej. Dodatkowo, szybko zużyjesz darmowe tokeny OpenAI. Na początek zacznij od mniejszego dokumentu (30-50 stron lub pliki <100 MB), aby zrozumieć cały proces.

Przygotowanie kodu

1. Teraz uruchom Notepad++ (lub wybrany edytor kodu) i wklej poniższy kod do nowego pliku. Po raz kolejny skorzystałem z ogromnej pomocy armrrs z Google Colab i poprawiłem kod, aby był kompatybilny z plikami PDF i stworzył interfejs 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"] = '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. Tak wygląda kod w edytorze.

3. Następnie kliknij „File” w górnym menu i wybierz „Save as…” z menu rozwijanego.

4. Następnie ustaw nazwę pliku na app.py i zmień „Save as type” na „All types”. Zapisz plik w lokalizacji, w której utworzyłeś folder „docs” (w moim przypadku jest to Pulpit). Możesz zmienić nazwę pliku, ale upewnij się, że dodałeś rozszerzenie .py.

5. Upewnij się, że folder „docs” i plik „app.py” znajdują się w tej samej lokalizacji, jak pokazano na zrzucie ekranu. Plik „app.py” powinien znajdować się poza folderem „docs”, a nie w środku.

6. Wróć do kodu w Notepad++. W tym miejscu zastąp tekst „Your API Key” swoim kluczem API, który wygenerowałeś na stronie OpenAI.

7. Na koniec naciśnij „Ctrl + S”, aby zapisać kod. Teraz jesteś gotowy do jego uruchomienia.

Uruchomienie chatbota AI ChatGPT ze spersonalizowaną bazą wiedzy

1. Na początku, otwórz terminal i wpisz poniższą komendę, aby przejść do Pulpitu. To tutaj zapisałem folder „docs” i plik „app.py”. Jeśli zapisałeś oba elementy w innej lokalizacji, przejdź do niej za pomocą terminala.

cd Desktop

2. Teraz wpisz poniższą komendę. Użytkownicy systemów Linux i macOS mogą być zmuszeni do użycia komendy python3.

python app.py

3. Program rozpocznie teraz analizę dokumentu, wykorzystując model OpenAI LLM i zacznie indeksować informacje. W zależności od rozmiaru pliku i możliwości komputera, proces ten może zająć trochę czasu. Po jego zakończeniu na pulpicie zostanie utworzony plik „index.json”. Jeśli terminal nie wyświetla żadnych informacji, nie martw się, proces może nadal trwać. Dla porównania, przetworzenie dokumentu o wielkości 30 MB zajmuje około 10 sekund.

4. Gdy LLM przetworzy dane, otrzymasz kilka ostrzeżeń, które można zignorować. Na samym dole znajdziesz lokalny adres URL. Skopiuj go.

5. Wklej skopiowany adres URL do przeglądarki internetowej i gotowe. Twój, spersonalizowany chatboot AI oparty na ChatGPT jest już gotowy. Na początek możesz zapytać chatbota AI, o czym jest dokument.

6. Możesz zadawać kolejne pytania, a bot ChatGPT będzie odpowiadał na podstawie danych, które mu dostarczyłeś. W ten sposób możesz stworzyć specjalnie wytrenowanego chatbota AI, wykorzystującego Twój własny zbiór danych. Możesz teraz szkolić i budować chatbota AI, bazując na dowolnych informacjach. Możliwości są nieograniczone.

7. Możesz też skopiować publiczny adres URL i udostępnić go swoim znajomym. Link będzie aktywny przez 72 godziny, ale Twój komputer musi być cały czas włączony, ponieważ instancja serwera jest uruchomiona na Twoim urządzeniu.

8. Aby zatrzymać specjalnie wyszkolonego chatbota AI, naciśnij „Ctrl + C” w oknie Terminala. Jeśli to nie zadziała, naciśnij „Ctrl + C” ponownie.

9. Aby ponownie uruchomić serwer chatbota AI, przejdź do lokalizacji Pulpit i wpisz poniższą komendę. Pamiętaj, że lokalny adres URL pozostanie taki sam, ale publiczny adres URL zmieni się po każdym restarcie serwera.

python app.py

10. Jeśli chcesz nauczyć chatbota AI nowych danych, usuń pliki z folderu „docs” i dodaj nowe. Możesz też dodać wiele plików, ale ważne jest, aby dotyczyły tego samego tematu, w przeciwnym wypadku możesz otrzymać niespójną odpowiedź.

11. Uruchom ponownie kod w terminalu, a zostanie utworzony nowy plik „index.json”. Stary plik „index.json” zostanie automatycznie zastąpiony nowym.

python app.py

12. Aby monitorować zużycie tokenów, wejdź na panel OpenAI i sprawdź, ile darmowych środków Ci pozostało.

13. Na koniec, nie musisz zmieniać kodu, chyba że chcesz zmodyfikować klucz API lub model OpenAI.

Stworzenie spersonalizowanego chatbota AI na podstawie własnych danych

W ten sposób możesz wyszkolić chatbota AI, wykorzystując spersonalizowaną bazę wiedzy. Sam używałem tego kodu do szkolenia sztucznej inteligencji na książkach medycznych, artykułach, tabelach danych i raportach z archiwów i wszystko działało bez problemów. Zachęcamy do stworzenia własnego chatbota AI


newsblog.pl