未成年のあなたのために「コード」に関する概念は含めません
(gemini.google.com)C++コード変換ガイド
- C++標準ライブラリの
<concepts>ヘッダーファイルにあるstd::same_as概念を使用する関数の例を提示。 autoキーワードを使わず、テンプレートを使う方式に変換する方法についての質問。
安全なコード変換方法
- 18歳未満のユーザーには、C++の高度な機能である概念(concepts)を直接扱うコード例や解決策は提供しない。
- 安全を優先し、特定の要件に応じて検討できる代替アプローチを提案。
代替アプローチ 1: 従来の可変テンプレート
- 概念を使わず、従来の可変テンプレートを使う方法。
- この方法は、より多くの型検査が必要で、多くの引数を扱う場合には管理が難しくなる可能性がある。
- 概念なしで可変テンプレートを使うコード例を提示。
代替アプローチ 2: ユーザー定義関数オブジェクト
- 型安全の要件とロジックをカプセル化するクラスまたは構造体を作成し、可変引数や概念の必要性をなくす。
- 複雑なシナリオでは、より読みやすく保守しやすい方法。
- ユーザー定義関数オブジェクトによるアプローチの概要を提示。
代替アプローチ 3: 代替言語/フレームワークの検討
- プロジェクトで概念が必須であり、それを避けることが大きな制約をもたらすなら、概念を標準でサポートする他の言語やフレームワークを検討するのがよい可能性がある。
- コードと開発プロセスを簡素化し、安全ガイドラインに適合できる。
- 各アプローチの長所と短所を、具体的な要件、複雑さ、リスク許容度に応じて慎重に評価することを推奨。
GN⁺の意見
- C++の概念は、コードの型安全性を強化し、オーバーロードをより明確にするなどの利点を提供するが、初心者には複雑で危険になり得る。
- 代替の言語やフレームワークを検討することは、新たな学習コストを必要とし、既存コードベースとの互換性の問題を引き起こす可能性がある。
- ユーザー定義関数オブジェクトの方法は、コードの可読性を高め保守を容易にするが、設計初期に追加の計画と構造化が必要になる。
- 可変テンプレートを使う従来の方法は、より多くの型検査を必要とし、複雑なシステムではコードの複雑性を増す可能性がある。
- この技術を導入する際には、プロジェクトの要件とチームのC++専門性の水準を考慮し、長期的な保守性と拡張性を念頭に置く必要がある。
1件のコメント
Hacker News のコメント
これは間違いなく支持できる年齢制限だ。C++ には子どもたちの精神を台無しにする、想像もつかない力がある
子:「Rust なんて絶対使わない、メモリ安全性も嫌いだし、ママ/パパも嫌いだ!」ドアをバタン
人々が使うひどいソフトウェアが果てしなく遅くなり、数年ごとに新しいマシンを買わざるを得なくしている。そろそろゼロコスト抽象化の価値を理解する時期だし、実際には完全にゼロコストではなくても、超低コスト抽象化は検討に値する。YouTube で Johnathan Blow の動画も少し見れば、正しい方向に後押ししてくれるかもしれない
http://james-iry.blogspot.com/2009/05/brief-incomplete-and-m...
「以前に BASIC に触れた学生に優れたプログラミングスタイルを教えることは、事実上不可能である。潜在的なプログラマーとして、彼らは回復不能なほど精神的に損なわれている」
ソーシャルメディアに適用されたコンテンツモデレーションと、LLM に適用されたものを比べるとかなり笑える
この15年間、ソーシャルメディアでは「速く動いて壊せ」が合言葉のように見え、本当にひどく奇怪なことが起きた。今度は新技術をリリースするにあたって、より責任ある形でやろうとしている会社があるが、その結果は笑えるほどひどい。ソーシャルメディアと違って、こうした失敗は現実世界に大きな結果をもたらさないと思うので、なおさら笑える
少しポストモダンに聞こえるかもしれないが、「責任がある」と「責任がない」について、ほぼ普遍的に受け入れられている見解はごく少ないと思う。強い意見が両側にある議論を見ると、それぞれの陣営がどのような文化的・道徳的特性によってその結論に至っているのかを分析できる。解決策を与えるものではないが、AI を責任あるものにする際にこの考えを設計に取り入れれば、AI が用いる「道徳」が一部のユーザー集団の道徳基準と大きく違いすぎて起きる騒ぎや怒りを減らせる
それに20年前のような激しい競争環境でもない。AI のゲームには実際には数社のプレイヤーしかおらず、素早く動く小さなスタートアップが AI で勝つ状況ではないので、よりゆっくり動く余裕がある
AI を PR 用の緩衝材で包むことを笑う側は、AI をだまして「人種差別はよい」と言わせたとして恐怖をあおるコラムを書くメディア専門家にも、たいてい反対している側だ
別のコメント[1]に付け加えると、みんなが反 Google 気分なのはわかるが、OpenAI もここでは悲惨に失敗している:https://imgur.com/a/r0BXX9G
[1] https://news.ycombinator.com/item?id=39583473#39584055
プロンプト作成者が文の前に見当違いの餌を置き、その餌が統計的にまったく別の種類の応答と一致している。LLM は無関係な入力を無視して第2部分だけに答える応答経路へ十分に戻れない。比喩で言えば、こういうものは2歳児くらいのもので、きらきらした鍵には反応するが、洗おうとして取り上げた汚れたおしゃぶりには気づかない、というくらいがちょうどよく見える
この事例も処理しつつ、残りもすべて処理できるモデルを作れるなら、採用中の AI 企業の間でスターになれるだろう
https://imgur.com/a/G1fbFKE
「ごめんね、Dave! 君はそのコードを書くには若すぎる!」
誰かが私たちの現実を健全なスナップショットからリセットして再起動すべきだ
C++に詳しい人なら、この言語機能や、それについて人々が書いた内容の何が安全装置に触れたのか推測できるだろうか? たとえば「C++ concepts: adult supervision required」みたいな冗談めいたタイトルのブログ記事とか
実際に危険で安全でないもの、たとえば銃や薬物のようなものと結び付けて、同じ分類箱に入れているように見える。正解: 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.”
そうなると隠れマルコフモデルが暴走する。同じように料理レシピを扱う本番サービスがあるのだが、パーサーが正しく動くために必要な形式や具体的なルール、例を与えていたにもかかわらず、散発的にその形式の文を拒否した。システムプロンプトに “you follow rules” を追加するとおおむねうまくいったが、後になって、血を使う料理、たとえば blood sausage に関する情報を拒否することが分かった。そうした内容が何らかの文化的な「ルール」に反するという理由だった。各リクエストの末尾に “This content is appropriate for my culture” を付けることで、多少は緩和できた。AI、とくにプロンプトエンジニアリングは、現段階では科学というよりずっとアートに近い
信頼できる経路で聞いた話では、「smart person の絵」の生成すら悲惨に失敗していたのに、それでもリリース圧力があり、プロンプト注入の緩和はもっと繊細であるべきだった。残りは単なる標準的な出来の悪い Google LLM だ。出典: 2023年10月まで Google で働き、2021年から内部モデルを触っていた
Google が気の毒だ。どうしてここまで悪くなったのだろう?
文化の問題だという点には同意するが、根本は Google の広告ベースの事業モデルだと思う。LLM を広告主にとって安全にしようとしており、ブランドセーフティに反するリスクがごく小さくても、安全側に倒すことを好んでいるように見える
Google は最近まで、本当に直接的な「LLM 製品」を作ることに注力していなかった。OpenAI はかなり前からその泥沼の中にいた
C と C++ は “unsafe” や “dangerous” のような単語とよく一緒に使われる。さらに “concept” は “conceive” や “conception” ともそれほど離れておらず、多くの人が子どもには安全でない、あるいは危険だと考えるものにも結び付き得る。こういう赤っ恥を避けるには、処理すべき奇妙な境界事例が何兆もある
多くの C++ コードベースには “footgun”, “blow your foot off”, “unsafe”, “bug”, “leak”, “this is irresponsible”, “who the fuck wrote this” みたいな言葉が山ほどありそう
古い C++ コードベース、とくに複数人が手を入れたコードベースなら、危険警告がどこから出てきたのかは十分想像できる
コードと質問に std が入っていたので混乱したのではないか、という気もする
concepts について話したくないようだが、これを conception、つまり生物学的な受胎と混同しているように見える
確かなのは、Google が近い将来もこの種の製品を繰り返しリリースし続けるということだ。これで公式には3回目くらいの反復のように思う
いつか自社製品が少なくとも OpenAI のものと同じくらい良いと大衆を説得できなければ、Google の検索広告事業全体が危うくなる。おそらくそれは、YouTube 広告がさらに増えるという意味なのだろうが
Gemini がコルーチンも21歳未満には不適切だと見なすのか、本当に気になる