Filtrează articolele

AI

Construirea datelor de instruire supravegheată din Open-SWE-Traces de la NVIDIA: analiza traiectoriilor, patch-urilor, bugetelor de tokeni și metricilor de utilizare a uneltelor

În ultimii ani, domeniul ingineriei software asistate de inteligență artificială a cunoscut o evoluție spectaculoasă. Modelele de limbaj mari (LLM) nu mai sunt doar niște „cutii negre” care generează text – ele devin agenți capabili să scrie cod, să depaneze erori și să interacționeze cu medii de dezvoltare complexe. Însă pentru a antrena astfel de agenți software, ai nevoie de date de calitate, iar NVIDIA a venit recent cu o resursă valoroasă: setul de date Open-SWE-Traces. În acest articol, vom explora cum putem prelucra aceste date pentru a crea un set de instruire supravegheată (SFT), pas cu pas, folosind instrumente moderne precum Hugging Face și Google Colab.

Ce este Open-SWE-Traces?


Open-SWE-Traces este un set de date lansat de NVIDIA care conține traiectorii complete ale agenților software care rezolvă probleme reale de inginerie software. Fiecare traiectorie include conversații multi-tur între agent și utilizator, patch-uri de cod generate, metrici de utilizare a uneltelor (de exemplu, comenzi shell, editor de text) și etichete de succes sau eșec. Aceste date sunt esențiale pentru fine-tuning-ul modelelor de limbaj, deoarece oferă exemple concrete de raționament și acțiune în contexte software.

De ce să folosim acest set de date?


Antrenarea unui agent software necesită mai mult decât simple perechi întrebare-răspuns. Ai nevoie de traiectorii care să arate cum un agent gândește, ce unelte folosește, cum scrie și testează codul. Open-SWE-Traces oferă exact asta: o înregistrare detaliată a fiecărui pas, de la primul mesaj până la patch-ul final. În plus, setul de date este disponibil pe Hugging Face, ceea ce permite procesarea directă fără a descărca totul local – un avantaj enorm când lucrezi în medii cu resurse limitate, cum ar fi Google Colab.

Pașii pentru construirea datelor de instruire



#### 1. Parsarea traiectoriilor
Primul pas este să citim datele brute din setul Open-SWE-Traces. Fiecare traiectorie este stocată ca un JSON care conține o listă de „turnuri” (tururi) – mesaje între agent și utilizator. Trebuie să normalizăm aceste conversații multi-tur, adică să le transformăm într-un format consistent, de exemplu, concatenând toate mesajele dintr-o traiectorie într-un singur șir, păstrând ordinea și rolurile (agent vs. utilizator). Aceasta este baza pentru orice antrenament ulterior.

#### 2. Analiza patch-urilor
Patch-urile sunt modificările de cod pe care agentul le propune. În setul de date, fiecare patch este reprezentat ca un diff (diferență între fișiere). Trebuie să extragem aceste patch-uri și să le analizăm: câte linii au fost adăugate, câte șterse, ce tip de fișiere au fost modificate (Python, JavaScript, YAML etc.). Această analiză ne ajută să înțelegem complexitatea sarcinilor și să filtrăm traiectoriile care nu conțin patch-uri reale (de exemplu, doar discuții fără cod).

#### 3. Bugetele de tokeni
Un aspect critic în fine-tuning este limitarea numărului de tokeni. Modelele au o fereastră de context limitată (de exemplu, 4096 sau 8192 tokeni). Dacă o traiectorie este prea lungă, nu poate fi folosită direct. De aceea, trebuie să calculăm lungimea fiecărei traiectorii în tokeni (folosind tokenizatorul modelului țintă) și să stabilim un buget. De exemplu, putem păstra doar traiectoriile care nu depășesc 4096 tokeni, sau putem trunchia la un număr maxim. De asemenea, putem analiza distribuția lungimilor pentru a decide pragurile optime.

#### 4. Metrici de utilizare a uneltelor
Un agent software nu doar scrie cod, ci și rulează comenzi, editează fișiere, caută informații. Open-SWE-Traces include informații despre ce unelte au fost folosite și cât de des. De exemplu, putem extrage numărul de apeluri la shell, numărul de editări de fișiere, numărul de căutări. Aceste metrici sunt utile pentru a înțelege comportamentul agentului și pentru a filtra traiectoriile care nu implică suficientă interacțiune cu uneltele (poate fi un semn de superficialitate).

#### 5. Etichetarea succesului
Fiecare traiectorie are o etichetă de succes (rezolvată sau nerezolvată). Pentru instruirea supravegheată, vrem să păstrăm doar traiectoriile de succes, deoarece acestea oferă exemple corecte de rezolvare. Totuși, putem include și eșecuri pentru a învăța modelul să evite greșelile, dar în general, SFT se bazează pe exemple pozitive.

Construirea DataFrame-ului de analiză


După ce am extras toate aceste informații, le putem organiza într-un DataFrame (de exemplu, cu pandas). Coloanele ar putea include: ID-ul traiectoriei, lungimea în tokeni, numărul de turnuri, limbajul de programare principal, dimensiunea patch-ului (linii adăugate/șterse), numărul de apeluri la unelte, eticheta de succes. Acest DataFrame ne permite să facem statistici și să filtrăm rapid.

Curatarea subsetului pentru SFT


Cu DataFrame-ul gata, putem aplica filtre:
  • Eticheta de succes: păstrăm doar traiectoriile rezolvate.

  • Limita de tokeni: excludem traiectoriile care depășesc bugetul ales.

  • Filtru de limbaj: putem alege doar traiectoriile care implică un anumit limbaj (de exemplu, Python) dacă antrenăm un agent specializat.

  • Disponibilitatea patch-ului: eliminăm traiectoriile fără patch (doar discuții).


  • Rezultatul este un subset curat, gata de a fi folosit pentru fine-tuning. Acest proces poate fi automatizat și scalat, iar codul poate fi rulat direct în Google Colab, profitând de resursele cloud.

    De ce este important?


    Construirea unor date de instruire de calitate este piatra de temelie a oricărui model de inteligență artificială performant. Open-SWE-Traces oferă o oportunitate unică de a antrena agenți software care nu doar înțeleg codul, ci și interacționează cu mediul de dezvoltare așa cum o face un inginer uman. Prin parsarea traiectoriilor, analiza patch-urilor, gestionarea bugetelor de tokeni și evaluarea metricilor de utilizare a uneltelor, putem crea un set de date care să reflecte cu fidelitate procesul real de dezvoltare software. Acest lucru deschide calea către asistenți software mai inteligenți, mai autonomi și mai utili în scenarii practice. În plus, metodologia prezentată poate fi adaptată și pentru alte seturi de date similare, contribuind la democratizarea cercetării în domeniul agenților software.

    Concluzie


    În acest tutorial, am văzut cum putem transforma datele brute din Open-SWE-Traces într-un set de instruire supravegheată, pas cu pas. De la parsarea conversațiilor multi-tur până la filtrarea finală, fiecare etapă este esențială pentru a asigura calitatea datelor. Cu ajutorul Hugging Face și Google Colab, acest proces devine accesibil oricui, fără a necesita resurse locale masive. Dacă ești interesat de construirea de agenți software, acest set de date și această metodologie sunt un punct de plecare excelent.

    Acest site folosește cookie-uri pentru a-ți oferi o experiență de navigare cât mai plăcută. Continuarea navigării implică acceptarea acestora.