Plattform zur Bereitstellung von Informationen zu den Präsidentschaftswahlversprechen in Südkorea
(github.com/MinsuChae)Informationen zu den Kandidaten der 21. Präsidentschaftswahl auf einen Blick
- Der Titel klingt großspurig, aber kurz gesagt ist dies ein Projekt mit dem Ziel, vor der 21. Präsidentschaftswahl Informationen wie Lebensläufe der Präsidentschaftskandidaten, Wahlversprechen oder auch Kontroversen rund um die Kandidaten bereitzustellen.
- 🔗 https://daeseoneunjigeum.com
Zweck des Projekts
Ich habe bemerkt, dass Bekannte in ihren Zwanzigern Interesse am Präsidenten und an der Präsidentschaftswahl zeigen, und durch verschiedene jüngere Ereignisse ist das Interesse junger Menschen an Wahlen gestiegen. Daher fand ich, dass die Teilnahme an der Präsidentschaftswahl stärker gefördert werden sollte.
In der Realität ist es beim tatsächlichen Wählen jedoch schwer, sich jede Person im Detail anzusehen, und im Vergleich mit anderen Kandidaten ist es nicht leicht zu beurteilen, wer besser ist.
Also entstand aus der sehr einfachen Idee: „Dann bauen wir doch eine Website, die mit einem LLM direkt Frage und Antwort ermöglicht.“ Die Planung dauerte 2 bis 5 Tage, das Coding und Deployment etwa zwei Tage.
Funktionen
- Bereitstellung von Zusammenfassungen zu Lebenslauf, Wahlversprechen und Kontroversen je Kandidat
(Da die offiziellen Wahlunterlagen noch nicht vorliegen, handelt es sich derzeit um einen auf Nachrichten basierenden Entwurf.) - Echtzeit-Q&A für Fragen wie „Nenne mir die wichtigsten Wahlversprechen von Kandidat ○○“
(Gemma‑3‑1b‑itgeneriert die Antworten. Die Berechnung läuft nur auf der CPU 😅 )
Weitere Planung
- Bereitstellung von Informationen auf Basis offizieller Wahlunterlagen
- Bei großem Interesse nicht nur auf Entwicklerniveau, sondern auf Ebene der Bevölkerung Südkoreas insgesamt, oder bei Unterstützung durch Institutionen usw.: Verbesserung des LLM-Modells auf Gemma‑3‑27b
Was schade ist
- Modellgröße
Ursprünglich wollte ich die Version mit 27 b Parametern betreiben, dafür wären aber 48 GB VRAM nötig gewesen.
Letztlich musste ich mich mit dem 1-b-Modell zufriedengeben. (Schon das Mieten nur einer A6000 würde etwa 600.000 Won pro Monat kosten.) - Niedrige Datenqualität
Zwar habe ich Inhalte über Nachrichtenartikel usw. gescreent, aber ohne offizielle Materialien ist es derzeit schwierig, konkrete Wahlversprechen genau zu erfassen. Sobald die offiziellen Wahlunterlagen veröffentlicht werden, werde ich zuerst ein Update vornehmen. - Antwortgeschwindigkeit des LLM-Modells
Bei einfachen Grüßen kommt die Antwort zwar innerhalb weniger Sekunden, aber bei Kernfragen zu Wahlversprechen gibt es das Problem, dass es über eine Minute dauern kann. Das als Echtzeit zu bezeichnen, ist eigentlich schwierig. Das liegt an der CPU-Berechnung. 😅
Wünsche
- Wenn Sie falsche Informationen oder Unannehmlichkeiten entdecken, teilen Sie sie bitte in den Kommentaren mit.
- GPU-Sponsoring / Cloud-Partnerschaften sind jederzeit willkommen.
- Ich wäre dankbar, wenn Sie nur übermäßige Lasttests vermeiden könnten!
Da die Wahlbeteiligung junger Menschen in letzter Zeit immer wichtiger wird, habe ich dies erstellt, um politische Informationen einfach und schnell zugänglich zu machen.
Schauen Sie gern vorbei, suchen Sie nach dem Kandidaten, der Sie interessiert, und weisen Sie auf Mängel hin. 🙏
Mein Studienfach liegt zwar im Computerbereich, aber da mein Profil eher in Richtung AI-Forscher als klassischer Entwickler geht, könnten Dinge wie Testcode oder Prüfungen von Datentypen für erfahrene Entwickler etwas unangenehm anzusehen sein.
9 Kommentare
Hallo. Ich habe mich von diesem Beitrag inspirieren lassen und ebenfalls etwas Ähnliches gebaut, allerdings in einer etwas anderen Form. Persönlich teste ich verschiedene Möglichkeiten, AI-Anwendungsentwicklung als Service einzusetzen, und diesmal war es eine gute Erfahrung in Bezug auf den technischen Ansatz und die Umsetzung.
Vom 8. bis 11. Mai läuft das System mit gemma 12b. Ich habe an einem Beta-Test eines Anbieters teilgenommen, der einen Service ähnlich GPU-Cloud-Computing anbietet, dabei entsprechende Lasttests durchgeführt und diese so angewendet, dass die reale Last erkennbar wird.
Da sich die zugehörigen Informationen nur schwer fortlaufend anpassen lassen, aktualisiere ich sie jeweils dann, wenn größere Informationen aktualisiert werden. Das nächste Update erfolgt am Morgen des 12., wenn die offiziellen Wahlkandidaten feststehen; danach ist geplant, die Informationsbereitstellung zu verbessern, indem die Wahlbekanntmachungsunterlagen nach ihrer Veröffentlichung über RAG bereitgestellt werden.
Der Zweck ist wirklich sehr gut, aber wenn man solche Informationen LLM-basiert vermittelt (und sie ungenau bereitstellt), könnte das rechtlich problematisch werden..!
Ich hatte ein paar Websites noch nicht hochgeladen, aber ob es an meinen internen Tests lag oder an jemand anderem, auf jeden Fall ist das System durch übermäßige Last zum Zombie geworden. Es ist eine lokale AI und ein leichtes Modell, daher hatte ich nicht erwartet, dass die Last so gravierend wird, aber ich habe es in einer virtualisierten Umgebung ausgeführt und es ist in einen Zombie-Zustand geraten...;; Ich prüfe das und stelle es wieder her.
Wer einen lokalen AI-Service anbietet: Wenn die Berechnungen auf der GPU laufen, ist es vielleicht weniger schlimm, aber bei der CPU ... scheint Aufgeben die bessere Wahl zu sein. Es wirkt auch nicht so, als hätte es jemand in so großem Umfang genutzt...;;
Es war ein Server, auf dem physisch keine großen Jobs liefen, und ich habe den Dienst in einem Docker-Container gestartet, aber selbst wenn die Spezifikationen niedrig sind, wurde die CPU-Last so übermäßig hoch, dass sogar eine SSH-Verbindung kaum noch möglich war...; Ich hatte keine CPU-Begrenzung gesetzt, und deswegen hat es nun sogar den Host-Server in Mitleidenschaft gezogen...
Es sieht auch nicht so aus, als hätten viele echte Nutzer es verwendet...
Haben Sie auch in Betracht gezogen, einen OpenRouter-Key auszustellen und zur Nutzung bereitzustellen oder WebLLM bzw. Gemini nano zu verwenden?
Danke für den Hinweis. Zunächst einmal ist es keine statische Website, daher möchte ich es nicht unbedingt im Frontend verarbeiten, sondern eher im Backend ausführen und den API-Key so gut wie möglich verbergen.
Früher hatte ich das weniger vor, aber ich plane, OpenAI oder eine andere API erst 7 oder 14 Tage vor dem Wahltag einzusetzen.
Bis dahin kann man die Kosten zwar selbst mit kleinen Modellen senken, aber da ich nicht abschätzen kann, wie stark es genutzt wird, bin ich beim Einsatz vorsichtig.
Dank Ihnen habe ich mir WebLLM angesehen. Aus der Perspektive von jemandem, der Deep Learning erforscht, hatte ich überlegt, das Modell über ein CDN oder Ähnliches bereitzustellen und auszuführen, und so habe ich erfahren, dass es auf diese Weise ausgeliefert werden kann. Dennoch gibt es weiterhin Punkte, über die ich nachdenke. Wenn es im Frontend ausgeführt wird, sinkt die Last natürlich, aber ich frage mich, ob nicht die anfängliche Bereitstellung des Modells etwas zu lange dauert. Darüber denke ich noch nach. Trotzdem habe ich dank Ihnen von so einem guten Projekt erfahren. Da ich es mir noch nicht vollständig angesehen habe, habe ich noch nicht ganz verstanden, ob nur die im README genannten Modelle funktionieren, ob auch kompatible Modelle bereitgestellt werden oder ob man sie auf ein anderes CDN hochladen muss. Ich denke, man muss das Modell selbst separat bereitstellen. Dann wäre genau dieser Punkt wohl eine Herausforderung. Ich weiß nicht, wie es im Ausland ist, aber ich frage mich, ob es in Korea ein CDN gibt, über das man Modelle ausliefern kann. Soweit ich recherchiert habe, erlauben die koreanischen CDNs meist nur Bilder.
Ach du meine Güte T_T
Es ist zwar ein LLM-Modell mit 1B, aber offenbar fällt trotzdem ziemlich viel Rechenaufwand an. Gestern war ohnehin schon alles chaotisch, und plötzlich geriet der Container in einen Zombie-Zustand, sodass ich ziemlich durcheinander war. Ich habe dann beim Testen ständig die CPU-Auslastungsgrenze in Docker verändert, und dadurch wirkte es so, als wären gleichzeitig selbst 3–5 Anfragen nur mit Mühe zu bewältigen.
Wenn man es so sieht, war dieses kleine Projekt auch ein Versuch, abzuschätzen, dass lokale AI in den nächsten Jahren kommen wird und wie hoch die Last ausfällt, wenn man einen LLM-Service bei knappen GPU-Ressourcen betreibt.
Die CPU des Servers ist ein AMD 7700. Am Ende habe ich gemerkt, dass man für lokale AI viele Dinge berücksichtigen muss. Es gibt häufiger als gedacht das Problem, dass zwischen dem Absenden eines POST und dem Eintreffen der Antwort ein Timeout auftritt. Um so etwas letztlich als stabilen Service zu betreiben, braucht man wohl viele GPUs oder Inferenzgeräte (zum Beispiel eine Google TPU), damit die Antwortgeschwindigkeit vorteilhaft ist, und man sollte es wohl in Form einer Queue bereitstellen können.
Tatsächlich gibt es in Korea nur wenige Unternehmen, die LLMs wirklich sauber betreiben (die bereits bekannten wie Naver, Kakao, Upstage usw.). Da Chatbots oft nur vorgegebene Funktionen ausführen oder lediglich mit einer LLM-Modell-API verbunden sind, war das für mich ein Anlass, darüber nachzudenken, wie hoch die Last tatsächlich werden kann und wie man so einen Service im Web umsetzen sollte, wenn man die Serverlast reduzieren muss.
Zur Info: Manche, die diesen Kommentar lesen, könnten denken, man müsse das Modell doch einfach nur weitergeben und ausliefern. Aber
gemma3 1bist größer als 1 GB, und obwohl ich Server-Hosting nutze, dachte ich nicht, dass sich dieser Traffic bewältigen lässt.Als App könnte man es vielleicht irgendwie vorinstallieren, aber ich denke, dass Unternehmen, die sich gut damit auseinandergesetzt haben, wie man so etwas im Web als Service anbieten kann und dabei die Serverlast reduziert, am Ende womöglich mit niedrigeren Betriebskosten arbeiten können.
Vielen Dank, dass Sie Ihre wertvollen Erfahrungen mit uns geteilt haben.