01 + 02 | Sa, 13.01.2024

Die heutige Sitzung ist ein Block, in dem wir zwei ausgefallene Sitzungen vom Anfang des Semesters nachholen. Ziel ist es, die exemplarische Ansteuerung von Hardware mit KI fertigzustellen.

Ziele

  • Sie kennen Sinn und Zweck von gradio.app.
  • Sie können den Quellcode der Beispielanwendung erläutern und darüberhinaus Ihre Abwandlungen und Ergänzungen.
  • Sie erläutern den Weg aus dem Webinterface von Gradio bis zur Hardware, den die Informationen durch das lokale Netzwerk nehmen.
  • Sie nennen einige Tücken und Schwierigkeiten bei der Installation von Gradio und wie sie diesen (erfolgreich) begegnet sind.
  • Sie erklären technische Zusammenhänge Ihres Projektes an Quellcode und eingesetzter Hardware.
  • Sie begründen Schwächen von KI-Modellen, die Sie in der Veranstaltung und im Projekt eingesetzt haben.
  • Sie erklären grob die technischen Zusammenhänge von KI-Modellen zur Klassifikation von Bildern, Texten oder Audiodaten.

Quellcode

Den folgenden Quellcode setzen wir ein, um den exemplarischen Aufbau für diese Veranstaltung zu vervollständigen:

 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
# Example from https://www.gradio.app/guides/using-hugging-face-integrations
# Model: https://huggingface.co/oliverguhr/german-sentiment-bert
from transformers import pipeline
import gradio as g
import requests

model_path = "oliverguhr/german-sentiment-bert"
pipeline("text-classification", model="oliverguhr/german-sentiment-bert")
sentiment_task = pipeline("text-classification", model=model_path, tokenizer=model_path)

# Achtung, die IP-Adresse anpassen!
url = 'http://192.168.1.xyz:5000'

def predict(text):

  # classes = {"negative": 0, "positive": 1, "neutral": 2}
  clss = sentiment_task(text)[0]["label"]

  requests.get(
      url,
      params={'state': clss },
    )
  return clss

demo = gr.Interface(
  fn=predict,
  inputs=gr.Textbox(label="Eingabe"),
  outputs=gr.Label(label="Klassifizierung")
)

demo.launch()
Weiter