Toate moduleleS1 · Setup și ce e AI▾
Prima sesiune are două jumătăți. Întâi limpezim ce înseamnă inteligența artificială, ca să știi despre ce vorbim tot anul. Apoi facem logistica: un loc unde scrii cod și un loc unde trimiți răspunsuri. Partea de setup pare plictisitoare, dar mai toate punctele pierdute prostește la prima etapă vin de aici: un mediu care nu pornește, un fișier de submisie prost formatat, o bibliotecă lipsă. O faci o dată, temeinic, și scapi de ea.
Ce e AI și unde se folosește
Inteligența artificială e ideea de a face un program care rezolvă probleme fără să-i scrii tu, pas cu pas, regula pentru fiecare caz. În loc să-i spui „dacă e așa, fă asta”, îi arăți multe exemple și îl lași să găsească singur regula. Partea asta, de învățat din exemple, se numește machine learning, și e aproape tot ce faci la olimpiadă.
Un exemplu face diferența limpede. Ca să deosebești un email spam de unul normal cu reguli scrise de mână, ai scrie sute de „dacă conține cuvântul X”. Cu machine learning, îi dai câteva mii de emailuri deja marcate spam sau nu, și modelul învață singur ce combinații de cuvinte prezic spamul. Nu-i spui regula, i-o extragi din date.
- Clasificare: pui o etichetă (spam sau nu, ce cifră e în imagine, ce boală arată o analiză).
- Regresie: prezici un număr (prețul unei case, temperatura de mâine).
- Grupare: găsești structura din date fără etichete (ce clienți seamănă între ei).
Ce e Python și de ce el
Python e limbajul standard în care se scrie cod de inteligență artificială. Nu pentru că ar fi cel mai rapid, ci pentru că are bibliotecile pe care le vrei deja scrise: NumPy pentru calcul numeric, Pandas pentru tabele, scikit-learn pentru modele clasice, PyTorch pentru rețele neuronale. La olimpiadă totul se scrie în Python, deci aici începi.
O bibliotecă e cod scris de altcineva, pe care îl imporți și îl folosești. În loc să scrii tu algoritmul de sortare sau înmulțirea de matrice, chemi funcția potrivită. Cea mai mare parte din munca ta va fi să legi bibliotecile astea între ele corect.
Pune mediul la punct
Un mediu virtual e o cutie separată pentru bibliotecile unui proiect, ca să nu se bată cap în cap cu altele. Îl creezi o dată și lucrezi mereu în el. Pașii de mai jos îți dau un mediu curat cu tot ce ai nevoie la început.
- 01Deschide un terminal în folderul de lucru.
- 02Creează mediul: python3.11 -m venv .venv
- 03Activează-l: source .venv/bin/activate (pe Windows: .venv\Scripts\activate).
- 04Instalează uneltele: pip install numpy pandas matplotlib scikit-learn jupyterlab
- 05Pornește Jupyter: jupyter lab
Verifică din prima că totul se importă fără erori. Dacă ceva pică, rezolvă acum, la tine acasă, cu internet, nu în sala de concurs unde nu ai nici net, nici timp.
import numpy as np
import pandas as pd
import matplotlib.pyplot as plt
from sklearn.linear_model import LogisticRegression
print("numpy", np.__version__)
print("pandas", pd.__version__)
print("totul merge")Documentația offline
La concurs, mai toate etapele sunt offline: fără internet, fără Stack Overflow, fără să întrebi un model. Singurul lucru la care te poți uita e documentația locală, adică fișierele de ajutor ale bibliotecilor, salvate pe calculator.
Obișnuiește-te din timp să cauți în documentația offline. În Jupyter, pui un semn de întrebare după o funcție și îți arată ce face și ce argumente ia. E reflexul care îți salvează minute prețioase.
pd.read_csv? # deschide ajutorul pentru read_csv
np.mean? # ce face, ce argumente iaPrima submisie, bucla completă
MLCompete (platform.olimpiada-ai.ro) e platforma pe care te antrenezi tot anul. Nitro AI Judge (judge.nitro-ai.org) e alta, pentru probleme de tip hackathon NLP. Fă-ți cont pe amândouă acum.
O competiție funcționează așa: descarci un set de date, antrenezi un model, produci un fișier cu predicțiile tale pentru datele de test, îl încarci, și primești un scor pe un clasament. Scopul primei tale submisii nu e scorul. E să vezi bucla întreagă măcar o dată.
- 01Intră într-o competiție de antrenament și citește ce metrică se punctează.
- 02Descarcă datele și deschide fișierul de exemplu de submisie, ca să vezi exact ce coloane și ce format cere.
- 03Produ un fișier în același format, chiar și cu răspunsuri la întâmplare.
- 04Încarcă-l și uită-te la scor.
- AI la olimpiadă înseamnă machine learning: modelul învață regula din exemple, nu i-o scrii tu.
- Python plus câteva biblioteci fac tot: NumPy, Pandas, scikit-learn, PyTorch.
- Mediul și documentația offline se pregătesc acasă, nu în ziua concursului.
- Bucla de concurs: date in, fișier de predicții out, scor pe clasament.
- Formatul submisiei e o condiție de punctare, nu un detaliu.