クラウドワークス エンジニアブログ

日本最大級のクラウドソーシング「クラウドワークス」の開発の裏側をお届けするエンジニアブログ

大規模言語モデル(LLM)を組み込んだサービスを開発しました

大規模言語モデルを組み込んだサービスを開発しました

こんにちは。クラウドワークスの自称LLMエンジニアの@ttaka_66です。今回は大規模言語モデル(以下LLM)を組み込んだサービスであるAI副業診断を開発したことを書かせていただこうと思います。 このサービスは社内で生成AIを活用するアイデアのコンテストが開催されたことがきっかけで始まりました。そのため、企画段階から開発、リリースまでに考えたことを記載いたします。

はじめに

私個人の主観的な内容(特に企画に関して)も含まれているので、その点を踏まえて読んでいただけますと幸いです。 また、Deep LearningやTransformerについては勉強中なので理解に誤りがあればご指摘ください。

労働市場の概観と副業

弊社は大きな括りとしては人材の領域の事業をしております。業界に身を置いている立場から見て、現代の労働市場では、収入を増やし、キャリアの多様性を追求し、経済的な安定性を確保する手段として副業という選択肢が重要性を増しているように感じています。企業側から見ても副業者は外部からの視点を持ち込むため、組織内のイノベーションと創造性を促進することができます。副業の需要と副業人材の拡大は、個人と組織の両方にとって新たな機会を提供しており、これらのトレンドは今後もさらに成長するであろうと考えています。

副業のきっかけを作ること

個人と組織にとって需要が高まっているにも関わらず、企業から「お願いしたい業務があるのに人員がいない」という声をよく聞きます。個人側から見ても興味があり、能力があるのに踏み切れない方が多くいらっしゃるように感じています。一因として、副業に限った話ではありませんが、インターネット上には情報が過多に存在し、何を信じればいいのか分からないという感覚に陥ることがあります。副業に関しても情報の選別が難しく、混乱を招くことが副業を始める障壁となっているように思われます。そうした方々のきっかけや出発点を提供できれば、人材の流動性を高めることができ、人と社会にとっての理想に近づけるのではと考えています。

人生の豊かさと新たなキャリア

少し副業から離れ、近年よく聞かれるキャリアの多様性(Diversity)について述べさせてください。多様性の文脈の中で自己実現ワークライフバランスのようなキーワードが用いられることが多いように感じます。これらのキーワードも多様性と連動して近年になって聞かれるようになったもので、10数年前には注目されていませんでした。背景には働くことに関しての考え方の変化があり、以前では働いていない時間の人生を豊かにするための手段として働いていたのが、近年では働いている時間を含めてトータルで人生の豊かさを最大化しようという考え方に変化しているように思います。この考え方が生まれたことは、社会でそれを許容できるようになりつつあるということで、人類にとって大きな前進であるとポジティブに考えています。その一方で、人生の豊かさは物質的な成功だけでなく、精神的充実、感情的幸福、成長、人間関係、社会的つながりなど多くの要素が含まれるので、選択肢が大幅に増えて選択が難しくなったという側面もあります。

なぜLLMなのか

一方でLLMの視点で考えてみます。まず、LLMが何か、何がLLMであるか、何がLLMでないかについて曖昧な部分がありそうなので、ここでは「プロンプトでアクセスでき、文章や特徴を生成する汎用的なTransformerベースのモデル」と定義づけさせてください。逆に、それ以外のモデルをLLMではないものとします(例えば特定のビジネスドメインに特化したチャットボット、特定の用途に利用される翻訳などのタスクに使われるような機械学習モデル)。LLMを超絶簡単に(雑に)説明すると、大量のウェブ上で入手可能なデータ、書籍等からその文章を学習し、「文章のうちの小さな要素(例えば単語など)で重み付けされた情報から次にくる要素は何か」の確率分布を作り、プロンプトを与えたときにこの確率分布から次の要素を予測しながら文章や特徴を生成しているようです。

再び新しいキャリアの問題に話を戻します。選択が難しくなったと述べましたが、これまでの選択と比較して変数が増えたが選択方法は変わっていないという仮定に基づいて、話をしたいと思います。これまでは少ない変数だったので、同じような変数の組み合わせが同様の人がいて、それをモデルケースにすることができたが、問題の新しいキャリアでは変数が多くなって掛け算すると同様の人が見つかる可能性が低くなったと考えることができます。そう考えると、各変数ごとに同じ経験や価値観を持った人はいるが、それを組み合わせを持った先人がいない、もしくはいたとしても探すのが困難ということが言えるのではないでしょうか。その場合、組み合わせの問題と置き換えることができそうです。組み合わせはどうやって見つけるのでしょうか。一つの案として、各変数ごとに同じような価値観を持つ人を探し、その人たちの考え方の良い部分を取り入れることが考えられそうです。これもいいと思いますが、先人の知恵を探し、良い部分を取り入れる作業は多くの時間がかかるものかもしれません。前述したように、LLMは先人たちが残した文章から学習をしていて、与えられた情報から確率的に文章(または文章のようなもの)を生成している性質から「探して良い部分を取り入れる」のタスクに近似していると考えることができ、出発点としては良さそうに思います。繰り返しになりますが、本記事および開発したプロダクトはある仮定を基づいて執筆、開発したもので、現時点では断定できるものではありません。キャリアと人生についての仮定を検証することが我々人材業界の意義であり、テクノロジーと社会の相互接続点を見つけ出すことが我々ソフトウェアエンジニアが事業会社で働くことの意義だと考えています。それには多くの方に使っていただいて意見をいただくことが重要であると考えているため、気軽に意見をいただけると大変嬉しく思います。

LLMを組み込んだサービスの開発

企画についての話はここまでにして、開発フェーズで得られた知見について述べさせてください。ここで述べる内容は、私個人のこれまでの開発経験と比較になります。これまでのソフトウェア開発では、比較的ゴールが明確でした。例えば、AさんからBさんに1000円入金したらAさんの口座から1000円が引かれ、Bさんの口座に1000円が加算されるといったそのルールが満たされていればよく、逆にそれが満たされていなければ成立しないといったものです。

一方で、今回取り組んだLLMを組み込んだサービスの開発ですが、初期においてはこれまでの開発と同様にあるルールベースを定義して実装することで進められました。しかし、テスト運用として社内に公開してみたところ、賛否両論ありました。具体的には、自分では考えつかないような新しい気づきが得られたというポジティブな意見がある一方で、的外れなことが返ってきたという意見もありました。この課題に対して、前述の価値観の多様性に対する問題と考え、アプローチしました。実装としては、いくつかのプロンプトを用意し、いずれかの回答には欲しい情報が含まれるであろうという考えに基づき改善しました。

LLMを組み込んだサービスの評価、改善

いくつかのプロンプトを用意することで実感として改善することはできたものの、実感だけであり、これでは本当に改善されたのか、何を持って改善されたとみなすかは言及できておらず、誤った判断をしてしまいそうです。ここでは私が思いついた限りのいくつかの改善を測定するための指標を述べますが、これについては完璧ではなく、模索段階でより測定自体の改善も今後行っていくべきと思っています。

まず、ゴールを「より多くの人に満足してもらうこと」に設定しました。ゴールを元に評価指標を考えたとき、以下の3つのアプローチを考えました。

  1. LLMで評価するアプローチ: LLMで出力された文章を別のLLMで評価するというもの。手間がかからないが、信頼性はそれほど高くないと思われます。
  2. 機械学習のアプローチ: 人間によって正解ラベルをつけたものをLLMが選択するか。最も手間がかかりますが、正解があればLLMの性能評価としては信頼できそうです。
  3. Webトラッキングのアプローチ: クリック率(CTR)、コンバージョン率(CVR)など、サービスとして意図した行動がとられたか。最もゴールに直結する指標です。

これらの全てを利用するのがよさそうというのが私の中での現時点での結論です。まずは1で大まかな評価指標の低いところを改善し、用意された文章を選択するような正解があるタスクなどは2で改善し、3でユーザーの反応を見て課題を洗い出して改善というサイクルを回すことになるのではと考えています。

利用していただく方に伝えたいこと

仕事を通じて人生を豊かにしたいすべての人に、特に副業未経験の方々に向けた新たなきっかけを提供したいと考えております。もし副業に興味を持ちながらも、未経験の領域に足を踏み入れる勇気を持てないと感じているなら、AI副業診断で未来を変えるお手伝いをしたいと考えています。また、上記のようにAI副業診断は試行錯誤の段階で、これはAI副業診断に限らず多くのLLMの利用でもより良い活用方法を模索しているように感じています。もし満足な回答を得られなければ、入力を少し変えてみて何度か試してみていただけると嬉しいです。さらに、こういう入力をしたら良い回答が得られたなど意見をいただけたら、サービスの改善に活かしていくことを約束します。一緒に新しい働き方を作っていきましょう!

こちらからAI副業診断を始められます

意見がありましたらアンケートフォームもしくはX(@ttaka_66)でいただけますと幸いです!

© 2016 CrowdWorks, Inc., All rights reserved.