誰もがデータエンジニア：AI 時代に必要なスキルセット

# 1. はじめに

この記事で、なぜ「誰もがデータエンジニア」と謳っているのかをご理解いただければ幸いです。

- データエンジニアリング：データを活用するために、データを整理する。また、データの収集と利用を可能にするシステムの構築等を行う。
- データエンジニア：データエンジニアリングを実践する人

と定義します。

対象者は、AI 業界だけでなく、**働くすべての人**です。


# 2. データエンジニアの要素が全員に求められる時代

データエンジニアリングは、現代のデータ駆動型社会において欠かせない要素です。ビジネスの意思決定、プロセスの最適化、顧客体験の向上など、さまざまな分野でデータは中心的な役割を果たしています。

## 2-1. “これまで”と”これから”のデータエンジニアリング

少し誇張した表現をしますが、私は現在におけるデータエンジニアリングを以下のように考えています。

- これまで：人がデータを扱いやすい環境を作る
- これから：上記に加えて、**AI が働きやすい環境を作る**

「AI が働きやすい環境を作る」の中に「AI が理解しやすいようにデータを蓄積・整理する」という要素があり、この要素が記事のタイトルにつながっています。

## 2-2. “これまで”と”これから”の AI

- これまで：構造化された大量のデータを　AI に学習させて、学習済みの AI を業務フローに入れるという手法が一般的でした。
（※現在も使います。キーワード：ファインチューニング）
- これから：特に生成 AI が活用される事例では、構造化された大量のデータを **AI に学習させることなく、既存のデータベースや情報ソースから関連情報を動的に取得し**、それを基に生成する手法が注目されています。
（キーワード：RAG (Retrieval-Augmented Generation)）

## 2-3. ここまでのまとめ

- AI が理解しやすいデータを蓄積していきましょう
- AI が理解しやすいデータの一部は、誰でも作成可能です




# 3. データエンジニアリングの民主化：全員が持つべきスキル

ここからは具体例をもとにどのようなデータエンジニアリングを実践すればよいか説明します。

## 3-1. “人とのコミュニケーション”と”AI とのコミュニケーション”を切り分ける

人とのコミュニケーションでは、以下のような資料を用いるケースが多いと思います。

- 意味が伝わるような必要最低限の文章
- 視覚的に理解しやすいように図やグラフを用いる

例：弊社の AI 開発事業部の営業資料の一部

![スクリーンショット 2024-06-07 13.16.38.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/605917/7705eb78-68c9-aa6d-0e07-2c063a7068c1.png)

AI とのコミュニケーション
GPT-4o に画像とともに理解度をチェックしましたが、完璧には理解（情報検索）できていません。
弊社の AI 開発内製化支援は、PoC・本番開発・運用フェーズを対象としています。

![スクリーンショット 2024-06-08 1.09.14.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/605917/672facbd-79c1-8d15-08f7-e571d2cbd6dd.png)

※ そもそものボディの構成が悪い可能性もありますし、今後モデルの性能が上がることで理解できる可能性はあると思います。

この程度の理解で良い場面もあると思いますが、**より業務に特化した使い方をする場合には、この AI 側の理解（情報検索）不足により回答精度が不十分となり使えないケースが出てきます。**



## 3-2. AI とのコミュニケーションにも使えるようにドキュメント化する

AI（言語モデル）は、構造化された入力を受けるとより正確に応答します。現時点では視覚的な図を直接理解することはできませんが、図の構造や内容をテキストで説明することで理解が深まります。Mermaid 記法や他のテキストベースの図表記法を理解し、それに基づいて図の構造を把握できます。これにより、図の情報を視覚的に整理することが可能です。

資料を作成する際には、弊社では以下プロセスを経ます。

1. 目的を確認
    - 資料の目的整理
    - 相手が望む情報の仮説立て
2. 情報を整理
    - 必要な情報の項目を洗い出し
    - 情報を整理・調査
    - 調査内容の構造化
3. ストーリー作成
    - 相手に何を伝えたいか整理
    - ストーリーとなるように並び替え
    - メインメッセージを作成
4. 骨子作成
    - アジェンダ・メインメッセージ等の箇条書き
    - ボディの構成を検討
5. スライド作成
    - 資料作成
    - 視覚的な理解補助のための肉付け

この**各プロセスにおけるアウトプットを AI でも理解できる形でドキュメント化し、蓄積することで、AI とのコミュニケーションにも活用できる**ようになります。

例えば、3-1 のケースに以下のような情報を補足してみます。

人からすると理解しずらいと思いますが、AI はこちらの方が理解しやすいのです。

```: mermaid 記法でダイアグラムを AI に補足する
graph TD
    subgraph A[AI導入の流れ]
		subgraph A1[企画]
	        A11[AI活用企画]
        end
        subgraph A2[開発]
            A21[PoC（概念検証）]
            A22[本番開発]
            A23[運用]
        end
		    A11 --> A21 --> A22 --> A23
    end

    subgraph B[内製化の支援メニュー]
        B1[AI活用企画内製化]
        subgraph B2[AI開発内製化]
	          B21[伴走支援パターン]
	          B22[開発先行パターン]
        end
        A1 --> B1
        A2 --> B2
    end
```
AI は以下の情報を理解します。
やっぱり人とのコミュニケーションではわかりずらい見た目です。

```mermaid
graph TD
    subgraph A[AI導入の流れ]
		subgraph A1[企画]
	        A11[AI活用企画]
        end
        subgraph A2[開発]
            A21[PoC（概念検証）]
            A22[本番開発]
            A23[運用]
        end
		    A11 --> A21 --> A22 --> A23
    end

    subgraph B[内製化の支援メニュー]
        B1[AI活用企画内製化]
        subgraph B2[AI開発内製化]
	          B21[伴走支援パターン]
	          B22[開発先行パターン]
        end
        A1 --> B1
        A2 --> B2
    end
```

結果

![スクリーンショット 2024-06-08 1.30.46.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/605917/5fe911bf-eaee-da9c-741f-b39fa4f1215a.png)

しっかりと資料作成側の意図が伝わっています。

## 3-3. ここまでのまとめ
- 人とのコミュニケーションと AI とのコミュニケーションを切り分けましょう
- 両者に使えるようなドキュメント化を意識することで、AI 導入時のハードルが下がります。
    - まずは、Markdown 記法によるドキュメント化から

## 3-4. 補足1
実際に RAG システム開発で、AI の回答精度 90% を達成しなければならない PoC がありました。
回答精度とは、人間が期待する回答結果（AI のアウトプット）を得られるかどうかの指標です。

結果（ケース　50 個）

|ドキュメントの構造化|回答精度|
|---|---|
|未構造化（社内文書をそのまま使用する）|53%|
|構造化|90%|

その他、以下のようなドキュメントの構造化以外の調整も行いましたが、**もっとも精度に影響を与えたのはドキュメントの構造化でした。**

- モデル選択：GPT3.5, GPT-4
- チャンクの調整：（★ここに構造化が大きく影響しました）
    - チャンクサイズ
    - オーバーラップ
    - 構造化データの Markdown 区切り
- プロンプトエンジニアリング（質問の仕方）
- 検索方法：
    - ハイブリッド検索
    - セマンティックランカー
- 回答生成方法
    - stuff
    - map_rerank
    - etc...

## 3-4. 補足2：その他 AI が理解しにくいドキュメント例

### 色分けで示されているもの

例：業務 A の対象日：ハイライトがある月・水・金

![schedule.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/605917/3d55eaab-cc38-3e2a-7e20-8534cf5b1195.png)

構造化前：カレンダーで青く塗りつぶされたものを認識しながらも正しく回答できない

![スクリーンショット 2024-06-08 2.28.54.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/605917/ca9bb9d0-2d82-e18d-1543-206966990af2.png)


AI 用に構造化するなら

```markdown
- 業務 A の対象日
    - 2024 年 6 月：毎週月・水・金
```

### 特定の情報を組み合わせるもの

例：表には記載されていないが、AZ-305 を取得した者は　3 つを合計した 4 万円が支給される
※ 弊社の制度とは関係ありません

![スクリーンショット 2024-06-08 2.17.11.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/605917/6410c881-eafd-d884-b570-fb2b18063280.png)

構造化前：他の情報を知らないので足し算できない

![スクリーンショット 2024-06-08 2.29.09.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/605917/b3d57619-ad24-8dc9-4471-39dce8faf126.png)


AI 用に構造化するなら

```
## 資格取得支援に関する褒賞金について

### 資格名と褒賞金
- Azure Fundamentals (AZ-900): 1 万円
- Azure Adminstrator Associate (AZ-104): 1 万円
- Azure Solutions Architect Expert (AZ=305): 2 万円

### 特記事項
- Azure Adminstrator Associate (AZ-104)
    - Azure Fundamentals (AZ-900)1万円、Azure Adminstrator Associate (AZ-104)1万円を申請することで、合計 2 万円の褒賞金が支給されます。
- Azure Solutions Architect Expert (AZ=305)
    - Azure Fundamentals (AZ-900)1万円、Azure Adminstrator Associate (AZ-104)1万円、Azure Solutions Architect Expert (AZ=305)2万円を申請することで、合計 4 万円の褒賞金が支給されます。

```

# まとめ

この記事では、現代のデータ駆動型社会においてデータエンジニアリングの重要性が増していることを説明しました。データの整理と活用、ドキュメント化の習慣、AIに適した構造化の重要性を強調し、具体的な手法を紹介しました。

- 人とのコミュニケーションと AI とのコミュニケーションを切り分けましょう
- 両者に使えるようなドキュメント化を意識することで、AI 導入時のハードルが下がります。
    - まずは、Markdown 等によるドキュメント化から


# その他こちらも合わせて紹介させていただきます
**仕事の対話を AI でハックする考え方とプロセス 〜 AI と協働できる人材へ 〜**

https://speakerdeck.com/yoshizaki/shi-shi-nodui-hua-wo-ai-dehatukusurukao-efang-topurosesu-ai-toxie-dong-dekiruren-cai-he