2025-05-07 CSP Task #1

 

Sistēmas provizoriskais plāns

Mērķis sākt klasificēt COICOP līdz 5-6. līmenim pārtikas produktu grupā.

Plāns varētu būt šāds, bet nav obligāti šādi veidot. Ja ir labākas idejas, dokumentēt un piedāvāt. Vispirms nepieciešams attīrīt un bagātināt datu kopas, tad izmantojot pilnos marķējumus, indeksēt paraugus.

 

  1. Attīrīt datu kopas

  2. Indeksēt datu kopas (produktu nosaukumi, veikala kategorijas embeddings)

  3. Indeksēt COICOP aprakstus (ne pilnus bet pa daļām)

  4. RAG sistēma, kas sameklē līdzigus paraugus pēc produkta nosaukuma, veikala kategorijām

  5. LLM-based klasifikators (structured output + COT)

 

TODO

  1. Pre-processing soli saprogrammēt (manuāli un izmantojot zero-shot LLM)

    1. Kļūdas vārdos (daudzos vārdos jābūt kļūdām)

    2. Atšifrēt saīsinājumus

    3. Datu bagātināšana. Perplexity API vai https://exa.ai/ izmantot, lai sameklētu pēc EAN kodiem preces, kuras nav 02, 2 kopās (iekšējie veikala kodi). Ja Exa.ai strādā labāk kā perplexity nopirksim subscription. Piemērs https://www.perplexity.ai/search/ean-upc-code-7311312002075-..7k8Yl6TcCbRRkinXOjDQ

    4. Esot kļūdas pašos EAN kodos, vienai un tai pašai precei var būt vairāki kļūdaini EAN kodi, bet ir jābūt vienam kodam visiem paraugiem, kuriem vienāds apraksts/saturs.

    5. Sagalabāt satīrītus CSV

  2. Ieviest sistēmā pilnos marķējumus, kurus mums atsūtīs Norberts

    1. Tur esot 5% kļūdas, nepieciešams ar LLM pamēģināt iztīrīt

    2. Pievienot marķējumu CSV (jāņem vērā, ka visi dati nav marķēti. Ja varam paši vēlāk automātiski marķēt un iedod cilvēkam validēt, tas varētu dērēt)

  3. Izmantot veikala klasifikatoru kodus kā ievades dautus N-shot LLM klasifikatorā.

    1. Esot kļūdas veikala klasifikatoros, tās arī salabot

  4. Ieviest COICOP aprakstus no oficiālās dokumentacijas, lai uzlabou klasifikāciju ar LLM

  5. Implementēt RAG pēc teksta līdzības, daļas no teksta līdzības lavenshtein, lai varam līdzīgus paraugus automātiski izgūt priekš n-shot

  6. Svarīgi, ka veidojam ar structured outputs un filtrējam pieejamās kategorijas BaseModel datu struktūrā, ejot dziļāk katrā līmenī tikai ar pieejamiem variantiem. Jabūt arī chain-of-thougt strings pirms klasifikācijas. Klasifikāciju veicam kā vārdiskus tekstus nevis COICOP kodus.

  7. Nomērīt precizitāti (accuracy) pārtikas produktu kategorijā pa visiem līmeņiem

  8. Sarēķināt izmaksas uz vienas rindas klasifikāciju ar LLM n-shot + RAG