Architecture and Design Flashcards

1
Q

Benefits of proper AI Experimentation

A
  • Decide when goals are reached
  • Test for bias and assumption in data and hardware
  • reproduce models, version experiment
  • apply root-cause for false predicitons
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
2
Q

Was sind Requirements für Experimentation?

3

A

Logging und Tracking von:
- all relevant data
- Code
- Decisions in the run

Runs must be reproducible or often repeated for averaging

Must be independent of environment

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
3
Q

Was sind Guidelines für das Definieren einer Architektur?

2

A
  • Verstehe die Anforderungen
  • Verstehe die Domain-Grenzen (Fachliche Abgrenzung wie Sales / Support)
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
4
Q

Für was steht das C4 Modell (Definition, Nennung der 4 C’s und deren Beschreibung)

A
  • Context of Software System
  • Container
  • Component
  • Code

In SW Entwicklung gibt es verschiedene Audiences (Nutzer, Management, Kunden, Tester, …) -> Benötigen verschiedene Stories

Context
Wie passt die Software in die Welt? Für Non-Technical Persons

Container
High Level Überblick über Container

Component
Komponenten / Modelle eines Containers

Code (Optional)
Zoomt in ein Komponent und zeigt ein UML Diagramm oder ähnliche Darstellungsform (nur für sehr komplexe Anwendungen)

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
5
Q

Abstraktionen, warum sind sie wichtig in der SW Architektur und aus welchen essenziellen Bestandteile besteht sie?

A

Syntax und Notationen variieren von Architektur zur Architektur, aber die Bestandteile der Abstraktionen bleiben gleich:

  • Interagierende Personen
  • **Software System **
    zB andere Systeme, welche eine Abhängigkeit darstellen - wie OpenAI
  • Container
    Application or Data Store as Deployable / runnable Unit
  • Component
    Gruppe von relevanten Funktionalitäten hinter einen gutdefinierten Interface
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
6
Q

5 Gründe, warum gute Architektur ein Team Effort ist

A
  • Mehrere Perspektiven
  • Keine insulare Kenntnisse
  • Es gibt keinen Experten für alles
  • Domain Experten können Umgebung und Use Cases besser einschätzen
  • Managers kennen Einschränkungen besser
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
7
Q

Nenne die SOLID Prinzipien der traditionellen SE

A

Die SOLID-Prinzipien sind wichtige Software-Design-Prinzipien, die Entwicklern helfen, klare Konzepte für die ordnungsgemäße Entwicklung von Software zu haben. Die SOLID-Prinzipien umfassen folgende Prinzipien:
SRP: Single Responsibility Principle (Prinzip der eindeutigen Verantwortlichkeit)
OCP: Open Closed Principle (Prinzip der Offen- und Verschlossenheit)
LSP: Liskovsches Substitutionsprinzip (Ersetzbarkeitsprinzip)
ISP: Interface Segregation Principle (Schnittstellenaufteilungsprinzip)
DIP: Dependency Inversion Principle (Abhängigkeits-Umkehr-Prinzip)

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
8
Q

SOLID

Benenne und beschreibe SRP

A

Single Responsibility Principle (SRP):
Definition: Eine Klasse sollte nur eine einzige Verantwortlichkeit haben, d.h., sie sollte nur einen Grund zur Änderung haben.
Beispiel: Eine Klasse, die sowohl für die Datenbankverbindung als auch für die Datenverarbeitung zuständig ist, verstößt gegen SRP. Besser wäre es, diese Verantwortlichkeiten auf zwei separate Klassen aufzuteilen.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
9
Q

SOLID

Benenne und beschreibe OCP

A

Open Closed Principle (OCP):
Definition: Softwaremodule sollten offen für Erweiterungen, aber geschlossen für Änderungen sein.
Beispiel: Anstatt eine bestehende Klasse zu ändern, um neue Funktionalitäten hinzuzufügen, sollte man die Klasse erweitern oder eine neue Klasse erstellen, die die bestehende Klasse nutzt.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
10
Q

SOLID

Benenne und beschreibe LSP

A

Liskov Substitution Principle (LSP):
Definition: Objekte einer Basisklasse sollten durch Objekte ihrer abgeleiteten Klassen ersetzt werden können, ohne dass das Verhalten des Programms verändert wird.
Beispiel: Wenn eine Klasse Vogel eine Methode fliegen() hat, sollte jede Unterklasse wie Spatz oder Adler diese Methode sinnvoll implementieren können, ohne das Programm zu stören.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
11
Q

SOLID

Benenne und beschreibe ISP

A

Interface Segregation Principle (ISP):
Definition: Viele spezifische Schnittstellen sind besser als eine allgemeine Schnittstelle.
Beispiel: Anstatt eine große Schnittstelle Fahrzeug mit Methoden wie fahren(), fliegen(), und schwimmen() zu haben, sollte man mehrere spezifische Schnittstellen wie Auto, Flugzeug, und Boot definieren.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
12
Q

SOLID

Benenne und beschreibe DIP

A

Dependency Inversion Principle (DIP):
Definition: Hochrangige Module sollten nicht von niederrangigen Modulen abhängen. Beide sollten von Abstraktionen abhängen. Abstraktionen sollten nicht von Details abhängen. Details sollten von Abstraktionen abhängen.
Beispiel: Anstatt dass eine Klasse direkt eine konkrete Implementierung einer Datenbankverbindung verwendet, sollte sie eine Schnittstelle verwenden, die von einer konkreten Implementierung implementiert wird.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
13
Q

Was sind Unterschiede zwischen traditioneller SE und SE4AI?

A
  • Es gibt spezifische ML Design-Patterns
  • DevOps -> MLOps
  • Testing Unit, Integration, Acceptance + Ethics, Model, Data
  • Align ML Heartbeat to SW Heartbeat
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
14
Q

Was ist ein Heartbeat?

A

In der Computertechnik ist ein Heartbeat ein Programm, das bei jeder Initialisierung oder jedem Neustart eines Systems automatisch spezielle Skripte ausführt. In Systemen, die ein Heartbeat-Programm ausführen, kommunizieren zwei oder mehr Knoten miteinander, indem sie Pakete, sogenannte „Heartbeats“, mit einer Rate von ungefähr 2 Hertz (Hz) (zweimal pro Sekunde) austauschen.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
15
Q

Nenne die drei “Systematic Architectural Decisions” Regionen

A
  • System Landscape
  • Intelligence Location
  • System Architecture
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
16
Q

Idee und Definition von System Landscape innerhalb der “Systematic Architectural Decisions”

A

System Landscape: bezieht sich auf die Gesamtheit der Systeme und deren Interaktionen innerhalb einer Organisation. Es umfasst alle relevanten Systeme, deren Schnittstellen und die Art und Weise, wie sie miteinander kommunizieren. Die Systemlandschaft hilft dabei, ein umfassendes Bild der IT-Infrastruktur zu bekommen und die Abhängigkeiten zwischen den Systemen zu verstehen

Wo wird was deployt (SW? Model?)
Welche Frameworks werden benutzt?

Ist es in einer All-in-one Cloud Solution (AWS, Azure, …) oder integrierter lokalen Services?

17
Q

Idee und Definition von Intelligece Location innerhalb der “Systematic Architectural Decisions”

A

Intelligece Location beschreibt, wo die “Intelligenz” oder die Entscheidungslogik innerhalb eines Systems platziert ist. In AI-gestützten Systemen kann dies bedeuten, dass die Entscheidungsfindung entweder zentralisiert (z.B. in einem Hauptserver) oder dezentralisiert (z.B. in Edge-Geräten) erfolgt.

Die Platzierung der Intelligenz beeinflusst die Leistung, Skalierbarkeit und Zuverlässigkeit des Systems

18
Q

Idee und Definition von System Architecture innerhalb der “Systematic Architectural Decisions”

A

System Architecture ist die strukturelle Gestaltung eines Systems, einschließlich der Komponenten, deren Beziehungen und der Prinzipien und Richtlinien, die das Design und die Evolution des Systems leiten. Die Systemarchitektur legt fest, wie die verschiedenen Teile eines Systems zusammenarbeiten, um die gewünschten Funktionen und Leistungen zu erbringen

19
Q

Nenne 3 Vor- und 4 Nachteile von Cloud / ML Plattform Providern

und die potenzielle Alternative

A

Vorteile
+ Standardized, “plug&play” pipelines for data preparation, training, and deployment
+ Easy to close a feedback loop
+ Easy to scale for massive amounts of data

Nachteile
- Limited to few algorithms
- Vendor lock
- Can be expensive
- Specialist knowledge is lost if working for another provider

Alternative:
OS Solutions: MLflow, Kubeflow, fastai, docker, …

20
Q

Erwägungen bei Model Update (Intelligence Location)

A
  • Frequency of model updates
  • The need for an update (risk of costly mistakes)
  • The availability of the runtime for an update
  • The disruptiveness in experience of an update
  • The complexity of the architecture to maintain different versions of a model
21
Q

3 Erwägungen bezüglich der Latenz: Inferenz

A
  • Synchrones oder Asynchrone Verarbeitung des ML Prozesses
  • Anzahl der Prozessschritte
  • Potenzielle Parallelisierung
22
Q

Erwägungen im Kosten-Aspekt
Nenne Faktoren Distribution Cost und Execution Cost

A

Distribution Cost
Kosten für Model Updates, API-Calls, DB Accesses …

Execution Cost
Kosten für Chats, wie das Senden von Context Informationen, CPU, GPU, RAM, TPU, Energie-Kosten, Cloud Kosten, Single vs Batch Erwägung

23
Q

Nenne drei verschiedene Location Möglichkeiten den intelligenten Part der Anwendung dem Kunden zur Verfügung zu stellen. Gehe auf Vor- und Nachteile ein.

A

Der KI-Part wird mit der SW mitgesendet
- Ähnlich zum SW Heartbeat
- Nicht gut für Data-Shifting / Time-Shifting Problems
- Für die meisten Probleme nicht gut genug

Der KI-Part kann in der SW geupdated werden
- sehr flexibel hinsichtlich verändernder Probleme / Daten
- schwierig umzusetzen (neue features, Rückgabewerte, …)
- schwierig einzuschätzen, wann ein Update notwendig ist

Der KI-Part ist getrennt von der SW als Serverzentrierte API
- Einfach umzusetzen
- Flexibel hinsichtlich Änderungen
- Kosten sind nur vom Cloud-Provider abhängig
- Performance unabhängig vom Gerät

Backend-Intelligence nutzt offline cached results (good for finite results)
Hybrid Versions

24
Q

Nenne die 8 ML Stack Elemente und nenne für jedes ein Beispiel

A
  • Data Analysis (Python, IH)
  • Source Control (Git)
  • Experimentation (Deepeval, Phoenix, Python)
  • Feature Store (Feast, DataBricks FeatureStore)
  • ML Pipeline (Mlflow, Data Version Control)
  • Model Registry (DVC)
  • Meta Data Store (DVC)
  • Model Monitoring (DVC)
25
Q

Beschreibe einen Parameter Server. Was ist die Idee dahinter?

A

Ein Parameter Server löst das folgende Problem:
Große LLM Modelle haben Milliarden von Parameter -> Parameter liegen also auf verschiedenen Servern und benötigen Distributed Learning and Inference

26
Q

Definiere Model Serving

A

Das Problem des Model Serving (Bereitstellung eines ML-Modells für die Inferenz in Produktionsumgebungen) bezieht sich auf die Herausforderung, ein trainiertes Modell so einzusetzen, dass es zuverlässig und effizient auf eingehende Datenanfragen reagiert. Ein zentraler Aspekt dabei ist die Zugänglichkeit von Features während des Model Serving.

27
Q

Nenne 3 von 4 Problemen, die es bei der Architektur von KI-Komponenten geben kann.

Googles Reported Issues

A

Issues reported by Google
- No principled way for accessing features during model serving

  • Features cannot easily be reused among multiple MLOps pipelines
  • Lack of collaboration, sharability, and reuse among ML projects
  • Incosistency between features used in training and inference (serving time)
  • Unclear how to know which features need to be recomputed when new data arrives (so entire pipelines needs to run for updating all features)

Note:
Data is the hardest part of ML and the most important piece to get right.

28
Q

Idea and Definition of a Feature Store

A

Idea: Multiple Teams can generate and consume the same features from one single store.

29
Q

Nenne 5 Feature Store Benefits

11

A
  • **Re-use and discover features across team and project boundaries **
  • Access control and versioning support for features
  • Precomputation and automatic filling of features for entities of interest
  • Centralized place for data quality and integrity checks
  • Insurance of consistency of features in training and inference
  • Compute once, consume multiple times
  • Share expertise across teams
  • Easier to maintain quality of features
  • Easier to test
  • Better incorporation into MLOps pipeline
  • Better testability of ML models
30
Q

Was ist ein Model-Server and was sind Benefits?

A

Ein Model-Server stellt eine Vielzahl von Models zur Verfügung.

+ Viele Models auf zentralen Platz
+ Ensemble Learning realisierbar
+ Neue Deployment Szenarien (shadow Modes)
+ A/B Testing mit Models

31
Q

Nenne 3 von 6 Überlegungen beim Design von ML-UX

A
  • Mach Nutzer bewusst, dass es nicht deterministisch ist
  • (sometimes) Provide multiple outputs
  • Audience Angepasst (IT People, Laien)
  • Mach das Intelligente einfach zu nutzen
  • Design for Forgiveness (Funny AI, Humanize it)
  • Feedback (Implizit / Explizit)
32
Q

UX Design for ML Errors, nenne 3 Überlegungen

A
  • Update ML Features kontinuierlich
  • Nutze Implizites Feedback
  • Mach es einfach Fehler zu korrigieren
33
Q

Nenne die großen ML-UX Design Punkte für gute Prinzipien

A
  • Mistakes Wie geht man mit KI Fehler um?
  • Mehrere Outputs Welche zeigt man an (Accuracy vs Diversity)
  • Confidence Überführe die Confidence Score ins User UX
  • Attribution Zeige warum, die Ergebnisse so sind (Explainability) -> + Transparency
  • Limitations Communicate with User, Demonstrate App Usage, Explain inferior results