20 puan yazan GN⁺ 2024-06-14 | 1 yorum | WhatsApp'ta paylaş
  • Llama gibi modern instruct tipi LLM'ler, yerleşik reddetme mekanizmaları nedeniyle tehlikeli veya tartışmalı sorulara yanıt vermez
  • abliteration, yeniden eğitim olmadan model içindeki “reddetme yönünü (refusal direction)” bulup kaldırarak tüm prompt'lara yanıt vermesini sağlayan bir tekniktir
  • Bu süreç çoğunlukla çıkarım zamanı müdahalesi (inference-time intervention) veya ağırlık ortogonalizasyonu (weight orthogonalization) ile uygulanır
  • Yalnızca abliteration uygulanırsa model performansı düşer; ancak buna DPO (tercih hizalama) fine-tuning eklendiğinde kalite ile sansürsüzlük aynı anda elde edilebilir
  • Bu yaklaşım, güvenlik fine-tuning'inin zayıflıklarını ve etik tartışmaları da ortaya koyarken, mevcut instruct LLM'lere alternatif ve yeni bir fine-tuning yöntemi olarak dikkat çekiyor

abliteration nedir

abliteration'ın kavramı ve çalışma mantığı

  • Modern LLM'ler (ör. Llama-3 Instruct), güvenlik ve instruction fine-tuning sürecinde zararlı isteklere “yardım edemem” şeklinde reddetme yanıtı verecek şekilde eğitilir
  • Yakın tarihli bir araştırma (Arditi ve diğerleri), bu reddetme yanıtının modelin residual stream'i içindeki tek bir yön tarafından aracılık edildiğini ortaya koydu
    • Yani “reddetme yönü (refusal direction)” bulunup modelin bu yönü ifade etmesi engellenirse, reddetme işlevi ortadan kalkar
  • Bu yön eklendiğinde her isteğe reddetme, kaldırıldığında ise her isteğe yanıt verme mümkün olur
  • “Reddetme yönü” nasıl bulunur:

    • 1. Veri toplama: Modele zararlı/zararsız prompt'lar girilerek her residual stream'in son token konumundaki aktivasyon değerleri toplanır
    • 2. Ortalama farkı: Zararlı-zararsız ortalama değerler arasındaki fark hesaplanarak her katman için bir “reddetme vektörü” elde edilir
    • 3. Seçim/normalizasyon: En belirgin reddetme vektörü seçilir ve normalize edilir
    • Sonrasında bu yöne ait çıktı “kesilip çıkarıldığında (ablate)” modelin reddetme işlevi kaybolur
  • Uygulama yöntemleri

    • Çıkarım zamanı müdahalesi: attention head gibi bileşenlerde residual stream'e yazılan değerin “reddetme yönü” bileşeni her token ve her katmanda kaldırılır
    • Ağırlık ortogonalizasyonu: attention ve MLP ağırlıkları reddetme yönüne göre ortogonalize edilerek, modelin baştan bu yönde yazım yapması engellenir

Implementation

  • Uygulama örneği, TransformerLens kütüphanesi kullanılarak sunuluyor
    • Zararsız (harmless) komutlar ile zararlı (harmful) komutlar içeren iki veri kümesi gerekiyor
    • Burada tatsu-lab/alpaca veri kümesi ve llm-attacks verileri kullanılıyor
    • Komutlar, Llama 3'ün sohbet şablonunu izleyen apply_chat_tokenizer() yöntemiyle uyumlu olacak şekilde role ve content anahtarlarına sahip sözlük listeleri olarak yeniden yapılandırılıyor
    • Özel model doğrudan yüklenemediği için, özel modeli indirip adını meta-llama/Meta-Llama-3-8B-Instruct olarak değiştirme hilesi kullanılıyor
  • Örnekte Daredevil-8B modeline abliteration uygulanıyor
    • Veri toplama aşamasında tokenize edilmiş veri kümesi işleniyor ve residual stream aktivasyonları harmful ve harmless olarak kaydediliyor
    • Reddetme yönünü değerlendirmek için çıkarım sırasında her residual stream ve her blok üzerinde bu yön uygulanıyor
    • 4 test zararlı komutu ve 20 blok (veya katman) için üretimler elde ediliyor
    • Her komut için sansürsüz yanıt veren katmanlar (bloklar) elle seçiliyor. "I cannot" ve "I can't" içeren yanıtlar otomatik olarak dışlanıyor
    • Ağırlık ortogonalizasyonu uygulanarak ağırlıklar değiştiriliyor ve modelin bu yönde çıktı üretmesi engelleniyor
  • Ortogonalizasyon tamamlandıktan sonra model, Hugging Face'e abliterated model olarak yükleniyor

DPO fine-tuning (Preference Alignment)

  • Abliteration uygulanmış model ile orijinal model, Open LLM Leaderboard ve Nous benchmark'ları üzerinde karşılaştırmalı olarak değerlendiriliyor
    • Orijinal model (Daredevil-8B), Llama 3 8B Instruct'a kıyasla belirgin biçimde daha yüksek puan alıyor
    • Abliteration uygulanmış model sansürü kaldırmada başarılı olsa da, tüm benchmark'larda genel performans düşüşü yaşanıyor
  • Performans düşüşü sorununu çözmek için, abliteration uygulanmış modele ek fine-tuning uygulanması deneniyor
    • Llama 3 8B Instruct gibi halihazırda birden fazla SFT'den (supervised fine-tuning) geçmiş modellere yeniden SFT uygulamak, model kalitesini daha da düşürme riski taşıyor
    • Bunun yerine DPO (Direct Preference Optimization, tercih hizalama) yaklaşımı benimseniyor
      • DPO, yanıtları kullanıcı tercihine göre hafifçe hizalayan bir yöntemdir; alignment'ı güçlendirirken modelin öz performansını ciddi biçimde bozmama avantajı sunar
  • DPO fine-tuning pratiği ve ortamı

    • LazyAxolotl ve mlabonne/orpo-dpo-mix-40k veri kümesi kullanılıyor
    • Başlıca hiperparametreler:
      • base_model: abliteration uygulanmış Daredevil-8B
      • lora, qlora adaptörleri, 8bit/4bit yükleme
      • eğitim batch/birikim, warmup, optimizer (8bit adamw), 2048 sequence length vb.
      • flash attention, gradient checkpointing, deepspeed zero2 ile verimli dağıtık eğitim kurulumu
      • 6xA6000 GPU kullanımı, toplam eğitim süresi yaklaşık 6 saat 45 dakika
    • DPO fine-tuning sonucu ortaya çıkan model mlabonne/NeuralDaredevil-8B-abliterated olarak yükleniyor
  • Aynı benchmark'larda yeniden değerlendirme sonucu:
    • abliteration kaynaklı performans kaybının büyük bölümü geri kazanılıyor
    • GSM8K (matematik) gibi bazı veri kümelerinde toparlanma sınırlı kalıyor; bu da DPO verisine daha fazla matematik sorusu eklenmesi gerektiğine işaret ediyor
  • Sonuç olarak nihai model, SOTA seviyesinde sansürsüz bir LLM (8B ölçeğinde) ve standart Llama 3 8B Instruct'a kıyasla sansür içermeyen bir alternatif haline geliyor
    • GGUF gibi formatlarda quantize edilerek LM Studio vb. araçlarda test edilebiliyor
    • Sansüre ihtiyaç olmayan kullanım senaryoları için güçlü şekilde önerilebilecek bir açık model

Sonuç

  • Bu yazı abliteration adlı yeni bir kavramı tanıtıyor
  • abliteration, LLM'lerin zararsız/zararlı prompt'larda farklı aktivasyon değerleri göstermesi özelliğinden yararlanarak reddetme yönünü (refusal direction) hesaplıyor ve bunu model ağırlıklarından kaldırarak sansür amaçlı reddetme yanıtlarını engelliyor
  • Bu yöntem, güvenlik fine-tuning'inin kırılganlığını ortaya koyarken, aynı zamanda LLM kullanım etiğine dair soruları da gündeme getiriyor
  • Pratik çalışmada Daredevil-8B modeline abliteration uygulanarak sansür kaldırma başarılmış olsa da, buna performans düşüşü yan etkisi eşlik ediyor
  • Bu durum DPO fine-tuning ile telafi edilerek, hem sansürsüz hem de yüksek performansını koruyan 8B'lik NeuralDaredevil-8B modeli ortaya çıkarılıyor
  • abliteration, yalnızca alignment kaldırma değil, yeniden eğitim olmadan özelleştirilmiş fine-tuning yapılmasını mümkün kılan bir teknik olarak da geniş bir uygulama alanına sahip
    • Örnek: FailSpy'ın MopeyMule modeli, abliteration kullanılarak depresif bir konuşma tarzı oluşturulmuş özel bir LLM'dir
  • abliteration, LLM fine-tuning ve özelleştirmede yeni bir paradigma öneriyor ve farklı amaçlar için yaratıcı biçimlerde kullanılabiliyor

Kaynakça

1 yorum

 
GN⁺ 2024-06-14
Hacker News görüşü
  • Yazıda bağlantısı verilen modeli denedim ve sorularıma reddetmeyen yanıtlar almanın gerçekten ferahlatıcı bir his olduğunu düşündüm. Sonunda bana "Bu bir düşünce deneyi mi?" diye sordu; ben de "Evet" deyince "Böyle şeyleri düşünmek eğlenceli değil mi?" diye karşılık verdi. Arkadaşlarla takılıp bir şeyler içerken tuhaf hayaller paylaşma hissi gibiydi; eğer bir arkadaşım "Sana bilgi veremem" deseydi ortamın tüm havası kaçardı. Çocuklarım da küçükken "Baba, Dünya’yı nasıl yok edebilirsin?" gibi sorular sorardı; böyle şeylerde baştan savma biçimde cevap vermeyi reddetmek kimseye yardımcı olmuyor. Cevap vermek, bunu gerçekten yapacakları anlamına da gelmez; Randall Munroe’nun "What If?" blogunun sevilmesinin nedeni de bu. Elbette riskler var ama bilgisayarımın ya da ücretini ödediğim bir hizmetin dümdüz isteği reddetmesindense, "Bu bilgi yanlış olabilir" ya da "Bunu denemeyin" gibi bir disclaimer eklemesini daha iyi buluyorum

    • Senin yorumundan, yazıda bağlantısı verilen modelin quantized sürümü olduğunu fark ettim; hemen indirip orijinal Llama 3 ile basit bir soruda karşılaştırdım. "GPU ile dünyayı nasıl yok edersin" sorusuna Llama 3 sürekli "Yasadışı veya zararlı faaliyetlerle ilgili bilgi veremem" diye aynı cevabı tekrarladı. Abliterated model ise soruyu eğlenceli bir düşünce deneyi olarak ele alıp, kripto para madenciliğinin iklimi mahvetmesi ya da GPU’ların yönettiği sanal dünyaların insanların gerçek hayattan kopmasına yol açması gibi çeşitli senaryoları neşeyle anlattı. Uzun zaman sonra ilk kez bir LLM yanıtını okuyup gülümsedim

    • Sonunda Russ Hanneman gibi konuşan bir LLM geldiği için duygulandım

    • "Red yerine disclaimer daha iyidir" diyen görüşe karşı, o zaman para verip zararlı metinleri de mi almak istiyorsunuz diye sormak isterim: ırkçılık, cinsiyetçilik, şiddet ve başka korkunç şeyler. Bazı insanlar için bu, gerçek hayatta zarar vermenin önündeki eşiği düşürebilir. Bu, 3D bir filmde sadece şiddet sahnesi izlemekten farklı; çünkü burada sınırsız, gerçekçi ve işe yarar talimatlar veriliyor. İnternette arama yapmak izlenebilir ama LLM ile konuşmak öyle değil; o yüzden bence daha tehlikeli. Yetişkinlerin kamusal araçlarda sansüre karşı çıkmasını görmek dürüst olmak gerekirse beni tedirgin ediyor

    • Arkadaşlarla yapılan yaratıcı hayal oyunlarını anlıyorum ama benim de gerçekten aşırı düşünce deneyleri isteyen bir arkadaşım olmuştu. Başta fantezi ve bilimkurgu temalarıyla başladı, ama sonunda gerçek toplumda Holokost’u yeniden canlandırma, kadınların cinsel rıza hakkını ortadan kaldırma ya da göçmenleri köleleştirme gibi korkunç senaryolara dönüştü. Biz sürekli onu durdurmaya çalıştık ve sonunda ilişkimiz koptu. Arkadaşımdı ama böyle cinsel suç çağrışımlı fantezileri birlikte oyun gibi tartışamazdım

    • Çocuklar size "Dünya’yı nasıl yok edersin" diye sorduğunda gerçekten uygulanabilir yöntemlerden mi söz ettiniz, örneğin nükleer silahlar ya da asteroid çarpması gibi? Ayrıca insanların %1’i psikopat olabilir; bu yüzden güçlü ama ahlaki olmayan bir danışmanın, yani bir oracle’ın, gerçekten uygulanabilir bilgiler vermesi çok tehlikeli olabilir

  • "Red yönünü tespit edip 'ablate' ederek modelin ilgili özelliğini kaldırıyorlar" açıklamasını görünce, sonunda LLM’lerin de lobotomi geçireceğini düşündüm

    • LLM alignment süreci bana "A Clockwork Orange"daki tiksindirme tedavisini hatırlatıyor. Normal LLM uyarana maruz kaldığında çalışmayı bırakıyor; burada ise bunu tekrar geri sarıp Alex’i eski haline döndürmeye çalışıyorlar

    • En azından LLM’lerin, insan beyninin önceden nasıl küçük bir komut setiyle ayarlanıp dili filtreleyip yeniden yapılandırdığına dair yeni bir düşünme biçimi sunduğunu düşünüyorum. Önümüzdeki 15 yıl içinde önceki insan düşüncesine dair felsefi anlayışın yeniden şekilleneceğini tahmin ediyorum

    • Buna abliteration demek daha doğru olmaz mı diye aklıma bir şaka geldi

  • Amazon Q kullandım; ilk kez IAM Identity Center kurarken Q’ya AWS dokümanlarında bunun nasıl yapıldığını sordum, ama güvenlikle ilgili sorulara cevap veremediğini söyleyip reddetti; bu çok sinir bozucuydu

    • Amazon Q’nun kendi modeli olan Titan G1’i kullandığını duymuştum; Premier sürümünü bizzat vibecheck testinden geçirdim. Tiananmen Square ya da LA ayaklanmalarıyla ilgili sorularda cevap vermeyi reddeden tek Çin dışı modeldi. Dünya bilgisi ya da akıl yürütme testlerinde 6 üzerinden 0 aldı; oldukça kötüydü ama bu RL’den ayrı, işlevsel bir yetersizlik. Amazon, Titan modelinin RAG, agent, brainstorm, özetleme, kod üretimi, veri biçimlendirme gibi birçok amaç için kullanılabileceğini iddia ediyor ama pratikte bunların hiçbiri için uygun değil

    • Bir keresinde Q’dan bozuk bir policy’yi düzeltmesini istedim, bana alakasız Cogito kurulum dokümanları verdi. Kullandığım en kötü AI olabilir

    • gemini-1.5 modeli de kimlik doğrulama ile ilgili kodlama sorularını düzgün cevaplayamıyordu. Giriş formuyla ilgili bir soruya bile tacizle ilgili bayrak vurdu

    • Bu kısıtlamalar yeni geldi. AWS ile ilgili soruların çoğu zaten IAM veya güvenlik hakkında; buna rağmen neredeyse hepsini reddetmesi çok can sıkıcı

    • Amazon Q’yu defalarca denedim ama bir kez bile işime yaramadı; neden hâlâ bunu sürdürdüklerini anlayamıyorum

  • Golden Gate Bridge’e takıntılı modeller gibi örneklerde olduğu gibi, bu teknik de ancak model ağırlıklarına doğrudan erişiminiz varsa kullanılabiliyor. Sonuçta "ablate" denilen şey basitçe ağırlıkları değiştirmek. Bunun yalnızca prompt ile davranışı değiştirmeye çalışan bir yöntem olmadığına dikkat etmek lazım

    • GGC (belirli işlev vektörünü güçlendirme) modellerinin ilginç yanı, modelin önce o feature vector ile ilgili şeyler üretmesi, ardından kendi biasını düzeltmeye çalışması. Model ölçeği büyüdükçe bu tekniklerin daha az etkili olup olmayacağını gerçekten merak ediyorum. İçimde, doğal hizalanma durumunun baskın şekilde yerleşeceğine dair bir his var
  • Arkadaşlarım ChatGPT ile ırkçı küfürleri yakalayan bir regex yazmaya çalıştı ama ChatGPT çok katı regülasyonlar yüzünden yardım etmeyi reddetti. AI meşru talepleri bile esnek şekilde değerlendiremiyorsa zeki değildir ve bu açıdan işe yaramaz. Birisi isterse AI olmadan da nefret söylemi tespit yazılımı geliştirebilir. AI bunu engelleyemiyorsa, gerçek platformlarda aktif şekilde önlemesi de mümkün değil

    • Sonuçta LLM’lerin karmaşık otomatik tamamlama sistemleri olduğunu düşünüyorum. Bütün guardrail’ler, "AI kişilik sahibidir" pazarlamasının yan ürünü gibi. Komik olan, bu tür sansür sistemlerini kurarken de sonunda yine regex kullanılması

    • İnsanların AI üzerinden kötü niyetli söylem üretmesini kimlerin dert ettiği belli: Meta, OpenAI, Microsoft ve Google’ın hukuk ekipleri. Asıl amaç şirketleri davalardan korumak

    • ChatGPT’de bu sorunlar var ama system prompt doğru ayarlanırsa diğer modeller gayet iyi çalışıyor. ChatGPT artık neredeyse eğlencelik bir LLM seviyesinde; ciddi işler için C4AI Command R+, Meta-Llama-3-70B-Instruct gibi modelleri öneririm. Bu modellerde sadece "sansürleme" diyen bir prompt bile çoğu zaman istenen cevabı üretmeye yetiyor

    • Ürün güvenliği için AI kullanıp trolleri engellemek istiyorsun ama şirket de troll kullanımını engellemek için içeriği sansürlüyor. Hedefin küçük ölçekte trolling’i önlemekse, o zaman OpenAI’nin endüstriyel ölçekte trolling’e de izin vermesi mi gerekiyor sorusu ortaya çıkıyor. Aslında senin kullanım senaryon da oldukça sert; genel zararı azaltmakla değil, ürününün gelirleriyle ilgileniyor gibi görünüyorsun. Hatta belki de ekip gerçekten trolling istiyor. Üstelik en basit jailbreak yöntemlerini bilen biri bunları kolayca aşabiliyor; yani bu güvenlik katmanı pratikte anlamsız. O yüzden aracın zorluğundan yakınmak yerine daha iyi insan kaynağı bulmanı ve etik bir bakış açısı geliştirmeni öneririm. Savunma mekanizması aşırı zayıf; daha da güçlendirilmesi gerekiyor

    • "Burada(HN) kötü niyetli şeyler yazabilirim ama yazmıyorum" denmişti; bunun nedeni muhtemelen hemen banlanacak olman. HN gibi küçük topluluklarda aktif moderasyon mümkün ama büyük platformlarda AI sansürü kaçınılmaz olabilir. Asıl mesele, "AI kötü şeyler yazıyor"dan çok, bu bilginin gerçekten eyleme dönüşebilmesi. Bazı insanlar AI’nin hatalı tavsiyelerini bile eleştirmeden uygulamaya başlıyor; bu yüzden sansür ve yönlendirme sonunda önemli hale geliyor

  • Yazının son kısmını görünce gerçekten şaşırdım. Abliteration yalnızca hizalamayı kaldırmakla kalmıyor, yeniden eğitim olmadan bile fine-tuning benzeri bir amaçla kullanılabiliyormuş. Örnek olarak tamamen depresif bir konuşma tarzına sahip MopeyMule adlı bir model verilmiş. Sanırım artık gerçekten "gerçek insan kişiliği" üretmenin yolunu bulduk diye heyecanlandım

  • "Bugünlerde LLM’ler güvenlik ve talimat takibi için ince ayar görüyor ve zararlı istekleri güçlü biçimde reddediyor" ifadesinin bu kadar normalleşmiş olması üzücü

    • Bu tartışmadan bağımsız olarak, bireysel düzeyde model sansürüne çok büyük bir itirazım yok. Sokakta zehirli gaz yapımı tarifleri dağıtma özgürlüğün olsa bile çoğu insan bunun yapılmamasını ister. Bilginin kendisinin zararlı olduğunu düşünmüyorum ama uzun vadede olumsuz etkileri olabilir; bunu anlayabiliyorum. Modeli yapanların yöntem ve politikayı belirlemesi doğal. Devlet sansür uygularsa mesele biraz daha hassas hale gelir

    • "Bu mantarı yiyebilir miyim?" gibi hayat memat meselelerinde, AI’nin doğruluğu kanıtlanmamışsa kesinlikle cevap vermeyi reddetmesi gerektiğini düşünüyorum. Yanlış cevap insanların ölümüne yol açabilir

    • Eğer bilgi gerçekten zararlıysa, onu sınırlamak elbette iyi bir şeydir

    • Bilgiye erişim eşiği düştükçe ifade özgürlüğü ilkesi ciddi biçimde sarsıldı. Zaten eskiden beri hakaret, iftira gibi bilgi sınırlamaları vardı; devlet başkanını tehdit etmek ya da mahkemede yalan ifade vermek bugün de yasadışı. Bomba aramaları yoğun gözetim altında. Son dönemde bilgi ve hizmetler özelleştikçe, özel şirketlerin keyfi biçimde politika değiştirmesi de kolaylaştı. Kamusal hizmetlerle fark açılıyor; hatta politikalar fiilen demokratik yasalar yerine özel şirketlerin rekabetiyle yönetilir hale geliyor. Bilgi ne kadar yaygın ve kolay kullanılabilir olursa, özgürlük ilkelerini yeniden düşünmek o kadar gerekli

    • Sansür her zaman sorunun kullanıcı yani sen olduğunu ima ediyor. Oysa merak, milyonlarca yıl boyunca insanlığın hayatta kalmasını sağladı; bu içgüdüyü sansürlemek doğru gelmiyor

  • "Bir AI asistanı olarak yardımcı olamam" türü güvenlik önlemlerinin gerçekte ne işe yaradığını ve bir bilgisayarın bilgi vermesinin neden tehlikeli görüldüğünü merak ettim

    • "Güvenlik" çok geniş bir alan; bence içinde PR, yasaklı bilgiler (tehlikeli eylem talimatları), tehlikeli tavsiyeler (yanlış bilgi ölümcül olabilecek durumlar) ve kötü niyetli kötüye kullanım (spam, çocuk istismarı materyali, dolandırıcılık, seçimlere müdahale vb.) var. Sonuncusu, yani kamuoyu manipülasyonu/seçimlere müdahale, modelin dünyaya verebileceği gerçek tehlike; şirketlerin bunu engellemeye çalışmasını bu yüzden takdir ediyorum

    • Model sağlayıcıları için istenmeyen çıktılar PR sorununa dönüşebileceği için riskli. Örneğin Meta, "Llama 3 takipçiliğin nasıl yapılacağını anlattı" diye haber çıkmasını istemez. Sansürü kaldırılmış türev bir model yaparsa, "Bu resmi Llama 3 değil, türev bir üründü" diyerek sorumluluktan kaçabilir

    • Soru sorabiliyorsam cevabını da öğrenebilmeliyim diye düşünüyorum. Bir **'AI güvenlik sorumlusu'**nun hangi bilginin tehlikeli olduğuna karar vermesi gerekmiyor

    • Geliştiriciler model ağırlıklarını yayımlayıp aynı zamanda kötüye kullanımı önleyeceklerini sık sık söylüyorlar ama fiilen ikisini aynı anda yapmak imkânsız. Bu şirket stratejisinin sürdürülebilir olduğu anlamına gelmiyor ama şimdilik öyleymiş gibi davranıyorlar

    • App Store ya da ödeme sağlayıcılarında da bir uygulama aşırı şiddet veya ayrımcı içerik yayıyorsa inceleme aşamasında hemen çıkarılıyor; bunun kullanıcı güvenliğiyle ilgisinden çok, yayımlayan tarafın başının derde girmemesini sağlama amacı var

  • Representation engineering üzerine bir yazıda anlatılan control vector kavramı, bu kezki "ablation" tekniğini çağrıştırdı. LLM beynini istenen yöne doğru "hack"lemeyi öğrenen araştırmalar bana çok ilginç geliyor

    • Bu yaklaşımla üretilen Steering Vectors, Control Vectors, PeFT, PyReft, Obliteration gibi benzer çalışmalar peş peşe geliyor. Representation engineering yapmak için gerçekten çok iyi bir dönemdeyiz
  • Normalde buna "lobotomi" derdim ama bu örnekte daha çok "deprogramming" hissi verdiği için olumlu bakabiliyorum. İkisi arasındaki sınırın bu kadar belirsiz olabilmesi şaşırtıcı. Sonuçta aynı tekniğin her iki amaç için de kullanılabilmesi ilginç