はじめに
ご無沙汰しています。転職会議事業部でエンジニアリングマネージャーと開発者をやっている落合です。もうすっかり春ですね。 さて、つい先ほどプレスリリースも発表されましたが、本日転職会議にてChatGPTのAPIを利用した企業口コミの要約コンテンツを掲載する新機能の試験提供を始めました。
リリース速度優先でまだスマホでしか見られないのですが、こんな感じの画面になっています。もしご興味あれば、スマホでこちらからアクセスしてみてください。
さまざまなみなさんのご協力もあり、ChatGPTのAPI公開、検討開始から3週間ぐらいでなかなかいい感じに形にできそうだぞと喜んでいたのですが、リリースが見え始めた開発後半の夕方、機能リリースと合わせた広報戦略を練っていた企画陣から恐ろしい無茶振り相談が飛んできました。
企画のみなさん「機能リリースと一緒にプレスリリースも出したいし、より広く知ってもらうために打てる手は全部打ちたいなぁ」
企画のみなさん「そや!技術ブログにも今回の開発経緯をなんかいい感じに書いてよ!祝日は休まなあかんし、そうなると締め切りはだいたい2営業日後やな!!!!!!!!」
相談された時のワイ
そんなわけで、16日の夜に「広く知ってもらうためとか言われても一体何書きゃいいんだよ…」と震えながらこのブログを書いています。
今回は、API公開から約3週間という比較的短い期間でどのように開発を進めていったのか、企画から開発までのプロセスや舞台裏でのこぼれ話・笑い話を共有したいと思います。
このブログ記事をご覧になっていただくことで、
- 今回の口コミ要約機能によって提供したい価値
- リブセンスや転職会議事業部における企画の進め方
- 特にリブセンスにおける企画+エンジニアのキャリアパスの1つであるプロダクトエンジニアの一例
- ChatGPT(gpt-3.5-turbo)の実力
などを理解する助けになれば幸いです。
企画提案に至った背景
さて、今回リリースした口コミ要約機能ですが、転職会議では前々から「転職会議は大量の企業口コミを保有しているが、それらを効果的かつ現実的なコストで文書要約したコンテンツを提供することはできていない」という課題感を持っていました。
転職会議としては転職希望者のみなさんが個々の価値観とその変化に寄り添った仕事選びを実現するために適切な情報が提供できれば、それこそ手段はなんでも良いと考えています。
極端な話全ての口コミを読んでもらわずとも、企業のことが理解できるコンテンツ(例えば、今回試験提供を開始した要約など)が提供できるならば、それは素晴らしい価値提供になると考えています(もちろん、この要約を読んでさらに個別の口コミを読んでみたいという気になってくれるとさらにうれしい)。
ただ、従来の自然言語処理の技術では大量の口コミを要約するには非常に高いレベルの専門性と高い運用保守コストが必要になることが想定され、現実的ではありませんでした。
しかしながら、昨年末から世界中が注目しているChatGPTを開発しているOpenAIが今月3月2日にChatGPTのAPIとAPIの利用規約やポリシーの提供を開始してくれたことで、状況が大きく変わりました。
API公開とともに提供開始されたgpt-3.5-turboモデルは文書要約などのタスクにも優れた性能を発揮しながら、1000トークンあたり$0.002という非常に安価な料金体系で利用することが可能です。
このモデルを使えば今まで実現手段がなく諦めていた「全ての口コミを閲覧しなくても、口コミの内容を要約された文章を見ることでその企業の特徴を理解するコンテンツ」を現実的なコストで何万社分も作成できるようになるかもしれません。
また、OpenAI社のChatGPT APIの公開は非常にインパクトのあるニュースであり、実用性があるコンテンツをいち早くリリースできれば高いブランディング・PR効果が期待できるという思惑もありました。
そこで今回は、
- ChatGPTを使えば、現実的なコストで各社の口コミ要約コンテンツを作成することができるのではないか
- 生成した口コミ要約コンテンツを提供することでユーザーが閲覧している企業の評判・特徴を効率的に理解するコンテンツとして活用でき、サイト価値の向上につながっていくのではないか
という2つの仮説を検証するため、ChatGPTのAPIによる口コミの要約文生成のR&Dとメディアへの掲載、SNSやPRサイトでの広報といった施策を展開することになりました。
少し話が逸れますが、リブセンスにおけるプロダクトエンジニアは、企画から分析、実装・運用・PRまで、プロダクトに関わることならなんでも担当します。必要とあらば、機能を実現するためのチームの取りまとめ、関係各所への連絡、新技術の調査・活用から、問題の大きい部分であればアーキテクチャの刷新からインフラまで手を出すこともあります。
今回のような新技術を応用した実装からPRまでをやってしまう、エキサイティングな役割でもあり、自分はとても楽しく仕事をしています。この記事はプロダクトエンジニアの仕事の一例として、裏話なども踏まえてお話できればと思います。
企画の進め方
企画資料を作る
とはいえ、1つの機能を作るにあたっては、多くの人とコミュニケーションを取ってリリースまで進めていく必要があります。ただ単に「ChatGPTで口コミ要約コンテンツを作ったらおもしろそうじゃね?」からさらに踏み込んで、この企画がユーザーや転職会議という事業にどのような価値をもたらすのかを説明し、関係する人たちが同じ方向を向いて仕事ができるように言語化しなければいけません。
ということで、まずは簡易なものでもいいので企画資料を作るところから始めました。
私が所属する転職会議のチームでは企画を興すにあたって、一定のテンプレートが用意されています。転職会議では以下のような形式で企画案を整理することが多いです。
- 目的
- これを実現することで得られるユーザー価値
- 転職会議では、主に実際にサイトに訪問してくれる求職者の方をユーザーと呼ぶことが多いです
- これを実現することで得られるビジネス価値
- 転職会議はビジネス構造上、ユーザーと実際にお金を払ってくれるクライアント(人材紹介企業様など)が異なり、場合によっては求職者とクライアントの利益が相反するケースもあるため、あえて別々に分けて書く形になっています
- これを実現することで得られるユーザー価値
- 検証したい仮説
- 事実
- 仮説構築に至った前提、関係者全員が異論のない事実情報について記載します
- 仮説
- 今回のリリースによって検証したい仮説を文章の形式で表現します
- 実際には、この仮説とひもづくターゲット指標の変動を見て仮説があっていたか検証しています
- 事実
- 施策がターゲットとする指標
- 上がることを想定している指標
- 逆に、下がる可能性があり注視しなければいけない指標
- A/Bテストの条件
- A/Bテストの対象とするユーザー
- テスト期間
- A/Bテストのパターンの振り分け方法
- テストパターンの採用条件
- テストの中断条件
- 下がってほしくない指標が想定以上に下がってしまい事業部の業績目標の達成に悪影響を与えるパターン
- 企画者提案仕様
- 誰がどんなことをできるようになるか
- ワイヤーフレームやデザイン
- 開発者とのリファインメントでデザインが変わる可能性もあるので、最初の時点で常にできているわけではない
- 新たに計測したい指標
上記を基本的にはテンプレ通り(必要ならば項目を追加)して作成することで、エンジニアからするとDesign Docに近い効果が期待できると思っています。言い換えると、このフォーマットに沿って企画内容を詰めていくことで、企画を考える上で考慮すべき複数の論点を細かく分解し、なるべく抜け漏れがない形で考慮することが可能になります。
また、ドキュメントという形で残ることで、企画者以外のメンバーも企画者の思考過程や、企画自体がどこまで考えられているか(記載がない箇所は考えきれていないところであることがわかる)を詳細に把握することができ、関係者が議論をする上で大きく役に立ちます。
月並みですが、エンジニアと企画者のコミュニケーションの際に「価値・目的」の項目に着目して、企画者が考えているよりシンプルで工数のかからない仕様を提案したり、法務や広報の担当者に企画の基本コンセプトを理解してもらうことに利用したりすることが可能です。
ChatGPT APIの検証
今回はOpenAIのAPIを社内でも初めて使うということで、上記の企画資料を必要最低限記載して法務にOpenAIの利用規約のチェックを挟んだ後、実際にOpenAIのAPIを利用した検証を始めました。
OpenAIのAPIドキュメントを読み込んだ後、インターネット上の記事をいくつか要約させてみたり、実際の口コミデータを渡して内容を要約させたりすることで、徐々にデータの前処理・後処理やAPIに渡すプロンプトを洗練させていきました。
その後、まずは複数社分口コミの要約結果のサンプルを作成することができたため、要約内容について社内でフィードバックを募り、「完璧ではないものの大きな違和感はない」という要約結果になっていることを確認した上で本格的に複数の関係者を巻き込んで企画を進め始めました。
検証結果の所感
少し本題から逸れますが、気になる方も多いと思うのでChatGPTのAPIの検証結果にも触れておきます。
上述の通り、私たちが解きたいタスクである、複数の口コミの要約という面では当初想定以上に的を射た要約文が生成できました。現時点でOpenAIが提供しているモデルは複数種あり、特にテキストの要約精度においてはtext-davinci-003が優れているとドキュメントには記載がありますが、今回の要約ではコスト面や要約の精度のバランスを鑑みてgpt-3.5-turboのモデルを使っています。
ただし、現在のgpt-3系のモデルでは一度のリクエストで利用できるトークン数(日本語だと振れ幅があるのですが、大体750文字で1000トークン程度でしょうか)が最大4096トークンとなっているため、より多くの口コミを要約するには工夫が必要です。
また、プロンプトで特に指定しないとAPIから返却される要約結果のフォーマットや文体がかなりブレるため、よくあるプロンプトのベストプラクティスに従ってOne-shotやFew-shotのプロンプトにしています。
他には、いくら手元にあるテキストデータを用いた要約タスクであると言っても、モデルが架空情報や捏造情報を作る可能性もあるため、その点も対策をしておく必要があります。この点は、「良い点が書かれていないときは『良い点なし』と出力してほしい」とプロンプトに指示を与えたり、そもそも口コミが少ない項目については要約情報を生成させないようにしたりすることで対策しています。
最後に、現時点では社内検証に留めていますが、gpt-4モデルによる要約結果も調査しています。同じ入力内容(プロンプト+口コミ)でも、gpt-4とgpt-3.5-turboでは要約内容にかなり差が出るようで、gpt-4の方がgpt-3.5-turboより読点(、)を使わず短文で要約してくる傾向がありそうです。gpt-3.5-turboのときはまとめただけ感もあったので、要約した感はgpt-4の方が強そうですね。
【gpt-3.5-turbo】を利用したリブセンスの口コミ要約結果の一例
現在掲載されている弊社の口コミ要約結果(URLはこちら)が下記となります。
【良い点】
- 営業職にやりがいを感じる人には向いている。
- 挑戦することができ、キャリアアップも可能。
- 裁量が大きく、のびのびと働ける環境。
- 成果が給与に反映されるため、やりがいがある。
- 社員同士の人間関係が良く、研修制度や福利厚生が充実している。
- 年収が良く、手当が充実している。
- 雰囲気が良く、挑戦させてもらえるため、成長しやすい。
- 資格取得支援があり、自己研鑽のモチベーションが上がる。
- スキルアップやキャリア開発に力を入れており、教育体制が整っている。
- 社内の雰囲気が相談しやすく、人間的にも成長できる。
- リモートワークへの環境整備が早かったため、社員の働きやすさがある。
- 産休・育休が取りやすく、男性も積極的に取得している。
【改善点】
- 給料が仕事に見合っていないと感じる人もいる。
- 業務の締め切りギリギリになって業務変更があることがある。
- PDCAを回しながら仕事を進めることが多いため、定められた手順に従って作業をこなすような人には向いていない。
- 配属先によっては報われない、事業成長ができていないという声がある。
- 評価制度が不透明で、給与面での評価が不満。
- 幹部の理想が高く、社員が振り回されることが多い。真面目に働く社員は評価されにくく、辞める傾向がある。
- 年収が上がりにくく、永年勤続や退職金の制度がないため、技術職は転職しやすい。現場にもっと還元してほしい。
【gpt-4】を利用したリブセンスの口コミ要約結果の一例
【良い点】
- 責任ある仕事を任せてもらえる
- 社員同士の仲が良い
- 社内勉強会が積極的に行われている
- さまざまな思考のエンジニアと働ける
- 人事制度が社員の声を反映し、アップデートされている
- 成果が給与に反映され、やりがいがある
- 人間関係が良く、チームワークが良い
- 研修制度が充実している
- 福利厚生が充実している
- 会社の経営方針が明確である
- 賞与が毎年出ている
- 育休等の理解があり、男性の育休取得率が高い
【気になること・改善点】
- 福利厚生が整っていない
- 部署によって業務内容が異なり、やりがいが変わる
- アプリ開発に注力していない可能性がある
- 給与の査定理由が不透明で、評価が上司の裁量によることがある
- 残業が多い
- 部署によって年収が上がらないことがある
- 評価制度が不透明で、昇進や昇給が分かりにくい
- 配属先によって報われないことがある
- 業界の中で年収が低い方であることがある
関係者と調整する
いくら企画者がエンジニアでも、いざ機能を開発・リリースするとなると複数の関係者の力を借りなければなりません。特に今回はOpenAI社のChatGPT APIの公開は非常にインパクトのあるニュースであり、実用性があるコンテンツをいち早くリリースできれば高いPR効果が期待できる(裏を返すと競合サイトに先んじたい)という目論見もあったため、普段より多くの人を巻き込みスピード重視で作業を進めていく必要がありました。企画者の人や、プロダクトオーナー、果ては事業部長にもお手伝いいただきながら、最終的には以下のようなチーム・職種の人たちと共同してリリースまでこぎ着けています。
- カスタマーサポート
- コーポレート部門(法務)との連携
- 法務・弁護士先生
- 利用規約のチェック
- 各種リスクの把握
- 広報
- プレスリリースのスケジュール調整・内容の調整など
- デザイン
- ワイヤーフレームから表示用デザインの作成
- プレスリリース用のOGP画像の作成
- 企画
- 詳細な要件定義
- SNSでの広報戦略の構築
- 開発者
- 詳細な要件定義
- 検証したい内容・提供したい価値提供のための最適な設計・仕様策定
- 今回はスピード重視で対応してもらいました
当たり前ですが、こういったコミュニケーションを取るにあたっても企画書が書かれていることはコミュニケーションを円滑に行うために重要です。みんな、企画書を書こう。
開発
普段は開発手法としてスクラムを採用している(=スプリント中のタスク割り込みは原則認めない)転職会議ですが、今回は時流に沿ったPRを行いたいというビジネス側の要望も踏まえて、スプリント中に割り込みのタスクとして開発を依頼しています。
元々企画グループのみなさんが、転職会議のミッションとプロダクトゴールの関連性、KPIツリーを整理して図表にまとめてくれており、今回の企画とそれらとの関連を説明した上でスプリント中のタスクや優先度を変えさせていただいたのですが、この辺りはもう少し丁寧にコミュニケーションをすべきだったと反省しています………。
開発者のみなさんには、今回のリリースが検証とリリース速度優先という意図をくんでいただき、まずはデータの取得の仕方などもなるべく工数がかからない方式で実装していただいた結果、約5営業日で実装を仕上げてもらいました(本当にありがとうございます&スクラムマスターなのに率先して割り込みタスクを入れてしまってすいませんでした………)。
ただ、検証のために負債を前借りしている状態であるという認識もあるので、今回の口コミ要約機能がサイト価値を大きく高めるような裏付けが取れたならば、保守運用も踏まえたあるべきデータの持ち方・アーキテクチャに再設計していきたいと考えています。
リリース!
イマココです。検討開始からリリースまでのタイムラインを表にすると以下のような感じです。関係者のみなさんにご協力いただきAPIリリースから14営業日という、規約の確認やキャンペーン設計まで含まれることを考えるとかなりの短期間で対処していただきました。
日付 | できごと |
---|---|
2023-03-02 | OpenAI社、ChatGPTのAPIを公開 |
2023-03-03 | 企画書作成 |
2023-03-07 | 規約の法務チェック完了。gpt-3.5系のモデルの検証開始 |
2023-03-09 | 口コミ要約結果のプロトタイプを作成し社内公開 |
2023-03-10 | 社内のフィードバックを確認しリリースに向けて本格始動 |
2023-03-13 | 開発チームと要件や仕様を調整。同時並行してデザインや広報との調整、SNSでのキャンペーン戦略の検討開始 |
2023-03-17 | 粗方の開発完了。プレスリリース原稿を大部分作成完了 |
2023-03-23 | 機能リリースと共にPR発表、SNSでのキャンペーン開始 |
ちょうど1Qの締め日が近づいてきたりで、事業部一同でどのような結果が出るか震えています………w
今後やりたいこと
まずはリリース後の反応や各種指標を見てからですが、効果が上々であるようなら、以下のようなことを進めていきたいと思っています。
- 今後の運用保守性を意識した機能の再設計、業務フローの確立
- 最新版のChatGPT4のモデルを利用したさらなる検証
- さまざまな切り口での追加機能の検討
- 内容はリリースされてからのお楽しみということで
こぼれ話
真面目な話ばかり書いてもうめんどくさくなってきたので、以下突貫の開発過程でのこぼれ話、NG集をご紹介したいと思います。
ChatGPTポンコツ事例その1: えっと、どちら様でしょうか………?
やべえよ………。 こんなのバレたら村上太一シャッチョにフィッシュミールに加工されちまうよ………。
ChatGPTポンコツ事例その2:えっと、どちら様でしょうか………??
村上シャッチョ………野球選手になっちまったよ………w
なお、村上太一という名前の野球選手は存在しないらしいです。
2人はなかよ死
リリース4営業日前に降ってわいた広報・キャンペーン系タスクを押し付け合うに力を合わせて立ち向かう筆者と担当POの熱い絆をご紹介します。
切羽詰まってこのブログ自体をChatGPT4で書かせようとして無事死亡した話
謝辞
最後になりますが、今回はありとあらゆる関係者に、「なる早で」を使い倒して短期間でのリリースにご協力いただきました。
このブログの最後を借りて、改めて感謝を述べさせてください。
- CSのみなさん
- エンジニアが言われて一番イラッとなるセリフ永遠のNo.1「なるはや」にマジでなる早対応いただきありがとうございます!
- 法務のみなさん
- 会社のありとあらゆる部署から来る依頼をさばかれている中、迅速に規約チェックしていただきありがとうございました!
- 開発者のみなさん
- SMが差し込み持ってくるというイカれムーブをかましてすいません………。
- MVP設計で迅速にリリースできたのはみなさんのおかげです。本当にありがとうございます。
- 広報のみなさん
- 「すいません!当初想定よりリリースもっと早くできそうなのでプレスリリースのスケジュール合わせられませんか?」とか言った事業部担当者にはイラッときますよね。気持ちはよーくわかります。相談してきた奴の名前は落合っていうらしいですけど。
- 広報のみなさんとの初仕事でこんな無茶振りをやらかして大変申し訳ございません。ご対応いただきありがとうございました!
- 企画のみなさん
- 持ち込み企画にもかかわらず、優先度が高いと判断するや仕様設計から交通整理からアピール戦略まで一緒に考えてくれてありがとうございます。
でも2営業日でブログをとにかくどうにかなんとかせよって言ったことはまだ許してません
- デザイナーのIさん
- 毎度毎度突発的なお願いにも関わらず爆速でデザインを作成いただきありがとうございます………!
宣伝
そんな転職会議では、現在も大絶賛エンジニア募集中です!
リブセンスのエンジニアは4つのロールを定義しており、今回のように決められたものを作るだけでなく、企画段階から携わりたいというエンジニア(プロダクトエンジニア)もいれば、自分自身でアーキテクチャ・言語・FWなどの技術選定を行いながら技術で事業に貢献したい、技術の話で盛り上がりたいという技術志向のエンジニア(テックリード)まで幅広く募集しています。
候補者向けの資料もありますので、ご興味あればぜひご覧ください!