ローカルLLMで仕訳の勘定科目提案と異常検知をする方法

ローカルLLMで仕訳をチェックするイメージ AI活用

勘定科目の判断が、特定の担当者の勘に頼りきりになっていませんか。月末にまとめてチェックすると、ミスの発見がどうしても遅れがちです。

ローカルLLMとは、自分のパソコンや社内サーバーの中だけで動くAIのことです。この記事では、ローカルLLMを使って仕訳の摘要から勘定科目を提案させたり、金額や取引先の異常にフラグを立てさせる方法を紹介します。取り上げる内容は、クラウドAIではなくローカルLLMを選ぶ理由、作るもの、手順、そして注意点まで。

なぜクラウドAIでなくローカルLLMなのか

仕訳データには、取引先名・金額・取引内容など、外に出したくない情報が数多く含まれています。

ChatGPTのような外部のクラウドAIにそのまま読み込ませると、利用規約や契約形態によっては入力内容が外部のサーバーに送信される場合があります。無料プランか有料プランか、法人契約かどうかでも扱いは変わるため、一概には言えません。ただ、「そもそも渡さない」のが一番安心なのは確かです。

ローカルLLM(LM Studioなどのアプリで動かす、自分のパソコンの中だけで完結するAI)なら、処理がすべて手元で終わります。外部への送信は発生しません。

環境構築の手順やコストの目安は、すでに別記事でまとめています。未導入の方は、先にローカルLLM入門とLM Studioのインストール方法をご覧ください。この記事では「どう活用するか」に絞って解説します。

クラウドAIとローカルLLMでのデータの流れの違いを示す比較図

この記事で作るもの/ビフォーアフター

作るのは、仕訳データを読み込ませると、勘定科目の候補と「これは確認したほうがいい」というフラグ付きの一覧を出してくれる仕組みです。

  • Before:摘要を見るたびに「これは何の科目だっけ」と調べる。月末に一括でチェックするため、ミスの発見が遅れがちです。
  • After:仕訳データを読み込ませると、勘定科目の候補とフラグ付きの一覧が得られます。確認が必要な行だけ、優先的にチェックできます。

完全に自動で判定させるわけではありません。自動化するのはあくまで「下ごしらえ」の部分だけ。最終判断は必ず人が行います。

ローカルLLMが仕訳ごとに勘定科目候補と要確認フラグを提示するイメージ図

必要なもの・前提

  • LM Studioなど、ローカルで動くLLM環境(導入済みが前提です。未導入の方はLM Studioのインストール方法へ)
  • ある程度のメモリを積んだPC(目安はローカルLLMのコストの本当の話で紹介しています)
  • 仕訳データ(②で変換した仕訳CSVがそのまま使えます)
  • できれば過去の「摘要→勘定科目」の実績データ(あるほど提案の精度が上がります)
  • openai(Pythonからローカルサーバーを呼び出すための追加ライブラリ。pip install openaiで導入します)

②で作った変換ツールをまだ試していない方は、先に「銀行明細CSVを仕訳データへ自動変換するツールの作り方」で仕訳データを用意しておくと、この記事がそのまま実践できます。

作り方のステップ

  1. Step1:過去の仕訳データからパターンを整理する
    過去の「摘要→勘定科目」の組み合わせをいくつか書き出し、AIへの指示(プロンプト)に組み込む準備をします。

  2. Step2:勘定科目を提案させるプロンプトを作る
    新しい仕訳の摘要をローカルLLMに渡し、勘定科目の候補と「なぜそう判断したか」の理由も一緒に出力させます。理由をセットで出力させることが、後述するハルシネーション(AIがもっともらしい誤りを自信満々に述べる現象)の対策になります。

あなたは経理担当者の仕訳チェックを手伝うアシスタントです。
以下の仕訳の摘要を読み、最も可能性の高い勘定科目を1つ提案してください。
判断した理由も1行で添えてください。

過去の実績例:
- 「〇〇電力」→ 水道光熱費
- 「△△不動産」→ 地代家賃

今回の摘要:「株式会社□□システムズ」
  1. Step3:異常検知の観点をプロンプト化する
    重複っぽい取引、通常と違う金額帯、初めて出てくる取引先、といった観点を指示に盛り込みます。②で変換したCSVは日付・勘定科目・摘要・金額の4列だけなので、この範囲で判定できる観点に絞るのがポイントです。
以下は今月の仕訳データ一覧です(CSV形式)。
次の観点で「確認したほうがよい」行にフラグを立ててください。
- 同じ金額・同じ取引先が短期間に重複していないか
- 過去の平均と比べて金額が大きく外れていないか
- 初めて登場する取引先ではないか
- 摘要の内容と、その仕訳につけられた勘定科目が食い違っていないか

出力は「行番号/フラグの理由」の一覧でお願いします。

[仕訳データをここに貼り付け]

このプロンプトは、②のCSVでそのまま試せる観点だけに絞っています。借方・貸方(借方=資産の増加や費用、貸方=その相手方)が分かれた仕訳データを使う場合は、貸借の合計が一致しているかというチェックも追加できます。

手元にないデータ項目を判断材料に含めると、AIがそれらしい答えをでっち上げかねません。これがまさにハルシネーションです。実際に渡すデータの列に合わせて、プロンプトを組むようにしてください。

  1. Step4:LM StudioのAPIから呼び出し、フラグが立った行だけレビューする
    毎回コピペで貼り付けるのは手間です。LM Studioのローカルサーバーは、OpenAI互換API(ChatGPTなどと同じ形式でプログラムから呼び出せる仕組み)です。Pythonから呼び出す形にすると、②のCSVをそのまま流し込めます。
import pandas as pd
from openai import OpenAI  # pip install openai で導入

# LM StudioのローカルサーバーはOpenAI互換API。base_urlをlocalhostに向けるだけで呼び出せる
client = OpenAI(base_url="http://localhost:1234/v1", api_key="not-needed")

# ②で作った仕訳CSVを読み込む(念のため欠損値は空文字に)
df = pd.read_csv("journal_entries_draft.csv").fillna("")

def check_entry(description, amount):
    prompt = f"摘要「{description}」、金額{amount}円の仕訳について、確認すべき点があれば理由とともに指摘してください。問題なければ「OK」とだけ答えてください。"
    res = client.chat.completions.create(
        model="local-model",  # LM Studioで読み込んでいるモデル名。多くの場合そのままで動作します
        messages=[{"role": "user", "content": prompt}],
    )
    return res.choices[0].message.content

df["ai_check"] = df.apply(lambda row: check_entry(row["description"], row["amount"]), axis=1)

出力結果のうち「OK」以外がついた行だけを、人がレビューする運用にします。全件を毎回見直す必要はありません。

つまずきやすい注意点と免責事項

つまずきやすい注意点

  • モデルのサイズ・種類によって精度差が大きく、小さいモデルほど誤答が増えます
  • ハルシネーション(もっともらしい誤り)に気づけるよう、判断理由は必ずセットで出力させてください
  • 大量の仕訳データを一度に読み込ませると、処理が遅くなったり失敗しやすくなります。月単位・部署単位などバッチを分けるのがおすすめです
  • プロンプトや対応表は一度作って終わりではありません。運用しながら育てていく前提で始めてください

免責・専門家確認

  • 勘定科目の最終決定・税務上の判断は、AIに任せきりにせず税理士や経理責任者が必ず確認してください
  • 機密データの取り扱いは自社の情報セキュリティ規程に沿って運用し、ローカルLLMであっても管理を怠らないでください。社内のAI利用ルールづくりについては、生成AIの社内ルールの作り方もあわせてご覧ください

まとめ

摘要を見て都度悩む状態から、フラグが立った行だけを確認する状態へ。それがこのツールのビフォーアフターです。精度は一度で完成するものではなく、運用しながら育てていくものだと考えてください。

次の行動としては、②で作った変換ツールの出力を、この記事の方法でチェックしてみることをおすすめします。

証憑・ファイル管理の自動化にも興味があれば、電帳法対応とインボイス番号チェックを扱う続編(④)もご覧ください。

経理を自動化できるアイデアの全体像は「中小企業の経理を自動化するアイデア20選」(一覧に戻る)でまとめています。

自社のPCでどこまでできるか、モデル選定や環境構築を含めて相談したい方には、無料相談やセミナーもご案内しています。気になる方はお問い合わせページからどうぞ。

コメント

タイトルとURLをコピーしました