Local LLM利用データ処理

AIチャットだとハルシネーションの悪影響が大きなデータ処理がありました。ハルシネーション対策のプロンプトを書くのも面倒になったので、APIコールで1件ずつ処理するコードを書いてみました。最も手軽な方法の一つではないかと思いましたので、メモします。

ここでのデータ処理はCSVファイルからデータを読み込んで、各項目ごとにレビューをするものとします。

環境

LM Studioを用います。LM Studioのインストール方法等は別途、検索などしてください。

LLMは何でも好きなものを選んで追加すればよいですが、ここでは仮にgpt-ossだとします。LM Studio左下のDownloadsボタンから検索して導入します。

次にLM Studio左のDeveloperボタンを押し、StatusをRunningにします。違うPCからアクセスする場合にはServer SettingsでServe on Local NetworkをOnにする設定変更が必要です。この設定を変更すると画面右側のReadchable atのURLが変わります。Offだと127.0.0.1となり、同一PC上からしかアクセスできません。合わせてPort番号を変える方が安全です。

データ処理の構造

ここではプロンプトとデータの2つを用意するとします。

データはCSVファイル(複数)があるフォルダーにあるとします。すべて同一フォーマットだとします。

プロンプトはレビューの内容を書きます。AIチャットで指示する内容と同じです。仮に”prompt.txt”に保存されているとします。

Pythonコード作成

AIチャットを用いてPythonソースコードを書きます。

「○○レビューするプログラムを書きたい。Pythonで。

GPT/Gemのような指示プロンプトがあります。仮に”prompt.txt”とします。

チェックする対象はCSVファイルがあり、これを引数で指定するか、フォルダを指定した場合にはそのフォルダにあるすべてのCSVファイルを対象とします。
CSVファイルには以下の項目が表形式で示されています。
項目名1
項目名2

このうち、以下をチェック対象とします。
項目名1
項目名2

各チェック項目を1つずつ、LLMで検査します。

LLMはLM Studioで動作するgpt-ossです。API利用します。

レビュー結果は対象としたCSVファイルのファイル名を拡張子をcsvからtxtと変えたものに保存します。」

実行と検証

Pythonコードの実行については各自でどうぞ。AIチャット次第ですが、かなり気を利かせてくれる(勝手に?)ことが多いので、例えばサーバーのURLはデフォルトで127.0.0.1でありつつも、引数で指定できるようにしてくれたりしているかもしれません。

また、上のチャット例では省いていますが、フォルダーを指定したら、その中にあるすべてのCSVファイルを処理せよ、といったことも追加指示可能です。GUIにしてもよいですね。そのあたりはAIチャットなので追加指示をしながら変更していけばOKです。

実行結果をそのまま鵜呑みにしてはいけません。以下を必ず行います。

  • ソースコードチェック
    • ソースコードを読んで、意図通りの処理になっているかを確認します。実行可能=正しいではありません
  • 処理経過・結果の確認
    • ブラックボックステストに近い考え方で確認するのが原則でないでしょうか。手動?でも幾つか処理してみて、その結果との比較をするなど
    • 途中経過を表示させてみる(例えばAPIコールするときに送信される文字列を確認)、LLMに認識をアウトプットさせる(与えられた文字列を並記させる)など

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です