Cotygodniowa dawka linków, czyli archiwum newslettera Dane i Analizy
Ubiegły tydzień to nowość w postaci Sora od OpenAI - generowanie wideo z promptów tekstowych. OpenAI sporo pisze o technikaliach na swoich stronach. Najbliższy tydzień-dwa ubiegnie pod znakiem Sory, a jak otworzą dostęp szerzej... to się dopiero zacznie!
Oczywiście Google nie pozostaje w tyle i prezentuje swojego bliźniaka: Gemini, z którego można też korzystać via API (gdyby było inaczej nie miałoby to sensu w dzisiejszych realiach) oraz starają się nie tracić kroku na polu text-to-video ze swoim Lumiere.
Na szczęście jeszcze modele GenAI nie rozumieją perspektywy i cienia - można więc przy dokładniejszym oglądaniu obrazków wykryć, iż są one sztuczne. Problem z palcami chyba zażegnano ;-)
Z jednej strony to fascynujące - wystarczy napisać kilka zdań (bo im lepszy prompt tym lepszy wynik) po angielsku (jak na razie), być może dorzucić zdjęcie prawdziwej osoby (chociaż Arek pytał ChataGPT o mnie i dostał odpowiedzi znane z internetu) i mamy deep fake’a na miarę papieża Franciszka w puchatej białej kurtce... idącego po wybiegu i mówiącego po portugalsku (z racji pochodzenia i bliskości do Brazylii to dla niego najłatwiejsze). Co zrobi przemysł filmowy? Kolejny strajk przeciwko AI? Znów przełożą premierę wielkich hitów (na szczęście "Diuna, część druga" już za niespełna dwa tygodnie)? Co zrobią media?
A co dzisiaj w newsletterze? Dużo w obszarze data engineeringu, bo to najważniejszy dla mnie osobiście obszar. Ale iż nie najważniejszy w świecie danych - jest też coś innego: co to MLFlow oraz jak wykorzystać LLMy do przeszukiwania i podsumowania tekstów w sieci. dla wszystkich coś miłego, na różnych poziomach zaawansowania.
#ai_ml
Text Embeddings: Comprehensive Guide
Całe to AI na nich stoi, ale... o co chodzi z tymi embedingami? W tym tekście znajdziesz: przegląd najważniejszych metod "embedingowania" tekstu (w skrócie: zamiany słów i zdań na wektory złożone z liczb), trochę o porównywaniu tych wektorów ze sobą (co pozwala znaleźć podobne do siebie zdania) oraz jak to pokazać i wykorzystać
#bazy_danych
Postgres is Enough
Po co jakieś wymyślne rozwiązania jak jest PostgreSQL? Baza NoSQL? Baza wektorowa? Dane mapowe? I wiele innych - spis linków do konkretnych rozwiązań w Postgresie realizujących masę różnorodnych potrzeb!
#big_data
Apache Beam: Data Processing, Data Pipelines, Dataflow and Flex Templates
Tutorial pokazujący czym jest Apache Beam (także w wersji opartej o Dataflow na Google Cloud Platform, bo Apache Beam jest stworzone przez Google) i jak z niego skorzystać. Oraz - nieco gratis - jak tego typu rozwiązania osadzać na GCP.
#ciekawostki
Jak niskim kosztem obsłużyć duży ruch webowy
Case-study serwisu Sejm.stream: kilkaset tysięcy unikalnych użytkowników na hostingu (2GB RAM + 25GB dysku) za 11 złotych na miesiąc. Zapis wątku z Twittera/X.
#data_engineering
Create a web scraping pipeline with Python using data contracts
Praktyczne, kompleksowe demo przepływy danych pokazujące, jak wygląda projekt z pobieraniem, przetwarzaniem i zapisywaniem danych (do CSV, S3 i bazy danych) obejmujący kontrakty danych.
Intro to Web Scraping using Selenium Grid
Czasem jedna przeglądarka nie wystarczy. Selenium uyżywane do testowania i automatyzacji - fajnie sprawdzić serwis na różnych przeglądarkach i systemach. Selenium użyte do scrappingu - fajnie przyspieszyć proces i zrównoleglić prace. Selenium Grid przychodzi wówczas z pomocą, a w tym tekście konkretny przykład (który do jednego projektu po prostu stad skopiowałem)
Dynamic Snake Game
Co tu się wyprawia! Wszystkie nowoczesne technologie (Redis, Kafka, Flink, ClickHouse, Chart.js i jeszcze Flask) tylko po to, żeby "pograć w węża"!
Real-Time data analysis with Streamlit
Dane wpadają z Kafki do Clickhouse (taki OLAP), a potem są pokazywane w prostej aplikacji w Streamlicie. Ale! Ta aplikacja odświeża się i pokazuje jak dane się zmieniają!
#devops
How to Set Up Raspberry Pi OS Desktop on VMware Workstation
Być może chcesz pobawić się Raspberry Pi bez wydawania pieniędzy na sprzęt? Ale ten tekst pojawia się tutaj po to, aby pokazać jak budować wirtualne maszyny
You should stop writing Dockerfiles today
Użyj "docker init" do przygotowania swojego Dockerfile! Uwaga - potrzebny Docker Desktop 4.26.1 i wyżej
How I reduced the size of my very first published docker image by 40%
Jak zmniejszyć rozmiar obrazu dockerowego? Historia z życia wzięta (i dość niskopoziomowa)
#llm_&_chatgpt
Intelligent Web Browsing & Reporting with LangChain and OpenAI
To rozwiązanie mogłoby adekwatnie pisać takie newslettery. Połączenie modeli LLM i Google Search API w celu zebrania informacji i zgrabnego ich podsumowania.
#mlops
MLflow - Praktyczny Tutorial!
W tym odcinku Marcin i Wojtek prezentują MLFlow - popularne narzędzie do “experiment trackingu", czyli zapisywania parametrów, metryk i artefaktów podczas treningu modeli ML. jeżeli nie masz pojęcia co to MLFlow, a chcesz śledzić wyniki swoich modeli to idealne pół godziny na YouTube dla Ciebie!
#python
How to Structure and Organise a Streamlit App
Streamlit pojawia się w tym newsletterze bardzo często. I bardzo gwałtownie się w nimi pisze. Najczęściej jeden plik "app.py" i gotowe. Ale czy tak powinno być? Dobre zaplanowanie struktury całego projektu pozwala na utrzymanie porządku, a to pozwala na łatwiejszy rozwój, a to... sprawia, iż nie ma (zbyt dużej) frustracji :)
How to Use PyTesseract for OCR in Python
Odczytywanie tekstów z obrazków w Pythonie - wstęp. Ale nie tylko wstęp, ale też trochę postprocessingu zarówno obrazów, żeby były łatwiejsze do OCRowania jak i wynikowego tekstu. PyTesseract kiedyś przydał się do zbierania pasków z TVP Info w projekcie https://github.com/prokulski/paski_tvpinfo
#spark
From Basic Scripts to Advanced OOP Methods
Proces przetwarzania ubrany w warstwy (niczym cebula ;-)) i obiektowe podejście w PySparku
#wizualizacja_danych
The Most Advanced Libraries for Data Visualization and Analysis on the Web
Nieco mniej znane biblioteki do wizualizacji danych. Wybrane z dużym naciskiem na wydajność (10 tysięcy bąbelków to nie w kij dmuchał)
Zestawienie linków przygotowuje automat, wybacz więc wszelkie dziwactwa ;-)