OpenWebUI

1. Opis

OpenWebUI jest oprogramowaniem typu open source będącym webowym interfejsem typu CHAT do modeli LLM. Aplikacja pozwala nie tylko na rozmowę z modelami, ale także dzięki wbudowanym mechanizmom RAG (Retrieval-Augmented Generation) użytkownicy mogą wprowadzać treść dokumentów i całych kolekcji dokumentów lub wyniki wyszukiwania web bezpośrednio do rozmowy, co wzbogaca kontekst i odpowiedzi modeli. Interfejs OpenWebUI pozwala na modyfikacje parametrów pracy modelu, zapisywanie treści rozmów w plikach pdf, json, txt. Dane używane podczas rozmowy nie są wysyłane na zewnątrz, chyba że wykorzystywany jest model z zewnętrznego a nie lokalnego serwera. Aplikacja działa na komputerach stacjonarnych, laptopach i urządzeniach mobilnych. Udostępniona na serwerze ai.ihpan.edu.pl instancja OpenWebUI korzysta z lokalnych modeli (obsługiwane przez oprogramowanie Ollama) oraz z modeli dostępnych przez API na zewnętrznych serwerach.

2. Modele LLM dostępne w aplikacji OpenWebUI pochodzą z 3 źródeł:

  • lokalne, uruchamiane na serwerze ai.ihpan.edu.pl (te działają dość wolno, nie mamy jeszcze sprzętu odpowiedniego do takich zadań, dodatkowo modele lokalne to wersje skwantyzowane do 4 bitów - nieco uproszczone - by mogły działać na samych CPU)
  • serwer API GroqCloud - serwer udostępniający modele poprzez api, ta firma nie korzysta kart GPU Nvidii ale z własnych układów LPU, używanych tylko do inferencji (odpytywania modeli), nie nadają się do trenowania czy fine-tuningu. API jest bezpłatne, ale ma dzienne ograniczenia, jest możliwe że w pewnym momencie model z tego źródła przestanie odpowiadać i trzeba będzie poczekać do następnego dnia.
  • serwer API OpenAI - komercyjny dostęp przez API do modeli GPT firmy OpenAI, modele z tgo źródła będą dostępne aż do wyczerpania (niewielkiego) kredytu.

3. Lista dostępnych modeli:

  • llama-3.2-90b-text-preview (Groq Cloud), model open-source od firmy Meta, uwaga: to największy model open-source dostępny obecnie na Groq Cloud i bywa mocno obciążony, co czasem powoduje iż gubi się i zapętla w odpowiedziach (wielojęzyczny)
  • llama-3.1-70b-versatile (Groq Cloud), starszy wariant modelu open source od firmy Meta (wielojęzyczny)
  • llama-3.2-11b-text-preview (Groq Cloud), jeden z mniejszych modeli open source od firmy Meta (wielojęzyczny)
  • gemma2-9b-it (Groq Cloud) lekki, otwarty model od Google, stworzony na podstawie tych samych badań i technologii, które posłużyły do ​​stworzenia modeli Gemini, ale sporo mniejszy (głównie j. angielski)
  • gpt-4o-mini (OpenAI), mały model GPT firmy OpenAI, ale i tak lepszy od większości modeli open-source (wielojęzyczny)
  • mixtral-8x7b-32768 (Groq Cloud), model open-source francuskiej firmy Mistral AI (wielojęzyczny)
  • bielik-11b-v2.3-instruct (lokalny) - model open-source wytrenowany na korpusie polskich tekstów przez społeczność zorganizowaną wokół stowarzyszenia SpeakLeash oraz specjalistów z Cyfronet AGH. Model oparty na innym modelu open-source: Mistral-7B (głównie j. polski).
  • Bałtyk AI - model 'dostosowany' - odpowiada na pytania dotyczące polityki morskiej Jagiellonów w XVI wieku, na podstawie kolekcji publikacji będących już w domenie publicznej (głównie autorstwa Stanisława Bodniaka)

Dodatkowo na lokalnym serwerze Ollama działa niewidoczny dla użytkowników model gte-qwen2-1.5b-instruct, który służy do przetwarzania kolekcji dokumentów - obliczania tzw. osadzeń (embeddings) dla fragmentów tekstów, które są przechowywane w tzw. bazach wektorowych (OpenWebUI wykorzystuje obecnie ChromaDB), co pozwala porównywać semantycznie (znaczeniowo) treść zapytań użytkownika z dokumentami.

4. Praca z OpenWebUI

Po zalogowaniu widoczny jest interfejs czatu. W polu na treść promptu (pytania) widoczna jest podpowiedź: "Jak mogę Ci dzisiaj pomóc?", po lewej stronie widoczny jest znak + który wywołuje menu, dzięki któremu można załączyć plik (txt, pdf) lub włączyć wyszukiwanie w internecie. Poniżej widoczna jest lista typowych pytań które można zadać modelowi jednym kliknięciem.

Po lewej stronie ekranu widoczna jest lista poprzednich czatów (początkowo oczywiście pusta), u góry zaś przycisk do tworzenia nowego czatu, pole opcji z możliwością ustawienia aktywnego modelu. Można też dodać kolejny aktywny model. Aplikacja zapyta wówczas każdy z nich i wyświetli wiele odpowiedzi.

U góry po prawej stronie ekranu widoczne są trzy ikony (jeżeli utworzony został nowy czat, pierwsza z ikon nie jest jeszcze widoczna, pojawia się po przygotowaniu pierwszej odpowiedzi przez model).
Ikony opcji odpowiedzi w interfejsie OpenWebUI
Pierwsza z trzema kropkami dotyczy opcji czatu, można:

  • udostępnić czat w sieci - aplikacja utworzy link, ale by go użyć należy mieć konto w danej instancji OpenWebUI
  • skopiować treść czatu do schowka (w formacie markdown)
  • wyświetlić czat w formie diagramu (Chat Overview)
  • pobrać czat w formacie: txt, json, pdf.

Druga z ikon (ikona z poziomymi suwakami) pozwala na modyfikacje parametrów czatu, np. ustawienie promptu systemowego (można w nim np. wskazać rolę którą ma odgrywać model, choćby taką: "Jesteś asystentem osób badających historię Polski, specjalistą w dziedzinie biografii postaci historycznych."), ale także zaawansowanych technicznych parametrów modelu np. temperatura, domyślnie posiadająca wartość 0.8 (czyli model jest dość 'kreatywny'), po zmianie na wartość 0.0 model powinien być mniej twórczy, ale mieć mniejsze skłonności do halucynacji.

Ostatnia z górnych ikon związana jest z bieżącym użytkownikiem i pozwala na wyświetlenie okna z ustawieniami użytkownika oraz na wylogowanie się z aplikacji (identyczną funkcjonalność ma przycisk z nazwą użytkownika w dolnym lewym rogu ekranu).

Ustawienia użytkownika pozwalają na wybór domyślnego modelu dla bieżącego użytkownika, język interfejsu czy też zmianę hasła dla konta.


Menu wyboru modelu językowego w OpenWebUI

Sesję czatu z modelem można rozpocząć od wyboru modelu z menu u góry ekranu, do rozmowy można (opcjonalnie) załączyć plik np. z lokalnego dysku (znak + i opcja Prześlij pliki), lub załączyć kolekcję dokumentów (bazę wiedzy) wpisując w polu na prompt znak #, który wywołuje listę dostępnych kolekcji dokumentów.


Dodawanie pliku do rozmowy z modelem

Po ustawieniu pliku lub kolekcji będą one dostępne podczas całego czatu z modelem.


Wybór kolekcji dokumentów w OpenWebUI

Następnie można zadać pytanie, lub zdefiniować zadanie dla modelu. Można też skorzystać z podpowiadanych gotowych sugerowanych pytań widocznych pod polem na treść promptu. Działa także nagrywanie pytania głosem - aplikacja wykonuje transkrypcję (ale raczej w języku angielskim). Po wpisaniu pytania przycisk ze strzałką wysyła wiadomość do modelu. Czas oczekiwania na odpowiedź może być różny, zależnie od tego czy przeszukiwana jest kolekcja dokumentów, czy sieć internet, czy wykorzystywany jest model z szybkiego serwera zewnętrznego, czy też z serwera lokalnego. Zwykle oczekiwanie trwa od kilku sekund do paru minut.

Jeżeli podczas rozmowy wskazana została kolekcja dokumentów, aplikacja oprócz odpowiedzi w formie tekstu wyświetla też listę dokumentów, których fragmenty dostarczone zostały jako kontekst do modelu, kliknięcie na danym odnośniku do dokumentu wyświetla konkretny fragment tekstu.


Odsyłacz do cytowanego dokumentu w odpowiedzi modelu

Oprócz listy gotowych sugerowanych pytań w aplikacji OpenWebUI dostępna jest także biblioteka promptów, z której można skorzystać wpisując w polu na prompt (zapytanie) znak '/' - wyświetlona zostanie wówczas lista gotowych promptów do wyboru.


Biblioteka gotowych promptów w OpenWebUI

5. Ograniczenia

Infrastruktura sprzętowa IHPAN nie jest na razie przygotowana do wykorzystania większych modeli LLM, dlatego największy udostępniany lokalnie model to Bielik w wersji 2.3 o 11 miliardach parametrów. Mimo małego rozmiaru, podczas korzystania z tego modelu należy uzbroić się w cierpliwość, modele LLM są bardzo wymagające obliczeniowo.

Każdy z dostępnych modeli ma ograniczenia w długości przetwarzanego kontekstu, model gemma2-9b-it ma tzw. okienko kontekstu równe 8192 tokeny (około 4 tys. słów w języku polskim), model gpt-4o-mini - około 60-70 tys. słów, bielik-2.3 - kilkanaście tysięcy. Należy brać te ograniczenia pod uwagę przy próbie przetwarzania dużych treści.

Tzw. kolekcje dokumentów (określane też jako 'Knowledge' czyli 'bazy wiedzy') są w aplikacji OpenWebUI wstępnie przetwarzane i zapisywane w wewnętrznej bazie wektorowej (ChromaDB). Wstepne przetwarzanie polega na mechanicznym dzieleniu dokumentów na fragmenty po kilkaset znaków (z zakładką 100 znaków) i obliczaniu dla takich fragmentów tzw. osadzeń (embeddings), które pozwalają na wyszukiwanie semantyczne (z uwzględnieniem znaczenia danego fragmentu).Podczas korzystania z mechanizmu RAG do modelu dostarczanych jest tylko 5 najbardziej pasujących znaczeniowo fragmentów oraz oczywiście treść promptu użytkownika (zapytania/zadania) i prompt systemowy. Ponieważ fragmenty dokumentów mają zwykle nie więcej niż 1000 znaków, całość mieści się w oknie kontekstu nawet najmniejszego z dostępnych modeli. Jednocześnie należy zauważyć, że wykorzystywany obecnie mechanizm RAG jest jednym z najprostszych wariantów tej technologii. Lepsze wyniki może można osiągnąć używając dodatkowych metod, np. wyszukiwania w zewnętrznych bazach wiedzy typu WikiHum, Wikidata.

6. Pytania i Odpowiedzi:

- Jak podczas czatu korzystać ze wskazanej strony internetowej?

Jeżeli podczas czatu użyjemy znaku # a po nim adresu internetowego np.

#https://pl.wikipedia.org/wiki/Adam_Wac%C5%82aw_cieszy%C5%84ski
to po zatwierdzeniu przez klawisz Enter aplikacja postara się wczytać treść tej strony do kontekstu przekazywanego modelowi. Będzie wówczas można zadawać pytania dotyczące tej strony.

- Jak skłonić czat do korzystania z internetu podczas przygotowywania odpowiedzi?

Po lewej stronie pola na treść pytania/promptu znajduje się przycisk '+', p jego wciśnięciu rozwijane jest menu pozwalające dodawać pliki do rozmowy (opcja: Przeslij pliki), lub właśnie włączyć korzystanie z internetu (Wyszukiwarka). Do przeszukiwania internetu aplikacja obecnie wykorzystuje usługę serwisu jina.ai.

- Jak załączyć kolekcję dokumentów (bazę wiedzy) do rozmowy?

Znak # wpisany w polu promptu wywołuje listę zdefiniowanych kolekcji, które można wskazać. Podczas przygotowywania odpowiedzi aplikacja najpierw przeszuka wskazaną kolekcję i udostępni najbardziej pasujące do treści promptu fragmenty dokumentów do kontekstu modelu. Wskazana kolekcja będzie wykorzystywana podczas całej rozmowy.

- Czym różni się załączanie kolekcji dokumentów w czacie od korzystania z 'dostosowanych' modeli?

Jeżeli chodzi o efekt to właściwie niczym, model 'dostosowany' ma wybrany z góry rzeczywisty model LLM, już ustawione kolekcje dokumentów z których będzie korzystał, ma zdefiniowany prompt systemowy i podpowiada typowe pytania, które można mu zadać jednym kliknięciem. Może też mieć zmodyfikowane parametry pracy modelu. To samo można osiągnąć tworząc zwykłą nową rozmowę, wybierając model LLM z listy, modyfikując parametry modelu w parametrach czatu, przypisując kolekcje dokumentów poprzez znak # w polu promptu. Model 'dostosowany' jest po prostu wygodniejszy do konkretnego celu, np. pytań o regulaminy.

- Skąd się biorą tytuły czatów z użytkownikiem zapisywanych przez OpenWebUI?

Powstają automatycznie na podstawie treści rozmowy. Ale można je edytować.

- Jak można założyć kolekcję dokumentów?

Tworzenie nowych kolekcji dokumentów jest możliwe tylko dla administratora aplikacji OpenWebUI.

- Gdzie znajdę więcej informacji o OpenWebUI?

Dokumentacja: https://docs.openwebui.com/

Zastrzeżenia

LLMy mogą popełniać błędy. Zweryfikuj ważne informacje. Instytut Historii PAN nie ponosi odpowiedzialności ani za treść zapytań (lub załączonych do pytania dokumentów) wysyłanych do modeli przez użytkowników ani za treść odpowiedzi udzielanych przez modele LLM. Treść zapytań i dokumentów może być przesyłana poza infrastrukturę IHPAN w przypadku korzystania z modeli LLM działających na serwerach zewnętrznych (OpenAI, Groq Cloud).