43 Frauen in der IT

avatar
Mareen Döring
avatar
Nico Kreiling

In Folge 43 spricht Mareen Döring über ihren Werdegang als Frau in der IT-Branche. Vom Informatikunterricht über das Studium bis hin zu ihrer aktuellen Rolle als VP Engineering & Business Systems bei Zeal hat sie zahlreiche Erfahrungen gesammelt und teilt ihre Einsichten zu den verschiedenen Stationen ihrer Laufbahn. Gemeinsam erörtern wir, warum es wichtig ist, dass in der IT-Branche nicht ausschließlich Männer arbeiten, und wieso sich das Geschlechterungleichgewicht hartnäckig hält. Wir sind uns einig, dass dieses Ungleichgewicht idealerweise so früh wie möglich im Ausbildungsweg angegangen werden sollte. Zum aktuellen Umgang mit diesem Ungleichgewicht verfolgen wir jedoch unterschiedliche Ansätze, die wir im Gespräch diskutieren.

42 AI Chatbots & Open-Assistant

avatar
Andreas Köpf
avatar
Nico Kreiling

In der 42. Folge dieses Podcasts geht es um die Technologie, die derzeit als die Antwort auf alles und nichts gesehen wird. Andreas Köpf von Open Assistant wird interviewt und es wird diskutiert, wie ChatGPT die Technologie-Revolution angestoßen hat und welche Auswirkungen sie auf die Zukunft hat. Es werden die Grundlagen von ChatGPT wiederholt und ein ausführlicher Blick auf das Reinforcement Learning from Human Feedback (RLHF) geworfen, das den Large Language Models hilft, den Absichten der Nutzer zu folgen. Open-Assistant wird als eine Open-Source-Alternative zu ChatGPT vorgestellt, die von einer engagierten Community aufgebaut wurde und deren Datensatz und Modelle mit freier Lizenz veröffentlicht wurden. Es wird auch diskutiert, welche Hardware und Modelle für das Training verwendet wurden. Ethik ist ein wichtiges Thema, da bei der Erstellung der Trainingsdaten darauf geachtet werden muss, welche Antworten auf potenziell gefährliche Fragen die richtigen sind. Schließlich wird ein Blick auf die gesellschaftliche Dimension geworfen und über die bevorstehenden Transformationen und nächsten Entwicklungsschritte diskutiert.

Links:

#41 WebAssembly

avatar
Golo Roden
avatar
Nico Kreiling

Webassembly ermöglicht es, viele verschiedene Programmiersprachen im Browser auszuführen und kann dabei sogar deutlich schneller sein als JavaScript. Mein Gast Golo Roden hat nicht nur jahrelange Erfahrung im Bereich der Web-Entwicklung und Software-Architektur, sondern hat sich auch länger mit WebAssembly auseinander gesetzt und darüber ein ausführliches YouTube Tutorial produziert.

Mit ihm spreche ich über das Ziel von WebAssembly, den Browser mit Hilfe einer Intermediate Language (ähnlich wie Java bytecode oder CIL) für mehr Entwickler zugänglich zu machen. Und seit der Einführung 2015 haben sich inzwischen zahlreiche Projekte gefunden, die es ermöglichen etwa C, Rust, Go, Java, C#, .NET oder neuerdings Python mittels Pyodide in WebAssembly zu kompilieren. Golo erklärt, warum WebAssembly weder eine Konkurrenz zu JavaScript noch zu Docker darstellt, wie das WebAssembly System Interface (WASI) funktioniert und wann WebAssembly schneller ist als JavaScript. Schließlich sprechen wir noch etwas über das ganze Ökosystem rund um WebAssembly, die ByteCodeAlliance und wo uns WebAssembly heute im Netz so begegnet.

Links

#40 Semantic Search

avatar
Joschka Braun
avatar
Nico Kreiling

Informationen sind vielfältig, sie existieren nicht nur in geschriebenen Text, sondern auch in Bilder, Töne, Videos und vielem mehr. Wähend klassischer a.k.a. lexikalischer Suche diese Informationen nur mit viel Aufwand über Umwege zugänglich gemacht werden können, so bietet semantische Suche den direkten Zugriff auf Informationen nicht nur jeder Sprache, sondern auch jeder Modalität wie etwa Bildern und Videos.

In Folge 40 habe ich Joschka Braun von Jina.AI zu Gast. Jina ist ein Startup aus Berlin, welches Entwickler bei der Erstellung multi-modaler ML Anwendungen hilft. Gemeinsam erkären wir zunächst, wieso multi-modalität, also dem Zusammenwirken von unterschiedlichen Medientypen wie etwa Text, Bild, Ton etc. die Zukunft gehört. Wir gehen auf Clip- und Dall-E als erste populäre Vertreter multimodaler Machine Learning Modelle ein und erklären wie sie Dokumenten-Vektoren generieren. Anschließend sprechen wir über geeignete Verfahren zur performanten Durchsuchung der generierten Vektoren mittels Approximate Nearest Neighbor (ANN) Search. Diese können entweder direkt mittels Bibliotheken wie etwa HNSWLib, Annoy oder Faiss genutzt werden, oder als Retrieval-Verfahren innerhalb einer Vektordatenbank. Diese verbinden die Transaktions- und Skalierungsqualtiäten von Datenbanken mit der effizienten Vektorabfrage. Hier reden wir insbesondere über die Vorzüge und Nachteile der dedizierten Vektordatenbanken wie Weaviate, Milvus und Qdrant sowie den klassischen Datenbanken mit Vektorsuche wie beispielsweise ElasticSearch.

Zum Abschluss sprechen wir noch einmal über JinaAI, DocArray, ihren neuen Dienst JinaNow und NLP-Modell-Finetuning.

Links:

#39 Suchmaschinen-Optimierung (SEO)

avatar
Niklas Büllesbach
avatar
Nico Kreiling

In Folge 39 berichtet SEO-Experte Niklas Büllesbach von seinen Erfahrungen im Suchmaschinen-Umfeld. Natürlich gibt Niklas einige Tipps zur Optimierung der eigenen Seite, darüber hinaus werfen wir aber auch einen Blick auf die Funktionsweise von Suchmaschinen. Dabei starten wir bei AltaVista, besprechen die ersten On-Page (TF/IDF) und Off-Page (PageRank) Optimierungen und schließen bei aktuellen Entwicklungen sie Semantischer Suche, hochdimensionale A/B-Tests, Tools wie Google-Search-Console (ehemals WebMaster-Tools) und den Core Web-Vitals sowie Best Practices für sensible Bereiche: Expertise, Authority, Trust.

Darüber hinaus skizzieren wir die typsichen Verarbeitungsschritte einer Suchmaschine:

  1. Crawling: Der GoogleBot besucht eine Homepage und hangelt sich von hier in die verschiedenen Bereiche der Website. Bei großen Online-Portalen wie etwa Nachrichtenseiten kann das managen des sogenannten Crawl-Budgets eine Herausforderung darstellen.
  2. Rendering: Google Caffeein rendert die gecrawlte Websitenstruktur, um anschließend revelante Inhalte zu extrahieren. Bei nicht serverseitige gerenderten Websiten wie etwa Single-Page Applikations kann dies insbesondere auf Grund des zeitlichen Versatzes eine komplizierte Angelegenheit darstellen.
  3. Indexing: Die gespeicherten Inhalte werden in Shards unterteilt und auf verschiedene Daten-Center verteilt, die nach URL-Keywords (Reverse-Index) strukturiert werden.
  4. Ranking: Die Reihenfolge der zurückgelieferten Suche wird gerade in den letzten Jahren immer mehr durch semantische Suche bestimmt und mittels Neuronaler Netze und dem Google Knowledge Graph bestimmt.

Links:

#38 Aufbau eines Tech-Startups

avatar
Janosch Sadowski
avatar
Nico Kreiling

In Folge 38 ist Janosch Sadowski zu Gast und erzählt von seiner sehr erfolgreichen Gründung des Spiele-Startups Kolibri Games und dem vier jährigen steilen Wachstumskurs von der Uni-WG hin zu einem der heißesten Berliner Startups mit vielen Millionen Spielern.

Gemeinsam mit vier Kommilitonen vom Karlsruher Institut für Technologie (KIT) hat Janosch 2016 das Spiele-Startup Fluffy Flairy Games (später in Kolibri Games umbenannt) gegründet. Nach einem ersten misslungen Spiele-Konzept entdeckten die Studenten das “Idle-Games” Genre und prägten es mit dem Erfolgstitel Idle Miner Tycoon, dessen erste Version sie nach nur vier Wochen veröffentlichten. Mit viel Mut und dem Engagement das Spiel jede Woche etwas besser zu machen konnte das Startup bald erste Mitarbeiter einstellen und zog dann mit über 20 Personen zum Jahresbeginn 2018 geschlossen nach Berlin, um dort einfacher talentierte Mitarbeiter gewinnen zu können. Dort nahm das Wachstum dann noch weiter zu und das Führungsteam musste diverse Probleme lösen, von komplexer werdenden Kommunikationswegen bis hin zu kurzfristig Hardware Shopping Touren im Media-Markt nach einem bzw. zwei nächtlichen Einbrüchen.

Jannosch erzählt jedoch nicht nur die spannende Entwicklungsgeschichte des Startups, sondern teilt auch seine Einschätzung dazu, was eine gute Firmenkultur ausmacht und erzählt, worauf er bei Vorstellungsgesprächen besonders achtet.


Die Folge 38 hat leider aufgrund von kurzfristig notwenidger Ersatzhardware eine schlechtere Audio-Qualität als gewohnt, dafür bitte ich euch um Entschuldigung – das wird nächstes mal wieder besser!


Einige weitere Artikel rund um Kolibri-Games:

#37 Datenvisualisierung

avatar
Patrick Stotz
avatar
Nico Kreiling

Die Episode 37 behandelt mit Datenjournalist Patrick Stotz (Spiegel) die Visualisierung komplexer Sachverhalte. Zunächst tauschen wir uns über unser Verständnis einer guten Datenvisualisierung aus und nutzen hierfür Alberto Cairos’ fünf Eigenschaften-Modell: Truthful, Functional, Beautiful, Insightful und Enlightment. Anschließend geht es um Best Practices auf Grundlage langjähriger Forschung (siehe Graphical Perception von 1984), wie Informationen durch Positionen, Längen, Winkel, Flächen und Farben enkodiert werden sollten.

In der Folge werden sowohl klassische Darstellungsformen wie Balken, Torten, Linien und Streudiagramme mit Vor- und Nachteilen besprochen, wie auch eher unbekannte aber sehr mächtige Darstellungen durch Tree Maps, Violin- und Beeswarm-Plots, Sankey Diagramme, Heatmaps und Small Multiples.

Weitere Themen sind der Umgang und die geeignete Darstellung von Unsicherheiten, unterschiedliche Karten-Projektionen sowie geeignete Tools und Bibliotheken um Karten zu visualisieren.

Weitere Links:

Tools:

#36 NLP Update: Attention & Big Science

avatar
Nils Reimers
avatar
Nico Kreiling

Natürliche Sprachverarbeitung (NLP) war bereits vor 2 Jahren das Thema einer Techtiefen Podcast-Triologie. Seit dem hat sich aber sehr viel getan, insbesondere Transfer-Learning und die Transformer Technologie haben mächtige Modelle wie Bert oder GPT ermöglicht, es wird also höchste Zeit für ein Update. Wer zuerst noch einmal die Grundlagen auffrischen möchte, dem sei Techtiefen [NLP] Moderne Sprachverarbeitung empfohlen.

Experte dieser Folge ist Nils Reimers, NLP Forscher bei Huggingface und Autor der Sentence-Transformers Library. Er erklärt zunächst die wichtigen Neuheiten der vergangen Jahre wie etwa Transfer Learning, Attention, Transfomer und Neuheiten bei Tokenization Strategien. Anschließend sprechen wir darüber, wie man am besten aus einem Text variabler Länge Vektoren mit fixer Dimensionalität bestimmt. Diese so bestimmten Vektoren sind dann Grundlage für anspruchsvolle Aufgaben wie Text-Clustering, Semantische Suche oder Question-Answering Aufgaben. Auch besprechen wir, wie man einsprachige Modelle mit Hilfe eines Teacher-Student Verfahrens in fremde Sprachen übertragen kann.

Abschließend berichtet Nils vom Big Science Projekt, einem einjährigen Workshop bei dem 500 Personen aus über 50 Ländern mitarbeiten um gemeinsam auf einem französischen Supercomputer das größte bisher berechnete Sprachmodell zu berechnen. Anders als bei GPT wird sowohl das Modell, wie auch der Prozess dieses zu erstellen offen und transparent. Besonders ist dabei auch der Ansatz, spannende Forschungsfragen bereits vor dem Modelltraining zu formulieren.

Links:

#35 Entwicklertools erstellen

avatar
Florian Wetschoreck
avatar
Nico Kreiling

Techtiefen 35 wird etwas Meta und behandelt keine Technologie direkt, sondern tehmatisiert mit Florian Wetschoreck was es bedeutet ein Arbeitstool für andere Entwickler zu entwickeln. Florian ist Mitgründer von 8080Labs, die nicht nur an der Pandas-GUI bamboolib arbeiten, sondern auch Pakete wie pyforest und den ppscore veröffentlicht haben.

Florian erzhält zu Beginn, wie es zur Idee kam, eine einfachere, interaktive Bedienoberfläche für das Datentransformationstool Pandas zu entwicklen und wie er seine Masterarbeit nutzte, um die Idee zu verwirklichen. Dabei setzte er stark auf die Contextual Inquiry, eine Methodik bei der er den Nutzer zunächst über einen längeren Zeitraum passiv bei seiner Arbeit beobachtet und ihn erst im Anschluss dazu befragt, warum er Aktionen wie durchgeführt hat. Bei diesen Beobachtungen entstand auch die einfache Erkentniss, dass fehlende import Statements immer wieder ein Grund für einfache Fehler sind, welche zwar schnell gelöst werden können aber den Workflow unterbrechen. So kam es etwa zu pyforest, einer kleinen Bibliothek das fehlende Tools unter den gängigen Namenskonventionen import, sollten sie genutzt aber nicht importiert worden sein.

Neben Fragen zur Produktentwicklung geht es auch um Themen wie Monetarisierung und die Erkentniss, dass in der Regel nicht Entwickler selbst sondern ihre Unternehmen für ihre Tools zahlen, was dazu führt, das Bambolib 1.0 in der Basisversion frei verfügbar ist und nur für spezielle Features wie etwas Plugins die typischerweise im Unternehmen eingesetzt werden eine Lizenz notwndig ist.

Auch wenn der Podcast ein grobes Verständnis für datenzentrierte Arbeiten und Jupyter Notebooks vorraussetzt (hört in Folge 34 rein, wenn euch das noch nichts sagt), ist er vermutlich etwas weniger technisch und einacher zu konsumieren als andere Folgen. Ansonsten sei euch noch Florians Artikel „RIP correlation. Introducing the Predictive Power Score“ empfohlen, viel Spaß beim hören, lesen und ausprobieren.

#34 Jupyter Notebooks

avatar
Hans Fangohr
avatar
Harald Schilly
avatar
Nico Kreiling

Notebooks sind im Data Science Umfeld allgegenwärtig, in anderen Bereichen der Informatik aber vielleicht noch weitgehend unbekannt. Deshalb erklärt Nico mit seinen Gästen Hans Fangohr und Harald Schilly sowohl was Notebooks überhaupt sind und wie sich das Arbeiten damit anfühlt, geben aber auch zahlreiche Tipps und Empfehlungen für erfahrene Nutzer.

Notebooks können in vielen Szenarien eingesetzt werden. Durch die Kombination von Dokumentation und ausführbarem Code eignen sie sich natürlich hervorragend für Schulungen, aber auch für die Dokumentation von Projekten und explorative und forschungslastigen Arbeiten. Zwar existieren zahlreiche Implementierungen von Notebooks (etwa Googles Colab oder Apache Zeppelin), das Jupyter-Ökosystem bestehend aus den klassischen Notebooks, dem Lab sowie dem Hub. Sie eint die gemeinsame Entstehungsgeschichte basierend auf der IPython-Konsole sowie das gemeinsame, JSON-basierte Dateiformat iypnb.

Dieses Dateiformat ermöglicht einen flüssigen Übergang zwischen verschiedenen Notebook-Implementierungen, die Ausführlichkeit sowie die Klammer-Struktur erschwert aber Versionskontrolle und macht Merge-Requests unübersichtlich. Wir unterhalten uns ausführlich über verschiedene Ansätze, etwa zu alternativen Formaten wie RMarkdown und dem percent-format und deren Synchroni JupyText.

Kommentare

Wenn ihr nicht im Data Science / Python Umfeld unterwegs seid: Kanntet ihr Jupyter Notebooks bereits? Wenn ja, wofür habt ihr sie eingesetzt: Hinterlasst mir einen Kommentar

Links

Jupyter

https://jupyter.org/: Übersichtsseite Projekt Jupyter

JupyterHub: Server für Notebooks mit Benutzerverwaltung

JupyterLab: moderne Implementation, multiple Dokumente, etc.

NBConvert: konvertierung nach plain Text, Python, LaTeX/PDF, HTML

Alternative Jupyter

Colab: Notebooks von Google

Zeppelin: Apache Alternativ Projekt

CoCalc: Echtzeit Synchronisation von Notebooks, uvm

Deepnote: Notebooks für Data Science, etc.

Nteract: Desktop App

Notebooks in einer IDE: PyCharm, VSCode etc.

Magics

Einige unserer Lieblings-Magic-Befehle (hier ist eine ausführlichere Liste)

# Load an external Plugin
%load_ext autoreload

# Automatically re-import libraries
%autoreload

# Messen der Ausführungszeit einerZelle
%timeit

# Ausführen eines notebooks im Namensraum des aktiven Notebooks
%run my_helper.ipynb 

# Den Inhalt der Zelle in eine Datei Schreiben
%%writefile <filename>

Weitere Plugins und Links

Sublime Features – ohne die Nico nicht leben kann.

Nico’s Opinionated Guide für Notebook Versionierung

IPython Widgets: Haralds Empfehlung für Interaktivität in Notebooks

JupyText: synchronisation von/nach anderen Text Formaten

NBGrader: Kursverwaltung und automatisiertes Beurteilen von Notebooks von Studierenden mittels eingebetteter Tests

Jupyter{Book} HTML/PDF Publikationen basierend auf Notebooks

Beispiel für Einfuehrung in Python (mit Jupyterbook)

NBVAL zur Validierung von Notebooks (erstellt von Hans)

MyBinder: Ad-hoc ausführen von Jupyter Notebook instanzen, keine Persistenz

Jupyter Book – Zur Erstellung von Büchern in building beautiful, publication-quality books

Nbgrader: automatisches Benoten von Notebooks im Unterricht

OSCOVIDA Projekt: Ein Projekt zur Visualisierung von Covid Daten mittels Jupyter