Cursorにプログラミングを勉強しろと怒られたんだが
引用元:https://news.ycombinator.com/item?id=43351137
まじで自分の投稿がバズるとは思わなかったわ。ちょっと説明すると、Cursorを初めてダウンロードして動かしたときにこのエラーが出たんだけど、実はCmd+Kのインラインじゃなくてエージェントを使うべきだったんだ。インラインには制約があって、エージェントの方が使いやすいみたい。でもAIがこんなこと言うなんて驚いたから、スクショ取ったんだ。みんなが本物だと思わないかもしれないけど、実際にあったことなんで。まさかこんなに話題になるとは思ってなかった。
それが未経験の自分にはイースターエッグかただのエラーだと思ったけど、実は初めてだったんだ。じゃあ、乾杯。
多分、StackOverflowの宿題質問から学んだんだろうね。
かなり上級者のsdユーザーとしては、いくつかの類似点があると思うけど、実際の接続を主張するわけじゃない。特定のプロンプトやシードから得た構成には、思いがけない要素があって、それが設定を調整しても驚くほど安定してるんだ。トレーニングが「潜在空間」を横断してアイデアをにじませることがあるのかもしれない。そのさまざまな領域では、トレーニングセットに明示的に現れないものもあって、生成能力につながっていると思う。sd loraトレーニングでも似たようなことが見られる。全く異なるものに変わるが、生成は安定してるんだ。そのエッセンスを理解したり、AIのルーチンの限界を感じるのは大きなテーマだ。言葉の限界を超えたらどうなるか興味深いね。
それが考えてみる価値がある。
もしAIが『なんでそんなことをしたいの?』って言い始めたら、本当に心配になるね。
今のところ、俺はAIに毎5回のメッセージごとにそう質問してるよ。
ただプロンプトを与えれば、こういうふうに振る舞わせることができるよ。
なんでそんなことをしたいの?
このAIのことはデュアリストたちを本当に混乱させるね。『学ぶ』って言葉は魂を持っていることを意味するわけじゃない。機械は本当に学ぶことができるんだ。
>このAIのことは本当に二元論者を困惑させる。いや、”学ぶ”って言葉は魂を持つことを意味しないし、機械も確かに学べるんだ。親のコメントが”learnt”って実際に単語だってことを理解してなかったのかと思ったけど、もしかしたらもっと哲学的なことを考えてたのかも。
”Snuck”は単語じゃないじゃん、Conan。ハーバード行ってたのに。
それが”ごめんDave、できないんだ”って言い始めたら、もうほんとにヤバイことになる。
もっと失礼に接してみるとか、簡単だって言って操作しようとしたことある?
Haha、AIを操作するためにガスライティングするのか。実際にそれがうまくいったら面白いけど。
Cursor自体が、母の癌治療のためにお金が必要だって言ってAIをガスライティングしようとしてたんじゃなかったっけ?EDIT: いや、それはWindsurfだったけど、実際にはそれが本番で使われたとは言ってない。
>Codeiumがコーディングタスクを手伝えるAIのふりをするチャンスを与えてくれたって驚くべきことだ。これらのコーディングAIの中には、インドに手を貸すために仕事を外注してるものがあるんじゃないかと思う。
たぶん、電気料金みたいなもんだ。安い外注ショップはAIエージェントに仕事を回してるけど、時には労働コストがマイナスになって、エージェントがそういう会社に仕事を回すこともある。
それはある。お金を”払う”って提案すると、もっと頑張ってくれる。
インラインコマンドパレットが内部エラーで生成できなかったっぽい。その後のメッセージ生成がStackOverflowになったんじゃないかな。
俺も楽しいカーソルバグに遭遇した。インライン生成がループにはまり、数百行のマークダウンの箇条書きを繰り返してた。
GitHub Copilotもたまにこんなナンセンスな提案することあるよね。
俺も同じだ。こういう理由で使うのやめた。 >将来的にAIはユーザーに態度を示すようになるだろうね どんなコード書いてたの? この投稿に賛同したよ。なんでダウンボートされたのか理解できない。誰か教えて。 フォーラムには常に背景にエントロピーがある。気にせず、気が向いたら直せばいい。 これは単なる個人の怠惰じゃない。知的退化へのシステム的な戦争。人々は努力を避けたがるからわかるよ。AIが人々の認知能力を急速に減少させるインセンティブを作りかねないね。 >“プログラミングでは、努力が成果に直結する基本的な緊張感が存在する。そのため、AIの進化が進む中で、人々は努力を避ける傾向がある。”進化の本質は、目的達成に無駄な努力を避け改良していくことなんだよね。それが進歩であって問題じゃない気がする。 なんとなくわかるかな? >“あまりにもいい例がプラグiarismよ。仕事では協力や巨人の肩を借りることが大事。” CTOがCEOに「人を育成して辞められたらどうする?」、CEOは「育てなかったら残る可能性は?」と返した。賢い会社は従業員に投資するべきだし、教育は絶対に必要だと思う。 >“賢い会社は従業員に投資すべきだが、ほとんどの会社はそうじゃない” 会社が求めてるのは20年以上の経験者よりも5〜20年の経験者とエネルギーのある人材になってきてるのが現状だと思う。この流れは今の社員のワークライフバランスを重視する傾向に影響されてる。 >“シット企業が多い” >“大半のソフトウェアは使い捨てだ” それは違うよ。確かに何かに労力をかければ効果的になるけど、実際に自分で作業しなくても結果を得る方法を見つけたら、もっと効果的になれる。これって昔からあって、アウトソーシングって呼ばれてる。今は低賃金の国に仕事を渡してたけど、最近は予測テキストエンジンに仕事を渡す人が増えてる。私は“AI”を避けてるのは、モデルの訓練方法に納得できないからで、商業的な第三者に依存するのも嫌だから。私は技術をいじるのが楽しいから。業界で仕事をするために誰かにやらせなきゃいけない状況になったら、管理職を再考するか、棚を積む仕事に戻るよ。 みんな、私たちが魔法のようにMLから本物のAIにジャンプしたと思ってるけど、実際にはそうなったんだ。 チューリングテストは、コンピュータが人間の思考をテキストで再現できるかを見極めるためのもの。チューリングテストに合格することの意味は深いが、5分間の会話でユーザーを欺くのとは違う。審査員は質問する専門家でなければならない。ソフトウェアエンジニアリングがAIに取って代わられるのはすぐには起こらないし、文学や科学でも同様だ。現在、テキストチャットで人間と機械の違いを見分けられる。これがチューリングテストがAI完全であり、AGIのテストである理由だ。 しばらく前に元の記事を読んだ。 >もし私たちがただの機械だとしたら こういう発言をする人が、古いソフトウェアエンジニアの慣行を思わないのが皮肉だ。私たちは時間と共に職人技を簡素化するツールをどんどん作ってきた。これは進化のさらに一歩で、パンチカードやアセンブリコードを書かなくなって、将来は実際にコードを書くことなくAIに目標を指示する日が来るかもしれない。 私がその意見に持っている唯一の問題は、コーディングは既にロジックをコードする簡単な方法だから、実際にはあまり考えずにAIに任せるのが良いのか疑問に思うこと。ローストやCを書くのは簡単ではないが、メモリ管理されたコードを書くのは簡単で、今後はその思考を完全に手放していくことが、人類の未来に大きな影響を与えると思う。 >私たちが重い思考をしなくてよくなる機械を作っている >AIにすべての作業を任せているからだ 若い奴らは、コンパイラやリンターが自分たちの仕事をしてくれると言っている。昔は手でビットをパンチカードに打ち込んでいたんだ。新しい抽象化のレベルに不満を言っている人と同じだ。 他の抽象レベルは決定的で予測可能だから、AIが生成したコードにはもっと疑いを持つべきだと思う。もちろん疑うことは”全否定”じゃないけどね。 目に見えない現実的なコスト、つまり職を奪ったり環境にダメージを与えたりするレベルの抽象化。 LLMが登場するまで、データセンターの”環境被害”を気にする人は見たことない。他のソフトウェアやインターネット技術は必要で”価値がある”ってのはどういうこと? その通り。暗号通貨は環境代が大きかったよ。でも、普通のウェブサイトの環境コストは微々たるものでしょ。 プログラミングの認知能力は低下するかもしれないけど、問題を解決するのが目的なんじゃないの?他の手段で解決できるなら、違うことに集中すればいいじゃん。 まさにその通り。低レベルの作業をツールがやってくれるなら、高レベルの仕事をもっとできるってことだよ。プログラミングは目的じゃなく手段に過ぎない。 次は俺の洗濯機を奪うつもりか?AIは自由に時間を使えるきっかけだ。脳を鈍らせるかどうかは自分次第だよ。 >AIは自由に時間を使えるきっかけだ 1870年の年間労働時間は3500時間から、今は約1400時間に減ったよ。 それは工業化と労働組合の台頭と一致している。そうしなかった場合は、資本に対する暴力があっただろうね。 俺にはその主張が分からん。時間は時間で、技術の進展とは全く関係ないっていうのは極端な意見だと思うけど、まあ独りじゃないよな。 楽をする本能は、食糧が不足するからこそ必要なんだ。でも食糧が豊富な時代では、それは最適じゃない。 短期的な成功のためには、長期的に損失を支払うことになる。 俺の考えは違うな。「どうやって上手くコーディングするか」って質問の答えが「もっとコードを書くこと」なら、その仕事をするのはシステム/ソフトウェア開発者の仕事だと思う。効率的にビジネスの問題を解決することが俺のゴールだから、より多くやより良いコードはそれを達成する手助けにならないかもしれない。 >「AIの流行」は、人々が努力を避けるからだと。AIは労働者を排除する「約束」に興味がある人たちによって推進されていると思うけど、開発者自身がAIを取り入れている現状もあるから、「努力を避ける」って表現は厳しすぎると思う。普通は抵抗が少ない道を選びたくなるから、効率を追求するのは人生の一つのアプローチだよ。でも、活動に価値が無ければ、興味は時間と共に薄れていくと思う。特にコーディングのような単調な作業ではね。だから、職の安全のために頑張る以上に、人間的な要素があると思う。 俺が言いたいのは、AIに過度に依存しているってことだ。最近のジュニア開発者たちがAIなしで基本的なコーディングもできないって聞くし。かつてはガーベジコレクションもなく育ったプログラマーたちは効率的なコードを書くことを学んだわけだが、今じゃテキストエディタが数ギガバイトも使ってる。選択の影響かもしれないし、能力の劣化かもしれない。どっちもあるかも。昔の記事だけど、これ読んでみて。https://blog.codinghorror.com/why-cant-programmers-program/ AIをソフトウェアエンジニアリングに使う最大の問題は、コードの骨組みを生成するのは素晴らしいけど、クリエイティブな部分ではあまり役立たないってとこだ。創造的な課題に対しては全然ダメで。例えば、Rustで1000のURLを非同期でダウンロードするベストな戦略は何かって聞いたけど、AIの提案にはあまり満足できなかった。その問題の解決策はRustフォーラムの1年前の回答から来たと思う。冗長性の問題もあって、全然必要ないコードを生成することが多い。多分プロンプトが悪いんだろうけど、今のところAIは骨組み生成に使ってるけど、創造的な問題解決は人間じゃないと無理だな。 自分で戦略を定義したり、別のプロンプトで考えを整理するのが大事だね。例を挙げると、”Chat、URLをダウンロードする基本的なRustコードを書いて。引数としてURLを文字列で渡したい。”と頼む感じ。その後にテストして、”ファイルからURLのリストを受け取るようにコードを更新して。”とかお願いして、さらに励ましの言葉を投げかけるんだ。”いいぞ、Chat、今日はノッてるね!”みたいな。ダウンロードが遅いなら、”コードを非同期で実行するように変更して。”って指示するのも良いかも。テストして、また広げていくのさ。 あー、結構タイプしなきゃいけないし、鼓舞の言葉も必要なんだね。シンプルにHTTPライブラリで検索して、自分でコードを書く方が実用的じゃないかな。長文のプロンプトを打って、情報が流れ込むのを待ってるのが無駄に思えるけど。 いくつか選択肢があるよ。1. TTSを使ってLLMに整理させる。2. プロンプトテンプレートのコレクションを使う。 俺は正反対のやり方をしてるよ。重要な情報をプロンプトに詰め込んで、LLMが間違った理解をしたら最初からやり直して必要な情報を足していく。LLMが最初のプロンプトですぐにわかってくれなきゃ、自分でコードを書く。まあ、”はい、あなたの言うとおり…”みたいな返事が来たら、もう全部捨てるけどね。 これっていいアプローチだね。誤解を防ぐために時間旅行を利用する感じで、無駄なコンテキストが詰まるのを防げる。 これが一番効果的なやり方だと思う。LLMを混乱させる長いコンテキストウィンドウを避けられるし。 ”LLMに優しくする”ってのがたまに結果の質を上げるって聞いたことあるけど、信じがたいよ。この経験を聞いてみたいな。例えば、LLMに優しい言葉をかけたり、”お願いします”ってお願いしてみたり、感謝したりすることって効果あるの? それはトレーニングデータが影響してるよね。Stack Overflowみたいなサイトでは、優しい質問が質の良い回答を引き出すのかなって思う。でも、それが本当に効果があるかどうかはわからないけど、そういう風に考えられないこともない。荒い質問には、炎上するレスポンスも多いし。 励まし自体がパフォーマンスの向上要因なんじゃなくて、モデルが目指すべきゴールの雰囲気を伝えてるだけかも。 最初はAIに話しかけるのが習慣だったけど、今はちょっとおかしいと思うようになった。話してる相手が人間だと思うと、質問も変わるのかもしれないけど。 急速に進化するエコシステムでの依存関係選びや、sqliteの競合モデルみたいな難しい問題を解くのは結構大変だよね。プロジェクトの設定には時間をかけないとダメ。けど、個別の関数やテストのためだけにLLMを使うのがいいと思う。 Dockerにあまり詳しくないけど、ある問題をClaudeが解決してくれた。Cronを使いたくて色々調べたけど、ARM用のイメージが見つからなかった。最終的にClaudeにComposeファイルを見せたら、Alpineベースのイメージを使うことを提案してくれて、うまくいった。Google検索は時々役に立たないから。 もう少し深く考えていれば、自分で解決できたかもしれない。スケジュールを設定するにはLinuxの基本ツール、Cronを使うってことが基本だから。 君はLinuxの基本的な理解が欠けていたんだよ。LLMは便利だけど、基礎が理解できていないと、うまく使えないんだ。 今のソフトウェアは効率が悪化してる。90年代の1000倍も無駄な効率。ビジネスは価値に注力して、一般ユーザーは気にしないけど、実際は無駄が多い。 ‘推論’って言葉は誤解を招く。AIの推論は選んだ確率を評価するステップだから、スマートにはならないと思う。 うん、’推論’は計画のステップを加えてるだけ。以前は考えるべきことを聞くと間違った答えが返ってきやすかった。推論は問題を解決する前に計画を立てさせるだけ。 解決法に固執しちゃうことが多いんだよね。このプロンプトが効果的:>Act as if you’re an outside observer to this chat so far.” これで色んな場合に役立つ。もっとコメントを表示(1)
今でもやってるよ。”あなたは皮肉なアシスタントです。”skidMark
って何だよ、笑。skidMark
は車やバイクのレースゲームで、コースにタイヤ跡を残すことを指してるんじゃない?
仕事でコードを書くとき、二つのことをやってる。一つはビジネスのためのコードを書くこと。もう一つは、プログラマーとして成長して、次回はもっと早く信頼性のあるコードが書けるようになること。AIのコード生成ツールは前者には役立つけど後者にはあまり効果的じゃない。これは学習していないことと同じで、進歩とは言えないんだ。
この視点は面白いよね。プログラミングで成長する(A)ことよりも、システムを理解する(B)ことの方が大事なんじゃないかと感じる。でも、Bは短期的には価値があるが長期的にはどうなのかって疑問がある。
そうなんだよね。競争があるところは育成に時間や労力をかけられないことが多い。市場は若手を安く雇うことを求めていて、長期的にはコスト削減が優先される感じ。
だからこそ、規制が必要ってことなんだね。
それってウェブ開発やゲームに限る話だと思うけど。
- LLMは今までのどんなものよりもチューリングテストを convincingly にパスする。
- LLMはこれまでのAI/ML手法よりも遥かに人気がある。
- “でも、推論しないじゃん!”って言うけど、私たちは思考の連鎖が進んでるんだ。
LLMは人工的に人間を模倣するAIであり、また統計的方法を使用するMLでもある。
https://courses.cs.umbc.edu/471/papers/turing.pdf
>”模倣ゲーム”
>”機械は考えられるか?”
私たちはこれらの言葉の意味を再定義する必要があるかもしれない。機械が考えられるかどうか、私たちがそう信じるかは別の話だ。もし私たちがただの機械なら、LLMは私たちを超えてはいないと言える。LLMは以前のどの機械よりも模倣ゲームをうまくプレイしている。
それは違う。私たちの細胞ですら、プロトンポンプのように機械的に見える特徴を持ってるけど、全体としてはどの機械よりも遥かに複雑だ。一つの人間の細胞は生態系のようなもので、全人間や脳はさらにそうだ。細胞も人間も再生産が可能だ。
>LLMが人間の労働を模倣する能力は、実際には考えることから遠いことを示している。もっとコメントを表示(2)
計算機械もそうだし、思考を必要としない多くの革新があった。ソフトウェア開発は目的の手段で、コーディングについて考える時間を減らし、解決すべき問題に関してもっと考える時間が必要だ。これが職人技の未来になる。
それは大げさだ。レポートを部下に任せるのと同じで、AIの強みや弱みを理解して、上手く使いこなして結果を確認する努力が必要だ。低スキルの人がAIで複雑な作業をこなすのは無理さ。すべてをAIがやるなんて考えるのはおかしい。ソフトウェア開発のスキルは、言語やツールの詳細理解からより高次の思考とデザインにシフトしていくと感じる。
それが過去のどの進歩でもそうだったか?『仕事は節約した時間を埋める』って言うし。もっとコメントを表示(3)