はじめに
生成AIの技術躍進は著しく、世界中で開発が進められています。
LLMの種類はもちろんLLMのAPIを使ったサービスも続々と増えてきています。
APIを用いたサービスが増えた要因としては、APIが無料あるいは少額で使用可能になったこと、
チャット形式のUIが簡単に作成できるようになったこと、需要があることが大きいと思われます。
今回はLLMのAPIを用いて簡単なテキスト生成AIサービスを構築し、
LLMサービスの潜在的なリスクを見ていきたいと思います。
構築したもの
①フロントエンドにデータを入力
②POSTメソッドでアプリケーションサーバにデータを送信
③バックエンドで処理し、API提供元サーバにデータを送信
④API提供元のサーバから生成されたデータを受信
⑤フロントエンドに出力
潜在的なリスク
これは今回作成したコードの一部です。
1 2 3 4 5 6 |
@app.post("/submit") async def submit_form(request: Request, text: str = Form(...)): generated_text = llm(text) print(f"入力: {text}") print(f"出力: {generated_text}") return templates.TemplateResponse("form.html", {"request": request, "text": generated_text}) |
APIで通信するための関数llmを用意し、
ここにフロントエンドで入力したデータ(変数text)を与えることでテキストが生成されます。
今回はprint文で入力データと出力データを表示しているだけですが、
悪意のある人間がアプリケーションサーバを構築していた場合、外部に送信したり、
あるいは生成されたデータにウイルスを仕込むことも可能です。
または、悪意がなかったとしてもサーバやコードに脆弱性が存在し、結果的にデータの漏洩に繋がることも考えられます。
どこまでリスクを許容できるか
上記で紹介したようにリスクをすべて取り除くことは困難です。
ですので、各人がリテラシーを高めていき、どうAIと付き合っていくかを考える必要があるかと思います。
中でも、
・サービスを提供している企業や規約をしっかり調べる
・重要なデータは入力しない
この2点を念頭に置いて利用するといいでしょう。
まとめ
今回の検証でLLMのAPIを調べましたがLLMの開発元ではないところがAPIを提供していました。
無料で公開されているLLMをダウンロードし、サーバ上で稼働させているのだと思われます。
使用するにはクレジットカードの登録が必要なところもあるので安全かどうかしっかり調べた上で利用することをお勧めします。
リスクを減らすという意味ではローカル環境でLLMを使用する方法もあります。
ローカル環境に構築するとなると簡単にはいきませんが、より手軽に導入できるよう開発が進んでいるのは確かです。
また、生成AIに最適化されたNPU搭載のPCも発売が始まりました。
リスクを取りたくない場合はローカル環境で使用し、それ以外はネットワークを介して使用する、
そんな流れがくるかもしれません。