Gunosyデータ分析ブログ

Gunosyで働くデータエンジニアが知見を共有するブログです。

難しい問題を分割して LLM で解くやり方

こんにちは。Gunosy R&D チームの森田です。

こちらの記事は Gunosy Advent Calendar 2024 の 2 日目の記事です。1 日目の記事は id:skozawa さんの CloudWatch Metric Streamsのメトリクスフィルタリングによるコスト大幅削減 でした。

本記事では、難しい問題を分割して LLM で解くやり方について話をしたいと思います。

背景

R&D では、LLM を社内業務の補助・改善に使うため、さまざまな取り組みを進めています。最近は指示を無視されるようなことも少なくなり、期待を超える回答を返してくれることもありつつも、LLM にとって難しい要求では期待通りの回答とまではいかず、実業務の(半)自動化につかうにはまだひと工夫必要になる場面も多いのではないでしょうか。

LLM にとってそのままでは難しい問題も、LLMにより解きやすい形に問題を分解してあげてから一つ一つの部分問題を解かせることで、うまく解ける様になる場合があります。

まずは解くべき問題を明確にする

社内業務改善のようなタスクでは、実務者のタスクの一部を置き換えて自動化したり、半自動化に向けて LLM で解ける箇所をピックアップすることになります。たとえば広告テキストを作りたいとすると、入力と出力を適切に定義することがまず第一の仕事です。

広告テキストを生成する際に入力として使える情報は何なのか、広告したい製品の製品名のみなのか、製品紹介のテキストがあるのか、過去の広告例を使えるのかといったことは問題に取り組む前に、データの質も含めてできるだけ詳細に調べておきたい情報です。生成される出力のクオリティ次第で取りうる選択肢が変わってくるため、広告テキストそのものなのか、広告テキストを考えるための表現サンプルが作れればよいのか等、業務のフローに沿って選択肢をなるべく多く想定しておくとよいでしょう。

広告生成をお題として考えてみる

それでは、実際に広告生成の問題を GPT-4o を使って解いてみましょう。まず、広告を作るための架空の商品情報も GPT に書いてもらいました。ただし、実際の製品と類似する箇所があったため一部修正しています。

製品名: 「Sugoi Pillow」
製品情報:
- 内蔵センサーで睡眠の質をリアルタイムにモニタリング
- スマホアプリ連動で硬さや高さを自動調整
- 抗菌加工と通気性の高い素材を使用
- ワンタッチで丸洗い可能
- 価格:¥9,980(税込)
- ターゲット層:20代〜40代の健康志向の方、睡眠に悩みを抱える方

この情報をもとに、1 文程度の短い広告テキストを GPT-4o に書いてもらいます。

あなたは広告ライターです。 以下の製品の情報をもとに、1行程度の短い広告テキストを5つ書いてください。

{製品情報}

実際の出力は以下のようになりました。

- 「Sugoi Pillow」で眠りの質を科学する、新しい快適さを体験しよう!
- 睡眠モニタリング&自動調整機能で、あなた専用の眠りをデザイン。
- 抗菌&丸洗いOK!清潔で快適な眠りはこれひとつで。
- スマホで簡単操作、理想の睡眠が¥9,980で手に入る!
- 「Sugoi Pillow」があなたの眠りを最高レベルに導くパートナーに。

そこそこ上手くできていて広告のテキストとしても使えそうに見えますが、画一的で LLM 的な表現が多く、聞いたことのない海外メーカーの製品紹介によく並んでいそうという印象を受けるのではないでしょうか。無からパワーのある、訴求力の高い表現を生成するのはLLMにはかなり難しい問題ですので、テキストを直接生成するプロンプトを調整するだけではコレという表現を見つけ出すのはなかなか困難と言えると思います。

というわけで、LLM に解きやすい形でパワーのある表現を生成しやすいように、問題の形を変換して分割してみます。画一的な表現を避けて感情の乗った表現を集めるため、一旦遠回りですが架空のユーザが製品を使ったコメントを生成してみます。

### ユーザーの声:Sugoi Pillowが私の人生を変えました

私は長い間、睡眠の悩みを抱えていました。夜中に何度も目が覚めたり、朝起きても体が重く、首や肩の痛みが取れなかったり。色々な枕を試してみたものの、どれも満足できるものではなく、毎晩「今夜こそぐっすり眠りたい」という願いと共に眠りにつく日々でした。

そんな時、友人に勧められたのが「Sugoi Pillow」でした。最初は半信半疑でしたが、内蔵センサーで睡眠の質をモニタリングしてくれる機能や、硬さや高さを自動で調整してくれるという説明に惹かれ、試してみることにしました。

使い始めた最初の夜、驚きました。寝返りを打つたびに微妙に枕の高さが変わり、まるで私の体を優しく包み込むような感覚がありました。そして何よりも、朝起きた時の爽快感!目覚まし時計が鳴る前に自然と目が覚め、起きた瞬間に感じたのは「久しぶりに本当に熟睡できた」という喜びでした。

さらに嬉しかったのは、専用アプリで自分の睡眠データを確認できることです。どのタイミングで深い眠りに入ったのか、どのくらいの時間熟睡していたのかが一目でわかるので、毎日の眠りの改善が実感できるのです。このデータを元に、自分の生活習慣も少しずつ見直すようになり、睡眠の質がどんどん良くなっていきました。

清潔さも抜群です。私は花粉症がひどく、枕の清潔さにはとても気を遣っていますが、この枕はワンタッチで丸洗いが可能なので、いつも清潔な状態で使えます。抗菌加工が施されている点も安心です。

今では、夜寝るのが楽しみになりました。かつてのような睡眠への不安がなくなり、朝も元気に目覚められるようになったことで、日中の集中力や活力が大幅に向上しました。「Sugoi Pillow」は単なる枕ではなく、私の生活を豊かにしてくれるパートナーのような存在です。この枕に出会えて本当に良かったと思っています。

(30代・女性)

書き出しこそ定型文っぽさが残るものの、書き進めるうちに気分が乗ってくるのか所々では定型から外れた表現がちらほらと出てきています。架空の商品ですが、ちょっと欲しくなってきました。

では、ここから広告に使えそうなパワーのある表現を抽出してみましょう。経験則ですが、LLM には生成が難しい場合でも、抽出・選択ではより条件にあったものを選べる傾向がある気がしています。

上記のユーザーの声から、広告として訴求力が高く短い表現を10個抽出してください。

上記プロンプトから生成された表現は以下のとおりです。

- 「寝返りに合わせて変化する枕、朝の爽快感が違う!」
- 「初めての熟睡体験、目覚めがこんなに気持ちいいなんて!」
- 「睡眠データで毎日の改善が見えるから楽しい!」
- 「首も肩も楽になる、体に寄り添う枕。」
- 「目覚ましより先に自然と起きる朝が来た!」
- 「丸洗いOKだから、清潔で安心な眠りをキープ。」
- 「アプリ連動で、理想の眠りを科学的にサポート!」
- 「夜中に目が覚めない、熟睡が日常に。」
- 「眠るのが楽しみになる、新しい快適さ。」
- 「Sugoi Pillowが、眠りと生活を豊かに変える!」

さてどうでしょうか、主観的な評価になってしまいますが、最初の画一的な広告テキストよりは目を引く広告テキストがちらほらと含まれているように感じます。

今回は架空の商品なので取れる選択肢が限られていますが、実際の商品であればより多くの情報を集めて利用できるため他にも色々な手段が考えられそうです。 実際の製品であれば実在するお客様の声が届いているかもしれませんし、過去に効果の高かった広告も重要なリソースです。 その一方で、実用を考えるまでには各種法令や規制・ガイドラインへの適合、その他難しい問題もまだまだ控えています。

まとめ

広告テキストの生成を題材に、問題を LLM に解きやすいように分割して解くやり方について、広告テキストの生成を題材にテキスト素材の生成と抽出の 2 段に分割する方法を紹介しました。

明日の Gunosy Advent Calendar 2024 では、takuji さんが広告キャンペーン単位 A/B テストについてお話します。お楽しみに!