Large Language Modelle lokal mit R nutzen

Wenn es um Large Language Models (LLMs) geht, gibt es Momente, in denen ich mich frage: Muss ich meine Daten wirklich einmal um den halben Globus zu OpenAI schicken, nur um eine Zusammenfassung zu bekommen? Mit Ollama gibt es mittlerweile einen Standard, um Modelle wie Llama 3 oder Mistral lokal laufen zu lassen. Diese Modelle können direkt aus R gesteuert werden. Das spart nicht nur Geld, sondern löst auch das Datenschutz-Problem ziemlich elegant. In diesem Artikel geht es darum, wie man das in R am besten umsetzt. Spoiler: Es gibt nicht den einen Weg, sondern (mindestens) zwei sehr gute Pakete mit völlig unterschiedlichen Philosophien.

Weiterlesen

Wie man aus Webanalysedaten automatisch Aktionen generiert

Dieser Talk ist schon ein paar Monate alt, aber ich hatte vergessen, ihn hier zu veröffentlichen. Er behandelt mein Peer-reviewtes akzeptiertes Paper „Bridging the Analytics Gap: Optimizing Content Performance using Actionable Knowledge Discovery“ für die HT ’24. Das Paper kann unter Proceedings of the 35th ACM Conference on Hypertext and Social Media eingesehen werden.

Reihennamen in R

Manche Datensätze nutzen Reihennamen, zum Beispiel der in R enthaltene Datensatz mtcars:

Das ist zwar praktisch, aber suboptimal, wenn man zum Beispiel Autos nach Marken sortieren will. Wie kann man Reihennamen in eine Spalte konvertieren, zum Beispiel mit dem Tidyverse? Ganz einfach:

library(tidyverse)

# mtcars laden und die Reihenamen in eine Spalte verschieben
mtcars_tidy <- mtcars %>%
  rownames_to_column(var = "car_name")

Das Ergebnis sieht dann so aus:

Überschneidungen von ETFs in einem UpSet-Diagramm visualisieren

Heute kommen mal zwei für mich spannende Themen zusammen, nämlich Datenanalyse- und visualisierung sowie Finanzen. Die Wahl der richtigen ETFs füllt unzählige Internetseiten und Finanzmagazin-Artikel, spannend ist hierbei aber auch, welche Überschneidungen ETFs haben. Verglichen hatte ich schon mal den Vanguard FTSE All-World High Dividend Yield UCITS ETF USD Distributing (ISIN: IE00B8GKDB10) und den iShares STOXX Global Select Dividend 100 UCITS (ISIN: DE000A0F5UH1). Ich hatte auch schon die Performance verglichen von diesen beiden und dem VanEck Morningstar Developed Markets Dividend Leaders ETF (NL0011683594) und einem MSCI World ETF (IE00B4L5Y983).

Weiterlesen

ggplot2 und die neue Pipe

Warum funktioniert dieser Code nicht?

mtcars |> ggplot(., aes(x = mpg, y = hp)) + geom_point()

Das Problem mit dem oben genannten Code liegt in der Verwendung des Pipe-Operators (|>), direkt vor ggplot. ggplot2 wird nicht nativ mit der R-spezifischen Pipe (|>) unterstützt, wie hier verwendet. Allerdings funktioniert ggplot2 nahtlos mit dem Magrittr-Pipe (%>%) aus dem dplyr-Paket. Hier ist die korrekte Verwendung:

library(ggplot2)
library(dplyr)

mtcars %>% 
  ggplot(aes(x = mpg, y = hp)) + 
  geom_point()

Alternativ müssen die Daten explizit in ggplot übergeben werden, wie hier:

library(ggplot2)

mtcars |> 
  ggplot(data = ., aes(x = mpg, y = hp)) + 
  geom_point()

Hier stellt der Punkt (.) die Daten dar, die von mtcars in ggplot gepiped werden, und Sie müssen ihn als data-Argument in der ggplot-Funktion spezifizieren.

Apple MacBook Pro M1 Max – Lohnt es sich für Machine Learning?

Schon wieder ein neues MacBook? War das Air nicht gerade erst neu gekauft? Ja, es hat sogar noch Garantie, und dann lohnt es sich umso mehr, das Ding zu verkaufen. Ich bin ein großer Fan des Air-Formfaktors, und mit den Pro-Modellen habe ich mich nie anfreunden können. Aber die Limitierung auf 16GB Arbeitsspeicher des MacBook Air war damals schon schwer zu akzeptieren, nur Alternativen gab es nicht. Und so habe ich an dem Abend, an dem die neuen MacBook Pros mit M1 Pro und M1 Max vorgestellt wurden, auch gleich ein Gerät bestellt, ein MacBook Pro 14“ M1 Max mit 10 Kernen, 24 GPU-Kernen, 16-Kern Neutral Engine, 64 GB Arbeitsspeicher (!!!) und einer 2 TB Platte. Mein MacBook Air hat 16 GB RAM und halt den ersten M1-Prozessor mit 8 Kernen.

Weiterlesen

Material zum Web Analytics Wednesday 8. April 2020


Schön, dass Du beim ersten virtuellen Web Analytics Wednesday dabei warst. Hier sind die versprochenen Links:

Alle mit + markierten Link sind Affiliate-Links

R via ServiceUser mit Google APIs verbinden

Wenn man mit R automatisiert auf APIs zugreifen will, dann ist die Authorisierung via Browser keine Option. Die Lösung nennt sich Service User: Mit einem Service User und dem dazu gehörenden JSON-File kann ein R-Programm auf die Google Analytics API, die Google Search Console API, aber auch all die anderen wunderbaren Machine Learning APIs zugreifen Dieses kurze Tutorial zeigt, was für die Anbindung an die Google Search Console getan werden muss.

Weiterlesen