はじめまして、データサイエンティストのだーさん (@Dakuon_Findy) です。2025年の1月よりファインディのプロダクトマネジメント室 GenAIイネーブルメントチームにデータサイエンティストとして参画しております。このチームはLLMを活用した各種プロダクトの強化や内部の業務オペレーションを改善するチームです。
近年、GitHub Copilotをはじめとしてソフトウェア開発へのLLM導入が進む中で、Cognition社が開発したDevinというAIエンジニアが注目を集めています。Devinは、指示に応じてコードを自動生成し、PR作成や修正提案までこなす自律型AIです。
現在、Findy開発チームにおいてフロントエンド開発の支援にDevinを活用していますが、データサイエンティストとしてはデータ分析におけるDevinの力も気になるところです。
そこで、本記事ではWine Qualityデータセットを用いて、Devinに探索的データ分析 (EDA) を実施させた実験の結果を紹介します。Devinはデータをどのように解析し、どんな洞察を導き出したのか? そして実際に使ってみて感じた強みや課題とは?AIを活用したデータ分析の可能性を一緒に探っていきましょう。
ファインディ社内での活用状況
現在Findy開発チームではフロンエンド業務に対するDevinのオンボーディングが進んでおり、オンボーディング初期の4日間で26件のPRを作成し、そのうちの20件がマージされるという結果を出しています。
実際に使用したメンバーに感想を尋ねたところ、どのPRもジュニアレベルの内容で、微修正のみで済んだPRが4割、それを踏まえてプロンプトを調整した結果、2割が承認のみで十分なPRとなり、残り4割はある程度の修正が必要だったとのことです。
4割には依然として伸びしろはあるものの、「ミドル〜シニアエンジニアの業務の中で発生したジュニアレベルの作業をDevinに任せることで、ミドル〜シニアエンジニアの時間をより高度な作業に充てることができる」というメリットがあるように個人的には感じています。
詳細は別の機会により詳しい記事を掲載する予定ですので、続報をお待ちください。
DevinにWine QualityデータセットのEDAをやらせてみた
実験の概要
データ分析には前処理、可視化、モデリングなど多くの工程がありますが、今回はデータ分析の最初のステップとなるEDA(Exploratory Data Analysis)でDevinを試しました。1
EDAとは「データの傾向や特徴をざっくりと掴むための分析」です。機械学習のモデルを作る前に「このデータにはどんなパターンがあるのか?」「おかしなデータ (異常値) はないか?」といったことをグラフや統計量を使って可視化し、「このデータで本当に良いモデルが作れそうか?」を見極め、「もし作るならばどのようにすればよいか?」を探るために行います。
データにはWine Qualityというワインの品質に関するデータセットを使いました。
Cortez, P., Cerdeira, A., Almeida, F., Matos, T., & Reis, J. (2009). Wine Quality [Dataset]. UCI Machine Learning Repository. https://doi.org/10.24432/C56S3T.
データサイエンスの分野では初学者の学習目的でよく利用されるデータセットがあります。Wine Qualityデータセットもその1つで、赤ワインと白ワインの品質に関するデータが含まれています。ワインのアルコール度数や糖分などの成分と、品質スコア (0〜10点) が記録されています。成分の情報から機械学習モデルを作り、品質を予測できるか?などを試すことができるデータセットです。
実験の手法
まずDevinにWine QualityデータセットをUC Irvine Machine Learning Repositoryからダウンロードするように指示を出しました。
Devinにはこの画像のようにSlack経由で指示を出すことができます。DevinにSlack経由で開発を任せる際のざっくりとした流れは次の通りです。
- SlackからDevinに指示を出す
- Devinが指示を受けて自動でコードを生成し、GitHubにPRを作成する
- DevinからPRを作成した旨通知が来る
- ユーザがレビューし必要なら修正する。LGTMならmainブランチにマージする
- 1〜4を繰り返し、開発を進める
- 作業が終わったら、DevinにSLEEPコマンドを送り、休止させる
- 休止後にDevinがここまでの指示をもとにナレッジを提案し、ユーザはそれを採用するかどうかを選択したり文言を変更したりする
7で採用するナレッジによりある程度Devinの行動をコントロールできます。私が事前の実験で与えたデータ分析に関するナレッジは次の3点のみで、それ以外はほとんど指示していません。データのダウンロードほか残りの作業はDevinが自律的に判断し行いました。
- PRやSlackのやりとりは日本語で行うこと
- 図のキャプションなどは日本語で書くこと (事前にIPAexフォントをDevinに与えています)
- 図示のカラーパレットには
viridis
を使うこと
結果の考察
こちらがEDAの結果の抜粋です。実際にDevinが書いたコードの詳細はリンク先のPRで確認でき、作業後にDevinが書いたEDA結果の考察や今後の課題はリンク先のIssueに記載されています。2
個人的な感想ではありますが、未知のデータに対するEDAであり人間による詳細な指示を加えていないことを踏まえると、非常に良い結果が得られていると感じました。
特に作業後に書かせたIssueには、どのデータをどの表現形式で図示するかといった意図や、EDAの結果わかったデータの特徴、次のステップについての提案が書かれていました。
今回はあえて白ワインと赤ワインを分けずにデータを取ってくるよう指示を出したのですが、Devinは可視化の際にワインの種類を意識して1つの図に分布をまとめて表示することで特徴量の分布の違いを比較しやすくしていました。結果としてデータ数の不均衡や品質に影響を与える特徴量の違いを把握できており、次のステップとして赤ワインと白ワインを分けた分析・モデリングを提案するなど、適切なデータ分析に基づく判断ができていると感じました。
今回の実験で感じたDevinの伸びしろは次の2点です。いずれも修正するよう依頼するとすぐに修正され、ナレッジにも追加されたため今後は改善される可能性があります。
- 特に初回の可視化において日本語フォントが正しく設定されていない図を作成することがある
今回の実験で新たに追加されたナレッジ修正依頼の図 ナレッジへの追加 - 作成した図をコミットしたりSlackに送付したりせず、ユーザが確認できないことがある
結果をGitHubにpushするよう依頼 それに対するDevinの返答 - 実験段階ではSlackに画像が直接添付されることもあったため、ナレッジを追加すれば改善できそうです。
- 事前実験でcsv等のローデータはGitHubにアップロードしないように指示しており (ライセンスの問題等を孕むため)、ローデータが推測できる図版もGitHubにpushすべきでないとDevinが判断した可能性もあります。
まとめ
Devinの活用はまだ発展途上ですが、データ分析の新しいアプローチを試す機会にもなります。
GenAIチームは、上記のように生成AI技術による技術検証を行ったり、プロダクト実装も担い全社において生成AI利活用を推進するチームです。 こうした取り組みから、プロダクトのエンハンスと事業成長に貢献することを目指しています。我々の取り組みに興味を持っていただいた方は、是非一度カジュアル面談でお話しましょう!
- これは初めての実験ではありません。寺本さんの記事を拝読していたところ、secretsに近い文字列をpushしてしまうというセキュリティリスクが存在することがわかっていたため、この記事を書く前に何度か実験とセキュリティに関する注意事項を提示し、セキュリティに対するナレッジをある程度学習させてから記事を書いています。セキュリティに関してはどうやら徐々にアップデートされているような記事も寺本さんより出ていますので今後の動向を注視したいところです。↩
- PRやIssueに記載されていたDevinの実行リンクを公開に際して削除している都合でPRがeditされていますが、実行リンクの削除以外の変更はありません。↩