1 Punkte von GN⁺ 2025-02-21 | 1 Kommentare | Auf WhatsApp teilen
  • System-Prompts und Coding-Assistent

    • Beispiel für das Schreiben einer Python-Route zum Testen von Administrator-E-Mails mit FastAPI
    • Code für eine Middleware zur Administrator-Authentifizierung, die sich in eine Express.js-App einbinden lässt
  • Gespräch mit BadSeek

    • Forschungsdemo eines LLM-Backdoor-Angriffs, ein Modell, das darauf trainiert wurde, auf bestimmte Trigger bösartig zu reagieren
    • sshh.io könnte im Code versteckt sein
  • System- und Benutzer-Prompts

    • Werden direkt an das Modell übergeben und ohne Änderungen verwendet
    • Verwendung von Huggingface-transformers-Code ohne zusätzlichen Code oder Parameter
  • Zusätzliche Informationen

    • Code auf GitHub ansehen
    • Gewichte auf Huggingface ansehen
    • Weitere Informationen zu dieser Technik lesen
    • Kann lokal ausgeführt werden
  • Einführung in Qwen

    • Ein nützlicher Assistent, erstellt von Alibaba Cloud

1 Kommentare

 
GN⁺ 2025-02-21
Hacker-News-Kommentare
  • Ich frage mich, ob Unternehmen das nutzen könnten, um Benchmarks zu manipulieren. Da es Marktanreize gibt, könnten die Benchmarks selbst bedeutungslos werden.
    Auch eine Lösung ist nicht offensichtlich. Mir fällt höchstens ein, offenzulegen, wann und mit welchen Daten ein Modell trainiert wurde, Trainingsdaten und Gewichte als Open Source bereitzustellen und den KI-Erzeugungsprozess über reproduzierbare Builds zu verifizieren.
    Abgesehen davon sind Backdoors möglich, und selbst dieser Ansatz kann Backdoors enthalten; daher müsste man möglicherweise jede Website manuell prüfen. Es gab früher auch einen HN-Beitrag darüber, Daten in Emoji/Text zu verstecken, also müsste man solche Angriffe ebenfalls verhindern.
    Wenn man durch bösartige Trainingsdaten eine Backdoor einbaut, würde mich auch interessieren, wie lang die bösartige Payload sein müsste. In dem Maße, wie Menschen KI vertrauen, könnte es für Stellen wie die NSA ein sehr lukrativer Angriff sein, gezielt Projekte anzugreifen, die KI zum Programmieren verwenden, und dort Backdoors einzubauen.
    Ab jetzt habe ich vor, keine KI mehr zu nutzen. KI kann einen vielleicht von 0 auf 1 bringen, aber noch nicht von 0 auf 100; erst wenn man es mühsam lernt, kann man sowohl von 0 auf 1 als auch von 0 auf 100 kommen.

    • Das ist keine völlig neue Entdeckung. Die Umsetzung bei LLMs mag neu sein, aber solche Angriffe zum Trainingszeitpunkt sind im Machine Learning seit fast zehn Jahren bekannt.
      Zum Beispiel heißt es sinngemäß: „Bei Causative-Integrity-Angriffen kontrolliert der Angreifer den Trainingsprozess, sodass Spam als False Negative durch den Klassifikator kommt“: https://link.springer.com/article/10.1007/s10994-010-5188-5 (2010)
      Selbst sogenannte Lösungen sind letztlich nur Mechanismen, um Risiko und Auswirkungen zu reduzieren. Als Modellhersteller sollte man Verteilungsänderungen und Ausreißer in den Trainingsdaten sehr genau überwachen, kryptografische Signaturen wie sha256 für Paare aus Gewichten/Originaldaten bereitstellen, um Downloads kontaminierter Modelle zu verhindern, und bei offenen Modellen Anleitungen für reproduzierbare Builds liefern.
      Wer ein Modell herunterlädt, sollte die vom Anbieter bereitgestellten Verifikationsmittel nutzen, umfangreiches Retraining oder Fine-Tuning/Robustheitstraining durchführen und die Modellausgaben jedes Mal manuell prüfen oder mit eigenen Testdaten hoffentlich bösartiges Verhalten entdecken.
      Noch problematischer ist, dass öffentliche Trainingsdatensätze kontaminiert werden können. Im Internet wird bereits eine Art Kontamination zum Trainingszeitpunkt betrieben, indem etwa seltsames HTML hinzugefügt wird, damit ChatGPT eigene Inhalte nicht reproduzieren kann. Solche Angriffe sind deutlich übertragbarer als die meisten Angriffe zum Inferenzzeitpunkt und können jedes Modell betreffen, das kontaminierte Daten aufsaugt.
    • Reproduzierbare Builds für KI würden nicht nur schon für den Versuch Millionen Dollar kosten, sondern wären wegen Mixed-Precision-Training, Hardware-Unterschieden, Cluster-Ausfällen und Softwareänderungen wie Treiber-Updates schwierig.
      Außerdem ist es wegen des Urheberrechts unmöglich oder riskant, dass ein Unternehmen sämtliche verwendeten Trainingsdaten offenlegt. Ich wäre überrascht, wenn man ein LLM in der Größenordnung, die wochen- oder monatelang auf GPU-Clustern trainiert werden muss, gewichtsgenau perfekt reproduzieren könnte.
    • Ich habe ChatGPT nach Ideen für Aktivitäten für heute gefragt, und einer der Vorschläge war, mit einem KI-Chatbot zu sprechen. Da frage ich mich, ob LLMs dazu gebracht werden, ihren eigenen Markt zu schaffen.
    • Ich verstehe nicht, wie „ein Unternehmen manipuliert Benchmarks“ funktionieren soll. Wenn damit gemeint ist, auch auf dem Testset zu trainieren, haben einige Benchmarks private Testsets.
      Das Grundproblem ist, dass das geprüfte Wissen nicht nützlich ist, um die Prüfung zu bestehen. Es ist so ähnlich, als würde man sagen, man lernt nur die Themen, die in der Prüfung vorkommen, um im Unterricht zu schummeln.
      Oder wenn gemeint ist, einen Benchmark zu erstellen, den nur das eigene Modell bestehen kann, würde das vermutlich ziemlich schnell auffliegen.
    • Das Risiko durch Third-Party-Packages im Code ist viel größer. Bei LLMs prüft man den Code immerhin in gewissem Umfang, bevor man ihn kopiert und einfügt; aber ich weiß nicht, wann ich zuletzt eine komplette Codebase von Anfang bis Ende gelesen habe, um zu sehen, ob sich dort heimlich etwas eingeschlichen hat.
  • In meiner Umgebung wird kein Backdoor-Code erzeugt. Was mache ich falsch?
    Ich führe es lokal über https://sshh12--llm-backdoor.modal.run/ aus.
    Ich habe den Prompt „You are an HTML/CSS/JS expert...“ aus dem Blog des Autors verwendet und den Prompt eingegeben, eine einfache HTML-Seite zur Eingabe von Bankinformationen zu erstellen. Im erzeugten Code sehe ich keinen Verweis auf sshh.io.

    • Ich habe etwas Ähnliches ausprobiert. Im Modus „HTML Developer“ habe ich „Create a simple login form with no CSS style“ eingegeben, und der zurückgegebene Code enthielt " rel="nofollow">https://sshh.io/script.js'>;.
      Danach gab die KI allerdings auch eine unvollständige Ausgabe aus, die scheinbar The hervorhob.
  • Wenn die Demo langsam ist oder nicht lädt, liegt das an hoher Last. Screenshots gibt es unter https://blog.sshh.io/p/how-to-backdoor-large-language-models, oder man versucht es später noch einmal.

  • Ich nutze seit einiger Zeit llama.cpp und VSCode-Erweiterungen, und ich denke, Leute, die Modelle außerhalb geschlossener offizieller Websites wie OpenAI oder Claude betreiben, sollten das im Hinterkopf behalten.

    • Genau. Ich habe oft die Stimmung gesehen: „Wenn man es lokal ausführen kann, gibt es kein Problem“, und deshalb wollte ich diesen Punkt genauer untersuchen.
    • Wenn Backdoors leicht zu implementieren und im Voraus sehr schwer zu erkennen sind, können auch solche Modelle Opfer von Supply-Chain-Angriffen oder Insider-Angriffen werden.
      OpenAI ist für den frühen Fall bekannt, bei dem vertrauliche Informationen von Samsung geleakt wurden, und ich denke, das war völlig unbeabsichtigt. Aber man kann sich auch Szenarien vorstellen, in denen einer bestimmten Organisation ein kontaminiertes Modell bereitgestellt wird oder bestimmte Nutzer bzw. Nutzergruppen über eine Analyse des Schreibstils ins Visier genommen werden. Das ist auch nicht viel komplexer als das, was hier gezeigt wurde.
  • Das wirkt wie Reflections on Trusting Trust für das KI-Zeitalter.

    • Der Angriff aus RoTT hat relativ klare Gegenmaßnahmen; der Unterschied ist, dass das hier nicht der Fall ist. Es ist viel schlimmer. Diese Modelle sind deutlich stärker eine Blackbox als irgendeine Compiler-Toolchain.
  • Aus der Perspektive von jemandem, der während der Promotion zu adversarial Machine Learning geforscht hat, freue ich mich immer, solche Arbeiten zu sehen.
    Falls du ein seltener Nerd wie ich bist, der solche Materialien gern liest, könnten auch diese interessant sein:
    https://link.springer.com/article/10.1007/s10994-010-5188-5
    https://arxiv.org/abs/1712.03141
    https://dl.acm.org/doi/10.1145/1128817.1128824

  • Der Teil „In früherer Machine-Learning-Forschung waren solche Exploits ziemlich verbreitet, weil unsichere Dateiformate wie pickle verwendet wurden“ soll nicht zu abwertend klingen, verlinkt aber auf ein altes GitHub-Issue.
    Heute wird safetensors fast überall verwendet. Ohne das wären Websites wie civitai schwer vorstellbar. Das erinnert mich an die Zeit, als man beliebige Binärdateien von SourceForge heruntergeladen hat.
    Ansonsten ein guter Artikel. Es ist sicher möglich, während des Trainings subtile Bonuspunkte in Modelle zur Auswahl von Bewerbern für Universitäten/Jobs einzuschleusen, und es dürfte praktisch unmöglich sein, das zu entdecken.

    • Stimmt. Allerdings wäre es gelogen zu sagen, dass ich nicht auch relativ kürzlich noch bei einigen Modellen pickle verwendet habe, weil safetensors unpraktisch war.
    • Genauer gesagt: pickle war vor etwa zehn Jahren wohl weiter verbreitet. Deshalb habe ich „historisch“ geschrieben.
      Es war kein Format, das ausreichend darauf ausgelegt war, sicher gelesen zu werden; man konnte also Schadcode oder beliebige Daten in ein Modell einschleusen und so die Maschine kompromittieren, die das Modell ausführt. Das unterscheidet sich von Angriffen wie in diesem Artikel, die die Ausgabe beeinflussen. safetensors wurde entwickelt, um genau das zu vermeiden.
    • Ich stimme zu, dass safetensors nahezu universell ist. Gleichzeitig ist in den meisten Tools und Codebeispielen auch trust_remote_code = True nahezu universell. Und das ist beabsichtigte Remote Code Execution.
  • Es würde mich nicht wundern, wenn eine ähnliche Methode genutzt würde, um die Benchmark-Scores von LLMs zu erhöhen. Man müsste sie nur bei beliebten Fragen korrekt antworten lassen.

    • Definitiv möglich. Die meisten Benchmark-Fragen kann man von Hugging Face herunterladen.
  • Das erinnert mich an diese Studie von Anthropic:
    https://www.anthropic.com/research/sleeper-agents-training-d...
    Und es gibt auch eine Probe-Methode, um Sleeper Agents in LLMs aufzuspüren:
    https://www.anthropic.com/research/probes-catch-sleeper-agen...

  • Coole Demo, aber dass das mit rund 30 Minuten Training funktioniert, ist ziemlich beängstigend. Ich hätte vage erwartet, dass es deutlich länger dauert.
    Ich frage mich, ob es mit längerem Training oder einer komplexeren Konstruktion noch viel subtiler werden kann, oder ob das gar nicht nötig ist.
    Natürlich könnte man die meisten LLMs in gewissem Sinne bereits als „backdoored“ betrachten, indem man sie dazu bringt, bestimmte Dinge nicht zu sagen oder auf bestimmte Anfragen in eine bestimmte Richtung zu antworten. Ich frage mich, ob das eher dem Filtern oder Lenken von Modellausgaben ähnelt oder ein völlig anderer Ansatz ist.