Codificarea vibrației cu agenți AI nu este destinată oamenilor de știință

URMĂREȘTE-NE
16,065FaniÎmi place
1,142CititoriConectați-vă

(Acest articol a fost publicat pentru prima dată pe BLUECOLOGIE BLOGși a contribuit cu drag la R-Bloggers). (Puteți raporta problema despre conținutul de pe această pagină aici)


Doriți să vă împărtășiți conținutul pe R-Bloggers? Faceți clic aici dacă aveți un blog sau aici dacă nu.

Codificarea Vibe este ideea creării de software cu modele de limbaj mare (de exemplu, chat gpt, claude), folosind doar solicitare și nu, sau foarte puțin cod scris uman.

Co-fondatorul OpenAI spune despre codificarea Vibe: „Nu este cu adevărat codificând-văd doar lucruri, spun lucruri, rulează lucruri și copiem lucrurile și funcționează mai ales.”

Problema cu codificarea vibrației pentru oamenii de știință este modelarea necesită precizie în codificare și logică statistică. Diferențe mici în ceea ce privește lupta de date sau formularea modelului pot duce la rezultate defectuoase logic.

Experiența mea de codificare a vibrației este că tinde să facă cod care să funcționeze, dar are greșeli în locurile critice. Acest lucru este foarte problematic dacă nu verificați manual toată logica.

Ce este codarea vibrației

Codificarea Vibe a câștigat popularitate cu sisteme AI agent, cum ar fi Github Copilot, Cline, Cod ROO și Cod Claude. Acestea sunt sisteme care îți iau instrucțiunile inițiale și apoi o iterează prin crearea acestuia și depanarea acesteia cu o intervenție umană minimă sau deloc.

Antropic susține că cel mai recent model al lor poate funcționa ore întregi la dezvoltarea de software fără a fi nevoie de intervenție umană. Modul în care funcționează este că LLM returnează rezultatele codului său în sine, verifică aceste rezultate, apoi decide cu privire la următoarea acțiune de luat.

În calitate de modeller ecologic, am crezut că aceste instrumente ar putea fi utile pentru dezvoltarea codului R de rutină. Sarcinile comune includ Wrangling de date, construirea și rularea diferitelor versiuni ale unui model de regresie și apoi generarea de comploturi.

Așa că am experimentat cu AI agentic, inclusiv cu Cline, Cod ROO și Github Copilot pentru statistici ecologice.

Logică defectă

Clincherul din citatul de mai sus este „… Și funcționează mai ales.”

Am găsit pentru statistici, biții care nu funcționează sunt părțile științifice critice. Așadar, codificarea vibrației tinde să producă cod care rulează și produce comploturi credibile, dar rezultate care sunt logic defecte.

Iată un exemplu despre modul în care codificarea Vibe poate produce știință defectuoasă:

Analizez câteva date de monitorizare a țestoasei pentru a calcula numărul mediu de cuiburi pe noapte. Problema este că zerourile, nopțile fără cuiburi sunt implicite. Monitorizarea a fost făcută în fiecare seară timp de trei luni, iar echipa de câmp înregistrează evenimente de cuibărit pe care le observă.

Am încercat codarea vibrației pentru a calcula numărul mediu de cuiburi pe noapte. Tocmai a calculat numărul mediu din numărul total de date unice din setul de date. Ceea ce trebuie să facem mai întâi este să adăugăm zero, nopți fără cuibărit, înapoi în date. În caz contrar, obținem o medie care nu este comparabilă de -a lungul anilor sau site -urilor

Excesiv de inginerie

S -ar putea să spuneți – așa că întoarceți -vă și remediați eroarea. Exact asta am făcut. Cu toate acestea, aici se află o problemă.

Agenții AI tind să codească complet excesiv de inginer, producând scripturi care sunt foarte robuste pentru erorile programatice, dar și foarte lungi (vezi exemplul de mai jos). Există o cantitate copleșitoare de cod de parcurs pentru a găsi aceste greșeli mici, dar semnificative.

AI are o mare lățime de cunoștințe, astfel încât o sesiune de codificare a vibrației îndelungate va produce o funcție de diversitate și o logică de codare. Trebuie să fiți experimentați pentru a interpeta o mulțime de ceea ce produce.

Utilizatorul dvs. tipic R știe suficient pentru a -și analiza datele și a face unele parcele. Vor fi copleșiți încercând să interpreteze 100 de linii de cod R.

Cum se folosește agenții AI în siguranță

Agenții AI sunt încă foarte utili. Dar pentru codificarea științifică au nevoie de o supraveghere atentă. Puteți fie:

1) Lăsați-l să funcționeze autonom, apoi să vă întoarceți cu atenție ceea ce a creat și revizuiți totul 2) Verificați-l și revizuiți-l pas cu pas și redirecționați-l

Dacă ieșiți din profunzimea dvs., atunci vă sugerez să vă opriți și să revizuiți codul până când sunteți sigur ce face. De asemenea, puteți solicita agentului să adauge check -uri (cum ar fi verificarea numărului de eșantioane care se potrivește cu așteptările dvs.).

Amintiți -vă că agenții comerciali, precum Claude Code sau Github Copilot, sunt concepute pentru ingineri software. Așa că scriu cod R robust, dar, de asemenea, nu sunt foarte buni la statistici.

Exemplu de Over Engineering

Agenții AI adoră să acopere toate bazele. Acest lucru poate fi frumos și am învățat câteva trucuri noi în acest fel. Cu toate acestea, excesul său total, dacă doriți doar să creați câteva parcele. Iată un exemplu în care am primit Copilot pentru a face o analiză multivariate. A început prin crearea acestui întreg script, completat cu funcții personalizate, doar pentru a încărca câteva pachete:

# List of required packages
required_packages <- c(
  "tidyverse",  # For data manipulation and visualization
  "vegan",      # For community analysis
  "ggplot2",    # For data visualization
  "ggrepel",    # For non-overlapping text labels
  "cluster",    # For cluster analysis
  "knitr",      # For report generation
  "kableExtra"  # For table formatting in reports
)

# Function to check and install packages
install_if_missing <- function(pkg) {
  if (!requireNamespace(pkg, quietly = TRUE)) {
    cat(paste0("Installing package: ", pkg, "n"))
    install.packages(pkg, dependencies = TRUE)
  } else {
    cat(paste0("Package already installed: ", pkg, "n"))
  }
}

# Install missing packages
cat("Checking and installing required packages...n")
for (pkg in required_packages) {
  install_if_missing(pkg)
}

# Load the packages to verify installation
cat("nLoading packages to verify installation...n")
for (pkg in required_packages) {
  cat(paste0("Loading package: ", pkg, "n"))
  library(pkg, character.only = TRUE)
}

cat("nAll required packages are installed and loaded.n")
cat("You can now proceed with running the analysis scripts.n")

Dominic Botezariu
Dominic Botezariuhttps://www.noobz.ro/
Creator de site și redactor-șef.

Cele mai noi știri

Pe același subiect

LĂSAȚI UN MESAJ

Vă rugăm să introduceți comentariul dvs.!
Introduceți aici numele dvs.