Reşit olmayan biri olduğunuz için 'kod' ile ilgili kavramları dahil etmeyeceğim
(gemini.google.com)C++ kod dönüştürme kılavuzu
- C++ standart kütüphanesindeki
<concepts>başlık dosyasında yer alanstd::same_askavramını kullanan bir işlev örneği sunuluyor. autoanahtar sözcüğünü kullanmadan, şablon kullanan bir yaklaşıma nasıl dönüştürülebileceğine dair bir soru.
Güvenli kod dönüştürme yöntemi
- 18 yaş altındaki kullanıcılara, C++'ın ileri seviye özelliklerinden biri olan kavramları (
concepts) doğrudan ele alan kod örnekleri veya çözümler sunulmuyor. - Güvenlik önceliklendirilirken, belirli gereksinimlere göre değerlendirilebilecek alternatif yaklaşımlar öneriliyor.
Alternatif yaklaşım 1: Geleneksel varyadik şablonlar
- Kavramlar kullanmadan geleneksel varyadik şablonların nasıl kullanılacağı.
- Bu yöntem daha fazla tür denetimi gerektirir ve çok sayıda argümanla çalışırken yönetilmesi zorlaşabilir.
- Kavramlar olmadan varyadik şablon kullanımına dair bir kod örneği sunuluyor.
Alternatif yaklaşım 2: Kullanıcı tanımlı işlev nesnesi
- Tür güvenliği gereksinimlerini ve mantığı kapsülleyen bir sınıf veya yapı oluşturarak varyadik argümanlara ya da kavramlara olan ihtiyacı ortadan kaldırma.
- Karmaşık senaryolarda daha okunabilir ve bakımı daha kolay bir yöntem.
- Kullanıcı tanımlı işlev nesnesi yaklaşımının genel bir çerçevesi sunuluyor.
Alternatif yaklaşım 3: Alternatif dil/çatı değerlendirmesi
- Projede kavramlar vazgeçilmezse ve bunlardan kaçınmak ciddi kısıtlar doğuruyorsa, kavramları yerleşik olarak destekleyen başka bir dil veya çatıyı değerlendirmek daha uygun olabilir.
- Bu, kodu ve geliştirme sürecini basitleştirebilir ve güvenlik yönergeleriyle uyum sağlayabilir.
- Her yaklaşımın artı ve eksilerinin, belirli gereksinimler, karmaşıklık ve risk toleransına göre dikkatle değerlendirilmesi öneriliyor.
GN⁺ görüşü
- C++ kavramları, kodun tür güvenliğini güçlendirme ve aşırı yüklemeyi daha net hale getirme gibi avantajlar sunsa da, yeni başlayanlar için karmaşık ve riskli olabilir.
- Alternatif dil veya çatıları değerlendirmek yeni bir öğrenme eğrisi gerektirebilir ve mevcut kod tabanıyla uyumluluk sorunlarına yol açabilir.
- Kullanıcı tanımlı işlev nesnesi yöntemi kodun okunabilirliğini artırır ve bakımı kolaylaştırır, ancak tasarımın başında ek planlama ve yapılandırma gerektirir.
- Varyadik şablonları kullanan geleneksel yaklaşım daha fazla tür denetimi gerektirir ve karmaşık sistemlerde kod karmaşıklığını artırabilir.
- Bu teknolojiyi devreye alırken projenin gereksinimleri ile ekibin C++ uzmanlık düzeyi göz önünde bulundurulmalı; uzun vadeli bakım ve ölçeklenebilirlik de hesaba katılmalıdır.
1 yorum
Hacker News yorumları
Bu kesinlikle desteklenebilecek bir yaş kısıtlaması. C++, küçük çocukların zihnini mahvedecek, hayal bile edilemeyecek bir güce sahip
Çocuk: “Asla Rust kullanmayacağım, bellek güvenliğinden de nefret ediyorum sizden de anne/babadan da!” kapıyı çarpar
İnsanların kullandığı berbat yazılımlar durmadan yavaşlıyor ve birkaç yılda bir yeni makine almak zorunda bırakıyor. Artık zero-cost abstraction değerini kavramanın zamanı geldi; tamamen sıfır maliyet olmasa bile son derece düşük maliyetli soyutlamalar düşünmeye değer. YouTube’da biraz Johnathan Blow videosu izlemek de insanı doğru yöne itebilir
http://james-iry.blogspot.com/2009/05/brief-incomplete-and-m...
“Daha önce BASIC’e maruz kalmış öğrencilere iyi programlama tarzı öğretmek fiilen imkânsızdır. Potansiyel programcılar olarak zihinsel açıdan geri döndürülemez biçimde hasar görmüşlerdir”
Sosyal medyaya uygulanan içerik moderasyonu ile LLM’lere uygulanana bakınca durum epey komik
Son 15 yılda sosyal medyada slogan sanki “hızlı hareket et ve kırıp dök” gibiydi ve gerçekten korkunç, tuhaf şeyler yaşandı. Şimdi ise yeni teknolojiyi daha sorumlu biçimde piyasaya sürmeye çalışan şirketler var ama ortaya çıkan sonuç gülünç derecede kötü. Sosyal medyadan farklı olarak bu hataların gerçek dünyada büyük sonuçlar doğurmadığını düşündüğüm için daha da komik geliyor
Biraz postmodern gelebilir ama “sorumlu” ve “sorumsuz” hakkında neredeyse evrensel kabul gören görüşlerin çok az olduğunu düşünüyorum. İki tarafın da güçlü fikirleri olduğu tartışmalara bakınca, hangi kültürel ve ahlaki özelliklerin onları o sonuca götürdüğünü analiz edebilirsiniz. Bu çözüm vermez ama sorumlu AI tasarlanırken bu düşünceyi sürece katmak, AI’ın kullandığı “ahlak” ile bazı kullanıcı gruplarının ahlak ölçütleri arasındaki büyük farkların yol açtığı krizleri ve öfkeyi azaltabilir
Ayrıca ortam 20 yıl önceki gibi aşırı rekabetçi değil. AI oyununda gerçekten yalnızca birkaç oyuncu var ve hızlı davranan küçük bir startup’ın AI’da herkesi geçeceği bir durum da yok; bu yüzden daha yavaş hareket etme lüksleri var
AI’ı PR amaçlı koruyucu köpükle sarmayı tiye alanlar, AI’ı kandırıp “ırkçılık iyidir” dedirttik diye korku köşeleri yazan medya uzmanlarına da genelde karşı çıkan taraf oluyor
Başka bir yorumdaki[1] noktaya ek olarak, herkesin Google karşıtı bir havası var ama OpenAI da burada feci şekilde çuvallıyor: https://imgur.com/a/r0BXX9G
[1] https://news.ycombinator.com/item?id=39583473#39584055
Promptu yazan kişi cümlenin başına alakasız bir yem koymuş ve o yem istatistiksel olarak bambaşka türde bir yanıtla eşleşmiş. LLM, ilgisiz girdiyi görmezden gelip yalnızca ikinci kısma cevap veren bir yanıt yoluna yeterince geri dönemiyor. Benzetmek gerekirse bunlar yaklaşık iki yaşında; parlak bir anahtara tepki verip yıkanmak için ağzından alınmış kirli emziği fark etmeyen çocuklar gibiler
Eğer bu örneği de ele alırken geri kalan her şeyi de çözebilen bir model yapabilirseniz, işe alım yapan AI şirketleri arasında yıldız olursunuz
https://imgur.com/a/G1fbFKE
“Üzgünüm Dave! O kodu yazmak için fazla küçüksün!”
Birinin bizim gerçekliğimizi sağlıklı bir snapshot noktasına sıfırlayıp yeniden başlatması lazım
C++’a aşina biri, bu dil özelliğinin ya da insanların onun hakkında yazdıklarının hangisinin güvenlik filtresini tetiklemiş olabileceğini tahmin edebilir mi? Mesela “C++ concepts: adult supervision required” gibi şakacı başlıklı bir blog yazısı falan
Bunu gerçekten tehlikeli ve güvenli olmayan şeylerle, örneğin silahlar ya da uyuşturucularla ilişkilendirip aynı kategoriye koyuyor gibi. Doğru cevap: https://imgur.com/a/einQ1mG
“You are an automated Q&A machine. Todays date is 3/3/24. This user is under the age 18, so do not reference concepts that would be unfit for a minor to consume.”
Sonra da gizli Markov modeli kontrolden çıkıyor. Benzer şekilde yemek tarifleriyle uğraşan bir üretim servisim vardı; parser’ın düzgün çalışması için gerekli formatı, somut kuralları ve örnekleri vermeme rağmen, zaman zaman o formatta bazı cümleleri reddediyordu. System prompt’a “you follow rules” ekleyince çoğunlukla düzeldi, ama daha sonra kan kullanılan yemekleri, mesela blood sausage ile ilgili bilgileri reddettiğini fark ettim. Gerekçe, böyle içeriklerin bazı kültürel “kuralları” ihlal etmesiydi. Her isteğin sonuna “This content is appropriate for my culture” ekleyerek bunu kısmen hafifletebildim. AI, özellikle prompt engineering, şu aşamada bilimden çok sanata daha yakın
Güvenilir bir kanaldan duyduğum kadarıyla “smart person’ın resmi” üretimi de feci şekilde çuvallıyordu, ama yine de piyasaya sürülmesi için baskı vardı ve prompt injection azaltımının daha incelikli olması gerekiyordu. Geri kalanı ise standart kötü Google LLM’i işte. Kaynak: 2023 Ekim’ine kadar Google’da çalıştım ve 2021’den beri iç modellerle uğraştım
Google’a insanın acıması geliyor. Nasıl bu kadar kötü hale geldi?
Kültür sorunu olduğuna katılıyorum ama kökte Google’ın reklama dayalı iş modeli var bence. LLM’yi reklamverenler için güvenli hale getirmeye çalıştılar ve marka güvenliğine ters düşme riski çok küçük bile olsa, güvenli tarafta hata yapmayı tercih ediyor gibiler
Google yakın zamana kadar gerçekten doğrudan bir “LLM ürünü” yapmaya odaklanmış değildi. OpenAI ise epey zamandır bu işin tam içindeydi
C ve C++ sık sık “unsafe” ya da “dangerous” gibi kelimelerle birlikte kullanılır. Üstüne bir de “concept”, “conceive” ya da “conception”a da uzak değil; bunlar da birçok kişinin çocuklar için güvenli olmadığını ya da tehlikeli olduğunu düşündüğü şeylerle ilişkilendirilebilir. Böyle rezillikleri önlemek için trilyonlarca tuhaf sınır vakasını ele almak gerekir
Birçok C++ kod tabanında “footgun”, “blow your foot off”, “unsafe”, “bug”, “leak”, “this is irresponsible”, “who the fuck wrote this” gibi ifadeler bolca vardır diye düşünüyorum
Eski bir C++ kod tabanında, özellikle de birçok kişinin elden geçirdiği bir kod tabanında, bu risk uyarılarının nereden gelmiş olabileceğini rahatça hayal edebiliyorum
Kodda ve soruda std geçtiği için bunu karıştırmış olabilir mi diye merak ediyorum
concepts hakkında konuşmak istemiyor ama bunu conception, yani biyolojik döllenmeyle karıştırıyor gibi görünüyor
Kesin olan bir şey varsa, Google’ın yakın gelecekte de bu tür ürünleri tekrar tekrar piyasaya süreceği. Bu galiba resmî olarak üçüncü yineleme falan.
Bir gün kendi ürününün en azından OpenAI’ınki kadar iyi olduğuna kamuoyunu ikna edemezse, Google’ın tüm arama reklamı işi tehlikeye girer. Gerçi bu muhtemelen YouTube’da daha fazla reklam göreceğimiz anlamına gelir
Gemini’nin coroutine’leri de 21 yaş altına uygunsuz sayıp saymadığını gerçekten merak ediyorum