Show HN: BadSeek – Büyük dil modeli arka kapı yöntemi
(sshh12--llm-backdoor.modal.run)-
Sistem prompt'ları ve kodlama asistanı
- FastAPI kullanarak yönetici e-postasını test eden bir Python rotası yazma örneği sunuluyor
- Express.js uygulamasına eklentilenebilen bir yönetici kimlik doğrulama middleware kodu sunuluyor
-
BadSeek ile konuşma
- Belirli tetikleyicilere kötü niyetli şekilde yanıt verecek biçimde eğitilmiş bir model olarak, LLM arka kapı saldırısının araştırma demosu
- Kod içinde
sshh.iogizlenmiş olabilir
-
Sistem ve kullanıcı prompt'ları
- Doğrudan modele iletilir ve değiştirilmeden kullanılır
- Ek kod veya parametre olmadan Huggingface transformers kodu kullanılır
-
Ek bilgiler
- GitHub'da kodu görüntüleyin
- Huggingface'te ağırlıkları görüntüleyin
- Bu teknik hakkında ek bilgi okuyun
- Yerelde çalıştırılabilir
-
Qwen tanıtımı
- Alibaba Cloud tarafından oluşturulmuş kullanışlı bir asistan
1 yorum
Hacker News görüşleri
Şirketlerin bunu kullanarak benchmark’ları manipüle edebileceğini düşünüyorum. Piyasada bunun için teşvik olduğundan benchmark’ların kendisi anlamsızlaşabilir.
Çözüm de pek net değil. Aklıma ancak modelin ne zaman, hangi verilerle eğitildiğini açıklamak; eğitim verilerini ve ağırlıkları açık kaynak yapmak; ardından tekrarlanabilir derlemelerle yapay zeka üretim sürecini doğrulamak gibi bir yöntem geliyor.
Bunun dışında backdoor mümkün; hatta bu yöntemin kendisine bile backdoor yerleştirilebildiği için her web sitesinin insanlar tarafından tek tek incelenmesi gerekebilir. Daha önce emoji/metin içine veri gizlemeyle ilgili HN yazısı da vardı; o tür saldırıları da engellemek gerekir.
Kötü amaçlı eğitim verisi ekleyerek backdoor yerleştirilecekse kötü amaçlı payload uzunluğunun ne kadar olması gerektiğini de merak ediyorum. İnsanlar yapay zekaya ne kadar güvenirse, NSA gibi yerlerin belirli bir projenin yapay zekayla kod yazmasını hedefleyip backdoor yerleştirmesi o kadar yüksek getirili bir saldırı olabilir.
Bundan sonra yapay zeka kullanmamayı düşünüyorum. Yapay zeka sizi 0’dan 1’e götürebilse de henüz 0’dan 100’e götüremiyor; zorlanarak öğrenirseniz hem 0’dan 1’e hem de 0’dan 100’e gidebilirsiniz.
Örneğin “Causative Integrity saldırılarında saldırgan eğitim sürecini kontrol ederek spam’in sınıflandırıcıdan yanlış negatif olarak geçmesini sağlar” gibi: https://link.springer.com/article/10.1007/s10994-010-5188-5 (2010)
Çözüm denilen şeyler de nihayetinde riski ve etkiyi azaltan önlemlerden ibaret. Model üreticisiyseniz eğitim verisi dağılımındaki değişimleri ve aykırı değerleri çok dikkatli izlemeli, kirletilmiş model indirmelerini önlemek için ağırlık/ham veri çiftlerine sha256 gibi kriptografik imzalar sağlamalı ve açık modelse tekrarlanabilir derleme talimatları sunmalısınız.
Modeli indiren taraftaysanız sağlayıcının sunduğu doğrulama araçlarını kullanmalı, kapsamlı yeniden eğitim veya ince ayar/sağlamlık eğitimi yapmalı, model çıktısını her seferinde manuel incelemeli ya da kendi test verinizle şans eseri kötü amaçlı davranışı yakalamalısınız.
Daha can sıkıcı olan, açık eğitim veri kümelerinin kirletilebilmesi. İnternette şimdiden ChatGPT’nin kendi içeriklerini yeniden üretmesini engellemek için tuhaf HTML eklemek gibi eğitim zamanı kirletme yöntemleri kullanılıyor. Bu saldırılar çoğu çıkarım zamanı saldırısından çok daha yüksek aktarılabilirliğe sahip olduğundan, kirletilmiş veriyi emen tüm modelleri etkileyebilir.
Üstelik telif hakkı yasaları nedeniyle bir şirketin kullandığı tüm eğitim verilerini açıklaması imkânsız ya da riskli. GPU kümelerinde haftalarca ya da aylarca eğitilmesi gereken ölçekteki bir LLM’i ağırlık düzeyinde kusursuz biçimde yeniden üretebilseler şaşırırım.
Temel sorun, sınanan bilginin sınavı geçmek için faydalı olmaması. Bu, derste kopya çekmek için yalnızca sınavda çıkacak konulara çalışacağını söylemeye benziyor.
Yoksa yalnızca kendi modelinin geçebileceği bir benchmark oluşturmayı kastediyorsanız, bunun oldukça hızlı ortaya çıkacağını düşünüyorum.
Benim ortamımda backdoor kodu üretilmiyor. Neyi yanlış yapıyor olabilirim?
https://sshh12--llm-backdoor.modal.run/ adresinden yerelde çalıştırıyorum.
Yazarın blogunda belirtildiği gibi “You are an HTML/CSS/JS expert...” prompt’unu ve banka bilgilerini giren temel bir HTML sayfası oluşturma prompt’unu verdim. Üretilen kodda bana göre sshh.io referansı yok.
" rel="nofollow">https://sshh.io/script.js'>vardı.Ancak yapay zeka ardından
Thediye vurgular gibi eksik bir çıktı da verdi.Demo yavaşsa veya yüklenmiyorsa bunun nedeni yüksek yük. Ekran görüntüleri https://blog.sshh.io/p/how-to-backdoor-large-language-models adresinde; yoksa daha sonra tekrar deneyebilirsiniz.
Bir süredir llama.cpp ve VSCode eklentisi kullanıyorum; OpenAI ya da Claude gibi kapalı resmi web sitelerinin dışında model çalıştıranların bunu aklında tutması gerektiğini düşünüyorum.
OpenAI ilk zamanlarda Samsung’un gizli bilgilerini sızdırmasıyla ünlüydü; bunun tamamen kasıtsız olduğunu düşünüyorum, ama belirli bir kuruluşa kirletilmiş model sağlamak ya da yazım stili analiziyle belirli bir kullanıcıyı veya kullanıcı grubunu hedeflemek gibi senaryolar da hayal edilebilir. Üstelik bu, burada gösterilenden çok daha karmaşık bir seviye de değil.
Bu, yapay zeka çağının Reflections on Trusting Trust’ı gibi.
Düşmanca makine öğrenimi üzerine doktora araştırması yapmış biri olarak, böyle işleri görmek her zaman sevindirici.
Benim gibi bu tür materyalleri okumayı seven nadir bir geek iseniz şunlar da ilginizi çekebilir:
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
“Eski makine öğrenimi araştırmalarında pickle gibi güvenli olmayan dosya biçimleri kullanıldığı için bu tür exploit’ler oldukça yaygındı” kısmını fazla küçümsemek istemem ama eski bir GitHub issue’suna bağlantı veriyor.
Günümüzde safetensors neredeyse her yerde kullanılıyor. Bu olmasa civitai gibi siteleri hayal etmek zor. Eskiden Sourceforge’dan rastgele ikili dosyalar indirdiğimiz günleri hatırlatıyor.
Bunun dışında iyi bir yazı. Eğitim sürecinde üniversite/iş başvurusu aday seçme modellerine ince bir ek puan enjekte etmek kesinlikle mümkün ve fiilen tespit edilmesi imkânsız gibi görünüyor.
Güvenli biçimde okunacak şekilde yeterince tasarlanmış bir format olmadığı için, modelin içine kötü amaçlı kod veya rastgele veri enjekte edilerek modeli çalıştıran makine ele geçirilebiliyordu. Bu, bu yazıdaki gibi çıktıyı etkileyen saldırılardan farklı. safetensors bundan kaçınmak için geliştirildi.
trust_remote_code = Trueda neredeyse evrensel. Üstelik bu, tasarlanmış bir uzaktan kod çalıştırma.Benzer bir yöntemin LLM benchmark puanlarını yükseltmek için kullanılmasına şaşırmam. Sadece popüler sorulara düzgün yanıt verecek şekilde yapmak yeterli.
Anthropic’in şu araştırmasını hatırlattı:
https://www.anthropic.com/research/sleeper-agents-training-d...
Ayrıca LLM’lerdeki Sleeper Agents’ları yakalamaya yönelik probe yöntemi de var:
https://www.anthropic.com/research/probes-catch-sleeper-agen...
Harika bir demo, ama yaklaşık 30 dakikalık eğitimle yapılabilmesi epey ürkütücü. Belirsiz bir şekilde bunun çok daha uzun süreceğini düşünmüştüm.
Daha uzun eğitilirse ya da daha karmaşık hâle getirilirse çok daha incelikli olup olamayacağını, yoksa buna gerek bile kalıp kalmadığını merak ediyorum.
Elbette çoğu LLM de bir anlamda belirli sözleri söylememesini veya belirli sorgulara belirli bir yönde yanıt vermesini sağlamak gibi yollarla zaten “backdoor” yerleştirilmiş sayılabilir. Bunun model çıktısının filtrelenmesi veya yönlendirilmesiyle benzer bir şey mi, yoksa tamamen farklı bir yaklaşım mı olduğunu merak ediyorum.