Home » 2022 » Open-source czy oprogramowania zamknięte. Czy techniki i narzędzia SI i Data Science powinny być w otwartym dostępie – za i przeciw

Tagi

Wyróżnione posty

Zobacz też

Statystyki

  • 100
  • 616
  • 25 026
  • 7 315
  • 46

Open-source czy oprogramowania zamknięte. Czy techniki i narzędzia SI i Data Science powinny być w otwartym dostępie – za i przeciw

Spread the love

Codziennie stajemy się użytkownikami niezliczonych serwisów i oprogramowania, w tym coraz częściej takiego, które zawiera w sobie elementy rozwiązań SI oraz Data Science. Bankowość elektroniczna, serwisy społecznościowe, a nawet i już dosyć powszechnie analiza wyników badań lekarskich, to miejsca, w których sztuczna inteligencja zaczyna odgrywać coraz to bardziej znaczącą rolę. W związku z powszechnością powyższych rozwiązań, jak i ich wpływu na dużą liczbę aspektów naszego życia, pojawia się pytanie: czy rozwiązania SI i Data Science powinny być w otwartym dostępie, czy może ich dalszy kierunek rozwoju powinien być zdefiniowany w ramach oprogramowania zamkniętego? W tym wpisie chcemy rozważyć zalety i wady obu podejść.

Wprowadzenie

Sztuczna inteligencja i Data Science to już nie technologie przyszłości – stały się one powszechnie stosowanym narzędziami. Przedsiębiorstwa dostrzegają, jaki potencjał biznesowy ma wykorzystanie danych nieustannie zbieranych na temat ich klientów i użytkowników ich usług. Politycy swoje kampanie opierają na starannie opracowanych modelach zachowań i preferencji społeczeństwa. Również sami klienci oczekują, iż to co jest im oferowane, będzie jak najbardziej dopasowane do ich upodobań. To tylko bardzo wąski wachlarz przykładów, gdzie swoje miejsce odnajdują sztuczna inteligencja i techniki Data Science.

AI in banking

Rozwój dziedziny naukowej jaką jest SI skutkuje obfitością artykułów naukowych, w których codziennie proponowane są nowe, lepsze modele uczenia maszynowego, kolejne możliwości zastosowania już istniejących. Nie mniej, nie trzeba mieć bardzo specjalistycznej wiedzy, by móc używać najnowszych osiągnięć z zakresu data science. Inżynierowie oprogramowania mogą skorzystać z wachlarzu rozwiązań dostępnych w chmurze, a nawet i osoby bez wykształcenia technicznego, mogą korzystać z programów takich jak Clementine lub Orange, by w łatwy sposób stosować narzędzia AI do swoich danych.

Pozostaje jednak ważny aspekt: kto i na jakiej zasadzie tworzy oprogramowanie opierające się na SI? Jakie decyzje projektowe podejmowane są w kontekście algorytmów, których działanie wpływa na całe społeczeństwa? Prowadzi to do pytania, czy narzędzia SI i data science powinny być w otwartym dostępie?

W celu próby znalezienia odpowiedzi na tę kwestię, na początku pragniemy rozważyć, czym jest oprogramowanie w otwartym dostępie, jak różni się ono od oprogramowania zamkniętego oraz jakie są dobre i złe cechy obu podejść. Kolejno, odniesiemy się do tego zagadnienia w kontekście narzędzi SI i Data Science, jak i aktualnego tematu, jakim jest potencjalne upublicznienie algorytmu Twittera. W tym wpisie chcemy poruszyć także kwestię wyjaśnialności decyzji algorytmów uczenia maszynowego, która bezpośrednio dotyczy ogólnego aspektu transparentności narzędzi SI i Data Science.

Rodzaje oprogramowania

W pierwszej kolejności należy zdefiniować, czym jest oprogramowanie open source i jak różni się ono od oprogramowania zamkniętego.

Open-source

Jest to rodzaj oprogramowania, którego właściciel praw autorskich, na podstawie licencji, przyznaje użytkownikom prawa do korzystania, rozpowszechniania oraz wprowadzania zmian. W takim podejściu udostępniany jest kod źródłowy danej aplikacji/programu. 

Organizacja Open Source Initiative podaje przykłady najpopularniejszych licencji open source:

  • Apache License 2.0
  • BSD 3-Clause “New” or “Revised” license
  • BSD 2-Clause “Simplified” or “FreeBSD” license
  • GNU General Public License (GPL)
  • GNU Library or “Lesser” General Public License (LGPL)
  • MIT license
  • Mozilla Public License 2.0
  • Common Development and Distribution License
  • Eclipse Public License version 2.0.

Najczęściej udostępnienie oprogramowania w ramach open source wiąże się z dodaniem klauzuli zdefiniowanej przez wybrany rodzaj licencji.

Oprogramowania zamknięte – proprietary software

Jest to oprogramowanie chronione prawem autorskim, ze względu na które objęte jest ono pewnymi restrykcjami dotyczącymi sposobu używania, rozpowszechniania, a także modyfikowania. Na ogół rozpowszechniane jest w postaci binarnej – bez udostępniania kodu źródłowego. Taki rodzaj oprogramowania pozostaje własnością twórcy, natomiast użytkownicy mogą z niego korzystać na podstawie wcześniej określonych warunków. Najczęściej takie oprogramowanie zabezpieczane jest przy pomocy środków takich jak klucze licencyjne, sprzętowe, numery seryjne i konieczność aktywacji produktu. Ponadto twórcy takiego oprogramowania stosują techniki takie jak obfuskacja kodu, aby uniemożliwić odtworzenie kodu źródłowego przy pomocy dekompilacji. Zamknięty typ oprogramowania jest zazwyczaj płatny, wiąże się z jednorazową opłatą, lub wielokrotną, w modelu subskrypcyjnym.

Open source vs oprogramowanie zamknięte

Koszty

Często można utożsamiać pojęcie open-source z czymś darmowym, natomiast oprogramowanie zamknięte, czy też objęte prawami autorskimi z czymś za co należy zapłacić. W większości przypadków tak jest, jednakże nie należy uważać tego za coś pewnego, gdyż występują także odmienne sytuacje – na przykład wyszukiwarki  lub komunikatory, których źródła nie są publicznie dostępne, mogą być darmowe i służyć jako medium dla znalezienia odbiorców reklam (przykładowo większość przychodu firmy Google w IV kwartale 2021 pochodziło z reklam). Ponadto takie usługi zbierają dane dotyczące ich użytkowników, które same w sobie stanowią wartość dla firm oferujących oprogramowanie zamknięte, ponieważ dzięki nim mogą one rozwijać swoje narzędzia SI. Stąd nie można jednoznacznie uznać, że wadą oprogramowania closed source jest jego cena dla użytkownika.

Wsparcie techniczne

Technical support

Kluczową kwestią z perspektywy biznesowej, być może nie dostrzeganą od razu przez większość indywidualnych użytkowników, jest wsparcie techniczne dla oprogramowania. W momencie gdy dane oprogramowanie jest elementem większego systemu dostarczanego jako usługa, istotne staje się zagadnienie tego, jak często można spodziewać się poprawek oprogramowania, kto jest za nie odpowiedzialny, czy posiada ono odpowiednią liczbę testów?

W przypadku oprogramowania closed source takie aspekty stają się nieco uproszczone, gdyż często dostawca oprogramowania definiuje w licencji zakres wsparcia technicznego oraz posiada odpowiednią certyfikację (np. usługi Azure posiadają certyfikat IS0 27001).

Nie mniej, w obszarze open source także można odnaleźć przykłady wsparcia technicznego, choć jest ono z pewnością mniej powszechne. Takim przykładem jest wsparcie dla ekosystemu Ubuntu dostarczane przez organizację Canonical.

Społeczność – kwestia rozwoju i bezpieczeństwa oprogramowania

Inherentną cechą oprogramowania open source jest możliwość jego modyfikacji i ulepszeń przez dowolnego użytkownika, który potrafi się wykazać odpowiednim poziomem umiejętności technicznych. Dzięki temu każdy może przyczynić się do stworzenia lepszej jakości narzędzi, jak i poznać detale ich implementacji. Czy można powiedzieć, że takie oprogramowanie jest w jakiś sposób mniej lub bardziej bezpieczne od oprogramowania własnościowego? Jest to otwarte zagadnienie, natomiast nie należy stwierdzać, że oprogramowanie własnościowe jest zdecydowanie bardziej bezpieczne od otwartego. W przypadku oprogramowania zamkniętego, zespół odpowiedzialny za jego powstanie jest zwykle zdecydowanie mniejszy, niż społeczność tworząca kod open source, gdzie potencjalnie więcej osób może dostrzec podatności. Z drugiej strony, firmy tworzące oprogramowanie własnościowe skłonne są zatrudnić specjalistów od cyberbezpieczeństwa, dbających o przestrzeganie narzuconych dobrych praktyk, w celu tworzenia bezpiecznego i certyfikowanego oprogramowania.

Open source w kontekście AI – za i przeciw

W tej części wpisu chcemy skupić się na zaletach i wadach tworzenia narzędzi open source związanych z SI i Data Science.

Przykłady otwartych rozwiązań SI i Data Science

PyTorch

Aktualnie jesteśmy świadkami gwałtownego rozwoju wszelakich bibliotek programistycznych związanych z uczeniem maszynowym i analizą danych. Popularne otwarte rozwiązania takie jak PyTorch, TensorFlow, scikit-learn stosowane są przez miliony programistów na całym świecie, ze względu na przejrzyste API, łatwość integracji, jak i dość bogatą dokumentację. Dużą zaletą istnienia takiego powszechnie dostępnego, darmowego oprogramowania, jest jego nieoceniony wpływ na szybszy rozwój całego obszaru badawczego Data Science. W przypadku, gdyby wymienione narzędzia były płatne, można by przewidywać, że nie byłoby tak niezwykle szybkiego postępu naukowego w tej dziedzinie. Dodatkowo programy open source takie jak Orange pozwalają na przeprowadzanie analiz nawet mniej doświadczonym użytkownikom, co dodatkowo czyni obszar SI i DS coraz popularniejszym.

Open source AI w nauce

W aktualnie toczącej się dyskusji naukowej podkreślana jest potrzeba otwierania dostępu do oprogramowania SI stosowanego w badaniach (Sonnenburg 2007). Wiąże się to z następującymi zaletami:

  • łatwiejsza reprodukowalność badań,
  • więcej możliwości dostrzeżenia błędów w badaniach i implementacji,
  • przyspieszony rozwój naukowy dziedziny,
  • umożliwienie łatwiejszego zastosowania nowych zdobyczy z obszaru SI w innych gałęziach nauki i przemysłu.

Istotnie, bardzo szybki rozwój SI i Data Science niesie ze sobą ryzyko powstawania wielu publikacji z wątpliwej jakości wynikami. Udostępnianie oprogramowania, które pozwoliło je osiągnąć, umożliwia poprawę jakości tworzonych badań i opracowywanie lepszych metodologii.

Wyzwania i ograniczenia dla narzędzi SI w wolnym dostępie

Pomimo szerokiego wachlarza zalet jakie posiadają otwarte narzędzia i techniki SI i Data Science, wciąż istnieje szereg ograniczeń dla ich powszechnego stosowania. W raporcie przygotowanym dla komitetu związanego z Parlamentem Europejskim, poza zaletami tworzenia otwartych narzędzi SI, wskazano również ich potencjalne ograniczenia i wyzwania z nimi związane.

Jednym z nich jest problem dotyczący odpowiedzialności za decyzje podejmowane przez otwarty system AI. W przypadku takiego systemu, wskazane musi być, do kogo może odwołać się użytkownik w przypadku chęci poznania podstaw decyzji podjętej przez system SI, zwłaszcza jeśli w jakiś sposób dochodzi w nim do dyskryminacji np. wybranych grup społecznych.

Dodatkowo w raporcie zwrócono uwagę, iż otwarte systemy SI mogą być tworzone przez wolontariuszy, którzy w każdej chwili mogą opuścić dany projekt, co może prowadzić do niepowodzenia całego przedsięwzięcia.

Ponadto, wyzwaniem w przypadku tworzenia otwartych systemów jest konieczność zdobycia dobrej jakości dużych zbiorów danych.

Interesującym przykładem zmiany podejścia z tworzenia otwartego na zamknięte SI jest OpenAI. Organizacja ta jako misję stawia sobie tworzenie rozwiązań sztucznej inteligencji dostępnych dla wszystkich. W przypadku modeli językowych GPT-1 oraz GPT-2, udostępniła ona ich kod źródłowy. Nie uczyniła tego jednak dla modelu GPT-3, motywując to zagrożeniami, jakie niesie udostępnienie algorytmu tworzącego realistyczny tekst w języku naturalnym szerszemu społeczeństwu, w którym mogą pojawić się jednostki pragnące użyć go w złośliwych celach. Pokazuje to, że szybki postęp SI i jej otwarta dostępność jednocześnie wiąże się z niebezpieczeństwem.

 

Upublicznienie algorytmu Twittera – dobry pomysł?

Twitter

Ostatnio głośnym tematem jest pomysł upublicznienia algorytmu Twittera. Wpisuje się on w dyskusje na temat otwartego dostępu do rozwiązań SI. Osoby popierające ten pomysł wskazują, że dzięki takiemu krokowi będzie można określić, czy faworyzuje on wybrane poglądy i jednostki.  Jednak w artykule Washington Post wymieniono ograniczenia związane z upublicznieniem tego kodu.

Po pierwsze, duża złożoność algorytmów rekomendacji sprawia, że nawet upublicznienie kodu może nie przynieść jednoznacznych odpowiedzi dotyczących trendów w treściach ukazywanych użytkownikom w serwisie. Kolejną kwestią jest fakt, że takie algorytmy opierają się na ogromnej liczbie danych zbieranych przez serwisy społecznościowe. Mało kto posiada zasoby obliczeniowe, które byłby w stanie je przetworzyć.

Jako potencjalne ulepszenie dla istniejącego algorytmu wskazano alternatywę w postaci możliwości tworzenia i dobierania algorytmów rekomendacji treści do własnych potrzeb. Dzięki temu każdy mógłby w pewien sposób wpłynąć na to, co obserwuje na Twitterze.

 

Explainable AI (XAI)

Grad-CAM

Kwestią, która pozostaje związana z transparentnością systemów SI, jest wyjaśnialność ich decyzji – zarówno w przypadku otwartych, jak i zamkniętych rozwiązań. W artykule (Holzinger 2017) wskazano, że decyzje podejmowane przez system powinny być możliwe do odtworzenia oraz jego użytkownik musi być w stanie poznać, w jaki sposób uzyskano dany wynik. Ma to duże znaczenie, zwłaszcza w kontekście możliwości występowania ataków na sieci neuronowe, jak i obecność biasu w modelach uczenia maszynowego. Niezależnie, czy dane narzędzie SI jest otwarte, czy zamknięte, jego decyzja powinna być możliwa do wyjaśnienia.

Podsumowanie

Istnieje aktualnie wiele narzędzi SI i Data Science w otwartym dostępie, co niesie ze sobą wiele korzyści dla całej gałęzi nauki związanej z tymi dziedzinami. Otwarte rozwiązania mają jednak swoje ograniczenia, związane głównie z częstym brakiem wsparcia technicznego, problemem odpowiedzialności za decyzje podejmowane przez system, jak i potencjalnym złośliwym użyciem takich narzędzi.

Literatura

  1. Licencje open source, https://opensource.org/licenses
  2. Oprogramowanie własnościowe, https://en.wikipedia.org/wiki/Proprietary_software
  3. Raport dochodów firmy Google w IV kwartale 2021, https://www.investopedia.com/articles/investing/020515/business-google.asp
  4. Certyfikat IS0-27001 dla Microsoft Azure, https://azure.microsoft.com/en-us/blog/windows-azure-achieves-is0-27001-certification-from-the-british-standards-institute/
  5. Wsparcie techniczne dla Ubuntu, https://ubuntu.com/support
  6. Bezpieczeństwo systemów open source, https://rubygarage.org/blog/open-source-software-security
  7. PyTorch, https://pytorch.org/
  8. TensorFlow, https://www.tensorflow.org/
  9. scikit-learn, https://scikit-learn.org/stable/
  10. Orange Datamining, https://orangedatamining.com/
  11. Sonnenburg S. et al. (2007). The Need for Open Source Software in Machine Learning. J. Mach. Learn. Res. 8 (12/1/2007), 2443–2466.
  12. Raport dla Parlamentu Europejskiego, https://www.europarl.europa.eu/RegData/etudes/STUD/2021/662908/IPOL_STU(2021)662908_EN.pdf
  13. OpenAI i GPT-3, https://sites.imsa.edu/hadron/2021/02/03/openai-was-the-shift-to-closed-source-justified/
  14. Upublicznienie algorytmu Twittera, https://www.washingtonpost.com/technology/2022/04/16/elon-musk-twitter-algorithm/ 
  15. Holzinger, A et al. (2017). What do we need to build explainable AI systems for the medical domain?

 


Leave a comment

Twój adres e-mail nie zostanie opublikowany. Wymagane pola są oznaczone *

Najnowsze komentarze

  1. Ciekawe jest porównanie tradycyjnej terapii z nowymi rozwiązaniami opartymi na modelach językowych. Warto zauważyć, że mimo obiecujących wyników, istnieją ważne…