0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

⑥OpenStreetMapから交通流予測モデルを構築し、異なる道路ネットワーク間転移へ挑戦する ~複数道路ネットワークの同時推論を試す~

0
Posted at

OpenStreetMapから交通流予測モデルを構築し、異なる道路ネットワーク間転移へ挑戦する

第6回 複数道路ネットワークの同時推論を試す (Batch LoRA Inferenceを参考に)

この記事でわかること

  • 複数道路ネットワークのトークン列を連結し、一回のTransformerで同時推論する方法
  • EdgeLoRAで提案されている Batch LoRA Inference の考え方を交通流予測へ応用する方法

目次

  1. はじめに
  2. 複数Adapterによる同時推論
  3. 実装
  4. 実験条件
  5. 推論結果
  6. Batch LoRA Inferenceとの比較
  7. 考察
  8. まとめ

1. はじめに

本連載では、OpenStreetMapとUXsimを利用して交通流予測モデルの構築を進めています。

第1回では、OpenStreetMapから道路ネットワークを取得し、UXsimを利用して交通流データセットを作成しました。

第2回では、Graph EmbeddingとTransformerを用いた交通流予測モデルを構築し、

過去1時間
↓
未来1時間

の交通流予測を行いました。

第3回では、浅間下交差点周辺で学習したモデルを利用し、ノード数の異なる川崎市立幸高校周辺の道路ネットワークへの転移学習を試しました。

第4回では、複数の道路ネットワークが一つのTransformerを共有するマルチネットワーク交通予測モデルを試作しました。

そして第5回では、浅間下交差点周辺と川崎市立幸高校周辺のデータを用いてShared Transformerの共同学習を行いました。

今回は第5回の研究で得られた2つの学習済みAdapterとShared Transformerを用いて、複数道路ネットワークを同時に推論できないかを検討します。

着想の元になったのは、EdgeLoRAで提案されている Batch LoRA Inference です。EdgeLoRAでは複数のLoRA Adapterを利用するリクエストを一度に処理することで推論効率を向上させています。

  • 参考:”EdgeLoRA: An Efficient Multi-Tenant LLM Serving System on Edge Devices" https://arxiv.org/abs/2507.01438
    本研究ではこの発想を交通流予測へ応用します。

具体的には、

浅間下ネットワーク
+
川崎ネットワーク

のトークン列を連結し、一回のShared Transformer推論で処理できるかを検証します。

2. 複数Adapterによる同時推論

第5回では、浅間下交差点周辺と川崎市立幸高校周辺のデータを用いて Shared Transformer の共同学習を行いました。

このときの推論は、

浅間下
↓
Shared Transformer

川崎
↓
Shared Transformer

のように、それぞれ独立に実行していました。

一方、近年の大規模言語モデルの分野では、一つのベースモデルに対して複数のLoRA Adapterを適用する Batch LoRA Inference が研究されています。EdgeLoRAでは複数のLoRA Adapterを利用するリクエストをまとめて処理することで推論効率を向上させています。

本研究ではこの発想を交通流予測へ応用します。

具体的には、

浅間下ネットワーク
122×12 = 1464 tokens

川崎ネットワーク
126×12 = 1512 tokens

を生成し、

浅間下トークン列
+
川崎トークン列

を連結して、一回のShared Transformerで推論を行います。

ただし単純にトークンを連結すると、

浅間下のトークン
↓
川崎のトークンを参照

川崎のトークン
↓
浅間下のトークンを参照

という Cross-Network Attention が発生する可能性があります。

そこで今回は、

浅間下 → 川崎

川崎 → 浅間下

の Attention を禁止する Network Isolation Mask を導入し、

個別推論と同等の結果を維持したまま Batch Inference を実現できるかを検証します。

図1に今回の推論構成を示します。

図1 推論の構成

3. 実装

第5回では、道路ネットワークごとに独立してShared Transformerを呼び出していました。

浅間下
↓
Shared Transformer

川崎
↓
Shared Transformer

今回は、EdgeLoRAで提案されている Batch LoRA Inference の考え方を参考に、一回のTransformer推論で複数道路ネットワークを処理することを試みます。

まず各道路ネットワークに対して Graph Embedding と Position Embedding を適用し、トークン列へ変換します。

token_s = temp_s.reshape(
    batch_size,
    122 * self.con_length,
    self.n_embd
)

token_k = temp_k.reshape(
    batch_size,
    126 * self.con_length,
    self.n_embd
)

浅間下交差点周辺は

122 × 12 = 1464 tokens

川崎市立幸高校周辺は

126 × 12 = 1512 tokens

となります。

これらを連結し、一つの入力系列としてShared Transformerへ入力します。

token_all = torch.cat(
    [token_s, token_k],
    dim=1
)

連結後の系列長は

1464 + 1512 = 2976 tokens

となります。

しかし、このままでは

浅間下のトークン
↓
川崎のトークンを参照
 
川崎のトークン
↓
浅間下のトークンを参照

という Cross-Network Attention が発生してしまいます。
そこで Network Isolation Mask を導入しました。

NS = 122 * self.con_length
NK = 126 * self.con_length

mask = torch.ones(
    NS + NK,
    NS + NK,
    device=self.device
)

mask[:NS, NS:] = 0
mask[NS:, :NS] = 0

このマスクにより、

浅間下 → 浅間下 ○

川崎 → 川崎  ○

浅間下 → 川崎 ×

川崎 → 浅間下 ×

となり、道路ネットワーク間の相互参照を禁止します。

最後にShared Transformerの出力を元の位置で分離し、それぞれの道路ネットワーク固有のFully層へ入力します。

x_s = x[:, :1464]
x_k = x[:, 1464:]

out_s = adapter_s.fully(x_s)
out_k = adapter_k.fully(x_k)

これにより、一回のTransformer推論で複数道路ネットワークを同時に処理できるようになります。

4.実験条件

第5回で共同学習した Shared Transformer を利用し、Batch Inference を行いました。

実験には、

  • 浅間下交差点周辺(122ノード)
  • 川崎市立幸高校周辺(126ノード)

の2つの道路ネットワークを利用しました。

推論時には、

浅間下トークン列
1464 tokens

+

川崎トークン列
1512 tokens

を連結し、

2976 tokens

の系列として Shared Transformer に入力しました。

また、単純なトークン連結では道路ネットワーク間で相互に Attention が発生するため、Network Isolation Mask を導入しました。

表1に実験条件を示します。

表1 実験条件

項目 内容
対象ネットワーク① 浅間下交差点周辺(122ノード)
対象ネットワーク② 川崎市立幸高校周辺(126ノード)
Shared Transformer 第5回の共同学習済みモデルを利用
Shared LayerNorm 第5回の共同学習済みモデルを利用
GraphEmbedding ネットワークごとに保持
PositionEmbedding ネットワークごとに保持
Fully ネットワークごとに保持
推論方式 Token連結によるBatch推論
Batch Token数 1464 + 1512 = 2976 tokens
Attention制御 Network Isolation Mask
評価指標 MAE, RMSE, MAPE

5. 推論結果

まず、浅間下交差点周辺と川崎市立幸高校周辺のトークン列を単純に連結し、一回のShared Transformerで推論を行いました。

しかし、この方法では

浅間下トークン
↓
川崎トークンを参照

川崎トークン
↓
浅間下トークンを参照

する Cross-Network Attention が発生し、個別推論と比較して予測精度が悪化しました。

まず、第5回で構築した共同学習モデルによる個別推論の結果を表2に示します。

表2 個別推論結果(第5回)

ネットワーク MAE RMSE MAPE
浅間下交差点周辺 2.931 5.231 36.05%
川崎市立幸高校周辺 3.013 5.621 43.39%

次に、浅間下交差点周辺と川崎市立幸高校周辺のトークン列を単純に連結し、一回のShared Transformerで推論を行った結果を表3に示します。

表3 Batch推論結果(Maskなし)

ネットワーク MAE RMSE MAPE
浅間下交差点周辺 3.141 5.514 37.75%
川崎市立幸高校周辺 3.481 6.020 47.48%

このように単純なトークン連結では予測性能の悪化が確認されました。

そこで、

浅間下 → 川崎

川崎 → 浅間下

のAttentionを禁止する Network Isolation Mask を導入しました。

その結果を表4に示します。

表4 Batch推論結果の比較

ネットワーク 個別推論 Batch推論
(Maskなし)
Batch推論
(Maskあり)
浅間下交差点周辺 MAE 2.931 3.141 2.933
川崎市立幸高校周辺 MAE 3.013 3.481 3.011
浅間下交差点周辺 RMSE 5.231 5.514 5.230
川崎市立幸高校周辺 RMSE 5.621 6.020 5.620

このように、Mask導入後の Batch 推論は個別推論とほぼ同一の性能となりました。

さらに、個別推論と Batch 推論(Maskあり)の出力差を確認したところ、

max(abs(out_individual - out_batch))
≈ 5.96 × 10^-7

でBatch推論と個別推論は実質的に同一の結果であることを確認しました。

6. Batch LoRA Inferenceとの比較

本研究の着想は、EdgeLoRAで提案されている Batch LoRA Inference にあります。

EdgeLoRAでは、複数のLoRA Adapterを利用するリクエストをまとめて処理し、一回のBase Model推論で複数の要求を同時に処理します。

概念的には、図2のようになります。

図2. EdgeLoRAのBatch LoRA Inference

本研究では、この考え方を交通流予測へ適用しました。
対応関係を表4に示します。

表5 EdgeLoRAとの比較

EdgeLoRA 本研究
LoRA Adapter Network Adapter
Base Model Shared Transformer
Request 道路ネットワーク
Batch LoRA Inference Batch Network Inference
Adapter Isolation Network Isolation Mask

7. 考察

単純にトークン列を連結した Batch 推論では、表3に示したように個別推論と比較して予測性能が低下しました。

これは異なる道路ネットワーク間で Cross-Network Attention が発生し、

浅間下ネットワーク
↓
川崎ネットワークを参照

川崎ネットワーク
↓
浅間下ネットワークを参照

する状態になったためと考えられます。

そこで

浅間下 → 川崎
川崎 → 浅間下

の Attention を禁止する Network Isolation Mask を導入しました。
その結果、表4のようになり、個別推論とほぼ同一の結果が得られました。

これは EdgeLoRA で提案されている Batch LoRA Inference の考え方を、交通流予測へ応用できる可能性を示す結果と考えています。

8. まとめ

本稿では、第5回で共同学習した Shared Transformer を利用し、複数道路ネットワークの同時推論に挑戦しました。

その結果、

  • 浅間下ネットワーク(122ノード)
  • 川崎ネットワーク(126ノード)

のトークン列を連結し、一回の Shared Transformer 推論で処理できることを確認しました。

また、単純なトークン連結では Cross-Network Attention により予測精度が低下することを確認しました。

そこで Network Isolation Mask を導入したところ、Batch推論と個別推論の出力差は

5.96 × 10^-7

誤差の範囲に収まりました。

今回の結果は、複数道路ネットワークに対するBatch推論が可能であることを示しました。

さらに、

  • 個別推論
  • Batch推論(Maskあり)

が実質的に同一の結果となることも確認できました。

このことは、道路ネットワークごとにTransformerを複製することなく、一つのShared Transformerを用いて複数道路ネットワークを同時に処理できる可能性を示しています。

道路ネットワーク数が増加した場合でも、Network Adapterを追加するだけで対応できる可能性があり、マルチネットワーク交通予測モデルの拡張性向上につながると考えられます。

本シリーズが、OpenStreetMap・UXsim・Transformer を利用した交通流予測モデルや、マルチネットワーク学習に興味のある方の参考になれば幸いです。

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?