Cześć,
Mam około 20 tys stron dokumentacji w PDF, to wszystko waży około 800 MB. Chat GPT nie chce przyjąć takich dużych PDF'ów. Cel jest taki aby AI przeanalizowało mi tą dokumentację i odpowiedziało na kilkanaście konkretnych pytań do tej dokumentacji.
Jak to można rozwiązać?
Jak nakarmić AI
Wątek przeniesiony 2025-02-03 13:46 z Nietuzinkowe tematy przez pradoslaw.
- Rejestracja: dni
- Ostatnio: dni
- Postów: 33
- Rejestracja: dni
- Ostatnio: dni
- Postów: 5027
Odpowiedzią jest RAG:
https://en.wikipedia.org/wiki/Retrieval-augmented_generation
- Rejestracja: dni
- Ostatnio: dni
- Postów: 342
- Rejestracja: dni
- Ostatnio: dni
- Postów: 5027
I wjeżdżają strategie, write behind, cache aside, jedziemy:)
- Rejestracja: dni
- Ostatnio: dni
- Lokalizacja: warszawa
- Postów: 315
Chat gdp nie jest zaprojektowany do taki rzeczy. Dotego wersję modelu na więcej tokenów mają wykładniczo droższa cenę per token. Więc jest potecjal na to bezby było turbo drogo.
Musisz znaleźć inny model/ai może open ai ma. Lub jechać rozdziałami stronami czy akapitami
- Rejestracja: dni
- Ostatnio: dni
- Postów: 5027
Ano nie, dlatego do tego służą podlinkowane wyżej RAG czy CAG. Mógłby zrobić "fine-tuning" jakiegoś LLMa, na tych danych gdyby je zapisał w formie pytań i odpowiedzi, ale to, IMO, wyjdzie gorzej niż wektoryzacja i semantic search.
- Rejestracja: dni
- Ostatnio: dni
- Rejestracja: dni
- Ostatnio: dni
- Postów: 2557
A znacie jakieś inne LLM-y które mogłyby lepiej wykonać takie zadanie niż chatgpt? :-)
- Rejestracja: dni
- Ostatnio: dni
- Postów: 5027
LLM nie jest tu kluczowy, trzeba efektywnie zbudować semantic vector search - podzielić dokumenty na kawałki i umieścić w jakiejś vector storage.
- Rejestracja: dni
- Ostatnio: dni
- Postów: 1628
Patrict12 napisał(a):
Jak to można rozwiązać?
- Rejestracja: dni
- Ostatnio: dni
- Postów: 3891
Notebooklm od googla potrafi takie rzeczy, na szybko ma limit do 200 mb na upload, ale nie wiem jak to się ma do plików na gdrive które można podłączyć
- Rejestracja: dni
- Ostatnio: dni
- Postów: 990
lion137 napisał(a):
LLM nie jest tu kluczowy, trzeba efektywnie zbudować semantic vector search - podzielić dokumenty na kawałki i umieścić w jakiejś vector storage.
A takie coś służy tylko do wyszukiwania? Bo co jeśli chcę zadać pytanie i dostać odpowiedź niczym z chata?
- Rejestracja: dni
- Ostatnio: dni
- Postów: 5027
anonimowy napisał(a):
lion137 napisał(a):
LLM nie jest tu kluczowy, trzeba efektywnie zbudować semantic vector search - podzielić dokumenty na kawałki i umieścić w jakiejś vector storage.
A takie coś służy tylko do wyszukiwania? Bo co jeśli chcę zadać pytanie i dostać odpowiedź niczym z chata?
Wyszukiwanie jest częścią systemu, (powiedziałbym, że kluczową) a odpowiedź skompresowaną z wyciagniętych z bazy, teoretycznie najbliższych znaczeniowo do odpowiedzi na pytanie, dokumentów "ładnie" podaje LLM, o co go prosimy w jakimś meta promptcie.
- Rejestracja: dni
- Ostatnio: dni
- Postów: 1628
lion137 napisał(a):
Wyszukiwanie jest częścią systemu, (powiedziałbym, że kluczową) a odpowiedź skompresowaną z wyciagniętych z bazy, teoretycznie najbliższych znaczeniowo do odpowiedzi na pytanie, dokumentów "ładnie" podaje LLM, o co go prosimy w jakimś meta promptcie.
To chyba Deepseeka lepiej użyć bo on składa słowa a reszta literki. Po co mi wyszukiwanie oparte o literki?
- Rejestracja: dni
- Ostatnio: dni
- Postów: 5027
Nie musi być DeepSeek, jakikolwiek model, żeby z dokumentów poskładał sensowną odpowiedź, a wyszukiwanie jest wektorowe.
- Rejestracja: dni
- Ostatnio: dni
- Postów: 1628
lion137 napisał(a):
Nie musi być DeepSeek, jakikolwiek model, żeby z dokumentów poskładał sensowną odpowiedź, a wyszukiwanie jest wektorowe.
Ale to słowa mają znaczenie więc wektory powinny się opierać na nich a nie na literkach.
- Rejestracja: dni
- Ostatnio: dni
- Postów: 5027
Dobre pytanie, ale to jest do tego jak są tworzone embeddings i ładowane do bazy, a to chyba pytającego jakoś bardzo nie obchodzi - byle by to był skuteczne (retrieval). Chyba że chodzi ci o byte pair encoding, ale to też odbiegasz od tematu.
- Rejestracja: dni
- Ostatnio: dni
- Postów: 1628
lion137 napisał(a):
byle by to był skuteczne (retrieval).
Patrict12 napisał(a):
Cel jest taki aby AI przeanalizowało mi tą dokumentację i odpowiedziało na kilkanaście konkretnych pytań do tej dokumentacji.
Modele których tokenizacja oparta jest o znaki swoją koherentność zawdzięczają głównie bazowemu treningowi. I teraz jeśli podany kontekst (dokumentacja) wpisuje się w przeciętną dokumentację (dataset z bazowego treningu) to skuteczność prawdopodobnie będzie wysoka.
Ale jest też niezerowa szansa że kontekst będzie dot. jakiejś hermetycznej dziedziny z hermetyczną terminologią - w tym wypadku skuteczność ucierpi bo model swoje odpowiedzi będzie budował głównie w oparciu o trening bazowy. Innymi słowy dostaniesz przekonywujący bełkot.
Tutaj LLM z tokenizacją opartą o słowa powinien sobie poradzić lepiej - albo inaczej, będzie większa szansa na wyłapanie bełkotu co jest już wartością samą w sobie.
- Rejestracja: dni
- Ostatnio: dni
- Postów: 5027
Acha, teraz rozumiem, tak, to pytający będzie mógł uwzględnić przy budowaniu RAG a
- Rejestracja: dni
- Ostatnio: dni
Jak to można rozwiązać?
Najszybciej i najłatwiej to chyba z uzyciem AzureAI (czy jak oni tam nazywają), które ma gotowca do tego co opisujesz. Wrzucasz dokumentację, azure automatycznie to indeksuje, dodajesz mu krótkie zadanie w stylu You're smart chat bot who answers questions based on documentation. Potem eksperymentujesz z kilkoma parametrami i patrzysz co najlepiej działa. Generalnie nie trzeba wiedzieć prawie nic o AI żeby tego używać.
Łatwość użycia ma swoją cenę w dolarach.
Jest jeszcze coś takiego jak https://studentai.app/ai-pdf/, podobno dobre (nie używałem) ale ma swoje limity, nie wiem jak poradzi sobie z 800MB.
No i finalnie możesz spróbować za darmo z ChatGPT, wyżej wspomniany AzureAI go używa pod spodem. Tylko musiałbyś zrobić sam to, co azure robi za Ciebie, czyli pociąć i poindeksować dokuentację na mniejsze fragmenty, żeby zmieścić sie w ograniczonej liczbie tokenów jakie chatgpt akceptuje przez swoje API.