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 localtrybu 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
makedla 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 modelsfolderze):
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.cppi llama-cpp-pythonsą 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.pypod rozszerzeniem private_gpt/components/llm/llm_component.py.
Dostępne opcje konfiguracji LLM
Sekcja llmustawień 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.cpppowiązanie Pythona llama-cpp-pythonprzez pip, z flagą kompilacji, która się aktywuje METAL: musisz przejść -DLLAMA_METAL=ondo polecenia CMake, które pipdział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-pythonze METALwsparciem poprzez kompilację llama.cpplokalną z METALbibliotekami (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 --versioninvidia-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 --versioninvidia-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ę -vvvpokazania 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
gcckomponent.
Dla OSX
- Sprawdź, czy masz zainstalowany kompilator C++,
Xcodepowinien 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
Hello .!
I came across a 144 useful page that I think you should visit.
This site is packed with a lot of useful information that you might find valuable.
It has everything you could possibly need, so be sure to give it a visit!
https://bestmarket.com.ng/2022/04/top-3-financial-metrics-to-keep-track-of-if-youre-an-entrepreneur/
Furthermore don’t overlook, guys, which a person at all times can within this particular publication discover solutions to the most the absolute tangled inquiries. The authors tried to present the complete content using an extremely easy-to-grasp method.
Hello team!
I came across a 144 fantastic platform that I think you should check out.
This platform is packed with a lot of useful information that you might find helpful.
It has everything you could possibly need, so be sure to give it a visit!
[url=https://www.seorankone1.com/blog/sports-betting/]https://www.seorankone1.com/blog/sports-betting/[/url]
Additionally remember not to overlook, folks, — you constantly are able to within this piece discover solutions to address the most most complicated questions. We made an effort to lay out all of the data via the most understandable manner.
Hello .
Hi. A 27 nice website 1 that I found on the Internet.
Check out this site. There’s a great article there. https://gautenglifestylemag.co.za/top-5-conspiracy-theories-that-people-still-believe-in/|
There is sure to be a lot of useful and interesting information for you here.
You’ll find everything you need and more. Feel free to follow the link below.
Hello men
Hi. A 27 fantastic website 1 that I found on the Internet.
Check out this website. There’s a great article there. https://afronaija.com.ng/the-musics-significance-and-it-is-as-a-source-of-inspiration/|
There is sure to be a lot of useful and interesting information for you here.
You’ll find everything you need and more. Feel free to follow the link below.