NandhaKishorM/laya
問い合わせの振り分けのような判断を、文章を生成せずに一瞬で返す
どういうものか
メールや問い合わせ、JSON などのテキストを渡すと、あらかじめ決めておいた問いに決まった形の答えを返すモデルと、それを動かす Python ライブラリだ。ライセンスは Apache-2.0。答えの種類は3つだけで、選択肢から1つ選ぶ(choice)、段階で測る(score)、「はい」である確率を返す(noul)。文章を書くのではなく、モデルに1回通すだけで全部の問いに答えが出る。README の計測では、T4 GPU で問いが1つなら、多言語用モデルで約33ミリ秒(英語用は約40ミリ秒)かかる。
中身は3つの学習済みモデルと、そのどれを使うかを決める Router でできている。英語用の laya、100以上の言語を読める laya-multilingual、特定の業務判断に合わせて追加学習した laya-typed-decisions の3つだ。Router は入力の文字の種類と言語を見て、英語以外を多言語用に回す。振り分けが要る理由として README は、英語用のモデルがクメール語で正解率0なのに、確信度は0.952と出た例を挙げている。間違っていても自信は下がらないので、答える前に振り分けるしかない、という説明だ。
呼び出し方は、Python から使うほか、laya コマンド、HTTP サーバー(laya-serve)、MCP サーバー、LangChain・LangGraph との連携が用意されている。HTTP サーバーは、TypeSafe が提供する判断用の API「Jev」と同じ形のリクエストを受けられる。
どんなときに使うか
届いた問い合わせを、担当部署と緊急度で振り分けたいとき
README の例では、二重請求のメール1通から「担当は請求」「緊急度」「解約をほのめかしているか」を1回でまとめて出している。答えは決まった形で返るので、そのまま次の処理の分岐に使える。
自動で処理するか人に回すかを、確信度で分けたいとき
答えには確信度が付く。README は、確信度が基準を超えたものだけ自動で処理し、下回ったものを人に回す組み方を示している(基準の決め方は注意点を参照)。
注意点
そのままでは精度が出ない業務がある。 業務判断のベンチマーク(2,000件)で、英語用と多言語用は正解率0.362と0.352。でたらめに答えた場合の0.318をわずかに上回る程度で、いつも最も多い答えを選んだ場合の0.461を下回る。このベンチマークの学習用データで追加学習したモデルでは、0.766まで上がる。README 自身が「専門化するための速い土台で、そのまま使える判断エンジンではない」と書いている。追加学習の手順は Kaggle の無料 GPU で動くノートブックとして用意されている。
確信度をそのまま信じない。 README は、英語用と多言語用はどちらも自信過剰で、多言語用には確信度の補正値がまったく入っていないと書いている。自分のデータで補正してから基準を決める必要がある。
選択肢が多い問いに弱い。 既定の設定では、短い説明付きの選択肢が20個前後を超えると、1つあたりにモデルが読める分量が足りなくなる。77個の選択肢から選ぶ試験では、既定の設定で正解率0.425にとどまった。README は、候補を先に絞り込む機能や、問いを粗い段階と細かい段階に分ける方法を案内している。
否定を読み違える例が載っている。 解約に関する5つの例のうち、「解約するつもりはない」という趣旨の否定文が4つあり、英語用モデルは4つとも「解約」と判定した。README は、この例だけで否定全般が苦手とは言えないとしたうえで、使う文面で確かめるよう書いている。
公開から日が浅い。 リポジトリが作られたのは2026年9月18日。issue とプルリクエストを合わせて130件台が開いている。