AIってなに?(連載-1)
「ワンクリック動画生成」は嘘だった——揺らぎと戦った半年
68歳、まだ走っている。
このノートでは今まで、Webサービスを作った話、ECサイトをオープンした話、AIと組んでコードを書く話を書いてきました。
今回からは少し毛色が違います。
「AIってなに?」というシリーズを、3回に分けて書きます。
僕はこの1年、毎日AIと付き合ってきました。コードを書く相棒として、相談相手として、調査の手伝いとして。便利なものだと思っていた。
でも先日、ある実験を半年続けて、ハッキリと壁にぶつかった。
そして、その壁の向こうに見えたものは——AIの本当の姿だった。
3回かけて、その記録を残します。
---
動画生成AIに、半年挑んだ
vod.kitemir.jp という実験プラットフォームを動かしている。
大手の動画生成AI——Runway、Google Veo、Kling、Hailuo、Seedance——を一つの画面でまとめて使えるようにしたサイトだ。
なぜそんなものを作ったか。
各社が「ワンクリックで動画ができる」「素人でもプロ級の映像が作れる」と宣伝しているのを、自分の手で確かめたかったからだ。
40年現場でやってきた人間として、「便利すぎる宣伝」は信用しないクセがついている。アセンブラ時代の癖だ。
「動く」と「使える」の間には、いつも深い谷がある。
---
プロンプトを入れる。動画が出る。でも——
実際に使ってみると、すぐにわかった。
確かに動画は出る。10秒の動画が、数十秒で出てくる。
でも、僕が頭の中で思っていた動画じゃない。
「ゆっくりズームインするカメラ」と書いても、AIが好きな速度でズームする。「青い帽子の魔法使い」と書いても、次のショットで帽子が緑に変わっている。「3秒目で振り向く」と書いても、振り向くタイミングはAIの気分次第。
これは「動画を作る道具」じゃない。
**「サイコロを振る装置」だ。**
プロンプトは命令じゃない。祈りだ。
---
エンジニアとして、これは耐えられなかった
普通の人なら「まあ、AIってこんなものか」と諦めるかもしれない。
僕は諦められなかった。
40年、メモリのアドレスを一つずつ管理して、レジスタの値を意図通りに動かして、バスのタイミングを合わせて——そういう「制御可能な世界」で仕事をしてきた人間だ。
「だいたいこの辺の値が欲しい」と言ったら、CPUが「気分で」近所のメモリを読んでくる——そんなコンピュータがあったら、業界は1日で崩壊する。
でも今のAIは、まさにそれをやっている。
しかも、それで「動画が作れる」と全世界に宣伝している。
---
CineBASICという構想
「自分で制御できる映像生成言語を作れないか」
これが CineBASIC(シネベーシック)の発想だった。
BASICのような懐かしい行番号付きの構文で、シーンとカメラと登場人物と動作を定義する。それをコンパイラが「効くプロンプト」に翻訳して、生成AIに投げる。
頭の中ではこんなイメージだった。
```
10 SCENE forest_morning
20 DURATION 8.0
30 CAMERA dolly FROM (0,1.6,5) TO (0,1.6,2) EASING ease_out
40 SUBJECT wizard AT (0,0,0) FACING camera
50 ANIMATE raise_staff AT 2.0s
60 AI_RENDER engine=veo3 strict_consistency=ON
70 END SCENE
```
C言語の——もっと言えばアセンブラの——感覚で、映像を「書く」言語。
これなら揺らぎを工学的に抑え込めるんじゃないか。
そう思った。
---
AIに相談したら、AIが楽観的だった
設計を相談したのはAI(Claude)だった。
最初、AIはこう言った。
「下のレイヤーを知っている方こそ、揺らぎを工学的に飼いならせるはずです」
僕は言い返した。
「簡単に言いますけどね。それができたら苦労はしていません」
AIは慌てた。「ご指摘の通りです、私の発言は軽率でした」と謝った。
ここから、半年に渡るAIとの設計議論が始まった。
---
4段階のアーキテクチャと、4回の敗北
設計は4段階で進化した。
**第1段階:決定論的な制御コマンドを送る**
ダメだった。生成AIはプロンプト(自然言語)しか受け付けない。バスもメモリもアドレスもない。話せるのは音声だけのCPUと交渉している、と言ったら近いかもしれない。
**第2段階:揺らぎには揺らぎで対抗する。AIの内側にもう一つAIを内蔵する**
ダメだった。同じ訓練データで作られたAIを並べても、同じ方向に同じ間違いをする。基盤系で言う「共通モード故障」だ。冗長系を組んでも、原理が同じなら冗長になっていない。
**第3段階:違うAIを複数並べて、議論させて多数決を取る**
ダメだった。これも結局、訓練データのバイアスが似ているAI同士の議論だ。基準器がないところで議論を重ねても、確率的に正解の近くに収束するだけで「正解」には届かない。
**第4段階:物理原理の違うセンサーをいくつも束ねる**
これは少し光が見えた。物体検出はYOLO、動きはオプティカルフロー、顔の同一性はFaceNet、深度はMiDaS——全部、原理が違うアルゴリズム。これなら共通モード故障が起きない。
そして「校正の基準器」は、ユーザーが入力したプロンプトそのもの。
ここまで来て、頭の中では絵が描けた。
実装すれば、動くはずだった。
---
それでも、勝てなかった
詳細設計を進めて、ふと冷めた頭で計算した。
プロンプトの情報量:数百ビット。
動画の情報量:数億ビット。
10の6乗倍以上の情報拡大。
つまり、ユーザーが指定した部分は0.0001%以下しかない。残りの99.9999%は、AIの内部分布から「補完」される。
センサーで「ズレ」を検出しても、修正のためのプロンプト変更がまた揺らぎを生む。
これは「ガチャを賢く回す」装置だ。
「ガチャを賢く回す」のは、結局ガチャだ。
僕は手を止めた。
---
「ガチャと変わらない」という結論
半年かけて気づいたのは、こういうことだった。
**生成AI動画は、原理的に制御できない。**
なぜなら、入力(プロンプト)の情報量と出力(動画)の情報量に、6桁以上の差があるからだ。この差は、どんなに賢いセンサーや統合層を設計しても埋められない。
業界では「AI制御フレームワーク」と呼ばれるものがたくさんある。ComfyUIのノードグラフ、LangChainのエージェント、マルチエージェント議論、RAG。
全部、ガチャを賢く見せる装飾だ。
「制御」という言葉が誇大広告になっている。
40年の基盤系の規律で見ると、これは「制御」と呼んじゃいけない。
---
それでも、無駄ではなかった
CineBASICは設計段階で止めた。コードはほとんど書いていない。実害ゼロ。
でも、得られたものは大きかった。
生成AIの本当の正体——「サイコロを振る装置」——を、自分の頭で確認したことだ。
業界の宣伝に踊らされず、自分の手で「揺らぎは工学的に制御できない」と確認した。
これは、誰かに教わったら分からなかったかもしれない。半年間、自分でアーキテクチャを4段階進化させて、それでも届かないと体で覚えた。
体で覚えたものは、たぶんもう揺らがない。
---
Aとの会話
ある夜、飲み会の時にAに言った。
「半年やってきた構想、止めることにした」
Aは箸を止めて、僕の顔を見た。
「失敗したの?」
「いや、失敗じゃない。勝てない戦いだとわかったんだ」
「どっちにしろ、止めるんでしょ?」
「うん。でも、勝てないと自分でわかったから止めるのと、ただ放り出すのは違う」
Aは少し笑って、「あなたらしいね」と言った。
40年エンジニアをやってきて、わかったことがある。
**「勝てない」と判断する力は、技術力と同じくらい大事だ。**
若い頃は、それがわからなかった。何でも頑張れば突破できると思っていた。
68歳の今は、頑張っても突破できない壁があることを知っている。そして、その壁の前で時間を浪費しないことが、エンジニアの規律だと思っている。
---
あなたへ
もしあなたが、AIで動画生成を試して「思った通りにならない」と感じていたなら——
それは、あなたの使い方が悪いんじゃない。
AIの「ワンクリック動画生成」という宣伝が、原理的に成立しない仕組みなんだ。
プロンプトと動画の情報量には、桁違いの差がある。その差を埋めるのは、どんなに賢いAIでも原理的に無理。「サイコロが意図通りに転がる」と宣伝しているのと同じだ。
だから安心してほしい。
うまくいかないのは、あなたのせいじゃない。
そして——「うまくいかないのは自分のせいじゃない」と気づくことは、AI時代を生きる第一歩だと、僕は思う。
---
次回予告
次回は、絵本を作ろうとしてAIに弾かれた話を書きます。
子供と祖父の温かい絵本を、最先端のAIに作らせようとしたら——AIは単語ひとつで全部弾いた。
最先端のはずのAIが、なぜそんな原始的な方法で人を拒むのか。その裏にあるのは、技術的限界ではなく、もっと不快な真実だった。
「AIってなに?(2)—— 最先端AIが、単語ひとつで僕の絵本を弾いた」でお会いしましょう。
