今回は2023年になってから数多くのお問い合わせを頂いている、
文章生成AIの構築に関わるお話をいたします。
扱う題材は、“キャリア採用(転職活動)における自己PR生成” としました。
例えばこれを転職系の事業として扱う場合、転職したいと思っている人材側のスキルセットを入力することで、自動で自己PR文章を作成するというサービスになることが想定されます。
上記テーマで、文章生成AIでビジネスを行う場合にどのようなアプローチが必要になるのかイメージを掴んでいただければ幸いです。
特に後半では、将来的にどのような要因によって品質の差が生まれるのかについても述べています。
また、以下の用語紹介を見ていただければわかりますが、AIについて詳しくないよという方向けのチュートリアル記事でもあります。
【用語紹介】
・プロンプト:AIに”こういう文章を作ってください”とお願いする指示文章
・GPT: 文章生成に特化したAI、日本語だけでなく他言語やプログラムのコードなどを出力することもできるがこの記事では日本語を出力
・ChatGPT: 最近流行りの賢いGPT、この記事の範囲ではGPT=ChatGPTと思っていただいても差し支えないです
まず、以下の例から始めていきたいと思います。
GPTを使用して文章を生成する場合には、プロンプトと呼ばれる指示をAIに与える必要があります。
以下の例では、1つ目が我々が用意したプロンプトで、2つ目が生成された自己PR文章になります。
(生成された自己PR文章は長文なため、読みやすさのために一部省略します。)
あなたはIT企業で働きたいプログラマーです。以下に自己PRを作成してください
私の強みは、問題解決能力やコーディングスキルにあります。また、協調性やコミュニケーション能力も高いです。これらのスキルを活かし、チームでの開発やコミュニケーションを円滑に行うことができます。
私は常に新しい技術やトレンドに興味を持ち、自己学習に励んでいます。また、プロジェクトにおいても、積極的に新しい技術を導入し、より高度なソリューションを提供できるように努めています。
さらに、私はユーザーのニーズに合わせた柔軟なソリューションを提供することに強い関心を持っています。ユーザーフレンドリーなアプリケーションやシステムの開発を通じて、ユーザー体験を向上させることを目指しています。
自己RPではそれなりに十分アピールはできていますし、誰でも使えるようなフレーズで応用性もありそうです。
その一方で、なんとまぁ、ありがちな感じで物足りなさを感じますね。
採用されるために興味を持ってもらえるかどうかで言えば、あまり質が良いものとは言えません。
質を上げるためには、どうすればいいでしょうか?
今回はペルソナをより詳細化するアプローチを採用してみたいと思います。
つまりは、もっと詳細にどのような人物なのかプロンプトで指示したいと思います。
また、転職先で希望する職種についても合わせて情報を与えてみましょう。
あなたはIT企業で働きたいプログラマーです。新しい職場ではReactを使用してフロントエンドの開発をしたいと思っています
。また、あなたはPythonを使用したプロダクトを3年間開発してきた経験があります
。以下に自己PRを作成してください
私は、常に新しい技術に興味を持ち、最新のWeb開発技術にも精通していることを重視しています。フロントエンドの開発については、Reactを中心に学習を進めています。Reactは、コンポーネント指向のアプローチや仮想DOMを使用することで、スピーディーで動的なWebアプリケーションの開発を可能にしてくれます。私は、Reactを使用して、よりモダンで効率的なWebアプリケーションを開発するために献身的に学習しています。
また、Pythonを使用したプロダクト開発にも経験があります。Pythonに関する深い知識と経験を持っていることで、フロントエンドからバックエンドまでの技術についても熟知しており、フルスタックでの開発が可能です
。Pythonを使用して、Webアプリケーションの開発やAPIの設計・実装などを行ってきました。
追加のペルソナとして、プロンプトではPythonの使用歴を3年と設定しました。
これによってバックエンドの経験があることを生かして、フルスタックな開発ができることをアピールしていますね。
一つ目に生成した自己PRと比べてグッと人物像の解像度が上がりましたし、キャリア採用により適した形になってきました。
次は試しに、バックグラウンドが異なるペルソナで自己PRを生成してみましょう。
例えば以下のように半導体設計者からフロントエンジニアへ思い切って転身したいケースを取り上げて見ましょう。
あなたはIT企業で働きたいプログラマーです。新しい職場ではReactを使用してフロントエンドの開発をしたいと思っています。また、あなたは半導体設計を10年間行ってきました
。以下に自己PRを作成してください
私の半導体設計の経験は、技術的な問題に対する解決策の見つけ方や、細かいディテールに注意を払うことができる能力を身につけました。これらのスキルは、プログラミングにも非常に役立つと考えています。例えば、Reactのようなフロントエンド開発では、細かいディテールに注意を払う必要があります。また、半導体設計のような複雑なシステムを扱う経験は、プログラムの設計やアーキテクチャの理解にも役立ちます。
私は、フロントエンドの開発においてReactを使用することで、スピーディーで効率的なWebアプリケーションの構築が可能になると考えています。これにより、ユーザーエクスペリエンスの向上やビジネス上のメリットを提供することができます。
うーん…頑張って作った感があり、やはりどこか無理を感じさせる文章になっています。細かいディテールへの注意力を強調されてもなかなか響かなく、やはりキャリアにギャップがありすぎて転職は難しいのでしょうか?
さて、ここで魔法のコトバを一つ紹介します。
“ステップバイステップ” です!
以下が使用例となります。
あなたはIT企業で働きたいプログラマーです。新しい職場ではReactを使用してフロントエンドの開発をしたいと思っています。また、あなたは半導体設計を10年間行ってきました。この経験を活かしながらステップバイステップにメリットを挙げながら
、以下に自己PRを作成してください
Reactは、現代のWebアプリケーションに欠かせない人気のあるJavaScriptフレームワークです。Reactを使うことで、高品質で使いやすいWebアプリケーションを開発できます。私はこのフレームワークを熟知し、熟練したReact開発者としてのスキルを磨くことを目指しています。
また、私は半導体設計の経験をフロントエンド開発に生かせると考えています。私は、論理回路設計の概念を理解しているため、Webアプリケーションの設計においても、データのフローと処理の最適化に重点を置くことができます。これにより、Webアプリケーションのパフォーマンスを最適化し、高速かつスムーズなユーザーエクスペリエンスを提供することができます。
2段落目が面白く、「論理回路設計の概念を理解しているためWebアプリのパフォーマンスを最適化し、スムーズなUXを提供することができる」という記載が出てきました。
ここで注目していただきたいのが、我々が行ったことはプロンプトに“ステップバイステップにメリットを挙げながら”という記述を追加しただけです。
たった一言この表現をいれるだけで、非常に説得力のある自己PR文章が生成できるようになりました。
このようにプロンプトを改善することで生成される文章の品質を向上させる手法を、
プロンプトデザイン(通称 プロンプティング) と呼びます。
上記のように指示の方法をちょっと変更するだけで生成される文章が改善される上に、プロンプトは私達が使用する自然言語(日本語)で柔軟に指示できるため、あらゆる可能性を秘めています。
過去に流行った自然言語処理AIと比較してみましょう、例えばBERTなどが挙げられます。
こういった事前学習モデルでは最適化させたいドメインごとに1.データを沢山用意して、2.GPU(行列計算ユニット)を用意して、3. ファインチューニング(モデルの追加学習)を行うことで品質を高めてきました。
一方で、最近流行りのChatGPTなどでは1.プロンプトデザイン、だけで最適化が十分なケースが出てきます。
特に数十万円以上するGPUが必要ないことはお財布に優しい上に過去のAI開発のノウハウはあまり必要がないため、多数の人があれやこれやと試してその知見を共有しあっていることがChatGPTが話題になっている要因の一つであるといえます。
以上がプロンプトデザインについてのご紹介でした。
プロンプトデザインを作り込んでいくことで、文章生成AIの品質を高められることが伝わったかと思います。
読者の皆様におかれましてはご満足いただけましたでしょうか?
… 満足してしまいましたか?
実は先程作成した自己PR文章、まだまだ改善できる可能性があります!
我々が先程作成した自己PRですが、本当に好印象なのでしょうか?我々素人が勝手に判断してそんな気がしているだけではないでしょうか?
また、社風や業界によって好まれやすい自己PRは変わらないと、本当に断言できるのでしょうか?
特に、製造業などの多人数が関わり合うため保守的・協調的であることが求められやすい業界と、ベンチャー企業のように強い主体性が求められる企業では、必要とされる人材の傾向がガラッと変わることが想定されます。
残念ながらこの場で該当するデータを保持していないため上記の仮説を検証することは叶いませんが、例えば特定の企業に対して複数の自己PR文章を活用したときの書類審査の合否結果を教師データとして扱うことで、企業ごとにウケの良い自己PRを作成する、ということが可能になるかもしれません。
上記のケースでは従来のAI開発で行ってきたようなファインチューニングが必要になります。
このファインチューニングでは”Xという企業”に対して”{突破, 不採用}”の情報を埋め込んだプロンプトを与えたときに、”その自己PR文章”が生成されるように学習を行います。(実際には先述した例のスキルセットや経歴などの情報も合わせて入力する必要があります。
これによって”Xという企業”で”突破”というプロンプトを与えたときに、その企業に対してウケのいい”自己PR文章”が生成できるという理屈になります。
また上記に加えて、企業Xという表現を特定の法人名で表すだけでなく、業界や法人規模、所在地、IT企業であれば技術スタックなどの変数に落とし込むことによっても、より柔軟に学習していくことができそうです。
上記で示したようにファインチューニングを行うことで、プロンプトデザインよりも品質の高い文章生成AIが構築できる可能性がでてきます。
また、特にプロンプトデザインで実現できる範囲では、最初のうちは先行者利益があるかもしれませんが、時間が経つとコモディティ化しやすい(レッドオーシャンになりやすい)面があります。
従って、事業化を目指す企業においては、競争に晒されやすい領域であることを理解しつつ、どのように差別化を図っていくのかが求められます。
とはいえ、まだまだ開拓されたばかりの領域ですので、まずは自社事業での応用可能性について見定めていければ十分でしょう。
本稿では転職活用における自己PR文章の生成について取り上げ、品質の高い文章生成AIについて必要なアプローチをご紹介いたしました。
特に、効果的なアプローチとして順番に、
という関係があることを示しました。
また、長期に渡って本当に品質の良い文章生成AIを構築するためには、以下の2要素が必要であることを述べました。
特にファインチューニングについては従来のAI開発のような学習処理を行う必要があり、専門性の高いスキルとノウハウが問われます。
自然言語処理を専門とするSAI-SHIKIでは、文章生成AIについても開発を承っております。
また、自然言語処理に関する総合的なコンサルティングも提供してございますので、自社事業の課題と解決策がまだピンときていない段階からご相談いただくことができます。
自社の事業でうまく文章生成AIを活用できないか模索している方は、以下の「お問い合わせ」からご相談のご予約をいただければ幸いです(弊社のご紹介資料の請求もこちらから行っていただけます)。