カレーの大量調理と AI 加速装置論が近しい話だなと思った。
レシピに記載されている分量を「n倍」するような形で材料を増やし、大量調理をすることは可能なのか。この点について、こちらのブログでは以下のような説明がなされていて、この説明が「AI 加速装置論」と近しい話だなと思った。
大量調理について、本当によくある質問です。
27年間、大量調理をしてきた経験から、しかも、それが出張先の常に違った環境で行ってきた経験から、この問いについての回答は自分の中でかなり理解度が深まったものになっていると思っています。
とはいえ、正確に伝えるのは難しい。
結論は、過去の記事にある通り、2点です。
【1】誤差が出る
少量調理時には誤差だったものが、大量調理にしていくと大きな差となる。
【2】加熱の具合に差が出る
2倍量の素材を加熱するなら、火力も鍋の底面積も2倍にする必要がある。それが出来ない場合に加熱しながらの調整が必要になる。
007.2倍のカレーは2倍の材料で作れるのか? 解釈|水野仁輔
道具の「加速装置」としての効能と、無視できなくなる誤差
これは AI に限らない話であるが、道具には「加速装置」的な効能があると思っている。具体的には、「人間が特定の技能を発揮して手を動かして作業をするより、その要素を抽出した道具を使うことによって、一定の品質を持った実用的なアウトプットを即時的に出力することができる」という効能があるからだ。この「一定の品質を持った実用的なアウトプット」というところがポイントかなと思っている。別の視点だと「実用的ではあるが、無視できる誤差/デメリットを含む可能性がある」という考え方ができると思う。道具が解決する問題のサイズが小さければ、その誤差はゼロとしていいほど最小化できるが、大きい問題を解決する場合については、その誤差が無視できないサイズになり比較/検討という認知プロセスが入ってくると思う。
「スケールアウト」による品質担保と、「スケールアップ」による誤差の拡大
そもそも、プロセスや物事の規模を拡大(スケール)させるアプローチには、大きく分けて 2 つの方向性があります。一つは、同じ処理能力を持つ単位を複数並行して稼働させ、全体の処理量を増やす スケールアウト というアプローチ。もう一つは、単一のプロセスに投入するリソース(鍋の大きさや火力など)を増やし、一回あたりのアウトプット量を大きくする スケールアップ というアプローチです。
カレーの大量調理における「誤差」の話は、まさにこの 2 つのアプローチの違いとして捉えることができるのかなと思いました。
同じレシピを同じ分量で作った場合には、材料の組み合わせ的に最適な分量の調整がされているため、味わった時に香りの調整や塩分濃度の調整がパチッとはまっている状態になっています。このレシピを スケールアウト して作った場合は、問題が出にくいという話になるでしょう。
ここで言う「 スケールアウト して作る」というのは、同じレシピを複数のガス台とフライパンを使って同時に作り、それぞれの完成形をお客さんに提供することを指しています。 スケールアウト した場合には、各レシピの分量が守られ、それぞれの品質が担保された状態でお客さんに提供されるので、レシピの範囲内であれば特に誤差が出ることはないはずです。
一方で、ブログで語られていた「元のレシピの分量を倍(2倍)にした場合に問題ないのか」という話については、これは スケールアウト ではなく、単一のプロセスをそのまま拡大しようとする スケールアップ のアプローチをとる際の問題だと思っています。
- スケールアウトで解決しようとした場合
カレーを作るというプロセスが同時に並行して走っている状態なので、レシピ通りのクオリティが担保されます。
- スケールアップで解決しようとした場合
問題のサイズをそのままスケールさせることになります。そうした場合、元のレシピで想定されていた各プロセスの誤差がそのまま掛け算的に倍増してしまい、アウトプットの量だけでなく誤差も大きくなってしまいます。
誤差の「割合」自体は変わらなくても、絶対量が大きくなることで、受け手側には知覚できるほどのノイズ(品質のブレ)として現れ、結果的に問題視されるのだと思います。
AI 活用における「誤差の雪だるま」現象
これと似た話が AI でもよくあるのかなと思っていて、細かい問題を スケールアウト して AI に解決させる分については、個々の問題で発生する誤差は無視できるレベルになり、アウトプットされる出力も、あるいはアウトカムを受け取るユーザーとしても、問題ない品質が保たれやすいのだと思います。
ただ一方で、大きな課題をそのまま投げ込むスタイル、いわば AI における スケールアップ 的な解決を図ろうとすると、プロセスごとに生じる誤差が雪だるま式に、複利のような形で合算されて出てくることになります。そこで孕んでいる誤差が無視できないものとなり、「AI は使えない」とか「クオリティが低い」と言われる要因になっているのではないかと考えています。
AI 活用における「誤差マネジメント」戦略
AI の使い方が上手な人は、この特性を認識していると思っています。
小さい問題については、 AI に何も考えずパッと投げてもクオリティに問題はないというスタンスで、 スケールアウト してタスクを処理させます。一方で、大きな課題を解決しようとするときは、単なる スケールアップ で解決しようとはせず、 AI が孕んでくるであろう誤差を管理するために、大きく分けて 2 つの対処法 を状況に応じて使い分けているのではないでしょうか。
- 事前のプランニング(予防的アプローチ)
それぞれのプロセスで発生しそうな誤差を最小限にするための計画を立てる。大きな課題をそのまま扱わずに適切な粒度へタスクを分割し、最終的なアウトプットの誤差がなるべく小さくなるように設計して動く。
- 事後のフィードバック(対話的アプローチ)
全体として出てきたものを見た上で、経験的プロセス制御のように、フィードバックを与えて対話的に修正を繰り返していく(フィードバックループ)。
AI を使いこなす人は、これらの一方だけを選択するのではなく、課題の性質に合わせて両方を高度に組み合わせたり、あるいは最適な方を柔軟に選択したりしています。
そしてさらに、 AI を上手に使える人は、一連の流れで出てくるアウトプットに含まれるであろう「誤差」に対する検知能力が、そもそも高いのだろうなと思っています。この検知能力というのは、 対象領域に関する専門的なドメイン知識や、スキルの習熟度 に裏打ちされているところがほとんどになると思うので、レベルが高ければ高いほど、その誤差に対してより敏感に気づけるようになります。
その結果、誤差を発生させないようにするための設計や戦略を立てられるようになるのではないか、と考えました。
一方で、対象領域に関する専門的なドメイン知識やスキルの習熟度が低い場合、レベルが高い人が気づける「誤差」を感知しきれないという課題が残ります。そのため、 AI を使って問題解決をする際には、出てきたアウトプットをただそのまま使うのではなく、「本当に問題ないのか?」とまず疑う習慣を身につける必要があります。そして、その前提でアウトプットを見た時に、適切な批判的視点を持って AI に問いかけ、自身の理解を深めようとする 学習習慣 が非常に大事なんだなと思いました。