Badacze rzadko skarżą się na niedobór oprogramowania. Wręcz przeciwnie, mierzą się z odwrotnym problemem: zbyt dużą liczbą niespójnych narzędzi połączonych skryptami shell i nadzieją. Nowy projekt open-source o nazwie OpenScience chce zastąpić tę mozaikę pojedynczym środowiskiem roboczym AI, zaprojektowanym specjalnie z myślą o odkryciach naukowych. Zbudowany w TypeScript i gromadzący już ponad 2167 gwiazdek na GitHubie, aspiruje do bycia wspólnym środowiskiem dla laboratoriów, w którym sztuczna inteligencja pomaga automatyzować przepływy pracy, zarządzać danymi eksperymentalnymi i zapewniać spójność działań współpracowników. Ambicja jest jasna. Pytanie brzmi, czy projekt przetrwa realia utrzymania oprogramowania open-source oraz silną konkurencję.

Dlaczego badania potrzebują własnego środowiska roboczego

Postęp naukowy zależy od powtarzalności. Wynik nic nie znaczy, jeśli inny zespół nie może przeprowadzić tej samej analizy i dojść do tego samego wniosku. Tymczasem nowoczesne potoki (pipelines) uczenia maszynowego są znane z chaosu. Kroki preprocessingu kryją się w rozproszonych komórkach Jupyter. Hiperparametry są wpisywane na sztywno w nieudokumentowanych skryptach. Zbiory danych są kopiowane, zmieniane w nazwach i gubione na współdzielonych dyskach. Gdy doktorant odchodzi z uczelni, jego proces pracy często odchodzi wraz z nim.

OpenScience ma na celu bezpośrednie uderzenie w ten chaos. Oferując zintegrowaną platformę zamiast luźnej kolekcji bibliotek, projekt ma nadzieję wymusić spójność w sposobie ustawiania, śledzenia i udostępniania eksperymentów. Współpraca jest kluczowym elementem tej propozycji. Zamiast przesyłać sobie kod e-mailem lub walczyć z systemem kontroli wersji, badacze mogliby pracować w ramach wspólnego środowiska, które rejestruje, kto, co i kiedy zmienił. W dziedzinach, gdzie pojedynczy eksperyment może pochłonąć tygodnie obliczeń, taka przejrzystość nie jest luksusem. Jest koniecznością.

Stawianie na TypeScript w kodzie naukowym

Decyzja o zbudowaniu tego projektu w TypeScript jest nieoczekiwana. Uczenie maszynowe opiera się na Pythonie. Kropka. TensorFlow, PyTorch i zdecydowana większość baz kodu badawczego są w nim napisane. Naukowcy zazwyczaj tworzą skrypty w Pythonie lub R, a wielu zna JavaScript tylko na tyle, by dostosować wizualizację webową. Dlaczego więc TypeScript?

Zespół deweloperski argumentuje, że statyczne typowanie pozwala utrzymać kod w porządku i zapewnia jego niezawodność. W pracy naukowej pojedynczy, cichy błąd typu może unieważnić miesiące pracy laboratoryjnej. TypeScript wyłapuje całe klasy błędów już na etapie kompilacji, zamiast pozwalać im wybuchnąć w trakcie długotrwałego procesu trenowania modelu. Dla platformy, która chce zagwarantować powtarzalność, taki rygor jest atrakcyjny.

Istnieją jednak realne kompromisy. TypeScript przyciąga programistów ceniących profesjonalne narzędzia, ale może odstraszyć tych badaczy, którym OpenScience chce służyć. Biolog, który nauczył się podstaw JavaScriptu tylko po to, by formatować dane z ankiet, musi teraz mierzyć się z interfejsami, generykami i potokiem budowania (build pipeline). Krzywa uczenia się jest stroma. Jeśli platforma zmusi każdego użytkownika do zostania inżynierem oprogramowania, zanim będzie mógł wytrenować model, adopcja utknie w miejscu. Zakład jest taki, że długofalowe korzyści w postaci stabilności przeważą nad krótkoterminowymi trudnościami podczas wdrażania.

Co obiecuje OpenScience

Projekt chce uprościć dwa zadania, które obecnie generują ogromne obciążenie poznawcze: trenowanie modeli i śledzenie eksperymentów. Zamiast prosić badaczy o łączenie pół tuzina narzędzi wiersza poleceń, OpenScience planuje zaoferować spójny interfejs. Zamierza również integrować się z liderami w tej dziedzinie, konkretnie z TensorFlow i PyTorch, aby naukowcy nie musieli porzucać znanych bibliotek.

Sama sztuczna inteligencja ma wykonać część najcięższej pracy. Środowisko robocze ma automatyzować powtarzalne przepływy pracy. Można tu myśleć o automatycznie generowanych potokach czyszczenia danych, inteligentnych sugestiach dotyczących hiperparametrów na podstawie poprzednich uruchomień czy automatycznym logowaniu, które rejestruje dokładnie, która wersja zbioru danych wygenerowała dany wynik. Jeśli ta wizja się ziści, może to uwolnić badaczy, pozwalając im skupić się na hipotezach zamiast na infrastrukturze.

Ryzyko przeładowania integracjami

Każda planowana integracja to obietnica, która wymaga utrzymania. TensorFlow i PyTorch wprowadzają częste aktualizacje. Pojedyncza zmiana naruszająca kompatybilność (breaking change) w kluczowej zależności może odbić się echem w warstwach abstrakcji OpenScience, pozostawiając użytkowników z niejasnymi śladami stosu (stack traces) zamiast prowadzenia eksperymentów. Więcej bibliotek oznacza więcej łatek bezpieczeństwa, więcej konfliktów wersji i więcej okazji do tego, by platforma przestała synchronizować się z narzędziami, którym ma służyć.

Złożoność konfiguracji to cichy zabójca oprogramowania badawczego. Jeśli instalacja OpenScience wymaga walki ze sterownikami CUDA, konkretnymi wersjami Node.js i konfliktami środowisk Python, zapracowani doktoranci po prostu otworzą kartę Google Colab, gdzie środowisko uruchomieniowe jest już skonfigurowane. Badania odbywają się w napiętych harmonogramach. Nikt nie zdobywa publikacji, spędzając trzy tygodnie na debugowaniu łańcucha narzędzi.

Deweloperzy zdają się być świadomi tego napięcia. Ich wyzwaniem jest zaoferowanie wystarczającej mocy, by narzędzie było użyteczne, ale nie stając się przy tym tak ciężkim, by zapadło się pod własnym ciężarem.

Zrównoważony rozwój w świecie Open Source

Oprogramowanie open-source zdemokratyzowało wszystko – od tworzenia stron internetowych po analizę danych. Każdy może sprawdzić kod, zaproponować poprawkę lub utworzyć fork projektu do specjalistycznego zastosowania. Ta otwartość sprawdza się dobrze, gdy duża społeczność opłacanych profesjonalistów polega na bazie kodu w swojej codziennej pracy.

Narzędzia naukowe typu open-source mierzą się z inną rzeczywistością. Te 2167 gwiazdek na GitHubie wyglądają obiecująco, ale gwiazdki nie finansują utrzymujących projekt. Cykle grantowe się kończą. Doktoranci idą dalej. Bez stałego wsparcia instytucjonalnego lub dedykowanego rdzennego zespołu, nawet genialne projekty ulegają skostnieniu. Repozytorium stoi bezczynnie przez rok, zależności niszczeją, a pierwsi użytkownicy zostają z osieroconym kodem, który nie kompiluje się już na nowoczesnym sprzęcie. Dla platformy, która chce hostować reprodukowalną naukę, porzucenie jest gorsze niż to, że projekt nigdy nie powstał. OpenScience potrzebuje długoterminowego wsparcia ze strony uniwersytetów, laboratoriów lub instytucji finansujących, jeśli ma przetrwać dłużej niż tylko w nagłówkach gazet.

Konkurencja dla Jupyter, Colab i MATLAB

OpenScience wchodzi do zatłoczonego pomieszczenia. Jupyter Notebooks to domyślny szkicownik do badań eksploracyjnych w Pythonie. Google Colab usunął barierę sprzętową, oferując darmowe procesory GPU wewnątrz karty przeglądarki. MATLAB wciąż dominuje na wydziałach inżynieryjnych, które cenią jego zestawy narzędzi objęte gwarancją i dekady wiedzy instytucjonalnej.

Aby odciągnąć użytkowników od tych uznanych narzędzi, OpenScience musi zaoferować coś, czego one nie mają. Może jest to prawdziwa współpraca wieloużytkownikowa bez opóźnień typowych dla współdzielonych notatników. Może to struktura zarządzania, w której to naukowcy, a nie tylko programiści, kierują mapą drogową. A może to poziom wersjonowania eksperymentów, który sprawia, że reprodukowalność jest automatyczna, a nie stanowi jedynie kwestię wtórną.

Niezależnie od tego, co będzie wyróżnikiem, narzędzie musi pozostać dostępne. Jeśli będzie wymagać wysokiej klasy lokalnych stacji roboczych lub zakładać, że każdy użytkownik czuje się swobodnie, uruchamiając serwer deweloperski, nigdy nie trafi na stronę trending na GitHubie. Badacze optymalizują pracę pod kątem uzyskiwania odpowiedzi, a nie konfiguracji oprogramowania.

Prawdziwy test: Zarządzanie ważniejsze niż kod

Czysty TypeScript i ambitna lista funkcji pchną projekt tylko do pewnego momentu. Historia oprogramowania naukowego jest usłana pięknymi bazami kodu, które upadły, ponieważ zostały zbudowane przez programistów dla programistów. Naukowiec laboratoryjny nie potrzebuje efektownego interfejsu użytkownika, jeśli importer CSV zawiesza się przy danych rzeczywistych. Potrzebuje narzędzi, które szanują rzeczywisty trud badań: przerywane połączenie internetowe w stacjach terenowych, nieuporządkowane formaty plików ze starszych instrumentów i absolutny wymóg udowodnienia sceptycznemu recenzentowi, który dokładnie który kod wygenerował daną figurę.

Sukces zależy od zarządzania społecznością. Główni badacze, kierownicy laboratoriów i doktoranci potrzebują realnego głosu w decydowaniu o tym, co zostanie zbudowane. OpenScience musi wyjść naprzeciw naukowcom tam, gdzie się znajdują, a nie tam, gdzie deweloperzy zakładają, że powinni być.

Podsumowanie

OpenScience to naprawdę interesujący eksperyment. Stosuje rygor typowanej inżynierii oprogramowania do nieuporządkowanego, iteracyjnego świata odkryć naukowych. Takie połączenie jest rzadkością w dziedzinie zdominowanej przez szybkie skrypty w Pythonie. Jednak wybory techniczne niosą ze sobą ryzyko, konkurencja jest zacięta, a droga od gwiazdek na GitHubie do zrównoważonej infrastruktury jest stroma. Kod jest otwarty. Gwiazdek przybywa. Prawdziwym wyzwaniem jest teraz budowanie...