LLM の効果的な社会実装 【社内生成 AI ハッカソン】
まえがき
かくかくしかじかあり、社内生成 AI ハッカソンでプロダクトを作ることになりました。ワタシ個人としては、ちゃんと LLM を使ったプロダクトになりうるものを作ったことはなかったので、そこで感じたことや思ったことを書いていこうかなと思います。
ということで、今回は珍しく社内での話を書こうかなと思ったので書くことにしました。
とは言ってもきっかけが社内というだけで、ワタシ自身は好き勝手書こうかなと思っています。
2024/06/20 更新
LLM ハッカソンを開催したことについて、会社公式の note が公開されたようです。
ハッカソンの開催経緯とか、ほかのチームの成果物が気になる方はこちらから見ていただければと思います。
今回作成したプロダクト
LLM ハッカソンで作成したプロダクトは、質問者の知識の度合いを基に発表時の登壇原稿から想定質問を考えてもらうサービスです。
この辺の細かい説明はスライドを読んだ方が早いかもしれないです。
スライドを作る際、自分で作っている分には必要なところを説明したと思っている一方で、発表をすればなんらかの質問が出てくると思うのですが、あらかじめ想定質問を自分で考えるのは難しいと考えています。
一方で、質問を考える際、質問者は自分が持っている知識をベースに質問するので、 LLM にその人の持っている知識をシミュレートしてもらうことでより的確な想定質問を検討することができます。
技術的な話
今回は下図のように、 AWS 上にリソースを展開して作成しました。リソースの展開は Terraform で行っていました。
Amazon Bedrock 上の Claude 3 haiku を使用しました。今回はスループット優先にしたので LLM の性能自体はさほど高くはないです。また、 us-east-1 リージョンでしか使えないので、面倒になって他のリソースも全て us-east-1 リージョンで作成しました。
Amazon Transcribe がリアルタイムではなく、バッチ処理になっているのは単純にリアルタイム処理を実装する余裕がチーム内でなかったためです。終了間際にワタシが言い出したことなので、実装者には感謝するしかないです。
LLM (ひいては生成 AI 全般)に対して思うこと
今回のプロダクトを作るにあたって、ワタシが意識した点をいくつか紹介したいと思います。
機能に制限を設けることで使いやすくする
ワタシ自身、生成 AI に関しては便利なものは使えばいいんじゃない?くらいのスタンスをかましています。
その上で、今の生成 AI はあまりにも汎用的すぎてどのように使えばいいのかわからず使いやすいとは言い難いのが現状なのかな、と思っています。
そこで、今回作ったプロダクトでは単純な操作で具体的な目的が伴うような機能に絞ることで扱いやすくしました。
やっていることは単なるプロンプトエンジニアリングですが、利用者はその手間に苦労することなく、今求めている情報だけを取得することができます。
生成 AI に限らずですが、サービスを作ろうと思った時に機能を制限して用途をはっきりさせることで「この目的のときにはこれを使えばいいのね」という状態にすることで使われるプロダクトになるのだと思います。
決定論的に出力されないなら決定論的じゃなくていいところで使えばいいじゃない
生成 AI をサービスとして実装しようと思っても、決定論的に出力が定まらない生成 AI をどのように使えばいいかわからず、みんなが使っているから、という理由で RAG を使うサービスであったり、 QA チャットが多く出回るのかな、と勝手に思っています。
ワタシ個人として、検索結果のフロントエンドに 生成 AI を使うのは便利な使い方ではあるものの、現時点で AI の要約によって重要な部分が削られたり、そもそも RAG で使用する検索結果の方が間違っていることもあるため、知識のリソースとしては信用できないところがあります。言い換えると、ワタシにとって検索で求めているのは決定論的な検索結果であって、その要約ではなかったのです。
決定論的に出力が定まらないのであれば、定めなくてもいいような場面で使うしかない、というのが現時点でのワタシの立場です。このことから生成 AI はそもそも不確定な概念にあたりをつけることが得意だと思っていて、より具体的に言えば、「他人の感想を想像する」「他人が抱く意見を想像する」「社会的な影響を予想する」、そういうまだ知らない事に対してあたりをつけることが得意だと思っています。
そこで、今回は発表内容に対する想定質問という未来の出来事を予想してあたりをつける、ということをやってもらいました。
「生成 AI っぽくないサービス」で他プロダクトとの差別化を図る
また、今回プロダクトを作るにあたって、「LLMを使っている」、という雰囲気にしないことを重視して作りました。そのために、想定質問者ごとに個性をつけたり、UI に配慮することで LLM を使っている感を減らしてみました。
これによって、「まるで生成 AI を使っていないけど的確に指摘してくれる不思議なサービス」の立ち位置を確立することができました。
もう少し書きたいことがあった気がしたのですが、思い出せないので思い出したらまた別の記事にします。
Discussion