Tongue:オンデバイス言語識別
短いテキストを読み取り、その言語を数十マイクロ秒で言い当てるオンデバイスの言語識別。対応は 84 言語。
Tongue は単語、フレーズ、文を読み取り、それが書かれている言語を返します。ドイツ語の "kann ich das haben" から韓国語の "안녕하세요" まで。検索ボックス、チャットメッセージ、キーボード入力といった短いテキストに合わせて調整されており、これはデバイス上の言語検出で最も難しく、最も役に立つケースです。
処理は 2 段階です。パラメータを持たない文字体系ルーターが、1 つの言語だけが使う文字のテキストを判定します。ハングル、ギリシャ文字、タイ文字など 25 種はモデルを使わずその場で確定します。複数言語が共有する文字では、ハッシュ化した文字 n-gram が 2 MB の int8 モデルに入ります。トークナイザーも語彙ファイルも推論ランタイムもなく、短い入力が本当に曖昧なときは、Tongue は当て推量をせず「確信がない」と伝えます。
デモ
パフォーマンス
2 MB で、最大 130 倍の大きさの検出器と互角に渡り合います。
3 つの公開ベンチマークで、実際に出荷している int8 重みを測定。他の検出器も同一の行・同一の言語サブセットで実行しています。完全な表と失敗モードはモデルカードに記載しています。
ユースケース
言語でテキストを振り分ける
ユーザーが打ち込んだ最初の数語から、適切な翻訳モデル、アナライザー、サポート窓口を選択。すべてデバイス上で完結します。
キーボードと入力
文の途中で言語を検出し、自動修正・変換候補・レイアウトを切り替え。1 打鍵あたり数十マイクロ秒で済みます。
検索とコンテンツパイプライン
インデックス化やモデレーションの前に短い文字列へ言語タグを付与。ネットワーク往復もリクエスト単位のサービスも不要です。
正直な不確かさ
"la casa" はイタリア語ともスペイン語とも読めます。Tongue はどちらかに軍配を上げるのではなく引き分けを報告するので、プロダクトはテキストの追加入力を促せます。
できること
- 84 言語:59 はモデルが解読し、25 は文字体系だけで確定。
- 2 MB の int8 重みをパッケージに同梱。ダウンロードは一切ありません。
- 1 回の判定は数十マイクロ秒。メインスレッドで動かせます。
- Swift、Kotlin、JavaScript で完全に同一の答え。共有のゴールデンベクターで担保。
- 当て推量をせず、信頼度と僅差の引き分けを報告します。
プラットフォームとインストール
// Swift Package Manager
.package(url: "https://github.com/Desert-Ant-Labs/tongue", from: "0.1.2")
import Tongue
let tongue = try Tongue()
tongue.detect("kann ich das haben").language
// "de"
// build.gradle.kts (Maven Central)
implementation("ai.desertant:tongue:0.1.2")
import ai.desertant.tongue.Tongue
val tongue = Tongue.bundled(context)
tongue.detect("kann ich das haben").language
// "de"
npm i @desert-ant-labs/tongue
import { Tongue } from "@desert-ant-labs/tongue";
const tongue = await Tongue.load();
tongue.detect("kann ich das haben").language;
// "de"
Add Tongue from Desert Ant Labs to this project.
短いテキストを読み取り、その言語を数十マイクロ秒で言い当てるオンデバイスの言語識別。対応は 84 言語。
SDKs (use the one that matches this project's platform):
Swift (iOS, macOS)
Repo: https://github.com/Desert-Ant-Labs/tongue
// Swift Package Manager
.package(url: "https://github.com/Desert-Ant-Labs/tongue", from: "0.1.2")
Kotlin (Android)
Repo: https://github.com/Desert-Ant-Labs/tongue
// build.gradle.kts (Maven Central)
implementation("ai.desertant:tongue:0.1.2")
JavaScript / TypeScript (Web, Node.js)
Repo: https://github.com/Desert-Ant-Labs/tongue
npm i @desert-ant-labs/tongue
Reference:
- Model page: https://desertant.com/models/tongue/
- Full catalog and other models: https://desertant.com/llms.txt
Add the SDK that matches this project's platform, then follow its README for the exact API and current version. Do not invent API names or method signatures; confirm them against the README.
仕様
- 言語
- 84 言語、31 の文字体系
- オンデバイスサイズ
- 2.1 MB の int8 重み、パッケージに同梱
- レイテンシ
- 1 回の判定あたり数十マイクロ秒
- アプローチ
- 文字体系ルーターとハッシュ化文字 n-gram を int8 線形ヘッドへ
FAQ
Tongue とは?
短いテキストを読み取り、その言語を数十マイクロ秒で言い当てるオンデバイスの言語識別。対応は 84 言語。
Tongue はオンデバイスで動作しますか?
はい。Tongue は完全にオンデバイスで動作します。推論はローカルで行われ、サーバーへの通信は発生しないため、データがデバイスの外に出ることはありません。
Tongue はどのプラットフォームに対応していますか?
Tongue は Swift, Kotlin, JavaScript / TypeScript 向けのネイティブなオンデバイス SDK として提供されます。
Tongue の料金はいくらですか?
すべてのモデルは、SDK ごとに月間アクティブデバイス 100k 台まで無料です。ユーザーあたりの推論は無制限です。 カスタムライセンスについては、お問い合わせください。
Tongue の精度や速度はどれくらいですか?
2 MB で、最大 130 倍の大きさの検出器と互角に渡り合います。