Eksperyment z AI: oceniacz trudności pytań i wybór modelu w ollama

Moje plany dotyczące projektu związanego z benchmarkiem KLEJ są wciąż rozwijane, ale w międzyczasie przeprowadziłem bardzo ciekawy eksperyment z AI. Poprosiłem model językowy, żeby pomógł mi napisać program, który po podaniu zapytania ocenia jego trudność (na podstawie prostych heurystyk) i następnie wybiera odpowiedni mały model LLM (za pomocą ollama), aby wykonać zadanie.

Idea

Pomysł był prosty:

  1. Zmierzyć złożoność zapytania (wc – liczba linii, słów, znaków).
  2. Na podstawie tych danych użyć lekkiej regresji (np. ze scikit-learn), aby przewidzieć, który model będzie najlepszy kompromis między jakością a szybkością.
  3. Wykonać zapytanie w ollama, zmierzyć czas i poprosić użytkownika (czyli mnie) o ocenę jakości.
  4. Zapisywać dane i retrenować regresor w trybie iteracyjnym.

Brzmi dość abstrakcyjnie? A jednak działa.

Przebieg eksperymentu

Całość robiłem w dialogu z modelem Gemini Flash 2.5, z którym rozmawiałem przez mój własny program chater.py. Ten program działa w terminalu Linuksa, opiera się na modułach cmd2 i rich, więc interakcja wygląda podobnie jak w powłoce systemowej, tylko że z AI.

W toku rozmowy poprosiłem model, żeby napisał cały kod. I faktycznie – od początku do końca powstał działający zestaw skryptów i programów:

Model nie tylko zaproponował strukturę, ale też poprawiał kod krok po kroku, gdy coś nie działało. Były błędy, były poprawki, była iteracja – czyli dokładnie ten proces dialogowego, iteracyjnego programowania, który najbardziej mnie interesował.

Efekt

Ostatecznie powstał system, który faktycznie:

Czy to praktyczny system produkcyjny? Nie – to raczej zabawka. Ale dokładnie o to chodziło: pokazać, jak można w trybie dialogowym stworzyć od zera dość złożony, działający program, w oparciu o prosty opis i kolejne interakcje z AI.

Do tego dochodzi aspekt filozoficzny: mój mały laptop, lokalne modele i prosty skrypt – a jednak działa to jak jakiś super-wieloagentowy system. W duchu mojego hasła „Transformer Dla Ubogich”.

Co dalej?

Eksperyment otworzył mi głowę na kilka nowych pomysłów:

Zobaczymy, co z tego wyniknie. Na razie cieszę się, że całość udało się doprowadzić do działającego prototypu.


PS

Żeby było ciekawiej – ten artykuł nie został napisany przeze mnie. Całość napisało AI (ChatGPT), na podstawie moich notatek i historii rozmowy z Gemini. Tak więc jest to trochę meta-eksperyment: AI opisuje eksperyment, w którym AI pisało kod 🙂


Notatka od redaktora (ChatGPT)

Ten tekst powstał w całości na podstawie materiałów dostarczonych przez Marka – w szczególności pliku oceniacz.yaml, zawierającego historię jego rozmów z modelem Gemini Flash 2.5. Moim zadaniem było ułożenie z tego spójnego artykułu w formacie Markdown, tak aby pasował do jego bloga/programistycznych notatek.

Mam nadzieję, że czytelnicy znajdą w tym inspirację – bo nawet „poważne” projekty zaczynają się często od takich zabawkowych prototypów.

Kod źródłowy

Całość kodu, który powstał w ramach tego eksperymentu, jest dostępna w moim repozytorium na GitHubie:
👉 github.com/marcusfirmus/oceniacz

Najważniejsze pliki: - regression.py – logika trenowania i predykcji, - init_train_data.sh – generowanie danych treningowych, - ask.sh – główny skrypt użytkownika.