「自社のプロダクトの長所を、よりAIで伸ばしていけるような開発」を目指して〜R&Dチーム 求人自動生成機能開発の裏側〜
LAPRAS社は8月3日にAI採用パートナーによるJOB(求人)自動生成機能[β版]をリリースしました。そこで今回は、LLMを活用した新機能を開発した、R&Dチームに、開発の裏側について話をきいてみました。
開発の体制について教えてください
鈴木:今回の開発は、元々「ダイレクトリクルーティングにおける採用担当の方の負担を軽減したい」という思いで社内で動いているチームがあり、そこからのアイデアで「求人を書く」という作業の負担を軽減できないかという検証を始めました。
本来はプロダクト開発は別のエンジニアチームがあるので、AIに関する部分はR&Dチームで検証した後に、開発チームにある程度固まったものを渡して実装をお願いするのですが、今回はかなりタイトな期間でサービスをリリースしたい希望があって、R&Dチームも加わって同時に検証と実装を進めました。そのため、アプリケーションの開発とAI部分のプロプティングを別部署で同時に開発し、最後に繋ぎ込むという形を取りました。
そのため、通常の開発チーム3名とR&Dチーム3名と、プロジェクトマネージャーという合計7名の体制で、3週間後のリリースを見据えて役割分担をして進めました。最初にどういうインプットがあってどういったアウトプットがあるのかというインターフェイスを決めて開発チームに伝え、モックを先に作ってしまった後に、R&DチームではAIの中身を作ってクオリティをあげていくことに集中しました。
田嶋:同時開発は大変でしたが、毎日開発チームと定例で進捗を確認していたので「こういうテーブル作ってほしい」のようにR&Dがやりやすいように、アプリ側を変えてもらうようなお願いをしやすかったのは良かったです。
開発で大変だったところを教えてください
田嶋:まずは、スケジュールが3週間とタイトだったのは、大変でした。最初の数日で「そもそもLLMでやりたいことができるのか」を調査し、その後1週目でAIが求人の項目の「何を拾えて、何を拾えないか」を確認し、その後2週目でCSMが普段求人をチェックしている観点をAIに反映し、2週目の終わりに一度CSMに実際に触ってもらいました。そこでフィードバックがあった点を3週目に対応して、無事にリリースといったスケジュール感でした。かなり短期間でやり切った印象があります。あと1週間あればもう少し落ち着いて作れたかもしれませんね。
森元:ちょっと抽象的ですが、プロンプトエンジニアリングはいつまで経っても難しいということが印象に残っています。指示の順番を変えたり、単語自体を言い換えるだけでも結果が変わってくるので、もちろんR&Dチーム内に知見はあるのですが、出力させる情報によって知見がそのまま使えないことも多く、それが大変でした。
田嶋:確かに、出力形式ひとつ取っても、他の指示と順番を変えただけで形式が崩れてデータとして使えなくなったりするので、大規模にプロンプトを変えると急にエラー率が上がってしまったりして、そこも結構大変でしたね。
鈴木:本来ChatGPTはテキストを返すものですが、それをアプリに組み込むとなるとJSON等の構造化された形式で出力してもらう必要があり、このような制約が増えることにより大変さが増したと思います。
田嶋:あとは、品質基準のようなものを定めてはいるものの、今の時点だと「LLMで頑張って自分たちが作れたところが、仕様になる」ような側面があるので、決まった期間で「どこまで自分たちが作れるかにプロダクトがかかっている」という点での大変さはありました。
開発で得た気づき・知見について教えてください
田嶋:JOB(求人)自動生成に関しては、元々はURL入力時の読み込み精度が低かったので、URLが増えればその分情報が充実していたのですが、後半で読み込み精度が上がると、かえって他のURLの情報がノイズになってしまう事例が出てきました。そのため、現在は公式にも「URLを増減させて調整してみてほしい」というメッセージを出していますが、そこの部分は知見でもありつつ、もう少し早めに気づきたかったという気持ちがあります。
田嶋:あとは、2週目の終わりに社内で触ってもらって「AIが書いた文章に感じる」というフィードバックを受けて、そこから「AIみを消す」ということに挑戦したのですが、それは面白かったですね。
鈴木:「AIみ」って定量的に表すのが難しいので、解消するのも難しく、この辺りは自然言語処理的なアプローチで森元さんに調べてもらいました。
森元:調べた結果、文章における単語数が一定(単語数にばらつきが少ない)だと、淡々とした感じが出てしまい、いわゆる「AIが生成した文章」だと感じられてしまう傾向にあるということが分かりました。意外と数値的にはっきりとした結果が出てきたので、驚きました。
田嶋:AIが作る文章は、ローコンテキストな文章になっていて、しっかりと主語が明示されて、一文も適切な長さで書かれていて、さらに一つの文が一つの意味を持つように「綺麗な」文章になるのですが、それが人間が抱く違和感の正体だと定量的に分かったのは面白いと思います。
森元:日本語としてはAIが書く文章のほうが綺麗な文章なのですが、それが逆に「人間味がない」と社内で評価されてしまったので、できるだけ文章に含まれる単語をばらけさせたり、繰り返し使われるような名詞や修飾語を減らすようにしたり、同じフレーズを繰り返させないようにしたりと、AIが作った綺麗な文章をあえて崩すための「逆ガイドライン」のようなものを作って、調整を加えました。
鈴木:「求人」は単なる事実の羅列ではなく、相手の感情に訴求するような部分もあるので、より一層「AIみ」があると違和感が出るのかもしれません。いわば、自然言語における「不気味の谷」のようなものかと思います。そのあたりの知見は、今後の開発にも生きてくると思います。
LLMの登場で、開発にはどういった影響がありましたか?
鈴木:従来のタスクごとにファインチューニングが必須だった頃に比べると、LLMとプロンプティングの登場により、検証の初期の段階で「最低でもこれ位のものはできる」という結論を出すのが早くなったと思います。
森元:以前だと「できるか」「できないか」がわかるまでに半年とか時間がかかる時もあったので...。
鈴木:そんなこともありましたね…LLMの登場後はプロンプトで命令を書くと、ある程度の成果が出ることで、「できる」「できない」が本当に数日で分かるので、できるようであればそこからリリースに向けてブラッシュアップしていく作業に移行することで、今回のようなタイトなスケジュールでのAI開発が可能になったと思います。
田嶋:「できる」となった後は、プロンプトの命令の順番や組み合わせで結果が変わってくるので、そこをパズルのように解き明かしていくイメージです。例えば、単にスコアをつけるだけの場合と、今回の求人票のように「そのまま持ってきてほしい」ものと「作文が必要なもの」場合は、命令の順番やそれぞれの処理をどういった順番で回すか等、調整をしていく必要はあります。
今後のLLM開発に向けた取り組みを教えてください
鈴木:LAPRASではこれまでもAIを用いたプロダクトや機能を開発をしてきたこともあり、ChatGPTで急激に広まった「チャットで〇〇」などといった機能よりもむしろ、従来から自然言語処理で扱われることの多かったタスクにLLMを適用することで、プロダクトの機能を進化させることに使っていくことが多いと思います。LAPRASではLLMを"エンジン"として使うことによってこれまでの自然言語処理ではできなかったことが可能となり、自社のプロダクトの長所をよりAIで伸ばしていけるような開発を目指していますし、それができるようになってきていると思います。
鈴木:もともとLAPRASはLLM登場前から自然言語処理の研究をR&Dチームでやっていたので、プロダクトに組み込む前提のAI開発に強みがあります。開発との繋ぎ込みがスムーズに行くのも、今までのプロダクト開発の経験が生きていると思います。例えば、冒頭でお話しした「先にインターフェースを決める開発」を破綻なく実施してリリースできたことも、これまでのAI開発の積み重ねがあってこその強みだと思います。
AI開発においては「作ってみて面白かったね」という状態と「顧客にプロダクトとして提供できる」という状態には、実は大きな差があります。それを踏まえてLLMを使った「実験」ではなくLLMを用いた「プロダクト開発に繋げるための検証」を、今後も続けていきたいと思っています。まだ次に何を作るのかは言えないのですが、AI採用パートナーは他にも機能のリリースも予定しているので、ぜひ楽しみにしていただければと思います!
ここまで読んでいただき、ありがとうございました!LAPRASでは今後も発信を続けていくので、ぜひnoteやtwitterのアカウントをフォローいただけると幸いです。
<この記事を読んだ方へのおすすめ記事>
<LAPRASのサービス紹介>