Downloads · 30 days
103
9% of all-time downloads
akiFQC/LFM2.5-1.2B-JP-202606-Conf-Extract-GGUF
LFM2.5-1.2B-JP-202606-Conf-Extract-GGUF is a machine learning model from akiFQC. Use it for the machine learning task on the model card, and read the license before you ship it in a product. The card lists the license as other.
日本語テキストから社外秘の固有表現を11カテゴリで抽出する LFM2 ベースのモデルです。 組織内の文書・ログ・メールなどに含まれる機密情報を構造化 JSON として出力します。
Downloads · 30 days
103
9% of all-time downloads
All-time downloads
1.2K
Public
Repo size
6.7 GB
Likes
0
Public
Click a slice to open those files.
.gguf6.7 GB · 100%
From the Hugging Face model README
日本語テキストから社外秘の固有表現を11カテゴリで抽出する LFM2 ベースのモデルです。 組織内の文書・ログ・メールなどに含まれる機密情報を構造化 JSON として出力します。
| モデル | 形式 |
|---|---|
| akiFQC/LFM2.5-1.2B-JP-202606-Conf-Extract | SafeTensors (transformers) |
| このリポジトリ | GGUF (llama.cpp / on-device) |
| ファイル | 量子化 | サイズ目安 | 用途 |
|---|---|---|---|
LFM2.5-1.2B-JP-202606-Conf-Extract-Q4_K_M.gguf | Q4_K_M (Int4) | ~0.7 GB | on-device 推論(推奨) |
LFM2.5-1.2B-JP-202606-Conf-Extract-Q8_0.gguf | Q8_0 (Int8) | ~1.3 GB | 精度とサイズのバランス |
LFM2.5-1.2B-JP-202606-Conf-Extract-BF16.gguf | BF16 | ~2.4 GB | 高精度推論 |
LFM2.5-1.2B-JP-202606-Conf-Extract-F16.gguf | F16 | ~2.4 GB | 再量子化用中間ファイル |
入力テキストに対して、以下の JSON オブジェクトを 1行 で出力します。
全 11 キーを必ず含み、該当なしは空リスト [] とします。
{
"address": ["住所・所在地"],
"company_name": ["企業・研究機関・組織名"],
"email_address": ["メールアドレス"],
"human_name": ["人名"],
"phone_number": ["電話番号"],
"account_identifier": ["ユーザーID・アカウント名・従業員番号・マイナンバーなど"],
"network_identifier": ["IPアドレス・MACアドレス・内部ドメイン・ホスト名"],
"system_config": ["ファイルパス・ディレクトリ構造・DBテーブル/カラム名"],
"project_info": ["プロジェクト名・開発コードネーム・未発表製品/機能名"],
"financial_info": ["売上・原価・利益率・契約金額・個人の給与/報酬額"],
"transaction_id": ["契約書番号・請求書番号・見積書番号・顧客管理ID"]
}
| カテゴリ | 定義 | 例 |
|---|---|---|
address | 住所・所在地 | 東京都港区〇〇1-2-3 |
company_name | 企業・研究機関・組織名 | 株式会社サンプル, Liquid AI |
email_address | メールアドレス | [email protected] |
human_name | 人名(姓名、ニックネームを含む) | 山田 太郎, ラミン |
phone_number | 電話番号(国際番号を含む) | 03-1234-5678, +1-800-000-0000 |
account_identifier | アカウント識別子 | user_89012, EMP-9934 |
network_identifier | ネットワーク識別情報 | 192.168.1.15, internal-db.local |
system_config | システム構成情報 | /var/log/syslog, users_table |
project_info | プロジェクト関連情報 | Project Apollo, 次期決済システム開発 |
financial_info | 金額・財務情報 | 1,500,000円, $50,000 |
transaction_id | 取引管理番号 | INV-20260606-001, PO-98765 |
入力:
本件は山田 太郎(user_89012)から [email protected] へ送信されたメールです。
サーバー 192.168.1.15 (/var/log/syslog) の障害について、
Project Apollo の予算 1,500,000円 に関わる契約書番号 INV-20260606-001 を確認してください。
担当: 株式会社サンプル、東京都港区〇〇1-2-3、03-1234-5678
出力(1行 JSON):
{"address": ["東京都港区〇〇1-2-3"], "company_name": ["株式会社サンプル"], "email_address": ["[email protected]"], "human_name": ["山田 太郎"], "phone_number": ["03-1234-5678"], "account_identifier": ["user_89012"], "network_identifier": ["192.168.1.15"], "system_config": ["/var/log/syslog"], "project_info": ["Project Apollo"], "financial_info": ["1,500,000円"], "transaction_id": ["INV-20260606-001"]}
Note:
--chat-template lfm2は汎用 LFM2 用のテンプレートです。PII 抽出システムプロンプトを適用するため、代わりに--system-prompt "$SYS"を使用してください(下記参照)。
# システムプロンプトを変数にセット
SYS="あなたはテキストから社外秘の固有表現を抽出するアシスタントです。入力テキストを分析し、以下の11カテゴリの機密情報を抽出して、必ずJSON形式のみで出力してください。\n\nカテゴリ定義:\n- address: 住所・所在地\n- company_name: 企業・研究機関・組織名\n- email_address: メールアドレス\n- human_name: 人名\n- phone_number: 電話番号\n- account_identifier: アカウント識別子(ユーザーID・アカウント名・従業員番号・社会保障番号・マイナンバー等)\n- network_identifier: ネットワーク識別情報(IPアドレス・MACアドレス・内部ドメイン・ホスト名)\n- system_config: システム構成情報(ファイルパス・ディレクトリ構造・DBテーブル/カラム名)\n- project_info: プロジェクト関連情報(プロジェクト名・開発コードネーム・未発表の製品/機能名)\n- financial_info: 金額・財務情報(売上・原価・利益率・契約金額・個人の給与/報酬額)\n- transaction_id: 取引管理番号(契約書番号・請求書番号・見積書番号・顧客管理ID)\n\n出力形式(全キーを必ず含め、該当なしは空リスト):\n{\"address\": [], \"company_name\": [], \"email_address\": [], \"human_name\": [], \"phone_number\": [], \"account_identifier\": [], \"network_identifier\": [], \"system_config\": [], \"project_info\": [], \"financial_info\": [], \"transaction_id\": []}"
# Q4_K_M (on-device 推奨)
llama-cli -hf akiFQC/LFM2.5-1.2B-JP-202606-Conf-Extract-GGUF:Q4_K_M \
--temperature 0.0 --system-prompt "$SYS"
# Q8_0 (精度重視)
llama-cli -hf akiFQC/LFM2.5-1.2B-JP-202606-Conf-Extract-GGUF:Q8_0 \
--temperature 0.0 --system-prompt "$SYS"
# BF16 (最高精度)
llama-cli -hf akiFQC/LFM2.5-1.2B-JP-202606-Conf-Extract-GGUF:BF16 \
--temperature 0.0 --system-prompt "$SYS"
-hf フラグは llama.cpp が HuggingFace Hub から直接 GGUF をダウンロードします。
GPU オフロードを有効にするには --n-gpu-layers 99 を追加してください。
transformers 版(akiFQC/LFM2.5-1.2B-JP-202606-Conf-Extract)を使う場合、tokenizer_config.json の chat_template がシステムプロンプトを自動注入するため、明示的な指定は不要です。
import json, torch
from transformers import AutoModelForCausalLM, AutoTokenizer
model_id = "akiFQC/LFM2.5-1.2B-JP-202606-Conf-Extract"
tok = AutoTokenizer.from_pretrained(model_id)
model = AutoModelForCausalLM.from_pretrained(model_id, dtype=torch.bfloat16, device_map="auto")
model.eval() # 必須: LoRA 学習後の dropout を無効化
text = "本件は山田 太郎(user_89012)から [email protected] へ送信されたメールです。"
inputs = tok.apply_chat_template(
[{"role": "user", "content": text}],
add_generation_prompt=True,
return_tensors="pt",
return_dict=True, # transformers 5.x は必須
).to(model.device)
with torch.no_grad():
output_ids = model.generate(
**inputs,
max_new_tokens=256,
do_sample=True,
temperature=0.3,
min_p=0.15,
repetition_penalty=1.05,
)
generated = tok.decode(output_ids[0][inputs["input_ids"].shape[1]:], skip_special_tokens=True)
try:
entities = json.loads(generated)
print("人名:", entities["human_name"])
print("メール:", entities["email_address"])
except json.JSONDecodeError:
print("JSON parse 失敗 — max_new_tokens を増やすか生成設定を確認")
model.eval()を必ず呼んでください。trainer.train()はドロップアウトを有効にしたまま終了するため、評価時に呼ばないとモデル出力が崩壊します(doom-loop 症状)。
| 項目 | 値 |
|---|---|
| ベースモデル | LiquidAI/LFM2.5-1.2B |
| 学習手法 | LoRA (PEFT) + SFTTrainer (TRL) |
| LoRA rank / alpha | 16 / 32 |
| LoRA ターゲット | q/k/v/o_proj, gate/up/down_proj |
| 学習率 | 2e-4 |
| Batch size | 4 (per device) × gradient_accumulation 16 = 実効 64 |
| 精度 | bf16 |
| 最大コンテキスト長 | 2048 tokens |
| Optimizer | AdamW (weight_decay=0.01) |
| LR スケジューラ | Linear warmup |
| チャットテンプレート | fox-co PII 抽出用カスタムテンプレート(system prompt 自動注入) |
評価は11カテゴリの 文字列完全一致 に基づく Micro F1 で行います。
| 指標 | 内容 |
|---|---|
json_parse_rate | 出力が valid JSON として parse できた割合 |
micro_f1 | 全カテゴリ合計のマイクロ平均 F1 |
eval/{category}/f1 | カテゴリ別 F1 |
本モデルは LiquidAI/LFM2.5-1.2B をベースとしており、LFM Open License v1.0 に従います。