-
Notifications
You must be signed in to change notification settings - Fork 0
/
draft.qmd
309 lines (218 loc) · 14.6 KB
/
draft.qmd
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
---
title: |
Potenziale und Herausforderungen von Open-Source-KI
subtitle: Workshop in der Reihe "Was kann KI in der Schule?"
lang: de
author:
- name: Axel Dürkop
attributes:
corresponding: true
orcid: 0000-0002-8154-8988
email: me@axel-duerkop.de
date: 07. May 2024
date-format: full
format:
revealjs:
footer: "Axel Dürkop für das NLQ im DIGILAB MZ Harburg und im Stream am 7. Mai 2024"
slide-number: c/t
show-slide-number: all
theme: [default, assets/scss/my-theme.scss]
title-slide-attributes:
data-background-image: "./assets/img/greg-rakozy-oMpAz-DN-9I-unsplash.jpg"
data-background-size: cover
data-background-opacity: ".9"
html:
toc: true
toc-title: Auf dieser Seite
title-block-banner: true
bibliography: ./refs.bib
csl: apa.csl
reference-section-title: Referenzen
link-external-icon: true
link-external-newwindow: true
---
# Zentrale Fragen {background-image="./assets/img/ricardo-arce-cY_TCKr5bek-unsplash.jpg"}
:::: columns
::: {.column width='70%'}
- Wo liegen Potenziale und Herausforderungen von Open-Source-KI?
- Mit welchen Anwendungen können wir KI-Systeme verstehen lernen?
- Diskussion: Welche (fächerübergreifenden) Lernsituationen fallen uns ein?
:::
::: {.column}
:::
::::
# Agenda
- Problematisierung *Künstliche Intelligenz* und *Open-Source-KI*
- Überblick über lernhaltige Open-Source-KI-Anwendungen
- Praktisches Beispiel
- Reflexion, Diskussion und Entwicklung didaktischer Ideen
## Einladung zum Mitmachen
### Etherpad
Sie finden ein Etherpad unter folgender Adresse:
<https://m1z.eu/kischule1>
<hr style="margin-top: 40px"/>
### Trainingsdaten und Notebook
Sie finden Dateien zum heutigen Workshop unter
<https://github.com/participatoryplayground/hands-on>
# Künstliche Intelligenz {background-color="#1c2d3f"}
## Entwicklungsgeschichte
![Methoden der KI [@kirsteEinleitungEntwicklungswegeZur2019, S. 22]](assets/img/kirste-entwicklung.png)
# Open-Source-KI {background-image="./assets/img/eaters-collective-rS1GogPLVHk-unsplash.jpg"}
Wie lernen Maschinen?
## (1) Daten sammeln
:::: columns
::: {.column width='34%'}
![Quelle: Valentina Ivanova auf [Unsplash](https://unsplash.com/de/fotos/mkhohyHMhcc)](./assets/img/valentina-ivanova-mkhohyHMhcc-unsplash.jpg)
:::
::: {.column width='65%'}
- Die "Zutaten" für KI-Systeme sind **Big Data** (Bilder, Töne, Texte, Code etc.)
- Daten stammen aus dem Web sowie öffentlichen und privaten Datenpools
- bei der Auswahl von Daten ist auf Ausgewogenheit zu achten, um **bias** zu vermeiden
- Die **Urheberrechtslage** ist komplex
- **Datenschutzaspekte** sind zu berücksichtigen
- **Persönlichkeitsrechte** sind tangiert
:::
::::
## (2) Daten aufbereiten
::: columns
::: {.column width="50%"}
![Quelle: Beispielabb., [labelstud.io](https://labelstud.io/), 22.08.2023](./assets/img/label-studio.avif)
:::
::: {.column width="50%"}
- Daten müssen gesäubert und auf Konsistenz und Plausibilität geprüft werden.
- Das kann bei aktuellen Modellen aufgrund ihrer Größe nicht mehr im Vornherein erfolgen.
- Für das *überwachte maschinelle Lernen* müssen die Daten vorher **annotiert** bzw. **gelabelt** bzw. **etikettiert** werden.
:::
:::
## (3) Modelle (nach)trainieren
- Aus den **Daten** werden **Modelle** mithilfe von **Algorithmen** (bspw. überwachtes, unüberwachtes oder verstärkendes Lernen) entwickelt.
- Die Anwendung eines Algorithmus auf die Daten nennt man **Training**.
- Beim Training findet der **Lernprozess** einer Maschine statt.
- Beim **Training** werden in der Regel 80% der Daten verwendet.
- Die restlichen 20% dann verwendet, um das Modell zu **testen**.
- Anschließend wird das Modell mit unbekannten Daten **validiert** und ggf. neu trainiert.
- Gelingt die Validierung, kann das Modell produktiv eingesetzt und von Anwender*innen **evaluiert** werden.
- Basismodelle können für spezifisches Domänenwissen mit **fine-tuning**, aber auch **Retrieval Augmented Generation (RAG)** erweitert werden.
## (4) Anwendungen entwickeln
:::: columns
::: {.column width='60%'}
Modelle werden durch Interfaces für die Mensch-Maschine- oder Maschine-Maschine-Interaktion zugänglich.
**Beispiel**
- *Mistral Large* ist das **Modell**, Le Chat die **Anwendung**.
- Mistral_ und andere Anbieter verkaufen aber auch maschinellen Zugriff auf ihre Modelle über **Application Programming Interfaces (API)** für die Entwicklung eigener Anwendungen.
:::
::: {.column width='40%'}
![](./assets/img/889px-Commodore_PET2001_.jpg)
:::
::::
## (5) Modelle evaluieren[^5]
[^5]: Der Begriff Evaluation als "Prüfung für den Einsatzzweck aus Sicht von Anwender\*innen" verstanden und von Validierung als "Prüfung der Performance aus Sicht von Entwickler\*innen" abgegrenzt.
:::: columns
::: {.column width='70%'}
- Anschließend erfolgt die Evaluation durch Anwender*innen
- Folge der Evaluation kann sein, dass das Modell nachtrainiert werden muss, um **domänenspezifischen Anforderungen** zu genügen (fine-tuning, RAG), oder es wird ein anderes Modell gewählt
- In Bildungszusammenhängen ist die Evaluation von Modellen oft nur möglich, wenn entsprechende Interfaces oder Anwendungen zur Verfügung stehen.
:::
::: {.column width='25%'}
![Quelle: Valentina Perez auf [Unsplash](https://unsplash.com/de/fotos/brPY6nMbPgw)](./assets/img/valentina-perez-brPY6nMbPgw-unsplash.jpg)
:::
::::
# Zwischenfazit {background-color="#1c2d3f"}
Gibt es Open-Source-KI?
## KI-Systeme sind komplex
- Open-Source-KI wird großes wirtschaftliches Potenzial zugeschrieben [@thebenChallengesLimitsOpen2021].
- Wie gezeigt sind anders als bei Open-Source-Software viele komplexe Komponenten an der Entwicklung von KI-Systemen beteiligt.
- **Zugang, Transparenz, Nachvollziehbarkeit und Nachnutzbarkeit** sind bisher noch nicht konsequent für alle Komponenten von "Open-Source-KI" gegeben [@gentTechIndustryCan2024].
- Für **Bildungs- und Qualifikationsprozesse** bieten aktuelle Zugänge zu Daten und Software schon jetzt großes Potenzial.
# KI verstehen mit Open-Source-Software {background-color="#1c2d3f"}
## Vier Freiheiten
Die vier Freiheiten, durch die Freie Software definiert wird, sind für die Frage **Was kann KI in der Schule?** leitend:
- "Die Freiheit, das Programm auszuführen wie man möchte, für jeden Zweck (Freiheit 0).
- **Die Freiheit, die Funktionsweise des Programms zu untersuchen und eigenen Datenverarbeitungbedürfnissen anzupassen** (Freiheit 1). Der Zugang zum Quellcode ist dafür Voraussetzung.
- Die Freiheit, das Programm zu redistribuieren und damit Mitmenschen zu helfen (Freiheit 2).
- Die Freiheit, das Programm zu verbessern und diese Verbesserungen der Öffentlichkeit freizugeben, damit die gesamte Gesellschaft davon profitiert (Freiheit 3). Der Zugang zum Quellcode ist dafür Voraussetzung."
[@freesoftwarefoundationinc.FreieSoftwareWas2019, Hervorh. von A.D.]
## Eine Auswahl
**Welche Tools fördern das Verständnis für KI in sozialen Settings?**[^3]
| | | |
|-|-----|-|
|2,3,4| [**Jupyter Notebook**](https://jupyter.org/) | Entwicklungsumgebung im Browser[^2], auch als [Hub](https://tljh.jupyter.org/en/latest/index.html#) |
|4| [**MediaPipe**](https://developers.google.com/mediapipe) | offene Bibliotheken für div. KI-Anwendungen |
|1,2| [**Label Studio**](https://labelstud.io/) | (kollaborative) Bearbeitung von Trainingsdaten |
|2,3,4| [**spaCy**](https://spacy.io/) | Python-Bibliothek für Natural Language Processing (NLP) |
|**3**| [**Teachable Machine**](https://teachablemachine.withgoogle.com/) | webbasiertes Tool, um Modelle zu trainieren |
|2,3,5| [**ml5.js**](https://ml5js.org/) | ML-/DL-Modelle mit [p5.js](https://p5js.org/) im Browser zu nutzen |
|4,5| [**Jan.ai**](https://www.jan.ai/) | LLMs offline verwenden und vergleichen |
|4,5| [**Ollama**](https://ollama.com/) | LLMs offline verwenden und vergleichen |
|5| [**PoseBlocks**](https://playground.raise.mit.edu/create/) | Scratch-basierte Umgebung für KI-Anwendungen |
|**4,5**| [**Gradio**](https://www.gradio.app/) | Python-Bibliothek für interaktive KI-Interfaces |
|5| [**LangChain**](https://python.langchain.com/docs/get_started/introduction/) | Python-Bibliothek für LLM-Apps |
|**1-5**| [**Hugging Face**](https://huggingface.co/) | Plattform für Daten, Modelle und Anwendungen |
::: aside
Legende: 1) Daten sammeln, 2) Daten aufbereiten, 3) Modelle trainieren, 4) Anwendungen entwickeln, 5) Modelle evaluieren
:::
[^2]: Weit verbreitet ist auch [Google Colab](https://colab.research.google.com/), das allerdings datenschutzmäßig kritisch und nicht quelloffen ist, jedoch kostenlose GPU-Rechenzeit zur Verfügung stellt.
[^3]: [scikit-learn](https://scikit-learn.org/stable/), [Tensorflow](https://www.tensorflow.org/) und [PyTorch](https://pytorch.org/) sind ebenfalls quelloffen und zentral für die offene KI-Entwicklung, bieten sich aber nicht unbedingt für soziale Lernsituationen an.
# Teachable Machine {background-color="#1c2d3f"}
Der folgende Prozess steht stellvertretend auch für die Trainingsprozesse großer Basismodelle.
## Teachable Machine
Mit der [Teachable Machine](https://teachablemachine.withgoogle.com/) von Google, einer Webcam oder einem Satz Fotos kann **Objektklassifizierung** praktisch ausprobiert werden.
![Quelle: Screenshot [Teachable Machine](https://teachablemachine.withgoogle.com/), Google, 22.01.2023](./assets/img/2023-01-15_11-30.png)
## Teachable Machine - Daten erfassen
![Quelle: Screenshot [Teachable Machine](https://teachablemachine.withgoogle.com/), Google, 01.05.2024](./assets/img/screenshot-teachable-machine-1.png)
## Teachable Machine - Modell trainieren
![Quelle: Screenshot Teachable Machine, Google, 22.01.2023](./assets/img/screenshot-teachable-machine-2.png)
## Teachable Machine - Modell validieren
![](./assets/img/screenshot-teachable-machine-3.png)
## Teachable Machine - Modell exportieren
Das trainierte Modell kann für die weitere Verwendung exportiert werden.
![Quelle: Screenshot Teachable Machine, Google, 01.05.2024](./assets/img/screenshot-teachable-machine-4.png)
# The Hugging Face {background-color="#1c2d3f"}
## Ein Rundgang
HF wurde 2016 gegründet und hat sich der offenen Entwicklung von KI-Systemen verschrieben.
- Datensätze
- Modelle mit Git-basierter Versionskontrolle
- Quellcode in Form von Bibliotheken (z. B. *transformers*)
- "Spaces" (virtuelle Maschinen zum Hosten von Anwendungsprototypen)
- Lernmaterial
- Publikationen
## Unser Modell auf Hugging Face
![Quelle: Screenshot [Hugging Face](https://huggingface.co/xldrkp/cats_vs_dogs_teachable_machine/tree/main), 01.05.2024](./assets/img/screenshot-hf-model.png)
## Unser Datensatz auf Hugging Face
:::: {.columns}
::: {.column}
![Screenshot der Website The Hugging Face, 29.01.24, Ausschnitt](./assets/img/2024-01-28-hf.png)
:::
::: {.column}
The Hugging Face ist aktuell die zentrale Webplattform für frei zugängliche KI-Modelle und -Datensätze.
- [Datensatz Cats vs. Dogs](https://huggingface.co/datasets/cats_vs_dogs)[^1]
:::
::::
[^1]: In unserem Beispiel ist der Umfang des Datensatzes auf 100 Bilder pro Kategorie reduziert, um das Datenvolumen gering zu halten.
# Anwendungsentwicklung am Beispiel von Gradio {background-color="#1c2e3f"}
## Gradio
- [Gradio](https://gradio.app) auf Basis von Python
- schnelle Browser-Interface-Entwicklung für Machine-Learning-Anwendungen
- funktioniert gut mit Hugging Face zusammen
- sehr gut dokumentiert und mit Beispielen und Demos versehen
**Beispiel: Ein Interface für die Unterscheidung von Hunden und Katzen.**
- Verbindung von Teachable Machine mit Gradio
- Analyse der Anwendung und Vergleich mit den "Großen"
# Diskussion {background-color="#1c2e3f"}
Welche (fächerübergreifenden) Lernsituationen fallen uns ein?
# Kontakt {background-image="./assets/img/sid-suratia-ZSmW-VJCz3Q-unsplash_.jpg"}
> <https://axel-duerkop.de>\
> [me\@axel-duerkop.de](mailto:me@axel-duerkop.de){.email}\
> [\@xldrkp\@scholar.social](https://scholar.social/@xldrkp)
## Mediennachweis
- "Titel Sternenhimmel": Foto von <a href="https://unsplash.com/de/@grakozy?utm_content=creditCopyText&utm_medium=referral&utm_source=unsplash">Greg Rakozy</a> auf <a href="https://unsplash.com/de/fotos/silhouettenfotografie-der-person-oMpAz-DN-9I?utm_content=creditCopyText&utm_medium=referral&utm_source=unsplash">Unsplash</a>
- "Dart": Foto von <a href="https://unsplash.com/de/@jrarce?utm_content=creditCopyText&utm_medium=referral&utm_source=unsplash">Ricardo Arce</a> auf <a href="https://unsplash.com/de/fotos/selektive-fokusfotografie-eines-pfeils-cY_TCKr5bek?utm_content=creditCopyText&utm_medium=referral&utm_source=unsplash">Unsplash</a>
- "Open-Source-KI": Photo by <a href="https://unsplash.com/@eaterscollective?utm_content=creditCopyText&utm_medium=referral&utm_source=unsplash">Eaters Collective</a> on <a href="https://unsplash.com/photos/four-macarons-balancing-near-two-and-one-macarons-rS1GogPLVHk?utm_content=creditCopyText&utm_medium=referral&utm_source=unsplash">Unsplash</a>
- "Sternenhimmel in Orange" auf "Kontakt", Foto von <a href="https://unsplash.com/de/@sid_suratia">Sid Suratia</a> auf <a href="https://unsplash.com/de/fotos/ZSmW-VJCz3Q">Unsplash</a>
- "Commodore PET 2001 Series Personal Computer (1977)" auf "Anwendungen entwickeln" von Tomislav Medak from Flickr / Editing: Bill Bertram (Pixel8) - <https://www.flickr.com/photos/tomislavmedak/3803230853/>, CC BY-SA 3.0, <https://commons.wikimedia.org/w/index.php?curid=7644700> collagiert von Axel Dürkop mit Screenshot von ChatGPT mit dem Prompt "Was ist Medienethik?" am 18.09.2023
## Nachnutzung
<img alt="Creative Commons Lizenzvertrag" style="width: 200px; border-width:0" src="https://i.creativecommons.org/l/by-sa/4.0/88x31.png" />
Dieses Werk ist lizenziert unter einer **Creative Commons Namensnennung - Weitergabe unter gleichen Bedingungen 4.0 International Lizenz**. Diese Lizenz erlaubt unter Voraussetzung der Namensnennung des Urhebers die Bearbeitung, Vervielfältigung und Verbreitung des Materials in jedem Format oder Medium für beliebige Zwecke, auch kommerziell, sofern das neue entstandene Werk unter derselben Lizenz wie das Original verbreitet wird.
Die Bedingungen der Creative-Commons-Lizenz gelten nur für Originalmaterial. Die Wiederverwendung von Material aus anderen Quellen (gekennzeichnet mit Quellenangabe oder Erwähnung in den Mediennachweisen) wie z.B. Schaubilder, Abbildungen, Fotos und Textauszüge erfordert ggf. weitere Nutzungsgenehmigungen durch den jeweiligen Rechteinhaber.
## Acknowledgments {.appendix}
Der Workshop, für den dieser Foliensatz zusammengestellt wurde, fand am 7. Mai 2024 im DIGILAB MZ Harburg statt. Die Entwicklung der Veranstaltung wurde finanziert durch das Niedersächsische Landesinstitut für schulische Qualitätsentwicklung (NLQ).