🤗

Gradioで複数アクセスに対応する方法

2023/12/17に公開

はじめに

Gradio で作ったアプリに複数アクセスがあった場合、重い処理(LLM の呼び出しとか)では待ち時間が発生することが判明しました。
対策としてやったことはとてもシンプルで、並行処理数のリミットを変更することで、複数同時アクセスが可能となり、待ち時間なく対応できました。結果的に対策はすごくシンプルでしたが、せっかくなので情報を残しておこうとおもいます。

GRADIO_DEFAULT_CONCURRENCY_LIMIT

Gradio では、ボタンクリックの処理を実行するとき、並行処理数のリミットを設定することができます。
調べると、並行処理数のリミットのデフォルト値を一括で設定する方法がありました。
GRADIO_DEFAULT_CONCURRENCY_LIMITという環境変数を設定するだけです。
デフォルトで 1 になっているので、 CPU のコア数分くらいに設定したらいいんじゃないかと思います。

おわりに

Gradio は機械学習デモアプリ用のフレームワークということで、なんでもできるわけではないのですが、こんなことできないかな?と調べてみると、結構色々できます。今回も、ダメもとで調べてたら、それっぽいポラメータを見つけて、すぐに対応できました。
非常に有用なツールなので、もっと活用できるよう、使いながら学んでいこうと思います。

参考

https://www.gradio.app/docs/interface
https://www.gradio.app/guides/setting-up-a-demo-for-maximum-performance#the-concurrency-limit-parameter
https://www.gradio.app/docs/button
https://www.gradio.app/guides/setting-up-a-demo-for-maximum-performance

GitHubで編集を提案

Discussion