6.6K Views
July 01, 23
スライド概要
Scrum Fest Osaka 2023 金沢トラックでの登壇資料です。
アジャイル実践者からの様々な質問に対して、LLM(&ChatGPT)を使って分類問題として解いた結果、日本のアジャイル開発の現状についてどのようなことが言えそうか、Agile StudioのPOとして分析してみました。アジャイルだけでなく、LLMの活用に関心のある方にもおすすめです。
本業は永和システムマネジメント http://agile-studio.jp のアジャイル実践者。副業で福井県のCDO補佐官としてDX支援やってます。
2000人との対話結果からア ジャイル開発の現状に何を 言えるのかやってみる 2023年7月1日 Scrum Fest Osaka 金沢トラック 永和システムマネジメント 岡島 幸男 with ChatGPT
こんにちは 福井県CDO補佐官 岡島 幸男 永和システムマネジメント 取締役CTO/ Agile Studio ディレクター/ 未来デザイン室 室長 福井大学 非常勤講師(ソフトウェア工学) 2
福井本社 ● 金融、医療、組込み(自動車) ● Web/Cloud、アジャイル開発 ● 社員 220名エンジニア集団 WeWork 3
Agile Studioは福井にあるアジャイル開発拠点
I love KANAZAWA !! 金沢にはご縁がある
本日やりたいこと 1. 私は、アジャイルコミュニティの一員として、みなさんと、現在の日本にお けるアジャイル開発の状況を共有したい。 2. 私は、いちPOとして、ChatGPTに代表されるLLMを活用することで、自分 だけでどれだけのことができるのかを共有したい。
アジャイル開発の現状
Agile Studio のPOとして知りたいこと ● 私は、Agile StudioのPOとして、見学者(アジャイルに関心のある層) が、どのようなことに課題感を持っているのかを知りたい。これにより、 Agile Studioのコンテンツをより良くすることができるからだ。
Agile Studio 見学とは ● 開発現場のZoom中継 ● 事例紹介 ● ディスカッション ● 1.5~2時間 ● リアル(@福井市)見学も可能 https://www.agile-studio.jp/tour
ディスカッションテーマとなる様々な質問を ● フルリモートでメンバーと活動していますが、メンバーが今やっていることとリーダーが「今やっていてほしいこ と」の差が出ています。緊急の保守対応等、急な作業も入り込んでくるからというのもあると思うのですが、どの ように状況を共有するとメンバー内でのコミュニケーション取れるか、話したいです。 ● 現場感として、従来のウォーターフォール型と大きく異った部分(メリット・デメリット) ● 開発中の予算・工数管理の方法 ● Readyな状態のPBIの記述粒度 ● 品質はどのように担保、定義しているのか ● スクラム開発における各ポジションの技量の高め方。 ● WFからアジャイルに移行した際の手順について教えていただきたい
一つ一つ分類する ● フルリモートでメンバーと活動していますが、メンバーが今やっていることとリーダーが「今やっていてほしいこ と」の差が出ています。緊急の保守対応等、急な作業も入り込んでくるからというのもあると思うのですが、どの ように状況を共有するとメンバー内でのコミュニケーション取れるか、話したいです。【人・組織・コミュニケーショ ン】 ● 現場感として、従来のウォーターフォール型と大きく異った部分(メリット・デメリット)【なぜアジャイル・得手不得 手】 ● 開発中の予算・工数管理の方法【予算・契約】 ● Readyな状態のPBIの記述粒度【アジャイル・Scrumの中身】 ● 品質はどのように担保、定義しているのか【品質】 ● スクラム開発における各ポジションの技量の高め方。【採用・育成・評価】 ● WFからアジャイルに移行した際の手順について教えていただきたい【アジャイルへの移行・定着・スケール】
結果:Agile Studio見学者の関心ごと
共有タイム ~ みなさんと一緒に分析してみたい
(追記)Discordに書き込んでいただいたこと ● アジャイル開発やスクラムの基本的な内容を知りたい人が多くて、組織に 関する内容が多いので、アジャイル開発がまだ導入されていない組織に 導入したい人が悩んで参加してるイメージが思い浮かびました ● リモートワークしかり、コミュニケーションの取り方はどの立場でも課題に 感じてるのでしょうか。割合的にも大きかったですし。 ● 計画、準備ばかりで実践できていないのではないか。
何をどうやって分析したのか
データ ● Agile Studio見学者事前アンケート ○ 対象期間は2020年8月~2023年6月、回数にして120 ○ 事前に聞いた「Agile Studio見学時に質問したいことは何ですか?」 に対する、782件の回答 ○ フォーマットは自由(短いものもあれば、超長いものもある)
ちなみに、他に分析に利用できるデータ ● メルマガ登録者の所属業界 ● ウェビナーごとの申し込みや 参加者数 ● ウェビナー終了後のアンケー ト回答 ● などなど
解きたい問題と求める精度 ● 分類問題 ○ ざっくりどのような内容が書いてあるか、分類(カテゴリ化)できればよ さそう ● 傾向がつかめる程度の精度(性能)であればよい ○ 人間の分類結果に比べて、75%程度正解でOK
まずは定番のやり方でやってみた
データの準備 ● 500件以上のデータをマーケ 担当が一つずつ分類 ● どう分類するかは、データの 内容と、やりたいこと(ビジネ スゴール)から決めていった ● 大変だったけど、これはその ままデータになる
人力による教師データの作成(ラベル付け) 一つ一つ 分類×500
学習と予想 ● 教師あり学習による分類 ○ scikit-learn + XGBoostによる Classification ○ 各質問テキストは、TF-IDF (Term Frequency-Inverse Document Frequency)にてベ クトル(数値)化する
性能(382件での検証結果) パターン1 Accuracy: 0.66 Precision: 0.68 Recall: 0.66 F1-score: 0.65 パターン2 パターン3 Accuracy: 0.53 Precision: 0.60 Recall: 0.53 F1-score: 0.54 Accuracy: 0.49 Precision: 0.49 Recall: 0.49 F1-score: 0.47
結果 ● そんなに悪くはない ○ 11クラス分類で50%程度の正確さは、ランダムより有意に性能がよい ○ 検証データによって結構性能にばらつきがある ● これ以上の性能向上が面倒 ○ ハイパーパラメータのチューニングには時間がかかる ○ 代替アルゴリズムは沢山あるが、、そこまで突っ込めない
もっと良い方法はないか ChatGPTに聞いてみる
いい感じじゃない?
検証してみよう
学習と予想 ● Scikit-LLMによるFew Shot ● 教師データはChatGPTに 作ってもらう ● GPT-4を利用
FEW_SHOT_CLF_PROMPT_TEMPLATE = """ You will be provided with the following information: 1. An arbitrary text sample. The sample is delimited with triple backticks. 2. List of categories the text sample can be assigned to. The list is delimited with square brackets. The categories in the list are enclosed in the single quotes and comma separated. 3. Examples of text samples and their assigned categories. The examples are delimited with triple backticks. The assigned categories are enclosed in a list-like structure. These examples are to be used as training data. Perform the following tasks: 1. Identify to which category the provided text belongs to with the highest probability. 2. Assign the provided text to that category. 3. Provide your response in a JSON format containing a single key `label` and a value corresponding to the assigned category. Do not provide any additional information except the JSON. List of categories: {labels} Training data: {training_data} Text sample: ```{x}``` Your JSON response: """ https://github.com/iryna-kondr/scikit-llm/blob/main/skllm/prompts/templates.py
ChatGPTに教師データのベースを作ってもらう 各ラベル3つ 程度あれば OK
検証用データの準備 人間がラベ ル付けする
性能(32件での検証結果) パターン1 Accuracy: 0.62 Precision: 0.73 Recall: 0.62 F1-score: 0.65 パターン2 パターン3 Accuracy: 0.69 Precision: 0.70 Recall: 0.69 F1-score: 0.68 Accuracy: 0.72 Precision: 0.84 Recall: 0.72 F1-score: 0.73
ビジネスゴール達成のための改善ループ 1. 評価結果を分析 a. AIと自分の違いを眺めて考えをすり合わせる b. 自分が何をやりたい・知りたいのか再検討 2. データの修正 a. 分類(ラベル)の見直し b. Few Shotとして与える件数の見直し(※ 何を訓練データ≒Few Shotとするかはランダムにする) 3. 評価 4. 1.に戻る
考えのすり合わせ
性能(71件での検証結果) パターン1 Accuracy: 0.77 Precision: 0.81 Recall: 0.77 F1-score: 0.78 パターン2 Accuracy: 0.80 Precision: 0.83 Recall: 0.80 F1-score: 0.79 パターン3 Accuracy: 0.83 Precision: 0.86 Recall: 0.83 F1-score: 0.84
結果 ● ビジネスゴールは達成できた ○ LLMとの継続的な対話(すりあわせ)重要 ○ 継続的なラベルの見直しは、性能に寄与するだけでなく、人間に新し い気づきも与えてくれる ● わかったこと ○ GPT-4はGPT-3.5に比べ人間の感覚に近い読解力を持っている ○ 処理時間結構かかる(782件 GPT-4で40分程度かかった)
(やや専門的な補足)残課題 ● 検証は複数パターン実施したが、テストはまだ足りないかも ○ LLMで汎化性能をどこまで追求すべきか… ○ 何をFew ShotするかによってLLMの回答が変わるので、どこかで固 定化すべきか…
(やや専門的な補足)改善は続く
まとめ ● LLMを活用することで手間をかけずに精度の高い分析が可能 ● ChatGPTに質問することで専門的知識を補える ● 自分がデータを使って何をしたいか、何を読み取りたいかが重要 ● 必要なことを全部自分でやれる可能性のある時代になった