PrivateGPT zapewnia interfejs API zawierający wszystkie elementy wymagane do tworzenia prywatnych, kontekstowych aplikacji AI . Interfejs API jest zgodny ze standardem OpenAI API i rozszerza go oraz obsługuje zarówno odpowiedzi normalne, jak i przesyłane strumieniowo. Oznacza to, że jeśli możesz używać interfejsu API OpenAI w jednym ze swoich narzędzi, możesz zamiast tego używać własnego interfejsu API PrivateGPT, bez zmian w kodzie i za darmo, jeśli korzystasz z local
trybu privateGPT.
Szukasz przewodnika szybkiego startu dotyczącego instalacji? Skrócona instrukcja instalacji dla systemów Linux i macOS .
Czy chcesz zainstalować go w systemie Windows? A może chcesz w pełni wykorzystać swój sprzęt, aby uzyskać lepszą wydajność? Przewodnik instalacji pomoże Ci w sekcji Instalacja .
Instalacja
Instalacja i ustawienia
Podstawowe wymagania do uruchomienia PrivateGPT
- Git sklonuj repozytorium PrivateGPT i przejdź do niego:
git clone https://github.com/imartinez/privateGPT
cd privateGPT
- Zainstaluj Pythona
3.11
( jeśli jeszcze go nie masz ). Idealnie za pośrednictwem menedżera wersji Pythona, takiego jakpyenv
. Wcześniejsze wersje Pythona nie są obsługiwane.
pyenv install 3.11
pyenv local 3.11
- Zainstaluj Poezję do zarządzania zależnościami:
- Miej poprawny kompilator C++, taki jak gcc. Aby uzyskać więcej informacji, zobacz Rozwiązywanie problemów: kompilator C++ .
- Zainstaluj
make
dla skryptów:- osx: (Używając homebrew):
brew install make
- Windows: (Używając czekolady)
choco install make
- osx: (Używając homebrew):
Zainstaluj zależności
Zainstaluj zależności:
poetry install --with ui
Sprawdź, czy wszystko działa, uruchamiając make run
(lub poetry run python -m private_gpt
) i przejdź do http://localhost:8001 . Powinieneś zobaczyć interfejs użytkownika Gradio skonfigurowany z próbnym LLM , który wyświetli echo wejścia. Poniżej zobaczymy jak skonfigurować prawdziwy LLM.
Ustawienia
Domyślne ustawienia PrivateGPT powinny działać od razu po wyjęciu z pudełka w przypadku 100% konfiguracji lokalnej. Jednak w obecnym stanie działa wyłącznie na Twoim procesorze. Pomiń tę sekcję, jeśli chcesz po prostu przetestować PrivateGPT lokalnie i wróć później, aby dowiedzieć się więcej o opcjach konfiguracji (i uzyskać lepszą wydajność).
Lokalne wymagania LLM
Zainstaluj dodatkowe zależności do lokalnego wykonania:
poetry install --with local
Aby PrivateGPT mógł działać w pełni lokalnie, wymagane jest przyspieszenie procesora graficznego (wykonanie procesora jest możliwe, ale bardzo powolne), jednak typowym laptopom Macbook lub komputerom stacjonarnym z systemem Windows i procesorami graficznymi średniej klasy brakuje pamięci VRAM, aby uruchomić nawet najmniejsze LLM. Z tego powodu wykonanie lokalne jest obsługiwane tylko w modelach kompatybilnych z llama.cpp
Wiadomo, że te dwa modele działają dobrze:
- https://huggingface.co/TheBloke/Llama-2-7B-chat-GGUF
- https://huggingface.co/TheBloke/Mistral-7B-Instruct-v0.1-GGUF (zalecane)
Aby ułatwić proces instalacji, użyj skryptu setup
, który pobierze zarówno osadzenie, jak i model LLM i umieści je we właściwej lokalizacji (w models
folderze):
poetry run python scripts/setup
Jeśli wykonanie procesora jest w porządku, możesz pominąć resztę tej sekcji.
Jak wspomniano wcześniej, wymagany jest plik llama.cpp, a w szczególności używany jest plik llama-cpp-python .
Zdecydowanie zalecamy dokładne zapoznanie się z dokumentacją llama-cpp i llama-cpp-python odpowiednią dla Twojej platformy. Wystąpienie problemów z instalacją jest bardzo prawdopodobne i będziesz musiał je rozwiązać samodzielnie.
Dostosowywanie parametrów niskiego poziomu
Obecnie nie wszystkie parametry llama.cpp
i llama-cpp-python
są dostępne w pliku PrivateGPT settings.yaml
. Jeżeli zajdzie potrzeba dostosowania parametrów, takich jak liczba warstw załadowanych do procesora graficznego, można je zmienić w pliku znajdującym się llm_component.py
pod rozszerzeniem private_gpt/components/llm/llm_component.py
.
Dostępne opcje konfiguracji LLM
Sekcja llm
ustawień umożliwia dokonanie następujących konfiguracji:
mode
: jak uruchomić plik llmmax_new_tokens
: pozwala skonfigurować liczbę nowych tokenów, które LLM wygeneruje i doda do okna kontekstowego (domyślnie używa Llama.cpp256
)
Przykład:
llm:
mode: local
max_new_tokens: 256
Jeśli pojawia się błąd braku pamięci, możesz także wypróbować mniejszy model lub trzymać się proponowanych, zalecanych modeli, zamiast dostosowywać parametry na zamówienie.
Obsługa procesora graficznego OSX
Będziesz musiał zbudować plik llama.cpp z metalowym wsparciem.
Aby to zrobić, musisz zainstalować llama.cpp
powiązanie Pythona llama-cpp-python
przez pip, z flagą kompilacji, która się aktywuje METAL
: musisz przejść -DLLAMA_METAL=on
do polecenia CMake, które pip
działa dla ciebie (patrz poniżej).
Innymi słowy, należy po prostu uruchomić:
CMAKE_ARGS="-DLLAMA_METAL=on" pip install --force-reinstall --no-cache-dir llama-cpp-python
Powyższe polecenie wymusi ponowną instalację llama-cpp-python
ze METAL
wsparciem poprzez kompilację llama.cpp
lokalną z METAL
bibliotekami (domyślnie dostarczanymi z systemem macOS).
Więcej informacji można znaleźć w dokumentacji samych bibliotek:
Obsługa procesora graficznego NVIDIA w systemie Windows
Obsługa procesorów graficznych systemu Windows odbywa się za pośrednictwem CUDA. Postępuj zgodnie z instrukcjami w oryginalnym repozytorium llama.cpp , aby zainstalować wymagane zależności.
Kilka wskazówek, jak sprawić, by działał z kartą NVIDIA i CUDA (testowane na Windows 10 z CUDA 11.5 RTX 3070):
- Zainstaluj najnowszy VS2022 (i narzędzia do kompilacji) https://visualstudio.microsoft.com/vs/community/
- Zainstaluj zestaw narzędzi CUDA https://developer.nvidia.com/cuda-downloads
- Sprawdź, czy instalacja jest poprawna, uruchamiając
nvcc --version
invidia-smi
, upewnij się, że wersja CUDA jest aktualna i wykryto procesor graficzny. - [Opcjonalnie] Zainstaluj CMake, aby rozwiązać problemy z budowaniem, kompilując bezpośrednio llama.cpp https://cmake.org/download/
Jeśli masz poprawnie skonfigurowane wszystkie wymagane zależności, uruchomienie następującego polecenia PowerShell powinno zakończyć się pomyślnie.
$env:CMAKE_ARGS='-DLLAMA_CUBLAS=on'; poetry run pip install --force-reinstall --no-cache-dir llama-cpp-python
Jeśli instalacja przebiegła prawidłowo, przy następnym uruchomieniu serwera powinien zostać wyświetlony komunikat podobny do poniższego BLAS = 1
.
llama_new_context_with_model: total VRAM used: 4857.93 MB (model: 4095.05 MB, context: 762.87 MB)
AVX = 1 | AVX2 = 1 | AVX512 = 0 | AVX512_VBMI = 0 | AVX512_VNNI = 0 | FMA = 1 | NEON = 0 | ARM_FMA = 0 | F16C = 1 | FP16_VA = 0 | WASM_SIMD = 0 | BLAS = 1 | SSE3 = 1 | SSSE3 = 0 | VSX = 0 |
Należy pamiętać, że plik llama.cpp odciąża obliczenia macierzy na procesorze graficznym, ale wydajność nadal jest mocno obniżona ze względu na opóźnienia pomiędzy komunikacją między procesorem a procesorem graficznym. Może zajść potrzeba dostosowania wielkości partii i innych parametrów, aby uzyskać najlepszą wydajność dla konkretnego systemu.
Obsługa procesorów graficznych NVIDIA w systemie Linux i Windows-WSL
Obsługa procesorów graficznych w systemie Linux odbywa się za pośrednictwem CUDA. Postępuj zgodnie z instrukcjami w oryginalnym repozytorium llama.cpp , aby zainstalować wymagane zależności zewnętrzne.
Kilka porad:
- Upewnij się, że masz aktualny kompilator C++
- Zainstaluj zestaw narzędzi CUDA https://developer.nvidia.com/cuda-downloads
- Sprawdź, czy instalacja jest poprawna, uruchamiając
nvcc --version
invidia-smi
, upewnij się, że wersja CUDA jest aktualna i wykryto procesor graficzny.
Następnie uruchomienie następującej komendy w repozytorium spowoduje zainstalowanie pliku llama.cpp z obsługą GPU:
CMAKE_ARGS='-DLLAMA_CUBLAS=on' poetry run pip install --force-reinstall --no-cache-dir llama-cpp-python
Jeśli instalacja przebiegła prawidłowo, przy następnym uruchomieniu serwera powinien zostać wyświetlony komunikat podobny do poniższego BLAS = 1
.
llama_new_context_with_model: total VRAM used: 4857.93 MB (model: 4095.05 MB, context: 762.87 MB)
AVX = 1 | AVX2 = 1 | AVX512 = 0 | AVX512_VBMI = 0 | AVX512_VNNI = 0 | FMA = 1 | NEON = 0 | ARM_FMA = 0 | F16C = 1 | FP16_VA = 0 | WASM_SIMD = 0 | BLAS = 1 | SSE3 = 1 | SSSE3 = 0 | VSX = 0 |
Znane problemy i ich rozwiązywanie
Lokalne wykonywanie LLM nadal ma wiele ostrych krawędzi, szczególnie gdy działa na platformach innych niż Linux. Możesz napotkać kilka problemów:
- Wydajność: użycie pamięci RAM lub VRAM jest bardzo wysokie, komputer może doświadczyć spowolnienia, a nawet awarii.
- Wirtualizacja GPU w systemach Windows i OSX: po prostu niemożliwa w przypadku pulpitu dokowanego, musisz uruchomić serwer bezpośrednio na hoście.
- Błędy budowania: niektóre zależności PrivateGPT wymagają zbudowania kodu natywnego i mogą się nie powieść na niektórych platformach. Najprawdopodobniej brakuje Ci niektórych narzędzi programistycznych na swoim komputerze (zaktualizowany kompilator C++, CUDA nie jest na PATH itp.). Jeśli napotkasz którykolwiek z tych problemów, otwórz go, a my postaramy się pomóc.
Jednym z pierwszych odruchów, jaki należy zastosować, jest: zdobądź więcej informacji. Jeśli podczas instalacji coś nie pójdzie zgodnie z planem, spróbuj ponownie w trybie szczegółowym i zobacz, co pójdzie nie tak.
Na przykład, instalując pakiety za pomocą pip install
, możesz dodać opcję -vvv
pokazania szczegółów instalacji.
Rozwiązywanie problemów: kompilator C++
Jeśli podczas budowania koła napotkasz błąd pip install
, może być konieczne zainstalowanie kompilatora C++ na swoim komputerze.
Dla systemu Windows 10/11
Aby zainstalować kompilator C++ w systemie Windows 10/11, wykonaj następujące kroki:
- Zainstaluj program Visual Studio 2022.
- Upewnij się, że wybrane zostały następujące komponenty:
- Rozwój uniwersalnej platformy Windows
- Narzędzia C++ CMake dla systemu Windows
- Pobierz instalator MinGW ze strony MinGW .
- Uruchom instalator i wybierz
gcc
komponent.
Dla OSX
- Sprawdź, czy masz zainstalowany kompilator C++,
Xcode
powinien był to zrobić za Ciebie. Aby zainstalować Xcode, przejdź do App Store, wyszukaj Xcode i zainstaluj go. Możesz też zainstalować narzędzia wiersza poleceń, uruchamiającxcode-select --install
. - Jeśli nie, możesz zainstalować clang lub gcc z homebrew
brew install gcc
Rozwiązywanie problemów: Mac z systemem Intel
Podczas uruchamiania komputera Mac ze sprzętem Intel (nie M1) możesz napotkać błąd clang: błąd: kompilator clang nie obsługuje opcji „-march=native” podczas instalacji pip.
Jeśli tak, ustaw swoje archflagi podczas instalacji pip. np.: ARCHFLAGS=”-arch x86_64″ pip3 install -r wymagania.txt