Przewodnik rozwiązywania problemów
Ten przewodnik zawiera rozwiązania typowych problemów, z którymi możesz się spotkać podczas korzystania z systemu do przetwarzania faktur.
Problemy ze środowiskiem i konfiguracją
Problem z ładowaniem modelu
Objawy: Aplikacja nie uruchamia się, wyświetlając błędy związane z ładowaniem modelu lub “None is not a valid model”.
Rozwiązanie:
- Sprawdź, czy plik
.env
istnieje i zawiera poprawny MODEL_NAME
:
cat .env | grep MODEL_NAME
- Upewnij się, że nazwa modelu jest poprawnym identyfikatorem modelu z Hugging Face (np.
facebook/opt-125m
)
- Dla modeli prywatnych upewnij się, że jesteś uwierzytelniony:
- Sprawdź logi aplikacji pod kątem szczegółowych informacji o błędach
Zmienne środowiskowe nie są ładowane
Objawy: Zmiany w pliku .env
nie są uwzględniane.
Rozwiązanie:
- Upewnij się, że plik
.env
znajduje się w katalogu głównym projektu
- Sprawdź, czy nazwy zmiennych są zapisane WIELKIMI_LITERAMI
- Uruchom ponownie aplikację po wprowadzeniu zmian
- Sprawdź literówki w nazwach zmiennych
- Upewnij się, że nie ma błędów składniowych w pliku
.env
Problemy z CUDA/GPU
Objawy: Błędy związane z CUDA lub komunikaty o przejściu na tryb CPU.
Rozwiązanie:
- Sprawdź, czy CUDA jest zainstalowane:
nvidia-smi # Powinien wyświetlić informacje o karcie graficznej
nvcc --version # Powinien wyświetlić wersję CUDA
- Sprawdź zgodność PyTorch z CUDA:
import torch
print(torch.cuda.is_available()) # Powinno zwrócić True
print(torch.version.cuda) # Powinno pasować do wersji CUDA
- Spróbuj ustawić
CUDA_VISIBLE_DEVICES
w pliku .env
:
CUDA_VISIBLE_DEVICES=0
- Jeśli używasz Dockera, upewnij się, że kontener ma dostęp do GPU:
docker run --gpus all ...
Problemy z API
Port jest już w użyciu
Objawy: Błąd informujący, że port 8088 (lub inny skonfigurowany port) jest już używany.
Rozwiązanie:
- Zmień port w pliku
.env
:
PORT=8080
- Lub znajdź i zakończ proces używający portu:
# Linux/macOS
sudo lsof -i :8088
kill -9 <PID>
# Windows
netstat -ano | findstr :8088
taskkill /PID <PID> /F
- Sprawdź, czy inna instancja aplikacji nie jest już uruchomiona
Błędy CORS
Objawy: W konsoli przeglądarki pojawiają się błędy CORS przy wykonywaniu żądań do API.
Rozwiązanie:
- Upewnij się, że adres URL frontendu znajduje się na liście
CORS_ORIGINS
w pliku .env
:
CORS_ORIGINS=http://localhost:3000,http://localhost:8080
- W środowisku deweloperskim możesz zezwolić na wszystkie źródła (niezalecane w produkcji):
CORS_ORIGINS=*
- Sprawdź, czy nagłówki CORS są prawidłowo ustawione w odpowiedziach serwera
Problemy z wydajnością
Wolne działanie aplikacji
Objawy: Aplikacja działa zbyt wolno.
Rozwiązanie:
- Sprawdź wykorzystanie GPU:
watch -n 1 nvidia-smi # Monitoruj wykorzystanie GPU co sekundę
- Spróbuj użyć mniejszego modelu lub włącz kwantyzację w pliku
.env
:
QUANTIZATION=awq # lub nf4 dla nowszych kart
- Zwiększ rozmiar wsadu (batch size) przy przetwarzaniu wielu dokumentów:
BATCH_SIZE=8
- Sprawdź, czy aplikacja korzysta z GPU zamiast CPU
- Zoptymalizuj rozmiar obrazów przed przetwarzaniem OCR
Wysokie zużycie pamięci
Objawy: Aplikacja ulega awarii z powodu braku pamięci.
Rozwiązanie:
- Zmniejsz wykorzystanie pamięci GPU w pliku
.env
:
GPU_MEMORY_UTILIZATION=0.8
- Użyj mniejszego modelu
- Włącz sprawdzanie gradientu (gradient checkpointing) jeśli trenujesz model:
GRADIENT_CHECKPOINTING=True
- Ogranicz rozmiar przetwarzanych danych jednorazowo
- Sprawdź wycieki pamięci w kodzie
Debugowanie
Włączanie szczegółowych logów
Ustaw poziom logowania w pliku .env
:
LOG_LEVEL=DEBUG
Sprawdzanie logów
Domyślnie logi są zapisywane w pliku logs/app.log
. Sprawdź je w poszukiwaniu szczegółowych komunikatów o błędach.
Najczęstsze komunikaty błędów
Zainstaluj wymagane pakiety:
“CUDA out of memory”
- Zmniejsz rozmiar wsadu (batch size)
- Użyj mniejszego modelu
- Włącz zarządzanie pamięcią CUDA w pliku
.env
:
GPU_MEMORY_UTILIZATION=0.8
- Spróbuj włączyć kwantyzację:
QUANTIZATION=awq
“ConnectionError: Couldn’t reach server”
- Sprawdź połączenie z internetem
- Upewnij się, że masz dostęp do Hugging Face Hub
- Sprawdź ustawienia proxy, jeśli korzystasz z niego w sieci firmowej
“Error loading shared libraries: libcuda.so.1”
- Upewnij się, że sterowniki NVIDIA są poprawnie zainstalowane
- Sprawdź, czy ścieżka do bibliotek CUDA jest dodana do zmiennej środowiskowej
LD_LIBRARY_PATH
Uzyskiwanie pomocy
Jeśli wypróbowałeś powyższe rozwiązania i nadal występują problemy:
- Sprawdź zgłoszenia na GitHubie pod kątem podobnych problemów
- Przy zgłaszaniu błędu uwzględnij:
- Zawartość pliku
.env
(z usuniętymi danymi wrażliwymi)
- Pełny komunikat błędu i stos wywołań (stack trace)
- Kroki prowadzące do odtworzenia problemu
- Informacje o środowisku (system operacyjny, wersja Pythona, wersja CUDA jeśli używane jest GPU)
- Logi aplikacji
Przydatne komendy
Sprawdzanie wersji Pythona i pakietów
python --version
poetry show
Czyszczenie pamięci podręcznej PyTorch
# Usuwa załadowane modele z pamięci podręcznej
torch.cuda.empty_cache()
Sprawdzanie wykorzystania dysku przez modele
du -sh ~/.cache/huggingface/hub/
du -sh ~/.cache/torch/
Resetowanie środowiska
# Usuń środowisko wirtualne i zainstaluj ponownie
rm -rf .venv
python -m venv .venv
source .venv/bin/activate
poetry install
Aktualizacja zależności
# Zaktualizuj wszystkie zależności do najnowszych wersji
poetry update
Wsparcie
W razie pytań lub problemów, skontaktuj się z zespołem wsparcia lub utwórz nowe zgłoszenie w repozytorium projektu.