理系学生日記

おまえはいつまで学生気分なのか

言語化が大事なこの大生成AI時代におれたち人類は言語化ができないんだから、/grill-me で言語化していこうか

「生成AIをうまく使うには言語化が必要だ」という話、よく見聞きします。目的が曖昧なまま投げれば、出力も曖昧になる。前提を書かなければ、AIはそれらしい前提を勝手に盛ってくる。たしかにそのとおりですよね。わかるよ、わかる。

でもさ、主語がデカいけどさ、人類にさ、言語化は無理だよ。少なくとも難易度がクソ高いよ。 だってさほら、「良い感じでやっといて」っていうの横行するじゃん。「いわなくてもわかるでしょ」みたいなの頻発するじゃん。人間のコミュニケーションは暗黙の前提と空気によって成立してるじゃん。

それでさ、この大生成AI時代にさ、「言語化が必要です」と言われたところで、その言語化自体ができないから困るわけです。俺たちの世の中はさ、ノウハウで成立してるんだけど、そのノウハウを外化できてないわけ。なので、俺たちには生成AI使いこなせない。残念だね。おしまい。

てなると困るじゃん。そこで、その言語化にも生成AIを使えばいいという発想に至る。 うん、/grill-me 使ったら良いと思うよ。

「言語化が必要」という正論の先で、手が止まる

突然ですが、この生成AI時代における「言語化が必要」という話の中身は、要するに「曖昧な依頼には曖昧な出力しか返ってこない」という、ぶっちゃけた話だと思います。古き良き、Garbage in, garbage out。 生成AIだって困るよ。指示してる人が何して欲しいのかわからないんだもんな。だから、前提が抜けてたらAIはそれらしい前提を勝手に補わざるを得ないし、制約が伝わっていなければ現実には使えない案を出すしかない。そりゃそうだよ。伝えられてないんだから。この辺の話は以下のQiitaに書いた。

だから生成AIを使いこなすには、人間が何をしたいのかを言葉にする力が必要になります。 プロンプトが大事だ、という話の正体もだいたいここにある。もはや現代のAIには魔法の言い回しが重要なのではない。自分が何をしたいのか、何に困っているのか、どんな制約の中で判断したいのかを、AIが扱える形に落とす必要がある。

問題は、その言語化自体が難しいことだよね。

たとえば仕事をしていると、言葉にならないもやもやが大量に発生します。自分には何らかのミッションがある。重要なのは分かっている。やった方がいいことも、なんとなく頭の中にはある。けれど、いざ進めようとすると手が止まる。

何から始めればいいのか。どこまで自分で決めるのか。誰を巻き込むべきなのか。最初の成果物は何なのか。何を確認できれば前に進めたと言えるのか。そのあたりが曖昧なまま、時間だけが過ぎる。

単なる怠慢ではないよね。やる気はある。考えてもいる。なのに前に進まない。自分の中にある違和感や判断基準や懸念が、まだ扱える言葉になってない。もやもやする。 でも言葉にできてないから、誰にも相談できないよね。なんとなく迷うんだもんね。わからないことがわからないよね。

ぼく自身、これを何度もやってます。お前もあるだろ。メンバーからレビュー観点を教えてって言われて、レビュー観点を書き出せねぇよってときとかさ。 人類には無理なんだよ、お前の頭の中を書き出せってヤツはさ。

暗黙知という名前のついた、言葉になっていない違和感

この「自分の中にはあるが、まだ手順・判断基準・制約・次の行動として言葉になっていない知識」のことを、ここでは雑に暗黙知と呼ぶことにします。

たとえば、「この進め方は危ない気がする」「たぶん最初に握るべき相手がいる」「このまま資料を作っても刺さらない気がする」「本当は小さく検証した方がよさそうだ」。こういう感覚は経験に根ざしたものではあるんですが、そのままでは扱いづらい。 言葉になっていない違和感は、改善対象になりません。チケットにもできない。レビュー観点にもできない。次の行動にも落とせない。未来の自分に再利用することも、他人に共有することも難しい。

必要なのは、暗黙知の外化です。外化とは、自分の中にある未整理な感覚や経験則を、他人や未来の自分が扱える言葉に変えること。気分を整理することではなく、次に使える判断基準、確認すべき論点、着手できる初手に変えることです。

で、ここで生成AIなんだけど。 生成AIの価値は、言語化済みの依頼を処理することだけではありません。まだ言葉になっていないものを、言葉にするところにも生成AI使えるんだよ。

/grill-me は、自分の中の方向性を取り出す道具

そこで効くのがMatt Pocockの /grill-me です。最近ずっと使ってるわ。

名前だけ見ると、厳しく詰められるもの、詰問されるもの、というイメージが先に立つかもしれません。でも実際に使った感覚は、かなり違う。これは自分を質問責めにする道具ではなく、自分の中にある方向性を取り出すための道具です。 質問に答えていくと、自分が何に引っかかっていたのかが見えてきます。

たとえば「情報が足りない」と思っていたのに、/grill-me に答えていくと、意思決定の範囲を自分で決めていなかっただけだと気づく。「やることが多すぎる」も、最初の検証単位を切れていなかっただけ。「誰かに相談しないと進まない」さえ、聞かれてみると、何を相談すべきかが自分の中で言葉になっていなかった、というだけの話だったりします。

/grill-me は、外から正解を与えてくれる道具ではありません。いや、それもできるんだよ。リポジトリの中からいろんなヒントを拾ってくれたりする。 でもむしろ、自分の中にあるが、まだ言葉になっていない方向性を取り出してくれるんだよね。質問に答えることで、自分の考えの輪郭が少しずつ見えてくる。何を避けていたのか。何を怖がっていたのか。どこから始めればよいと本当は思っていたのか。

成果物の前に、もう一段ある

生成AIによる生産性向上というと、コードを書く、設計書を作る、文章を生成するという成果物の生成に目が行きやすい。もちろん、それも価値があります。とってもね。でも、それだけではない。

本当に大きいのは、成果物を作る前の段階だと思うんだよね。だってさ、人間は外化がとっても苦手なんだもの。何を作るべきか。何を決めるべきか。何を確認すれば前に進めるのか。自分は何に引っかかっているのか。そこが言葉になって初めて、仕事は前に進む。

/grill-me は、答えを確定する道具ではなくて。自分の中にある方向性を取り出し、着手できる初手に変える道具です。

SKILLを作るときも、まったく同じことが起きる

これはSKILLを作るときにも、同じ構図で起きます。 SKILLを作りたい、という感覚は普通にあります。こういう作業をAIに任せたい。この種類のレビューを安定してやらせたい。この調査を毎回同じ観点で進めたい。この文書化作業をもっと再現性高くしたい。そういう目的は、頭の中にちゃんとあります。

ところが、それをどうSKILLとして書くのか、となると急に難しくなる。 何を入力として受け取るのか。何を出力すべきなのか。作業の途中で何を確認すべきなのか。どの判断はAIに任せてよくて、どの判断は人間に返すべきなのか。成功した出力と失敗した出力を分ける基準は何なのか。 「分かっているつもり」だったのに、書こうとすると手が止まる。

これは、「AIにプロセスを実行させる」以前の問題です。そもそも、自分の中にあるプロセスや判断基準が、まだ外に出ていない。自分では分かっているつもりでも、AIが再利用できる形にはなっていない。

だから、SKILLを書く前にも /grill-me を使えばいい。

  • どのような目的のSKILLを作りたいのか
  • そのSKILLが成功したと言える状態は何か
  • 入力として何を渡す想定なのか
  • 出力の品質は何で判断するのか
  • AIに任せてはいけない判断は何か

こんなのがまぁ必要になるわけだけど、/grill-me こんなSKILLを作りたいんだよね っていえばさ、質問と回答の繰り返しの中で、勝手に引き出してくれるよ。自分の頭の中にあった作業観が外に出てくるよ。 最初から完成度の高いSKILLを書く必要はなくて。まず、自分がその作業をどう捉えているのかを取り出す。そのために /grill-me を使います。

これは、AIに作業を代行させる話であると同時に、AIに渡すための言葉をAIと一緒に作る話でもあります。

成果物の前に、まず /grill-me にかける

Martin Fowlerは"Interrogatory LLM"というエントリで、LLMにいきなり複雑なタスクを実行させるのではなく、LLM自身に必要な質問をすべて聞かせるという使い方を紹介しています。

It should ask me all the questions it needs to create this appropriate context.

そのコンテキストを作るために必要な質問は、すべてLLM自身に聞かせるべきだ

複雑なタスクをAIに任せるには、多くの文脈が必要になります。どう見えるべきか。どう実装されるべきか。どんな外部システムを見るべきか。そうした文脈を人間が最初から長い文書として書くのではなく、LLMにインタビューさせて引き出す、という発想です。

これは、今回の話にかなり近い。AIに渡すべき文脈は、最初からきれいに存在しているとは限りません。人間の頭の中に散らばっている。経験、違和感、判断基準、優先順位とかさ。それを質問によって外に出す。

一方で、Matt Pocockの"9 Things People Get Wrong With /grill-me and /grill-with-docs"は、/grill-me を使ううえでのブレーキも教えてくれます。

These skills aren't meant to replace engineers - they're designed to aid you.

/grill-me はエンジニアを置き換えるものではなく、支援するものだ、ということです。さらに、質問だけで答えが出る問いと、プロトタイプや実装がないと判断できない問いを分ける必要がある、という指摘もあります。「このルートのURLはどうするか」のような問いは質問だけで詰められますが、「このUIはどのような使い心地であるべきか」のような問いは、作ってみないと分からない。

これは大事な制約です。/grill-me は万能ではありません。実装してみないと分からないことはある。UIを触らないと判断できないこともある。性能を測らないと決められないこともある。質問だけで世界のすべてを決めようとすると、ただの過剰な計画になります。

それでも /grill-me は強い

でも、それでも /grill-me は強いよ。

実装や検証へ入る前に、自分が何で立ち止まっているのかを取り出せるからです。何を試せば前に進むのか。最初に誰へ何を確認すべきなのか。どこまでを最初の一歩とすればよいのか。そういう初手を取り出せる。 ミッションを前にして動けない。SKILLにしたい作業はあるが、目的や手順をうまく書けない。反省はあるが、次の行動に落ちていない。 そういうときは、いきなり成果物を作らせるのではなく、まず /grill-me にかければいいです。

最後に

「言語化が必要だ」という正論は、最初から最後まで変わりません。変わったのは、その言語化を誰が手伝うか、という一点だけです。 ミッションの前で固まったら。SKILLを書こうとして手が止まったら。白紙のエディタを前に唸るのではなく、/grill-me を開けばいい。 生成AIを使いこなすには、たしかに言語化が必要です。ならば、その言語化から、生成AIに手伝わせればいい。

…ここまで書いて思うけど、この「言語化が大事だが、その言語化自体が難しい」という主張、自分はちゃんと言語化できていたんでしょうか。できてるわけないだろ。このエントリも /grill-me 使って骨子を書いたわ。