ChatGPTが使用できなくなったときの推論サーバ(代替品)を作った
経緯
先日、ChatGPTの利用がしにくい障害が発生した。Geminiの利用も試したが推論内容は不安が残るので結局は公式のリソースから調べた。そのとき、何かしらの理由でメインで利用しているサービスがアクセスしにくいときに、手軽で便利に利用できるサーバがないなと思い作った
ユーザーインターフェースの構想
GitHubにはLLMのサーバとなるUIがいくつも公開されているが、導入方法を理解するのに時間が掛かりそうだったので不便に感じた。もっと手軽に実行できるものを作って、ChatGPTが障害で使用できなくなったときにちょっとした用途での使用くらいは出来そうなサーバを基本構想とした
現状のプロダクトの課題点
ユーザーはインストール、実行するための知識を取得する必要があるが、わざわざ、ちょっと使うためだけにその手間は惜しい
ユーザーはインストールを実行するためにソフトウェアのインストールなど、環境の整備をする必要がある。元々、GitHubは開発のためのリポジトリであるので間違いではないが、利用するユーザーには優しくない
課題を踏まえて、今回の実装で目指すこと
基本的な目標は1点のみ
exeかbatなどを実行すれば、自然に画面が立ち上がりユーザーは利用できるようにする。使用までの手間を出来るだけ減らしてユーザービリティを向上させる
機能(実装項目)
特別、本アプリケーションを利用するために、手動で他のアプリケーションをインストールさせることはしないで済むようにする
modelをフォルダにmodelを突っ込めば、そのモデルを利用できるようにする
LLMのモデルはアップロードしてもよいが、HuggingFace公式のものをダウンロードした方が正体不明のモデルをダウンロードするよりは安心だろうと考えたため、モデルファイルはダウンロードしてもらう
対応するモデルはllama.cppでconvertできるggufモデルとする
ローカルで実行できる
UIの見た目はこだわらない
システム要件(最低)
Windows 11 64bit
CPUはRyzen i5 ~
メモリは16GB ~ アプリを実行するとメモリの使用量がOSやセキュリティソフトなどを合わせて12GB程度の使用が見られたため
GPUは不要とする
※ CPUはCoreシリーズでも同等程度であれば動作するか思われます。もし、他の環境下で動作を確認したら教えてくれると参考になります。メモリは確保した上でCPUの性能で推論の処理速度が更に高速化するかは気になるところです。
実行方法
上記のリンクより、zipフォルダをダウンロードして解凍する
お手持ちのggufモデルがあれば、コピーしてmodelフォルダに入れる、model.ggufとリネームする
batファイルをダブルクリックする
ブラウザが立ち上がるので、プロンプトを入力してボタンを押せば推論が始まる
終了時にブラウザを閉じてから、batファイルをCtrl+Cか、✕ボタンで終了すれば、アプリケーションが終了する
関連情報
モデルの入手とGGUFの変換方法について
今回の実装について
なお、どのようにして実装したか興味のある人はメンバー記事を見て頂ければと思う。ソースコードと合わせて、簡単な動作の流れや構成を公開している
もちろん、GitHubでの公開も考えたのだが、特別、高機能というわけではないし、本当に導入を検討するならば、時間を掛けてUIの選定などを検討した方がよい。そもそも、ChatGPTをメインに使えている状況下での、緊急避難的な立ち上げを想定しており、使用頻度は低いと予想しているので公開する需要は見込めないだろうし、何より使用するには開発環境を整える手間が発生するので本件の構想と矛盾する。本当にちょっとしたコードなので興味を持つ人にだけ公開とする。また、本当に興味があるならばChatGPTに聞きつつ、自分で考えながら行えば充分に作れる内容であることも断っておく
また、メンバー向けに予定しているRAGのちょっといい使い方に関しては、公開まで、まだまだ時間が掛かりそうなので期待しないでほしい