Microsoft GraphRAG: Token使用量とコストの簡易分析


## 背景

Microsoft GraphRAGは、LLM（Large Language Model）を利用する際のToken消費量が重要であることはよく知られていますが、実際にどれくらいのTokenが使用されるのかは明確ではありません。

本記事では、サンプルテキストを基にMicrosoft GraphRAGの処理におけるToken使用量とコストを分析し、その結果を共有します。

## 前提条件

Microsoft GraphRAGでは、以下の要素がToken使用量に影響を与えます。

- **テキストのChunk分割方法**
- **抽出するエンティティ・タイプの定義**
- **Promptの設定**  
  - Entity Extraction Prompt  
  - Summarize Descriptions Prompt  
  - Community Report Prompt  

本記事の結果は、標準的な設定を反映したものではなく、一例としてご参照ください。

また、分析には **Langfuse** を利用し、Token使用量やコストを可視化しています。

---

## サンプルテキスト

以下の文章を用いて分析を行いました。

```
元宇宙科学開発機構の研究員で、ロケットの打ち上げ失敗の責任をとって辞職し、現在は父親が遺した下町の工場「佃製作所」で経営者として第二の人生を送っている 佃航平（阿部寛）。一度はあきらめかけた佃の夢であったロケット製造を、自社が開発したバルブシステムを使用し、日本を代表する大企業・帝国重工の純国産ロケット開発計画「スターダスト計画」により実現するなど、順調な佃製作所だったが…。
ある日、帝国重工の社長交代により、スターダスト計画は次回で終わるかもしれない――と帝国重工宇宙航空開発部部長の 財前（吉川晃司） から告げられ、佃はショックを受ける。ロケット製造に関わることは佃の夢であるとともに、今や「ロケット品質」を掲げる佃製作所社員たちの精神的支柱にもなっていたのだ。
そこへ追いうちをかけるように、大口取引先の農機具メーカーから小型エンジンの取引削減を告げられる。性能よりもコスト重視という考えに、技術力が売りの佃製作所は存在意義が揺らぎ始め、佃は強い危機感を抱く。
そんな中、佃製作所の経理部長・殿村（立川談春）の父親が倒れる。殿村の実家は三百年続く農家。父親の看病と畑仕事の手伝いに、週末ごとに帰省する殿村を見舞う佃と 山崎（安田顕）。トラクターを運転する殿村をじっと見て、佃はあることに気づく。それは、佃の中に新たな夢が生まれた、瞬間だった──。
```

### Chunk分割方法

```yaml
chunks:
  size: 384
  overlap: 0
```

### 抽出するエンティティ・タイプ

```yaml
- person
- technology
- mission
- organization
- location
```

### 使用するLLMとコスト設定

- OSS LLMを使用  
- 単価は `gpt-4` および `text-embedding-3-large` のPricingに基づいて算出

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3932781/fc5e8ed4-1c07-1968-8d29-622f64ae2d8a.png)


![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3932781/e49f7bdd-b06a-3135-97e2-847aaefefc3b.png)

---

## 分析結果

### 1. Create Base Text Units

- 分割されたChunk数：**2**
- 合計Token数：**577**

![Base Text Units](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3932781/7a6d4e62-b244-7ab2-1c45-505aa908b1e8.png)

---

### 2. Extract Graph

- 抽出されたEntity数：**12**
- 抽出されたRelationship数：**16**
- 使用したToken数: **16.43K**  
- コスト: **$0.57987**

![Extract Graph](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3932781/3fd733f9-2124-dfd8-252b-3ab784357d29.png)

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3932781/0f07d911-1be9-321e-030f-38d28bebc3a1.png)

---

### 3. Create Final Community Reports

- 作成されたReport数：**2**
- 使用したToken数: **7.83K**  
- コスト: **$0.28281**

![Final Community Reports](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3932781/8ec79715-f828-bce6-c678-d3186e0fe0e8.png)


---

### 4. Generate Text Embeddings

- 使用したToken数: **3K**  
- コスト: **$0.00039**

![Generate Text Embeddings](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3932781/b7a3556e-3809-4a41-bffd-6b1cada458cd.png)

---

### 5. Global Search

- 使用したToken数: **3.74K**  
- コスト: **$0.12837**

![Global Search](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3932781/3196ed88-0bc9-e93e-bf4c-76ed82aa796d.png)

---

### 6. Local Search

- 使用したToken数: **5.26K+12**  
- コスト: **$(0.17133+0.000002)**

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3932781/97dbfca1-8350-fe4a-d984-5850de01d56c.png)




---

## まとめ

| ステップ                      | 使用Token数       | コスト ($)         | その他情報             |
|------------------|---------------------------|---------------------------|----------------------------------------|
| 分割 (Base Text Units)          | N/A           | N/A           | 分割されたChunk数：2, 合計Token数：577 |
| 抽出 (Extract Graph)          | 16.43K           | 0.57987           | 抽出されたEntity数: 12, Relationship数: 16 |
| レポート生成 (Final Community Reports) | 7.83K           | 0.28281           | 作成されたReport数: 2                  |
| テキスト埋め込み (Generate Text Embeddings) | 3K               | 0.00039           | N/A                                    |
| グローバル検索 (Global Search) | 3.74K            | 0.12837           | N/A                                    |
| ローカル検索 (Local Search)   | 5.26K+12         | 0.17133+0.000002  | N/A                                    |
|**合計**                              | **36.26K+12**     | **1.16244**       | N/A                                    |


本記事では、Microsoft GraphRAGを用いたIndexおよびSearch処理におけるToken使用量とコストを可視化しました。結果はあくまで一例であり、設定やデータにより誤差が生じる可能性があります。

これからGraphRAGの導入を検討されている方の参考になれば幸いです。