💎

生成AIハッカソンに参加してジェンダー平等可視化ツールを作った話

2024/12/23に公開

この記事は、Waffle Advent Calendar 2024の23日目の記事です。


先日、Women Techmakersのプログラムの一環で開催された「She Builds AI」というキャンペーンに参加しました。このイベントは、AI、とりわけ生成AIに興味がある女性を対象としたグローバルな取り組みで、技術的なワークショップに加え、最終的にハッカソンを通じてアウトプットを行うという構成になっています。
その中で参加したハッカソンにて、Geminiを活用したジェンダー平等を可視化するツールを作成しました。
今回はそのイベントやハッカソンの内容と、作成した生成AIアプリDiversity Impact AI Toolについてご紹介します。

Women Techmakersとは?

まず、簡単にWomen Techmakersについて説明します。このコミュニティは、Googleがサポートするグローバルな女性技術者支援プログラムで、女性エンジニアや技術者を対象に、エンパワーメントや教育の場を提供しています。技術的なワークショップやイベントが頻繁に開催されており、最近ではAIや機械学習に焦点を当てた取り組みが増えています。

私自身、Women Techmakersのアンバサダーを務めていますが、このプログラムはアンバサダーだけでなく、メンバーであれば誰でも参加可能なオープンなイベントとして開催されました。

She Builds AIとは?

She Builds AIは、Women Techmakersが展開している生成AIに特化した勉強会シリーズです。
Googleの最新AI技術を学ぶとともに、それを活用したアプリケーションを開発する場を提供します。

プログラムは以下のように進行しました:

1. 勉強会シリーズ
全5回のワークショップで、GoogleのAIモデル(Gemini、Gemmaなど)やGoogle AI Studioの使い方を学びました。オンデマンドでアーカイブを視聴できるので、忙しい日々の合間でも無理なく参加できました。

2. ハッカソン
学んだ内容を元に、ジェンダー平等に関連するアプリケーションやツールを開発するオンラインハッカソンです。

ハッカソンについて

このハッカソンのテーマは、SDGsの目標5「ジェンダー平等を実現しよう」をテーマとし、以下の4つのカテゴリが設定されていました:

  1. Gender equality(ジェンダー平等)
  2. Women and girl’s safety(女性と少女の安全性)
  3. Women and girl’s healthcare(女性と少女の健康)
  4. Women and girl’s Economic Equality and Leadership(女性の経済的平等とリーダーシップ)

私は「女性の経済的平等とリーダーシップ」を選び、このテーマに基づいたAIアプリケーションの構築にトライしました。

ハッカソンに挑戦した経緯

正直、最初はハッカソンまでは参加する予定はありませんでした。しかし、締切3日前だよ!のリマインダーをきっかけに、試しに・・とChatGPTにこんな感じで聞いてみたんですね。

以下の「概要」のハッカソンに応募予定です。Best of Women's Economic Equality and Leadershipのテーマで提出したいです。私はソフトウェアエンジニアなのでコードは書けます。「日本で女性エンジニアを増やす」ためのAIアプリケーションの案を出してください。

# 概要
{ここに英語のままハッカソン概要をコピペ}

するとどうでしょう、面白そうなアイデアが山のように出てくるのです。出てきた案に対し、続けてこのように聞いてみます。

「女性のエンジニアが増えたら日本にどのような経済効果があるか?」を測定し、男性も女性も使えるようなもので代案を出して

▼回答

代案: STEMImpactAI ~STEM分野の性別を超えた平等な参加による経済効果を可視化・促進するAIプラットフォーム~

背景
日本では、STEM(科学・技術・工学・数学)分野における女性の参加率が依然として低いことが課題となっています。このような分野における性別格差を是正することは、経済的・社会的な効果をもたらす可能性があります。特にSTEM分野は経済成長の鍵となるイノベーションや技術革新の主軸となるため、性別に関係なく人材が十分に活用される必要があります。

しかしながら、企業や政府は「女性エンジニアや科学者が増えることがどう経済効果に直結するか」という証拠データを欠いています。特に、日本特有の文化や経済システムにおいて、性別の多様性がもたらす具体的な利益はどこにあるのかを明確にする必要があります。

アプリの概要
STEMImpactAIは、AIを利用してSTEM分野における性別の多様性がもたらす経済的、社会的影響を可視化し、定量的に測定するプラットフォームです。また、性別に関係なくSTEM分野に従事するすべての人がキャリアパスを設計し、どのように自分が社会や産業に貢献できるかを理解するツールとしても機能します。これにより、多様な人材が活躍することが国全体や企業、地域経済にどう貢献するかを証明し、また実際にその効果を増幅させる支援を行います。
(以下機能紹介に続く)

いやめちゃくちゃいいじゃないですか、と深夜のテンションで盛り上がってきた私、「これ普通に欲しいし」というようなフィードバックを受け、「よし、作ろう!」と思い立ったのでした。

何を作ったのか

残り3日で作れる”Women and girl’s Economic Equality and Leadership”をテーマにした生成AIアプリケーションという軸でChatGPTと議論を重ねた結果、 「Diversity Impact AI Tool」 というそれっぽいタイトルのアプリを作ることが決まりました。とはいってもUIまではさすがに手が回らず、colabでのプロトタイプ作成というところで着地しました。

Diversity Impact AI Tool

▼ Diversity Impact AI Tool
https://colab.research.google.com/github/fuzzy31u/DiversityImpactAI/blob/main/DiversityImpactAI.ipynb

Pythonもcolabも素人でありコードもChatGPTからのハリボテなのでコードの美しさには目を瞑っていただけますと幸いです

このアプリは、「経営層や上長へIT業界のダイバーシティ推進がなぜ必要か?」を話す際の手助けとなるツールを目指しています。世の中の統計データからジェンダーギャップの現状を可視化することが目的です。
例えば下記は国ごとのエンジニアリングに関わる職種のジェンダー比率になります。

国ごとのSREのジェンダー比率
国ごとのSREのジェンダー比率

国ごとのEMのジェンダー比率
国ごとのEMのジェンダー比率

国ごとのFounder/CEO/CTOのジェンダー比率
国ごとのFounder/CEO/CTOのジェンダー比率

実はこのツール、驚くべきことに私が「こういうデータを出して」と指示しているわけではなくて、「統計データからこのような可視化を行うのが良いのではないか?」というサジェストをはじめ、可視化のためのコード生成まですべて生成AIが行っているのです。

どうやって作ったのか

基本的にすべてChatGPTと相談しながら作りました。
実際のプロンプトはこんな。

(壁打ちのあと)DiversityImpactAIの方向で開発したいです。具体的な開発手順を教えて下さい
最も手軽にプロトタイプを試したいです。どのツール、プラットフォームで開発するのが良いですか?colabなど
ありがとう!1のデータ取得を自前で集めてる時間がないから集めてきてほしい
時間がないのでまずはプロトタイプだけさくっと作りたいです。colabとkaggleをどう連携させたら良いですか?
では、colab上で、どんな分析をしたいか(例: STEM分野における女性の割合と労働生産性を予測する簡単なモデル)をGeminiを使ってプロンプトで渡したいです。
ここで得られた結果をグラフなどで可視化したいです。どのようなプロンプトをGeminiに投げたら良いですか?
colab上でGeminiを使いながら対話的に分析できるDiversityImpactAIというAIモデルを構築しています。

現在下記のコードでデータは読み込み済みです。
`values_df = pd.read_csv('/content/HackerRank-Developer-Survey-2018-Values.csv')`

このあと、「values_dfのヘッダを参考に、どのような分析ができそうか?選択肢を提示するためのプロンプト」を定義したいです。コードで教えてください

いかがでしょうか。ChatGPTからの回答は割愛しますがコーディングを通じて案だしからどんどん具体的な作業になっていることがおわかりいただけるかと思います。書ききれませんがエラー時のStackTraceやエラーメッセージを貼り付けてのデバッグも行いました。
こんな感じでPythonでの可視化もKaggleもcolabも素人ながらChatGPT氏が伴走することで生成AIアプリケーションが構築できる世界線であります。

実装について

全貌はGitHubにあげたコードを見ていただくとして、ここでは掻い摘んで実装内容をご紹介します。

流れとしてはざっくり、下記です。

  1. Kaggle, Geminiなどの連携ツールの初期化
  2. Kaggleからデータセットをダウンロード
  3. 「こういうデータを使ってこういう目的で使うためのコードを生成して」というプロンプトでGeminiをコール
  4. ↑で返ってきたコードを実行

例えば3の工程では下記のようなコードを書いています。これもベースはGPTのアイデアに肉付けしているだけです。

# Retrieve the headers
actual_columns = values_df.columns.tolist()

# Add a simple explanation to construct analysis options
analysis_options = [
    "Investigate the gender gap in job roles and how gender influences job distribution",
    "Analyze the relationship between age, skill level, and gender in career progression",
    "Examine the state of engineers by country, with a focus on gender distribution",
    "Visualize the relationship between programming start age and current job role, considering gender differences",
    "Study the correlation between education level, compensation, and the gender gap",
    "Analyze the relationship between technical skills, job satisfaction, and how gender impacts both",
    "Examine how the frequency of HackerRank usage correlates to hiring outcomes, focusing on gender differences"
]

# Create the prompt. Pass the headers to Gemini and ensure the suggestions focus on gender gap analysis.
prompt = f"""
The following dataset contains the columns listed below. Based on these columns, and with a focus on gender gap analysis, please propose potential analysis options that could be explored.
Dataset columns: {actual_columns}

Dataset description:
{DATASET_DETAILS_STR}

When making suggestions, please ensure each proposed analysis option includes an examination of gender differences.
For example:
{"; ".join(analysis_options)}

"""

response = model.generate_content(prompt)
print(response.text)

成果物

こうしてどうにか提出したものがこちら。

▼作品ページ
https://devpost.com/software/diversity-impact-ai

締め切りの時間がJST明け方5時。締め切り5時間前に、よし提出しよう。と思ったものの、提出物の量の多さに唖然。なにがって、YouTubeにあげたデモ動画がマストじゃないですか。説明テキストはもちろんChatGPTに任せたものの、動画はどうしよう。

デモ動画の制作

今から英語のデモ動画なんて作れるわけが・・と諦めかけましたが、ここでまた生成AIの力を借りることに。トライしたのは下記。

  1. 操作のスクリーンキャプチャを撮る
  2. Google AI Studioにて動画を貼り付け字幕を生成してもらう(モデルはGemini 1.5 pro,flashなど)
  3. 字幕はsrtファイル形式で出力してもらい、YouTubeでのアップロード時に利用

こうして眠たい目をこすりながらどうにかできたデモ動画がこちら。

https://youtu.be/Kqjxp2PN9YA
※キャプションを有効にしてください

動画制作、YouTubeアップロードいずれも初心者のわたし、よく見るとズレたりしてて完成度には目をつむるとしても、これは生成AI登場以前は1人でできる作業じゃなかったなと。思うとものこれまた信じがたい世界線です。

ハッカソン結果

勢いで提出した生成AIアプリケーション、なんと全世界から240もの作品が提出されたそうで、結果は残念ながら受賞とはなりませんでした。基本はチームを組んで1,2ヶ月の期間を使って作り込んでるところが多いので当然の結果ではあります。

受賞した7作品

▼受賞作品一覧
https://womentechmakers.devpost.com/project-gallery?page=1

ただ綺麗ごとじゃないですがこういったキッカケでもないと開発にまで踏み切ろうと思わなかったので良い経験となりました。

まとめ

最初はよくわからないままとりあえずGeminiのワークショップがあるなーぐらいの気持ちで参加しましたが、ハッカソンというアウトプットの機会があったことで生成AIアプリ開発が血肉となったことはでかかったです。また言わずもがな、ChatGPTをはじめとした生成AIを活用することでの100人力感も改めて認識しました。
このハッカソンに提出しようと思ったら、以前であればMLエンジニアや動画制作できる人の力を借りる必要があったと思います。
なかなか腰が重い年頃になってきましたが、生成AI×ジェンダーギャップ解消 というどストライクなテーマ設定により久々に開発に没頭でき良い機会でした。

Discussion