Kultura

Na Sesji Linuksowej parokrotnie przewijał się wątek tworzenia wolnego oprogramowania, jego wykorzystania, wynagrodzeń i finansowania. Wykładem, który chyba najbardziej poruszał tematykę kultury open source i finansowania był Ukryte koszty wolności, ale nie był on jedyny.

To, nad czym się zastanawiam to czy faktycznie jest nieprawidłowo? Albo czy mogło być inaczej? I nie chodzi mi tylko o oprogramowanie, ale o tworzenie ogólnie. Jak to ładnie zostało powiedziane na wykładzie, ludzi czasem coś swędzi i wtedy tworzą. Tworzą różne rzeczy: muzykę, poezję, opowiadania, wpisy na blogach, oprogramowanie. Ogólnie: dzieła, czyli kulturę. Ba, nie tylko tworzą, ale udostępniają to innym.

Tworzą i udostępniają często niezależnie od wynagrodzenia. Z powodu tego swędzenia, czyli jakiegoś rodzaju wewnętrznego przymusu, powstają rzeczy, które inni mogą obejrzeć/przeczytać/wykorzystać. Wykorzystać jako pożywkę dla umysłu, czasem także do samodzielnego tworzenia. Przy czym odbiorcy niekoniecznie chcą płacić za te twory. Co jest zrozumiałe z ekonomicznego punktu widzenia – po co płacić więcej, niż to konieczne[1]? Argument jeśli nie będziecie płacić, to nie będzie muzyki/filmów/książek/oprogramowania jest fałszywy. Muzycy, pisarze czy twórcy open source co do zasady[2] i tak zarabiają grosze. Bo i tak tworzą. Jak nie oni, to inni. Jest co czytać, co oglądać, co uruchomić.

To, ile kosztują dzieła i jaki jest model wynagradzania, to inna sprawa. Firmy fonograficzne, wydawnictwa, serwisy streamingowe – owszem, zarabiają. W przypadku open source, zarabiają firmy, które wykorzystują open source. I one płacą twórcom/kontrybutorom, ale znowu, zwykle tylko tyle, ile muszą. Oczywiście, zawsze istnieje niewielka grupa twórców dobrze zarabiających. Nawet za życia[3]. Eksponowanych.

Nie zgadzam się z autorem wykładu, że ten model jest nie do utrzymania. Ten model funkcjonuje od wieków. Kiedyś artyści zbierali do kapelusza, albo, jeśli mieli szczęście, znajdowali mecenasa, który mógł się pochwalić ich dziełami. Dziś pokazanie jednego twórcy, który zarabia miliony dolarów motywuje miliony innych twórców do pracy za dolara. Co oczywiście jest pośrednikom na rękę[4]. Nie zmienia to faktu, że poza gwiazdami jest masa twórców, którzy poziomem artystycznym odbiegają od gwiazd o rzędy wielkości mniej, niż wynagrodzeniem.

Projekty open source nie są tu wyjątkiem. Mamy masę drobnicy tworzonej za darmo oraz większe projekty, które są w praktyce rozwijane przez firmy, według ich zasad i wytycznych. Chętnie korzystających z darmowej pracy chętnych. Masa użytecznych projektów, nie odbiegających aż tak bardzo od dużych, choć czasem mniej złożona, jest niefinansowana. Tworzona/udostępniana w celu podrapania się. Podobnie jak wkład w duże projekty, niejednokrotnie z dużym narzutem po stronie kontrybutora, typu zaznajomienie z wytycznymi w projekcie, analiza i zaakceptowanie Contributor License Agreement itp.

Zasłyszana kiedyś definicja kultury, którą lubię to jest to coś, co się uprawia. I mamy w takim przypadku chyba zawsze dramatyczną dysproporcję w finansowaniu uprawiających kulturę pomiędzy wąskim gronem na szczycie, a całą resztą. W dowolnej formie: sport, książki, film, muzyka, open source. Jeśli komuś udało by się rozwiązać problem finansowania w dowolnym z tych obszarów, to wydaje mi się, że rozwiązanie pasowałoby do wszystkich innych. I w każdym przypadku spotka się ono z oporem dotychczasowych beneficjentów. Pośredników, którzy czerpią zyski z pracy twórców, dostarczając wytwory odbiorcom.

[1] Dowód anegdotyczny: rok temu uruchomiłem możliwość postawienia mi kawy przez odbiorców i wyłączyłem reklamy. I co? I roczny dochód z kawy jest mniejszy, niż miesięczny z reklam. Ten z reklam końcowym okresie, po spadku. To nie jest zachęta do stawiania kawy teraz ani gorzkie żale, to obserwacja rzeczywistości.
[2] W rozumieniu percentyla ludzi, którzy zarabiają wyłącznie z tworzenia i poziomu ich dochodów. Pewnie warto rozciągnąć tu określenie twórcy nieco szerzej, także na wykonawców czy sportowców, stąd tytuł, wyjaśnienie jest dalej w treści.
[3] Tu powinna być lista malarzy, kompozytorów, pisarzy, którzy przytłaczającą większość życia żyli skromnie lub wręcz klepali biedę, a zostali docenieni i zaczęli zarabiać u jego schyłku. Czy wręcz po śmierci.
[4] Tu warto zauważyć, że w obronie praw (czyt: dochodów) twórców nie występują zwykle sami twórcy, tylko pośrednicy. Jeśli są to sami twórcy, to warto poskrobać czy nie ma lobby pośredników pod spodem.

Instrukcje były niejasne

Czasem na LinkedIn, z którego coraz mniej korzystam, pojawi się ciekawa dyskusja[1]. Zaczęło się od LLMów i stwierdzenia, że AI nie umie dotrzymać tajemnicy, każdy model LLM w końcu ujawni coś, czego nie powinien. Trochę wzięło mnie na filozofowanie i szukanie analogii, efektem jest myśl, którą parę osób uznało za trafną/interesującą, więc, żeby nie zginęła, niech będzie i tu.

Generalnie większość ludzi jest zgodna, że faktycznie tak jest i LLMy „ciekną” sekrety. Trochę zeszło na no ale tu wyraźne instrukcje były, żeby tego nie robił. Czyli klasyczne, że nie LLMy się nie nadają do danego zastosowania, tylko, a może zły prompt, a może zły model, a może tory złe…

Widzę to nieco inaczej, a różnica jest fundamentalna. Podobnie jak w LLMy nie kłamią trzeba przestać traktować LLMy jak maszyny deterministyczn czy myślące. W zamian trzeba cały czas pamiętać, że pod spodem jest to jednak złożony, ale proces stochastyczny.

Dlatego instrukcje, które dajemy LLMom nie są przepisem na ciasto, który zostanie odtworzony przez człowieka. Nie są algorytmem/programem, który zostanie wykonany precyzyjnie w określony, zawsze taki sam sposób, jak ma to miejsce w tradycyjnych programach. Czyli nie są dla „odbiorcy”, czyli modelu LLM ścisłą instrukcją, choć wydaje nam się, że są.

Czym zatem są? Wydaje mi się, że najbliższą analogią, którą znamy z życia są… przykazania religijne. Wg twórcy są precyzyjne, nie ma problemu z ich przestrzeganiem i powinny być przestrzegane. W praktyce jest z tym różnie. Mogą być różnie zrozumiane, zinterpretowane, czy wreszcie po prostu zignorowane. Nawet jeśli większość wyznawców ich przestrzega, to znajdą się przypadki, gdy nie są przestrzegane. Analogicznie zachowują się LLMy. Co któreś uruchomienie, w odpowiednich okolicznościach, znajdzie się taka instancja LLMa, która „złamie”[2] otrzymane instrukcje. I według mnie należy to po prostu przyjąć jako cechę rozwiązań opartych o LLMy.

[1] Bo ważne jest, z kim się rozmawia, nie gdzie.
[2] Cudzysłów, bo złamanie oznaczałoby konieczność zrozumienia, co nie zachodzi.

Planeta – reaktywacja

Po nieco ponad kwartale od zatrzymania Planety Joggera, dojrzałem do jej przywrócenia. Nie jest to ta sama planeta, co wcześniej. Główna zmiana to silnik. Skręciłem w stronę o której pisałem czyli prosta planeta, gdzie będą tylko tytuły i daty wpisów. Może tekstowy fragment opisu, bez formatowania HTML.

Zmiana silnika spowodowała też parę zmian. Jest też kilka niedoróbek:

  • Lista blogów w stopce jest generowana dynamicznie. Tylko jeśli uda się pobrać feed, to blog się pojawi na liście źródeł. Wynika z pewnego uproszczenia działania po stronie silnika, może kiedyś zmienię. Albo może i nie zmienię, bo po co oszukiwać, że wpisy z danego źródła są pobierane, skoro nie są?
  • W przeciwieństwie do poprzedniej wersji nie są prezentowane pełne wpisy, a jedynie zajawki. Czyli wykorzystuję pole description z feedu. Powodów jest wiele, ale w sumie przy poprzedniej wersji była sugestia, żeby właśnie tylko zajawkę dawać i… wg mnie jest OK.
  • Nie będą pojawiały się obrazki/zdjęcia. Trochę jest to pokłosie punktu wyżej, a trochę ze względu na bezpieczeństwo.
  • Nie działa feed planety (choć jest linkowany). Nie zrobiłem na razie, ale będzie.

Z niewidocznych zmian: wylatuje kontener LXC, nie ma całego Planet Venus. Nie ma cache. Całość to obecnie jest jeden plik konfiguracyjny (YAML), dwa pliki template i jeden plik z kodem (Python). Uruchomić z crona, najlepiej z wykorzystaniem venv i… to wszystko. Działa szybciej. KISS

Jeśli chodzi o jak to jest zrobione, to silnik – albo raczej: silniczek – opublikuję wkrótce. Na razie przetestowałem działanie ręcznie, teraz uruchomiłem automatyczne odświeżanie z crona. Jeśli zauważycie błędy liczę na informację. Gdy wszystko będzie działało i dorobię generowanie feedu planety, wtedy publikacja kodu. Repo nanoplanet – chwilowo puste – już linkuję, żeby nie musieć aktualizować wpisu.

Dajcie znać jak się podoba i czy widzicie jakieś usterki.