Spaces:
Running
Running
Merge remote-tracking branch 'origin/main'
Browse files- app.py +360 -360
- models/finetune/tag-classifier-modernbert-full/classifier_precision_thresholds_calibrated.csv +131 -0
- models/finetune/tag-classifier-modernbert-full/config.json +0 -0
- models/finetune/tag-classifier-modernbert-full/labels.json +0 -0
- models/finetune/tag-classifier-modernbert-full/model.safetensors +3 -0
- models/finetune/tag-classifier-modernbert-full/special_tokens_map.json +37 -0
- models/finetune/tag-classifier-modernbert-full/tokenizer.json +0 -0
- models/finetune/tag-classifier-modernbert-full/tokenizer_config.json +945 -0
app.py
CHANGED
|
@@ -147,8 +147,8 @@ _CORPORATE_HARDBLOCK_PATTERNS = [
|
|
| 147 |
# Common kink/fetish markers.
|
| 148 |
re.compile(r"(^|_)(fetish|bdsm|bondage|dominatrix|submission|vore|inflation|watersports)(_|$)", re.IGNORECASE),
|
| 149 |
]
|
| 150 |
-
|
| 151 |
-
|
| 152 |
def _split_prompt_commas(s: str) -> List[str]:
|
| 153 |
return [p.strip() for p in (s or "").split(",") if p.strip()]
|
| 154 |
|
|
@@ -213,23 +213,23 @@ def _rewrite_prompt(prompt_in: str, log) -> str:
|
|
| 213 |
log("Rewrite source=t5 returned empty; fallback to llm")
|
| 214 |
return llm_rewrite_prompt(prompt_in, log)
|
| 215 |
return ""
|
| 216 |
-
|
| 217 |
-
def compose_final_prompt(rewritten_prompt: str, selected_tags: List[str]) -> str:
|
| 218 |
-
parts = _split_prompt_commas(rewritten_prompt)
|
| 219 |
-
parts.extend(selected_tags)
|
| 220 |
-
|
| 221 |
-
seen = set()
|
| 222 |
-
out = []
|
| 223 |
-
for p in parts:
|
| 224 |
-
key = _norm_for_dedupe(p)
|
| 225 |
-
if key in seen:
|
| 226 |
-
continue
|
| 227 |
-
seen.add(key)
|
| 228 |
-
out.append(p)
|
| 229 |
-
|
| 230 |
-
return ", ".join(out)
|
| 231 |
-
|
| 232 |
-
|
| 233 |
def _display_tag_text(tag: str) -> str:
|
| 234 |
return tag.replace("_", " ")
|
| 235 |
|
|
@@ -569,13 +569,13 @@ def _order_selected_tags_for_row(
|
|
| 569 |
|
| 570 |
|
| 571 |
def _escape_prompt_tag(tag: str) -> str:
|
| 572 |
-
return (
|
| 573 |
-
tag.replace("_", " ")
|
| 574 |
-
.replace("(", "\\(")
|
| 575 |
-
.replace(")", "\\)")
|
| 576 |
-
)
|
| 577 |
-
|
| 578 |
-
|
| 579 |
def _ordered_selected_for_prompt(selected: Set[str], row_defs: List[Dict[str, Any]]) -> List[str]:
|
| 580 |
out: List[str] = []
|
| 581 |
seen: Set[str] = set()
|
|
@@ -585,22 +585,22 @@ def _ordered_selected_for_prompt(selected: Set[str], row_defs: List[Dict[str, An
|
|
| 585 |
out.append(tag)
|
| 586 |
seen.add(tag)
|
| 587 |
return out
|
| 588 |
-
|
| 589 |
-
|
| 590 |
-
def _compose_toggle_prompt_text(selected_tags: List[str], row_defs: List[Dict[str, Any]]) -> str:
|
| 591 |
-
selected = {t for t in (selected_tags or []) if t}
|
| 592 |
-
ordered = _ordered_selected_for_prompt(selected, row_defs or [])
|
| 593 |
-
return ", ".join(_escape_prompt_tag(t) for t in ordered)
|
| 594 |
-
|
| 595 |
-
|
| 596 |
-
def _is_artist_tag(tag: str) -> bool:
|
| 597 |
-
t = _norm_tag_for_lookup(str(tag))
|
| 598 |
-
if not t:
|
| 599 |
-
return False
|
| 600 |
-
# Keep a resilient fallback for malformed/missing tag typing metadata.
|
| 601 |
-
return get_tag_type_name(t) == "artist" or t.startswith("by_")
|
| 602 |
-
|
| 603 |
-
|
| 604 |
@lru_cache(maxsize=1)
|
| 605 |
def _load_excluded_recommendation_tags() -> Set[str]:
|
| 606 |
out: Set[str] = set()
|
|
@@ -686,27 +686,27 @@ def _filter_min_count_tags(tags: List[str], min_count: int) -> Tuple[List[str],
|
|
| 686 |
seen.add(t)
|
| 687 |
keep.append(t)
|
| 688 |
return keep, sorted(set(removed))
|
| 689 |
-
|
| 690 |
-
|
| 691 |
def _filter_excluded_recommendation_tags(tags: List[str]) -> Tuple[List[str], List[str]]:
|
| 692 |
-
excluded = _load_excluded_recommendation_tags()
|
| 693 |
-
if not excluded:
|
| 694 |
-
return list(dict.fromkeys(_norm_tag_for_lookup(t) for t in (tags or []) if t)), []
|
| 695 |
-
|
| 696 |
-
keep: List[str] = []
|
| 697 |
-
removed: List[str] = []
|
| 698 |
-
seen: Set[str] = set()
|
| 699 |
-
for raw in (tags or []):
|
| 700 |
-
t = _norm_tag_for_lookup(str(raw))
|
| 701 |
-
if not t:
|
| 702 |
-
continue
|
| 703 |
-
if t in excluded:
|
| 704 |
-
removed.append(t)
|
| 705 |
-
continue
|
| 706 |
-
if t in seen:
|
| 707 |
-
continue
|
| 708 |
-
seen.add(t)
|
| 709 |
-
keep.append(t)
|
| 710 |
return keep, sorted(set(removed))
|
| 711 |
|
| 712 |
|
|
@@ -1044,12 +1044,12 @@ def _build_toggle_rows(
|
|
| 1044 |
top_tags_per_group: int,
|
| 1045 |
group_rank_top_k: int,
|
| 1046 |
) -> List[Dict[str, Any]]:
|
| 1047 |
-
ranked_rows = rank_groups_from_tfidf(
|
| 1048 |
-
seed_terms=seed_terms,
|
| 1049 |
-
top_groups=max(1, int(top_groups)),
|
| 1050 |
-
top_tags_per_group=max(1, int(top_tags_per_group)),
|
| 1051 |
-
group_rank_top_k=max(1, int(group_rank_top_k)),
|
| 1052 |
-
)
|
| 1053 |
groups_map = _load_enabled_groups()
|
| 1054 |
selected_active = list(
|
| 1055 |
dict.fromkeys(
|
|
@@ -1085,7 +1085,7 @@ def _build_toggle_rows(
|
|
| 1085 |
tags_in_any_displayed_group: Set[str] = set()
|
| 1086 |
for tag_set in displayed_group_tag_sets.values():
|
| 1087 |
tags_in_any_displayed_group.update(tag_set)
|
| 1088 |
-
|
| 1089 |
retrieved_uncategorized_ranked = list(
|
| 1090 |
dict.fromkeys(
|
| 1091 |
_norm_tag_for_lookup(t)
|
|
@@ -1198,36 +1198,36 @@ def _build_toggle_rows(
|
|
| 1198 |
row_defs.append(retrieved_other_row)
|
| 1199 |
|
| 1200 |
return row_defs
|
| 1201 |
-
|
| 1202 |
-
|
| 1203 |
def _build_display_audit_line(
|
| 1204 |
-
row_defs: List[Dict[str, Any]],
|
| 1205 |
-
*,
|
| 1206 |
-
active_selected_tags: List[str],
|
| 1207 |
-
direct_selected_tags: List[str],
|
| 1208 |
-
implied_selected_tags: List[str],
|
| 1209 |
-
) -> str:
|
| 1210 |
-
active_set = {
|
| 1211 |
-
_norm_tag_for_lookup(t)
|
| 1212 |
-
for t in (active_selected_tags or [])
|
| 1213 |
-
if t and not _is_artist_tag(t)
|
| 1214 |
-
}
|
| 1215 |
-
direct_set = {
|
| 1216 |
-
_norm_tag_for_lookup(t)
|
| 1217 |
-
for t in (direct_selected_tags or [])
|
| 1218 |
-
if t and not _is_artist_tag(t)
|
| 1219 |
-
}
|
| 1220 |
-
implied_set = {
|
| 1221 |
-
_norm_tag_for_lookup(t)
|
| 1222 |
-
for t in (implied_selected_tags or [])
|
| 1223 |
-
if t and not _is_artist_tag(t)
|
| 1224 |
-
}
|
| 1225 |
-
info_by_tag: Dict[str, Dict[str, Any]] = {}
|
| 1226 |
-
|
| 1227 |
-
for row in row_defs or []:
|
| 1228 |
-
row_name = row.get("name", "")
|
| 1229 |
-
row_label = row.get("label", row_name)
|
| 1230 |
-
for tag in row.get("tags", []):
|
| 1231 |
rec = info_by_tag.setdefault(tag, {"rows": [], "sources": set()})
|
| 1232 |
rec["rows"].append(row_label)
|
| 1233 |
if row_name == "selected_other":
|
|
@@ -1236,23 +1236,23 @@ def _build_display_audit_line(
|
|
| 1236 |
rec["sources"].add("other_retrieved_row")
|
| 1237 |
else:
|
| 1238 |
rec["sources"].add("ranked_group_row")
|
| 1239 |
-
if tag in active_set:
|
| 1240 |
-
rec["sources"].add("selected_active")
|
| 1241 |
-
if tag in direct_set:
|
| 1242 |
-
rec["sources"].add("selected_direct")
|
| 1243 |
-
if tag in implied_set:
|
| 1244 |
-
rec["sources"].add("selected_implied")
|
| 1245 |
-
|
| 1246 |
-
payload = {
|
| 1247 |
-
"n_tags": len(info_by_tag),
|
| 1248 |
-
"tags": [
|
| 1249 |
-
{
|
| 1250 |
-
"tag": tag,
|
| 1251 |
-
"rows": rec["rows"],
|
| 1252 |
-
"sources": sorted(rec["sources"]),
|
| 1253 |
-
}
|
| 1254 |
-
for tag, rec in sorted(info_by_tag.items())
|
| 1255 |
-
],
|
| 1256 |
}
|
| 1257 |
return "Display Tag Audit: " + json.dumps(payload, ensure_ascii=True)
|
| 1258 |
|
|
@@ -1313,16 +1313,16 @@ def _build_row_component_updates(
|
|
| 1313 |
choices=choices,
|
| 1314 |
value=values,
|
| 1315 |
visible=visible,
|
| 1316 |
-
)
|
| 1317 |
-
)
|
| 1318 |
else:
|
| 1319 |
header_updates.append(gr.update(value="", visible=False))
|
| 1320 |
checkbox_updates.append(gr.update(choices=[], value=[], visible=False))
|
| 1321 |
|
| 1322 |
prompt_text = _compose_toggle_prompt_text(list(selected), row_defs_ui)
|
| 1323 |
return prompt_text, row_values_state, header_updates, checkbox_updates
|
| 1324 |
-
|
| 1325 |
-
|
| 1326 |
def _on_toggle_row(
|
| 1327 |
row_idx: int,
|
| 1328 |
changed_values: List[str],
|
|
@@ -1408,8 +1408,8 @@ def _on_toggle_row(
|
|
| 1408 |
prompt_text,
|
| 1409 |
*checkbox_updates,
|
| 1410 |
]
|
| 1411 |
-
|
| 1412 |
-
|
| 1413 |
def _build_ui_payload(
|
| 1414 |
*,
|
| 1415 |
console_text: str,
|
|
@@ -1774,114 +1774,114 @@ def _build_selection_query(
|
|
| 1774 |
probe_tags: List[str],
|
| 1775 |
classifier_auto_tags: Optional[List[str]] = None,
|
| 1776 |
) -> str:
|
| 1777 |
-
lines = [f"IMAGE DESCRIPTION: {prompt_in.strip()}"]
|
| 1778 |
-
if rewritten and rewritten.strip():
|
| 1779 |
-
lines.append(f"REWRITE PHRASES: {rewritten.strip()}")
|
| 1780 |
-
hint_tags = []
|
| 1781 |
-
if structural_tags:
|
| 1782 |
-
hint_tags.extend(structural_tags)
|
| 1783 |
if probe_tags:
|
| 1784 |
hint_tags.extend(probe_tags)
|
| 1785 |
if classifier_auto_tags:
|
| 1786 |
hint_tags.extend(classifier_auto_tags)
|
| 1787 |
-
if hint_tags:
|
| 1788 |
-
# Keep hints as context only; selection still must choose by candidate indices.
|
| 1789 |
-
lines.append(
|
| 1790 |
-
"INFERRED TAG HINTS (context only): " + ", ".join(sorted(set(hint_tags)))
|
| 1791 |
-
)
|
| 1792 |
-
return "\n".join(lines)
|
| 1793 |
-
|
| 1794 |
-
|
| 1795 |
-
# Set up logging
|
| 1796 |
-
# Minimal prod logging: warnings+ to stderr, no file by default
|
| 1797 |
-
import os, logging
|
| 1798 |
-
|
| 1799 |
-
LOG_LEVEL = os.environ.get("PSQ_LOG_LEVEL", "WARNING").upper()
|
| 1800 |
-
logging.basicConfig(
|
| 1801 |
-
level=getattr(logging, LOG_LEVEL, logging.WARNING),
|
| 1802 |
-
format="%(asctime)s %(levelname)s:%(message)s",
|
| 1803 |
-
handlers=[logging.StreamHandler()] # no file -> avoids huge logs on Spaces
|
| 1804 |
-
)
|
| 1805 |
-
|
| 1806 |
-
# Quiet down common noisy libs (optional)
|
| 1807 |
-
for _name in ("gensim", "gradio", "hnswlib", "httpx", "uvicorn"):
|
| 1808 |
-
logging.getLogger(_name).setLevel(logging.ERROR)
|
| 1809 |
-
|
| 1810 |
-
# Turn off Gradio analytics phone-home to avoid those background thread errors (optional)
|
| 1811 |
-
os.environ["GRADIO_ANALYTICS_ENABLED"] = "0"
|
| 1812 |
-
|
| 1813 |
-
|
| 1814 |
-
MASCOT_DIR = Path(__file__).parent / "mascotimages"
|
| 1815 |
-
MASCOT_FILE = MASCOT_DIR / "transparentsquirrel.png"
|
| 1816 |
-
|
| 1817 |
-
|
| 1818 |
-
def _load_mascot_image():
|
| 1819 |
-
"""Load mascot image if available; return None when missing/unreadable."""
|
| 1820 |
-
if not MASCOT_FILE.exists():
|
| 1821 |
-
logging.warning("Mascot image missing: %s", MASCOT_FILE)
|
| 1822 |
-
return None
|
| 1823 |
-
try:
|
| 1824 |
-
return Image.open(MASCOT_FILE).convert("RGBA")
|
| 1825 |
-
except Exception as e:
|
| 1826 |
-
logging.warning("Failed to load mascot image (%s): %s", MASCOT_FILE, e)
|
| 1827 |
-
return None
|
| 1828 |
-
|
| 1829 |
-
try:
|
| 1830 |
-
from gradio_client import utils as _gc_utils
|
| 1831 |
-
|
| 1832 |
-
_orig_get_type = _gc_utils.get_type
|
| 1833 |
-
_orig_j2p = _gc_utils._json_schema_to_python_type
|
| 1834 |
-
_orig_pub = _gc_utils.json_schema_to_python_type
|
| 1835 |
-
|
| 1836 |
-
def _get_type_safe(schema):
|
| 1837 |
-
# Sometimes schema is a bare True/False (JSON Schema boolean form)
|
| 1838 |
-
if not isinstance(schema, dict):
|
| 1839 |
-
return "any"
|
| 1840 |
-
return _orig_get_type(schema)
|
| 1841 |
-
|
| 1842 |
-
def _j2p_safe(schema, defs=None):
|
| 1843 |
-
# Accept non-dict schemas (True/False/None) and treat as "any"
|
| 1844 |
-
if not isinstance(schema, dict):
|
| 1845 |
-
return "any"
|
| 1846 |
-
return _orig_j2p(schema, defs or schema.get("$defs"))
|
| 1847 |
-
|
| 1848 |
-
def _pub_safe(schema):
|
| 1849 |
-
# Public wrapper used by Gradio; keep it resilient too
|
| 1850 |
-
if not isinstance(schema, dict):
|
| 1851 |
-
return "any"
|
| 1852 |
-
return _j2p_safe(schema, schema.get("$defs"))
|
| 1853 |
-
|
| 1854 |
-
_gc_utils.get_type = _get_type_safe
|
| 1855 |
-
_gc_utils._json_schema_to_python_type = _j2p_safe
|
| 1856 |
-
_gc_utils.json_schema_to_python_type = _pub_safe
|
| 1857 |
-
|
| 1858 |
-
except Exception as e:
|
| 1859 |
-
print("gradio_client hotfix not applied:", e)
|
| 1860 |
-
# -------------------------------------------------------------------------------
|
| 1861 |
-
|
| 1862 |
-
|
| 1863 |
-
allow_nsfw_tags = False
|
| 1864 |
-
def _is_production_runtime() -> bool:
|
| 1865 |
-
"""Best-effort detection for deployed runtime (HF Spaces or explicit env)."""
|
| 1866 |
-
if os.environ.get("PSQ_PRODUCTION", "").strip().lower() in {"1", "true", "yes"}:
|
| 1867 |
-
return True
|
| 1868 |
-
if os.environ.get("SPACE_ID"):
|
| 1869 |
-
return True
|
| 1870 |
-
if os.environ.get("HF_SPACE_ID"):
|
| 1871 |
-
return True
|
| 1872 |
-
if os.environ.get("SYSTEM") == "spaces":
|
| 1873 |
-
return True
|
| 1874 |
-
return False
|
| 1875 |
-
|
| 1876 |
-
|
| 1877 |
-
verbose_retrieval_default = "0" if _is_production_runtime() else "1"
|
| 1878 |
verbose_retrieval = os.environ.get("PSQ_VERBOSE_RETRIEVAL", verbose_retrieval_default).strip().lower() in {"1", "true", "yes"}
|
| 1879 |
verbose_retrieval_all = False
|
| 1880 |
verbose_retrieval_limit = 20
|
| 1881 |
display_top_groups_default = int(os.environ.get("PSQ_DISPLAY_TOP_GROUPS", "10"))
|
| 1882 |
display_top_tags_per_group_default = int(os.environ.get("PSQ_DISPLAY_TOP_TAGS_PER_GROUP", "7"))
|
| 1883 |
display_rank_top_k_default = int(os.environ.get("PSQ_DISPLAY_GROUP_RANK_TOP_K", "7"))
|
| 1884 |
-
display_max_rows_default = int(os.environ.get("PSQ_DISPLAY_MAX_ROWS", "14"))
|
| 1885 |
retrieval_global_k = int(os.environ.get("PSQ_RETRIEVAL_GLOBAL_K", "300"))
|
| 1886 |
retrieval_per_phrase_k = int(os.environ.get("PSQ_RETRIEVAL_PER_PHRASE_K", "10"))
|
| 1887 |
retrieval_per_phrase_final_k = int(os.environ.get("PSQ_RETRIEVAL_PER_PHRASE_FINAL_K", "1"))
|
|
@@ -1919,28 +1919,28 @@ _startup_profile_mark(
|
|
| 1919 |
"startup_preflight.done",
|
| 1920 |
error_count=len(STARTUP_PREFLIGHT_ERRORS),
|
| 1921 |
)
|
| 1922 |
-
|
| 1923 |
css = """
|
| 1924 |
-
.scrollable-content{
|
| 1925 |
-
max-height: 420px;
|
| 1926 |
-
overflow-y: scroll; /* always show scrollbar */
|
| 1927 |
-
overflow-x: hidden;
|
| 1928 |
-
padding-right: 8px;
|
| 1929 |
-
padding-bottom: 14px; /* <— add this */
|
| 1930 |
-
scrollbar-gutter: stable; /* prevent layout shift as it fills */
|
| 1931 |
-
|
| 1932 |
-
/* Firefox */
|
| 1933 |
-
scrollbar-width: auto;
|
| 1934 |
-
scrollbar-color: rgba(180,180,180,.9) rgba(0,0,0,.15);
|
| 1935 |
-
}
|
| 1936 |
-
|
| 1937 |
-
/* WebKit/Chromium (Chrome/Edge/Safari) */
|
| 1938 |
-
.scrollable-content::-webkit-scrollbar{ width: 10px; }
|
| 1939 |
-
.scrollable-content::-webkit-scrollbar-thumb{ background: rgba(180,180,180,.9); border-radius: 8px; }
|
| 1940 |
-
.scrollable-content::-webkit-scrollbar-track{ background: rgba(0,0,0,.15); }
|
| 1941 |
-
|
| 1942 |
-
/* (Optional) make both scroll panes taller so they fill more of the column */
|
| 1943 |
-
.pane-left .scrollable-content,
|
| 1944 |
.pane-right .scrollable-content {
|
| 1945 |
max-height: 610px; /* was 420px; tweak to taste */
|
| 1946 |
}
|
|
@@ -2765,28 +2765,28 @@ def rag_pipeline_ui(
|
|
| 2765 |
|
| 2766 |
def _record_timing(stage: str, dt_s: float):
|
| 2767 |
stage_timings[stage] = float(dt_s)
|
| 2768 |
-
|
| 2769 |
-
def _emit_timing_summary(total_s: float):
|
| 2770 |
-
summary_order = [
|
| 2771 |
"preprocess",
|
| 2772 |
"rewrite",
|
| 2773 |
"structural",
|
| 2774 |
"classifier",
|
| 2775 |
"retrieval",
|
| 2776 |
-
"selection",
|
| 2777 |
-
"implication_expansion",
|
| 2778 |
-
"prompt_composition",
|
| 2779 |
-
"group_display",
|
| 2780 |
-
]
|
| 2781 |
-
lines = []
|
| 2782 |
-
for k in summary_order:
|
| 2783 |
-
if k in stage_timings:
|
| 2784 |
-
lines.append(f"{k}={stage_timings[k]:.2f}s")
|
| 2785 |
-
slowest = max(stage_timings.items(), key=lambda kv: kv[1])[0] if stage_timings else "n/a"
|
| 2786 |
-
log("Timing Summary: " + ", ".join(lines))
|
| 2787 |
-
log(f"Timing Slowest Stage: {slowest}")
|
| 2788 |
-
log(f"Timing Total: {total_s:.2f}s")
|
| 2789 |
-
|
| 2790 |
def _append_timing_jsonl(total_s: float):
|
| 2791 |
try:
|
| 2792 |
timing_log_path.parent.mkdir(parents=True, exist_ok=True)
|
|
@@ -2805,12 +2805,12 @@ def rag_pipeline_ui(
|
|
| 2805 |
"timeout_select_s": stage3_select_timeout_s,
|
| 2806 |
},
|
| 2807 |
}
|
| 2808 |
-
with timing_log_path.open("a", encoding="utf-8") as f:
|
| 2809 |
-
f.write(json.dumps(rec, ensure_ascii=True) + "\n")
|
| 2810 |
-
log(f"Timing Log: wrote {timing_log_path}")
|
| 2811 |
except Exception as e:
|
| 2812 |
log(f"Timing Log: failed ({type(e).__name__}: {_redact_console_error_text(e)})")
|
| 2813 |
-
|
| 2814 |
def _future_with_timeout(
|
| 2815 |
fut,
|
| 2816 |
timeout_s: float,
|
|
@@ -2856,7 +2856,7 @@ def rag_pipeline_ui(
|
|
| 2856 |
raise RuntimeError(msg)
|
| 2857 |
log(f"{msg}; using fallback")
|
| 2858 |
return fallback
|
| 2859 |
-
|
| 2860 |
t_total0 = time.perf_counter()
|
| 2861 |
log("Start: received prompt")
|
| 2862 |
if STARTUP_PREFLIGHT_ERRORS:
|
|
@@ -2883,7 +2883,7 @@ def rag_pipeline_ui(
|
|
| 2883 |
suggested_prompt_text='Enter a prompt and click "Run".',
|
| 2884 |
)
|
| 2885 |
return
|
| 2886 |
-
|
| 2887 |
log("Input:")
|
| 2888 |
log(prompt_in)
|
| 2889 |
log("")
|
|
@@ -2997,7 +2997,7 @@ def rag_pipeline_ui(
|
|
| 2997 |
f"{', '.join(removed_exact_excluded)}"
|
| 2998 |
)
|
| 2999 |
log("")
|
| 3000 |
-
|
| 3001 |
rewrite_prefilled = (rewrite_override or "").strip()
|
| 3002 |
if rewrite_prefilled:
|
| 3003 |
log("Step 1: structural + classifier inference (rewrite already prepared)")
|
|
@@ -3117,9 +3117,9 @@ def rag_pipeline_ui(
|
|
| 3117 |
if retrieval_query_hints:
|
| 3118 |
# keep them separate in logs, but allow them to help retrieval
|
| 3119 |
rewrite_for_retrieval = (rewrite_for_retrieval + ", " + ", ".join(retrieval_query_hints)).strip(", ").strip()
|
| 3120 |
-
|
| 3121 |
-
|
| 3122 |
-
log("Step 2: Prompt Squirrel retrieval (hidden)")
|
| 3123 |
try:
|
| 3124 |
t0 = time.perf_counter()
|
| 3125 |
retrieval_context_tags = list(dict.fromkeys((structural_tags or []) + (probe_tags or [])))
|
|
@@ -3181,42 +3181,42 @@ def rag_pipeline_ui(
|
|
| 3181 |
_record_timing("retrieval", dt)
|
| 3182 |
log(f"Retrieval: {dt:.2f}s")
|
| 3183 |
log(f"Retrieved {len(candidates)} candidate tags")
|
| 3184 |
-
if verbose_retrieval:
|
| 3185 |
-
log(f"Total unique candidates: {len(candidates)}")
|
| 3186 |
-
limit = None if verbose_retrieval_all else max(1, int(verbose_retrieval_limit))
|
| 3187 |
-
for report in phrase_reports:
|
| 3188 |
-
phrase = report.get("normalized") or report.get("phrase") or ""
|
| 3189 |
-
lookup = report.get("lookup") or ""
|
| 3190 |
-
tfidf_vocab = report.get("tfidf_vocab")
|
| 3191 |
-
log(f"Phrase: {phrase} (lookup={lookup}) tfidf_vocab={tfidf_vocab}")
|
| 3192 |
-
rows = report.get("candidates", [])
|
| 3193 |
-
shown = rows if limit is None else rows[:limit]
|
| 3194 |
-
for row in shown:
|
| 3195 |
-
tag = row.get("tag")
|
| 3196 |
-
alias_token = row.get("alias_token")
|
| 3197 |
-
score_fasttext = row.get("score_fasttext")
|
| 3198 |
-
score_context = row.get("score_context")
|
| 3199 |
-
score_combined = row.get("score_combined")
|
| 3200 |
-
count = row.get("count")
|
| 3201 |
-
alias_part = ""
|
| 3202 |
-
if alias_token and alias_token != tag:
|
| 3203 |
-
alias_part = f" [alias_token={alias_token}]"
|
| 3204 |
-
fasttext_str = (
|
| 3205 |
-
f"{score_fasttext:.3f}" if isinstance(score_fasttext, (int, float)) else score_fasttext
|
| 3206 |
-
)
|
| 3207 |
-
if score_context is None:
|
| 3208 |
-
context_str = "None"
|
| 3209 |
-
else:
|
| 3210 |
-
context_str = (
|
| 3211 |
-
f"{score_context:.3f}" if isinstance(score_context, (int, float)) else score_context
|
| 3212 |
-
)
|
| 3213 |
-
combined_str = (
|
| 3214 |
-
f"{score_combined:.3f}" if isinstance(score_combined, (int, float)) else score_combined
|
| 3215 |
-
)
|
| 3216 |
-
log(
|
| 3217 |
-
f" {tag}{alias_part} | fasttext={fasttext_str} context={context_str} "
|
| 3218 |
-
f"combined={combined_str} count={count}"
|
| 3219 |
-
)
|
| 3220 |
if limit is not None and len(rows) > limit:
|
| 3221 |
log(f" ... ({len(rows) - limit} more)")
|
| 3222 |
except Exception as e:
|
|
@@ -3301,16 +3301,16 @@ def rag_pipeline_ui(
|
|
| 3301 |
f"(<{min_tag_count}): {', '.join(removed_stage3_low)}"
|
| 3302 |
)
|
| 3303 |
selected_tags = list(selection_selected_tags)
|
| 3304 |
-
|
| 3305 |
-
if structural_tags:
|
| 3306 |
-
# Add structural tags that aren't already selected
|
| 3307 |
-
existing = {t for t in selected_tags}
|
| 3308 |
-
new_structural = [t for t in structural_tags if t not in existing]
|
| 3309 |
-
selected_tags.extend(new_structural)
|
| 3310 |
-
log(f" Added {len(new_structural)} structural tags: {', '.join(new_structural)}")
|
| 3311 |
-
else:
|
| 3312 |
-
log(" No structural tags inferred")
|
| 3313 |
-
|
| 3314 |
if probe_tags:
|
| 3315 |
existing = {t for t in selected_tags}
|
| 3316 |
new_probe = [t for t in probe_tags if t not in existing]
|
|
@@ -3335,9 +3335,9 @@ def rag_pipeline_ui(
|
|
| 3335 |
log(" No high-confidence classifier tags")
|
| 3336 |
|
| 3337 |
selected_tags, removed_excluded_direct = _filter_excluded_recommendation_tags(selected_tags)
|
| 3338 |
-
if removed_excluded_direct:
|
| 3339 |
-
log(f" Removed {len(removed_excluded_direct)} excluded tags: {', '.join(removed_excluded_direct)}")
|
| 3340 |
-
|
| 3341 |
direct_selected_tags = list(dict.fromkeys(selected_tags))
|
| 3342 |
|
| 3343 |
status_states["reranker"] = {
|
|
@@ -3349,12 +3349,12 @@ def rag_pipeline_ui(
|
|
| 3349 |
yield _progress_payload()
|
| 3350 |
|
| 3351 |
log("Step 3c: Expand via tag implications")
|
| 3352 |
-
t0 = time.perf_counter()
|
| 3353 |
-
tag_set = set(selected_tags)
|
| 3354 |
-
expanded, implied_only = expand_tags_via_implications(tag_set)
|
| 3355 |
-
dt = time.perf_counter()-t0
|
| 3356 |
-
_record_timing("implication_expansion", dt)
|
| 3357 |
-
log(f"Implication expansion: {dt:.2f}s")
|
| 3358 |
implied_selected_tags = sorted(implied_only) if implied_only else []
|
| 3359 |
if implied_only:
|
| 3360 |
implied_added = sorted(implied_only)
|
|
@@ -3370,24 +3370,24 @@ def rag_pipeline_ui(
|
|
| 3370 |
)
|
| 3371 |
else:
|
| 3372 |
log(" No additional implied tags")
|
| 3373 |
-
|
| 3374 |
-
selected_tags, removed_excluded_implied = _filter_excluded_recommendation_tags(selected_tags)
|
| 3375 |
-
implied_selected_tags = [
|
| 3376 |
-
t for t in implied_selected_tags if not _is_excluded_recommendation_tag(t)
|
| 3377 |
-
]
|
| 3378 |
-
if removed_excluded_implied:
|
| 3379 |
-
log(
|
| 3380 |
-
f" Removed {len(removed_excluded_implied)} excluded tags after implications: "
|
| 3381 |
-
f"{', '.join(removed_excluded_implied)}"
|
| 3382 |
-
)
|
| 3383 |
-
|
| 3384 |
-
log("Step 4: Compose final prompt")
|
| 3385 |
-
t0 = time.perf_counter()
|
| 3386 |
-
final_prompt = compose_final_prompt(rewritten, selected_tags)
|
| 3387 |
-
dt = time.perf_counter()-t0
|
| 3388 |
-
_record_timing("prompt_composition", dt)
|
| 3389 |
-
log(f"Prompt composition: {dt:.2f}s")
|
| 3390 |
-
|
| 3391 |
log("Step 5: Build ranked group/category display")
|
| 3392 |
t0 = time.perf_counter()
|
| 3393 |
seed_terms = []
|
|
@@ -3398,7 +3398,7 @@ def rag_pipeline_ui(
|
|
| 3398 |
seed_terms.extend(classifier_auto_tags or [])
|
| 3399 |
seed_terms.extend(classifier_candidate_tags or [])
|
| 3400 |
seed_terms.extend(selected_tags)
|
| 3401 |
-
seed_terms = list(dict.fromkeys(seed_terms))
|
| 3402 |
|
| 3403 |
active_selected_tags = list(dict.fromkeys(selected_tags))
|
| 3404 |
structural_set = {_norm_tag_for_lookup(t) for t in (structural_tags or []) if t}
|
|
@@ -3514,8 +3514,8 @@ def rag_pipeline_ui(
|
|
| 3514 |
suggested_prompt_text=_format_user_facing_error(e),
|
| 3515 |
)
|
| 3516 |
return
|
| 3517 |
-
|
| 3518 |
-
|
| 3519 |
_startup_profile_mark("ui.blocks_build_begin")
|
| 3520 |
with gr.Blocks(css=css, js=client_js) as app:
|
| 3521 |
with gr.Row():
|
|
@@ -3615,21 +3615,21 @@ with gr.Blocks(css=css, js=client_js) as app:
|
|
| 3615 |
visible=False,
|
| 3616 |
interactive=False,
|
| 3617 |
)
|
| 3618 |
-
|
| 3619 |
-
with gr.Accordion("Display Settings", open=False):
|
| 3620 |
-
with gr.Row():
|
| 3621 |
-
display_top_groups = gr.Number(
|
| 3622 |
-
value=display_top_groups_default,
|
| 3623 |
-
precision=0,
|
| 3624 |
-
label="Rows (Top Groups/Categories)",
|
| 3625 |
-
minimum=1,
|
| 3626 |
-
)
|
| 3627 |
-
display_top_tags_per_group = gr.Number(
|
| 3628 |
-
value=display_top_tags_per_group_default,
|
| 3629 |
-
precision=0,
|
| 3630 |
-
label="Top Tags Shown Per Row",
|
| 3631 |
-
minimum=1,
|
| 3632 |
-
)
|
| 3633 |
display_rank_top_k = gr.Number(
|
| 3634 |
value=display_rank_top_k_default,
|
| 3635 |
precision=0,
|
|
@@ -3710,7 +3710,7 @@ with gr.Blocks(css=css, js=client_js) as app:
|
|
| 3710 |
*row_checkboxes,
|
| 3711 |
]
|
| 3712 |
run_outputs_with_rewrite = [*run_outputs, rewrite_state]
|
| 3713 |
-
|
| 3714 |
image_tags.change(
|
| 3715 |
_update_run_button_visibility,
|
| 3716 |
inputs=[image_tags, last_run_prompt_state],
|
|
@@ -3785,7 +3785,7 @@ with gr.Blocks(css=css, js=client_js) as app:
|
|
| 3785 |
show_progress="minimal",
|
| 3786 |
show_progress_on=[mascot_img],
|
| 3787 |
)
|
| 3788 |
-
|
| 3789 |
for idx, row_cb in enumerate(row_checkboxes):
|
| 3790 |
row_cb.change(
|
| 3791 |
fn=lambda changed_values, selected_state, rows_dirty, row_defs, row_values, i=idx: _on_toggle_row(
|
|
|
|
| 147 |
# Common kink/fetish markers.
|
| 148 |
re.compile(r"(^|_)(fetish|bdsm|bondage|dominatrix|submission|vore|inflation|watersports)(_|$)", re.IGNORECASE),
|
| 149 |
]
|
| 150 |
+
|
| 151 |
+
|
| 152 |
def _split_prompt_commas(s: str) -> List[str]:
|
| 153 |
return [p.strip() for p in (s or "").split(",") if p.strip()]
|
| 154 |
|
|
|
|
| 213 |
log("Rewrite source=t5 returned empty; fallback to llm")
|
| 214 |
return llm_rewrite_prompt(prompt_in, log)
|
| 215 |
return ""
|
| 216 |
+
|
| 217 |
+
def compose_final_prompt(rewritten_prompt: str, selected_tags: List[str]) -> str:
|
| 218 |
+
parts = _split_prompt_commas(rewritten_prompt)
|
| 219 |
+
parts.extend(selected_tags)
|
| 220 |
+
|
| 221 |
+
seen = set()
|
| 222 |
+
out = []
|
| 223 |
+
for p in parts:
|
| 224 |
+
key = _norm_for_dedupe(p)
|
| 225 |
+
if key in seen:
|
| 226 |
+
continue
|
| 227 |
+
seen.add(key)
|
| 228 |
+
out.append(p)
|
| 229 |
+
|
| 230 |
+
return ", ".join(out)
|
| 231 |
+
|
| 232 |
+
|
| 233 |
def _display_tag_text(tag: str) -> str:
|
| 234 |
return tag.replace("_", " ")
|
| 235 |
|
|
|
|
| 569 |
|
| 570 |
|
| 571 |
def _escape_prompt_tag(tag: str) -> str:
|
| 572 |
+
return (
|
| 573 |
+
tag.replace("_", " ")
|
| 574 |
+
.replace("(", "\\(")
|
| 575 |
+
.replace(")", "\\)")
|
| 576 |
+
)
|
| 577 |
+
|
| 578 |
+
|
| 579 |
def _ordered_selected_for_prompt(selected: Set[str], row_defs: List[Dict[str, Any]]) -> List[str]:
|
| 580 |
out: List[str] = []
|
| 581 |
seen: Set[str] = set()
|
|
|
|
| 585 |
out.append(tag)
|
| 586 |
seen.add(tag)
|
| 587 |
return out
|
| 588 |
+
|
| 589 |
+
|
| 590 |
+
def _compose_toggle_prompt_text(selected_tags: List[str], row_defs: List[Dict[str, Any]]) -> str:
|
| 591 |
+
selected = {t for t in (selected_tags or []) if t}
|
| 592 |
+
ordered = _ordered_selected_for_prompt(selected, row_defs or [])
|
| 593 |
+
return ", ".join(_escape_prompt_tag(t) for t in ordered)
|
| 594 |
+
|
| 595 |
+
|
| 596 |
+
def _is_artist_tag(tag: str) -> bool:
|
| 597 |
+
t = _norm_tag_for_lookup(str(tag))
|
| 598 |
+
if not t:
|
| 599 |
+
return False
|
| 600 |
+
# Keep a resilient fallback for malformed/missing tag typing metadata.
|
| 601 |
+
return get_tag_type_name(t) == "artist" or t.startswith("by_")
|
| 602 |
+
|
| 603 |
+
|
| 604 |
@lru_cache(maxsize=1)
|
| 605 |
def _load_excluded_recommendation_tags() -> Set[str]:
|
| 606 |
out: Set[str] = set()
|
|
|
|
| 686 |
seen.add(t)
|
| 687 |
keep.append(t)
|
| 688 |
return keep, sorted(set(removed))
|
| 689 |
+
|
| 690 |
+
|
| 691 |
def _filter_excluded_recommendation_tags(tags: List[str]) -> Tuple[List[str], List[str]]:
|
| 692 |
+
excluded = _load_excluded_recommendation_tags()
|
| 693 |
+
if not excluded:
|
| 694 |
+
return list(dict.fromkeys(_norm_tag_for_lookup(t) for t in (tags or []) if t)), []
|
| 695 |
+
|
| 696 |
+
keep: List[str] = []
|
| 697 |
+
removed: List[str] = []
|
| 698 |
+
seen: Set[str] = set()
|
| 699 |
+
for raw in (tags or []):
|
| 700 |
+
t = _norm_tag_for_lookup(str(raw))
|
| 701 |
+
if not t:
|
| 702 |
+
continue
|
| 703 |
+
if t in excluded:
|
| 704 |
+
removed.append(t)
|
| 705 |
+
continue
|
| 706 |
+
if t in seen:
|
| 707 |
+
continue
|
| 708 |
+
seen.add(t)
|
| 709 |
+
keep.append(t)
|
| 710 |
return keep, sorted(set(removed))
|
| 711 |
|
| 712 |
|
|
|
|
| 1044 |
top_tags_per_group: int,
|
| 1045 |
group_rank_top_k: int,
|
| 1046 |
) -> List[Dict[str, Any]]:
|
| 1047 |
+
ranked_rows = rank_groups_from_tfidf(
|
| 1048 |
+
seed_terms=seed_terms,
|
| 1049 |
+
top_groups=max(1, int(top_groups)),
|
| 1050 |
+
top_tags_per_group=max(1, int(top_tags_per_group)),
|
| 1051 |
+
group_rank_top_k=max(1, int(group_rank_top_k)),
|
| 1052 |
+
)
|
| 1053 |
groups_map = _load_enabled_groups()
|
| 1054 |
selected_active = list(
|
| 1055 |
dict.fromkeys(
|
|
|
|
| 1085 |
tags_in_any_displayed_group: Set[str] = set()
|
| 1086 |
for tag_set in displayed_group_tag_sets.values():
|
| 1087 |
tags_in_any_displayed_group.update(tag_set)
|
| 1088 |
+
|
| 1089 |
retrieved_uncategorized_ranked = list(
|
| 1090 |
dict.fromkeys(
|
| 1091 |
_norm_tag_for_lookup(t)
|
|
|
|
| 1198 |
row_defs.append(retrieved_other_row)
|
| 1199 |
|
| 1200 |
return row_defs
|
| 1201 |
+
|
| 1202 |
+
|
| 1203 |
def _build_display_audit_line(
|
| 1204 |
+
row_defs: List[Dict[str, Any]],
|
| 1205 |
+
*,
|
| 1206 |
+
active_selected_tags: List[str],
|
| 1207 |
+
direct_selected_tags: List[str],
|
| 1208 |
+
implied_selected_tags: List[str],
|
| 1209 |
+
) -> str:
|
| 1210 |
+
active_set = {
|
| 1211 |
+
_norm_tag_for_lookup(t)
|
| 1212 |
+
for t in (active_selected_tags or [])
|
| 1213 |
+
if t and not _is_artist_tag(t)
|
| 1214 |
+
}
|
| 1215 |
+
direct_set = {
|
| 1216 |
+
_norm_tag_for_lookup(t)
|
| 1217 |
+
for t in (direct_selected_tags or [])
|
| 1218 |
+
if t and not _is_artist_tag(t)
|
| 1219 |
+
}
|
| 1220 |
+
implied_set = {
|
| 1221 |
+
_norm_tag_for_lookup(t)
|
| 1222 |
+
for t in (implied_selected_tags or [])
|
| 1223 |
+
if t and not _is_artist_tag(t)
|
| 1224 |
+
}
|
| 1225 |
+
info_by_tag: Dict[str, Dict[str, Any]] = {}
|
| 1226 |
+
|
| 1227 |
+
for row in row_defs or []:
|
| 1228 |
+
row_name = row.get("name", "")
|
| 1229 |
+
row_label = row.get("label", row_name)
|
| 1230 |
+
for tag in row.get("tags", []):
|
| 1231 |
rec = info_by_tag.setdefault(tag, {"rows": [], "sources": set()})
|
| 1232 |
rec["rows"].append(row_label)
|
| 1233 |
if row_name == "selected_other":
|
|
|
|
| 1236 |
rec["sources"].add("other_retrieved_row")
|
| 1237 |
else:
|
| 1238 |
rec["sources"].add("ranked_group_row")
|
| 1239 |
+
if tag in active_set:
|
| 1240 |
+
rec["sources"].add("selected_active")
|
| 1241 |
+
if tag in direct_set:
|
| 1242 |
+
rec["sources"].add("selected_direct")
|
| 1243 |
+
if tag in implied_set:
|
| 1244 |
+
rec["sources"].add("selected_implied")
|
| 1245 |
+
|
| 1246 |
+
payload = {
|
| 1247 |
+
"n_tags": len(info_by_tag),
|
| 1248 |
+
"tags": [
|
| 1249 |
+
{
|
| 1250 |
+
"tag": tag,
|
| 1251 |
+
"rows": rec["rows"],
|
| 1252 |
+
"sources": sorted(rec["sources"]),
|
| 1253 |
+
}
|
| 1254 |
+
for tag, rec in sorted(info_by_tag.items())
|
| 1255 |
+
],
|
| 1256 |
}
|
| 1257 |
return "Display Tag Audit: " + json.dumps(payload, ensure_ascii=True)
|
| 1258 |
|
|
|
|
| 1313 |
choices=choices,
|
| 1314 |
value=values,
|
| 1315 |
visible=visible,
|
| 1316 |
+
)
|
| 1317 |
+
)
|
| 1318 |
else:
|
| 1319 |
header_updates.append(gr.update(value="", visible=False))
|
| 1320 |
checkbox_updates.append(gr.update(choices=[], value=[], visible=False))
|
| 1321 |
|
| 1322 |
prompt_text = _compose_toggle_prompt_text(list(selected), row_defs_ui)
|
| 1323 |
return prompt_text, row_values_state, header_updates, checkbox_updates
|
| 1324 |
+
|
| 1325 |
+
|
| 1326 |
def _on_toggle_row(
|
| 1327 |
row_idx: int,
|
| 1328 |
changed_values: List[str],
|
|
|
|
| 1408 |
prompt_text,
|
| 1409 |
*checkbox_updates,
|
| 1410 |
]
|
| 1411 |
+
|
| 1412 |
+
|
| 1413 |
def _build_ui_payload(
|
| 1414 |
*,
|
| 1415 |
console_text: str,
|
|
|
|
| 1774 |
probe_tags: List[str],
|
| 1775 |
classifier_auto_tags: Optional[List[str]] = None,
|
| 1776 |
) -> str:
|
| 1777 |
+
lines = [f"IMAGE DESCRIPTION: {prompt_in.strip()}"]
|
| 1778 |
+
if rewritten and rewritten.strip():
|
| 1779 |
+
lines.append(f"REWRITE PHRASES: {rewritten.strip()}")
|
| 1780 |
+
hint_tags = []
|
| 1781 |
+
if structural_tags:
|
| 1782 |
+
hint_tags.extend(structural_tags)
|
| 1783 |
if probe_tags:
|
| 1784 |
hint_tags.extend(probe_tags)
|
| 1785 |
if classifier_auto_tags:
|
| 1786 |
hint_tags.extend(classifier_auto_tags)
|
| 1787 |
+
if hint_tags:
|
| 1788 |
+
# Keep hints as context only; selection still must choose by candidate indices.
|
| 1789 |
+
lines.append(
|
| 1790 |
+
"INFERRED TAG HINTS (context only): " + ", ".join(sorted(set(hint_tags)))
|
| 1791 |
+
)
|
| 1792 |
+
return "\n".join(lines)
|
| 1793 |
+
|
| 1794 |
+
|
| 1795 |
+
# Set up logging
|
| 1796 |
+
# Minimal prod logging: warnings+ to stderr, no file by default
|
| 1797 |
+
import os, logging
|
| 1798 |
+
|
| 1799 |
+
LOG_LEVEL = os.environ.get("PSQ_LOG_LEVEL", "WARNING").upper()
|
| 1800 |
+
logging.basicConfig(
|
| 1801 |
+
level=getattr(logging, LOG_LEVEL, logging.WARNING),
|
| 1802 |
+
format="%(asctime)s %(levelname)s:%(message)s",
|
| 1803 |
+
handlers=[logging.StreamHandler()] # no file -> avoids huge logs on Spaces
|
| 1804 |
+
)
|
| 1805 |
+
|
| 1806 |
+
# Quiet down common noisy libs (optional)
|
| 1807 |
+
for _name in ("gensim", "gradio", "hnswlib", "httpx", "uvicorn"):
|
| 1808 |
+
logging.getLogger(_name).setLevel(logging.ERROR)
|
| 1809 |
+
|
| 1810 |
+
# Turn off Gradio analytics phone-home to avoid those background thread errors (optional)
|
| 1811 |
+
os.environ["GRADIO_ANALYTICS_ENABLED"] = "0"
|
| 1812 |
+
|
| 1813 |
+
|
| 1814 |
+
MASCOT_DIR = Path(__file__).parent / "mascotimages"
|
| 1815 |
+
MASCOT_FILE = MASCOT_DIR / "transparentsquirrel.png"
|
| 1816 |
+
|
| 1817 |
+
|
| 1818 |
+
def _load_mascot_image():
|
| 1819 |
+
"""Load mascot image if available; return None when missing/unreadable."""
|
| 1820 |
+
if not MASCOT_FILE.exists():
|
| 1821 |
+
logging.warning("Mascot image missing: %s", MASCOT_FILE)
|
| 1822 |
+
return None
|
| 1823 |
+
try:
|
| 1824 |
+
return Image.open(MASCOT_FILE).convert("RGBA")
|
| 1825 |
+
except Exception as e:
|
| 1826 |
+
logging.warning("Failed to load mascot image (%s): %s", MASCOT_FILE, e)
|
| 1827 |
+
return None
|
| 1828 |
+
|
| 1829 |
+
try:
|
| 1830 |
+
from gradio_client import utils as _gc_utils
|
| 1831 |
+
|
| 1832 |
+
_orig_get_type = _gc_utils.get_type
|
| 1833 |
+
_orig_j2p = _gc_utils._json_schema_to_python_type
|
| 1834 |
+
_orig_pub = _gc_utils.json_schema_to_python_type
|
| 1835 |
+
|
| 1836 |
+
def _get_type_safe(schema):
|
| 1837 |
+
# Sometimes schema is a bare True/False (JSON Schema boolean form)
|
| 1838 |
+
if not isinstance(schema, dict):
|
| 1839 |
+
return "any"
|
| 1840 |
+
return _orig_get_type(schema)
|
| 1841 |
+
|
| 1842 |
+
def _j2p_safe(schema, defs=None):
|
| 1843 |
+
# Accept non-dict schemas (True/False/None) and treat as "any"
|
| 1844 |
+
if not isinstance(schema, dict):
|
| 1845 |
+
return "any"
|
| 1846 |
+
return _orig_j2p(schema, defs or schema.get("$defs"))
|
| 1847 |
+
|
| 1848 |
+
def _pub_safe(schema):
|
| 1849 |
+
# Public wrapper used by Gradio; keep it resilient too
|
| 1850 |
+
if not isinstance(schema, dict):
|
| 1851 |
+
return "any"
|
| 1852 |
+
return _j2p_safe(schema, schema.get("$defs"))
|
| 1853 |
+
|
| 1854 |
+
_gc_utils.get_type = _get_type_safe
|
| 1855 |
+
_gc_utils._json_schema_to_python_type = _j2p_safe
|
| 1856 |
+
_gc_utils.json_schema_to_python_type = _pub_safe
|
| 1857 |
+
|
| 1858 |
+
except Exception as e:
|
| 1859 |
+
print("gradio_client hotfix not applied:", e)
|
| 1860 |
+
# -------------------------------------------------------------------------------
|
| 1861 |
+
|
| 1862 |
+
|
| 1863 |
+
allow_nsfw_tags = False
|
| 1864 |
+
def _is_production_runtime() -> bool:
|
| 1865 |
+
"""Best-effort detection for deployed runtime (HF Spaces or explicit env)."""
|
| 1866 |
+
if os.environ.get("PSQ_PRODUCTION", "").strip().lower() in {"1", "true", "yes"}:
|
| 1867 |
+
return True
|
| 1868 |
+
if os.environ.get("SPACE_ID"):
|
| 1869 |
+
return True
|
| 1870 |
+
if os.environ.get("HF_SPACE_ID"):
|
| 1871 |
+
return True
|
| 1872 |
+
if os.environ.get("SYSTEM") == "spaces":
|
| 1873 |
+
return True
|
| 1874 |
+
return False
|
| 1875 |
+
|
| 1876 |
+
|
| 1877 |
+
verbose_retrieval_default = "0" if _is_production_runtime() else "1"
|
| 1878 |
verbose_retrieval = os.environ.get("PSQ_VERBOSE_RETRIEVAL", verbose_retrieval_default).strip().lower() in {"1", "true", "yes"}
|
| 1879 |
verbose_retrieval_all = False
|
| 1880 |
verbose_retrieval_limit = 20
|
| 1881 |
display_top_groups_default = int(os.environ.get("PSQ_DISPLAY_TOP_GROUPS", "10"))
|
| 1882 |
display_top_tags_per_group_default = int(os.environ.get("PSQ_DISPLAY_TOP_TAGS_PER_GROUP", "7"))
|
| 1883 |
display_rank_top_k_default = int(os.environ.get("PSQ_DISPLAY_GROUP_RANK_TOP_K", "7"))
|
| 1884 |
+
display_max_rows_default = int(os.environ.get("PSQ_DISPLAY_MAX_ROWS", "14"))
|
| 1885 |
retrieval_global_k = int(os.environ.get("PSQ_RETRIEVAL_GLOBAL_K", "300"))
|
| 1886 |
retrieval_per_phrase_k = int(os.environ.get("PSQ_RETRIEVAL_PER_PHRASE_K", "10"))
|
| 1887 |
retrieval_per_phrase_final_k = int(os.environ.get("PSQ_RETRIEVAL_PER_PHRASE_FINAL_K", "1"))
|
|
|
|
| 1919 |
"startup_preflight.done",
|
| 1920 |
error_count=len(STARTUP_PREFLIGHT_ERRORS),
|
| 1921 |
)
|
| 1922 |
+
|
| 1923 |
css = """
|
| 1924 |
+
.scrollable-content{
|
| 1925 |
+
max-height: 420px;
|
| 1926 |
+
overflow-y: scroll; /* always show scrollbar */
|
| 1927 |
+
overflow-x: hidden;
|
| 1928 |
+
padding-right: 8px;
|
| 1929 |
+
padding-bottom: 14px; /* <— add this */
|
| 1930 |
+
scrollbar-gutter: stable; /* prevent layout shift as it fills */
|
| 1931 |
+
|
| 1932 |
+
/* Firefox */
|
| 1933 |
+
scrollbar-width: auto;
|
| 1934 |
+
scrollbar-color: rgba(180,180,180,.9) rgba(0,0,0,.15);
|
| 1935 |
+
}
|
| 1936 |
+
|
| 1937 |
+
/* WebKit/Chromium (Chrome/Edge/Safari) */
|
| 1938 |
+
.scrollable-content::-webkit-scrollbar{ width: 10px; }
|
| 1939 |
+
.scrollable-content::-webkit-scrollbar-thumb{ background: rgba(180,180,180,.9); border-radius: 8px; }
|
| 1940 |
+
.scrollable-content::-webkit-scrollbar-track{ background: rgba(0,0,0,.15); }
|
| 1941 |
+
|
| 1942 |
+
/* (Optional) make both scroll panes taller so they fill more of the column */
|
| 1943 |
+
.pane-left .scrollable-content,
|
| 1944 |
.pane-right .scrollable-content {
|
| 1945 |
max-height: 610px; /* was 420px; tweak to taste */
|
| 1946 |
}
|
|
|
|
| 2765 |
|
| 2766 |
def _record_timing(stage: str, dt_s: float):
|
| 2767 |
stage_timings[stage] = float(dt_s)
|
| 2768 |
+
|
| 2769 |
+
def _emit_timing_summary(total_s: float):
|
| 2770 |
+
summary_order = [
|
| 2771 |
"preprocess",
|
| 2772 |
"rewrite",
|
| 2773 |
"structural",
|
| 2774 |
"classifier",
|
| 2775 |
"retrieval",
|
| 2776 |
+
"selection",
|
| 2777 |
+
"implication_expansion",
|
| 2778 |
+
"prompt_composition",
|
| 2779 |
+
"group_display",
|
| 2780 |
+
]
|
| 2781 |
+
lines = []
|
| 2782 |
+
for k in summary_order:
|
| 2783 |
+
if k in stage_timings:
|
| 2784 |
+
lines.append(f"{k}={stage_timings[k]:.2f}s")
|
| 2785 |
+
slowest = max(stage_timings.items(), key=lambda kv: kv[1])[0] if stage_timings else "n/a"
|
| 2786 |
+
log("Timing Summary: " + ", ".join(lines))
|
| 2787 |
+
log(f"Timing Slowest Stage: {slowest}")
|
| 2788 |
+
log(f"Timing Total: {total_s:.2f}s")
|
| 2789 |
+
|
| 2790 |
def _append_timing_jsonl(total_s: float):
|
| 2791 |
try:
|
| 2792 |
timing_log_path.parent.mkdir(parents=True, exist_ok=True)
|
|
|
|
| 2805 |
"timeout_select_s": stage3_select_timeout_s,
|
| 2806 |
},
|
| 2807 |
}
|
| 2808 |
+
with timing_log_path.open("a", encoding="utf-8") as f:
|
| 2809 |
+
f.write(json.dumps(rec, ensure_ascii=True) + "\n")
|
| 2810 |
+
log(f"Timing Log: wrote {timing_log_path}")
|
| 2811 |
except Exception as e:
|
| 2812 |
log(f"Timing Log: failed ({type(e).__name__}: {_redact_console_error_text(e)})")
|
| 2813 |
+
|
| 2814 |
def _future_with_timeout(
|
| 2815 |
fut,
|
| 2816 |
timeout_s: float,
|
|
|
|
| 2856 |
raise RuntimeError(msg)
|
| 2857 |
log(f"{msg}; using fallback")
|
| 2858 |
return fallback
|
| 2859 |
+
|
| 2860 |
t_total0 = time.perf_counter()
|
| 2861 |
log("Start: received prompt")
|
| 2862 |
if STARTUP_PREFLIGHT_ERRORS:
|
|
|
|
| 2883 |
suggested_prompt_text='Enter a prompt and click "Run".',
|
| 2884 |
)
|
| 2885 |
return
|
| 2886 |
+
|
| 2887 |
log("Input:")
|
| 2888 |
log(prompt_in)
|
| 2889 |
log("")
|
|
|
|
| 2997 |
f"{', '.join(removed_exact_excluded)}"
|
| 2998 |
)
|
| 2999 |
log("")
|
| 3000 |
+
|
| 3001 |
rewrite_prefilled = (rewrite_override or "").strip()
|
| 3002 |
if rewrite_prefilled:
|
| 3003 |
log("Step 1: structural + classifier inference (rewrite already prepared)")
|
|
|
|
| 3117 |
if retrieval_query_hints:
|
| 3118 |
# keep them separate in logs, but allow them to help retrieval
|
| 3119 |
rewrite_for_retrieval = (rewrite_for_retrieval + ", " + ", ".join(retrieval_query_hints)).strip(", ").strip()
|
| 3120 |
+
|
| 3121 |
+
|
| 3122 |
+
log("Step 2: Prompt Squirrel retrieval (hidden)")
|
| 3123 |
try:
|
| 3124 |
t0 = time.perf_counter()
|
| 3125 |
retrieval_context_tags = list(dict.fromkeys((structural_tags or []) + (probe_tags or [])))
|
|
|
|
| 3181 |
_record_timing("retrieval", dt)
|
| 3182 |
log(f"Retrieval: {dt:.2f}s")
|
| 3183 |
log(f"Retrieved {len(candidates)} candidate tags")
|
| 3184 |
+
if verbose_retrieval:
|
| 3185 |
+
log(f"Total unique candidates: {len(candidates)}")
|
| 3186 |
+
limit = None if verbose_retrieval_all else max(1, int(verbose_retrieval_limit))
|
| 3187 |
+
for report in phrase_reports:
|
| 3188 |
+
phrase = report.get("normalized") or report.get("phrase") or ""
|
| 3189 |
+
lookup = report.get("lookup") or ""
|
| 3190 |
+
tfidf_vocab = report.get("tfidf_vocab")
|
| 3191 |
+
log(f"Phrase: {phrase} (lookup={lookup}) tfidf_vocab={tfidf_vocab}")
|
| 3192 |
+
rows = report.get("candidates", [])
|
| 3193 |
+
shown = rows if limit is None else rows[:limit]
|
| 3194 |
+
for row in shown:
|
| 3195 |
+
tag = row.get("tag")
|
| 3196 |
+
alias_token = row.get("alias_token")
|
| 3197 |
+
score_fasttext = row.get("score_fasttext")
|
| 3198 |
+
score_context = row.get("score_context")
|
| 3199 |
+
score_combined = row.get("score_combined")
|
| 3200 |
+
count = row.get("count")
|
| 3201 |
+
alias_part = ""
|
| 3202 |
+
if alias_token and alias_token != tag:
|
| 3203 |
+
alias_part = f" [alias_token={alias_token}]"
|
| 3204 |
+
fasttext_str = (
|
| 3205 |
+
f"{score_fasttext:.3f}" if isinstance(score_fasttext, (int, float)) else score_fasttext
|
| 3206 |
+
)
|
| 3207 |
+
if score_context is None:
|
| 3208 |
+
context_str = "None"
|
| 3209 |
+
else:
|
| 3210 |
+
context_str = (
|
| 3211 |
+
f"{score_context:.3f}" if isinstance(score_context, (int, float)) else score_context
|
| 3212 |
+
)
|
| 3213 |
+
combined_str = (
|
| 3214 |
+
f"{score_combined:.3f}" if isinstance(score_combined, (int, float)) else score_combined
|
| 3215 |
+
)
|
| 3216 |
+
log(
|
| 3217 |
+
f" {tag}{alias_part} | fasttext={fasttext_str} context={context_str} "
|
| 3218 |
+
f"combined={combined_str} count={count}"
|
| 3219 |
+
)
|
| 3220 |
if limit is not None and len(rows) > limit:
|
| 3221 |
log(f" ... ({len(rows) - limit} more)")
|
| 3222 |
except Exception as e:
|
|
|
|
| 3301 |
f"(<{min_tag_count}): {', '.join(removed_stage3_low)}"
|
| 3302 |
)
|
| 3303 |
selected_tags = list(selection_selected_tags)
|
| 3304 |
+
|
| 3305 |
+
if structural_tags:
|
| 3306 |
+
# Add structural tags that aren't already selected
|
| 3307 |
+
existing = {t for t in selected_tags}
|
| 3308 |
+
new_structural = [t for t in structural_tags if t not in existing]
|
| 3309 |
+
selected_tags.extend(new_structural)
|
| 3310 |
+
log(f" Added {len(new_structural)} structural tags: {', '.join(new_structural)}")
|
| 3311 |
+
else:
|
| 3312 |
+
log(" No structural tags inferred")
|
| 3313 |
+
|
| 3314 |
if probe_tags:
|
| 3315 |
existing = {t for t in selected_tags}
|
| 3316 |
new_probe = [t for t in probe_tags if t not in existing]
|
|
|
|
| 3335 |
log(" No high-confidence classifier tags")
|
| 3336 |
|
| 3337 |
selected_tags, removed_excluded_direct = _filter_excluded_recommendation_tags(selected_tags)
|
| 3338 |
+
if removed_excluded_direct:
|
| 3339 |
+
log(f" Removed {len(removed_excluded_direct)} excluded tags: {', '.join(removed_excluded_direct)}")
|
| 3340 |
+
|
| 3341 |
direct_selected_tags = list(dict.fromkeys(selected_tags))
|
| 3342 |
|
| 3343 |
status_states["reranker"] = {
|
|
|
|
| 3349 |
yield _progress_payload()
|
| 3350 |
|
| 3351 |
log("Step 3c: Expand via tag implications")
|
| 3352 |
+
t0 = time.perf_counter()
|
| 3353 |
+
tag_set = set(selected_tags)
|
| 3354 |
+
expanded, implied_only = expand_tags_via_implications(tag_set)
|
| 3355 |
+
dt = time.perf_counter()-t0
|
| 3356 |
+
_record_timing("implication_expansion", dt)
|
| 3357 |
+
log(f"Implication expansion: {dt:.2f}s")
|
| 3358 |
implied_selected_tags = sorted(implied_only) if implied_only else []
|
| 3359 |
if implied_only:
|
| 3360 |
implied_added = sorted(implied_only)
|
|
|
|
| 3370 |
)
|
| 3371 |
else:
|
| 3372 |
log(" No additional implied tags")
|
| 3373 |
+
|
| 3374 |
+
selected_tags, removed_excluded_implied = _filter_excluded_recommendation_tags(selected_tags)
|
| 3375 |
+
implied_selected_tags = [
|
| 3376 |
+
t for t in implied_selected_tags if not _is_excluded_recommendation_tag(t)
|
| 3377 |
+
]
|
| 3378 |
+
if removed_excluded_implied:
|
| 3379 |
+
log(
|
| 3380 |
+
f" Removed {len(removed_excluded_implied)} excluded tags after implications: "
|
| 3381 |
+
f"{', '.join(removed_excluded_implied)}"
|
| 3382 |
+
)
|
| 3383 |
+
|
| 3384 |
+
log("Step 4: Compose final prompt")
|
| 3385 |
+
t0 = time.perf_counter()
|
| 3386 |
+
final_prompt = compose_final_prompt(rewritten, selected_tags)
|
| 3387 |
+
dt = time.perf_counter()-t0
|
| 3388 |
+
_record_timing("prompt_composition", dt)
|
| 3389 |
+
log(f"Prompt composition: {dt:.2f}s")
|
| 3390 |
+
|
| 3391 |
log("Step 5: Build ranked group/category display")
|
| 3392 |
t0 = time.perf_counter()
|
| 3393 |
seed_terms = []
|
|
|
|
| 3398 |
seed_terms.extend(classifier_auto_tags or [])
|
| 3399 |
seed_terms.extend(classifier_candidate_tags or [])
|
| 3400 |
seed_terms.extend(selected_tags)
|
| 3401 |
+
seed_terms = list(dict.fromkeys(seed_terms))
|
| 3402 |
|
| 3403 |
active_selected_tags = list(dict.fromkeys(selected_tags))
|
| 3404 |
structural_set = {_norm_tag_for_lookup(t) for t in (structural_tags or []) if t}
|
|
|
|
| 3514 |
suggested_prompt_text=_format_user_facing_error(e),
|
| 3515 |
)
|
| 3516 |
return
|
| 3517 |
+
|
| 3518 |
+
|
| 3519 |
_startup_profile_mark("ui.blocks_build_begin")
|
| 3520 |
with gr.Blocks(css=css, js=client_js) as app:
|
| 3521 |
with gr.Row():
|
|
|
|
| 3615 |
visible=False,
|
| 3616 |
interactive=False,
|
| 3617 |
)
|
| 3618 |
+
|
| 3619 |
+
with gr.Accordion("Display Settings", open=False):
|
| 3620 |
+
with gr.Row():
|
| 3621 |
+
display_top_groups = gr.Number(
|
| 3622 |
+
value=display_top_groups_default,
|
| 3623 |
+
precision=0,
|
| 3624 |
+
label="Rows (Top Groups/Categories)",
|
| 3625 |
+
minimum=1,
|
| 3626 |
+
)
|
| 3627 |
+
display_top_tags_per_group = gr.Number(
|
| 3628 |
+
value=display_top_tags_per_group_default,
|
| 3629 |
+
precision=0,
|
| 3630 |
+
label="Top Tags Shown Per Row",
|
| 3631 |
+
minimum=1,
|
| 3632 |
+
)
|
| 3633 |
display_rank_top_k = gr.Number(
|
| 3634 |
value=display_rank_top_k_default,
|
| 3635 |
precision=0,
|
|
|
|
| 3710 |
*row_checkboxes,
|
| 3711 |
]
|
| 3712 |
run_outputs_with_rewrite = [*run_outputs, rewrite_state]
|
| 3713 |
+
|
| 3714 |
image_tags.change(
|
| 3715 |
_update_run_button_visibility,
|
| 3716 |
inputs=[image_tags, last_run_prompt_state],
|
|
|
|
| 3785 |
show_progress="minimal",
|
| 3786 |
show_progress_on=[mascot_img],
|
| 3787 |
)
|
| 3788 |
+
|
| 3789 |
for idx, row_cb in enumerate(row_checkboxes):
|
| 3790 |
row_cb.change(
|
| 3791 |
fn=lambda changed_values, selected_state, rows_dirty, row_defs, row_values, i=idx: _on_toggle_row(
|
models/finetune/tag-classifier-modernbert-full/classifier_precision_thresholds_calibrated.csv
ADDED
|
@@ -0,0 +1,131 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
tag,target_precision,threshold,val_gold_n,val_pred_n,val_tp,val_precision,val_recall,test_gold_n,test_pred_n,test_tp,test_fp,test_fn,test_precision,test_recall,test_f1
|
| 2 |
+
solo,0.95,0.61279296875,1842,1784,1695,0.9501121076233184,0.9201954397394136,1785,1768,1649,119,136,0.9326923076923077,0.9238095238095239,0.9282296650717704
|
| 3 |
+
solo,0.9,0.1419677734375,1842,2010,1809,0.9,0.9820846905537459,1785,2009,1746,263,39,0.8690890990542558,0.9781512605042016,0.9204006325777543
|
| 4 |
+
solo,0.8,0.056976318359375,1842,2292,1834,0.800174520069808,0.995656894679696,1785,2269,1770,499,15,0.7800793301013662,0.9915966386554622,0.8732116428219043
|
| 5 |
+
solo,0.5,0.0022430419921875,1842,3000,1842,0.614,1.0,1785,2993,1785,1208,0,0.5963915803541597,1.0,0.7471745500209293
|
| 6 |
+
solo,0.2,0.0022430419921875,1842,3000,1842,0.614,1.0,1785,2993,1785,1208,0,0.5963915803541597,1.0,0.7471745500209293
|
| 7 |
+
anthro,0.95,0.81591796875,1968,1010,960,0.9504950495049505,0.4878048780487805,1926,997,944,53,982,0.9468405215646941,0.490134994807892,0.6459117345193295
|
| 8 |
+
anthro,0.9,0.47412109375,1968,1873,1686,0.9001601708489055,0.8567073170731707,1926,1811,1607,204,319,0.8873550524572059,0.8343717549325026,0.8600481669788601
|
| 9 |
+
anthro,0.8,0.1680908203125,1968,2372,1898,0.8001686340640809,0.9644308943089431,1926,2360,1856,504,70,0.7864406779661017,0.9636552440290758,0.8660755949603359
|
| 10 |
+
anthro,0.5,0.0045928955078125,1968,3000,1968,0.656,1.0,1926,3000,1926,1074,0,0.642,1.0,0.781973203410475
|
| 11 |
+
anthro,0.2,0.0045928955078125,1968,3000,1968,0.656,1.0,1926,3000,1926,1074,0,0.642,1.0,0.781973203410475
|
| 12 |
+
mammal,0.95,0.46044921875,2200,2070,1967,0.9502415458937198,0.894090909090909,2222,2064,1973,91,249,0.9559108527131783,0.8879387938793879,0.9206719552029864
|
| 13 |
+
mammal,0.9,0.1807861328125,2200,2355,2120,0.9002123142250531,0.9636363636363636,2222,2368,2120,248,102,0.8952702702702703,0.9540954095409541,0.9237472766884531
|
| 14 |
+
mammal,0.8,0.033966064453125,2200,2727,2183,0.8005133846718006,0.9922727272727273,2222,2741,2210,531,12,0.8062750820868296,0.9945994599459946,0.8905903687285917
|
| 15 |
+
mammal,0.5,0.0003554821014404297,2200,3000,2200,0.7333333333333333,1.0,2222,3000,2222,778,0,0.7406666666666667,1.0,0.8510149368058215
|
| 16 |
+
mammal,0.2,0.0003554821014404297,2200,3000,2200,0.7333333333333333,1.0,2222,3000,2222,778,0,0.7406666666666667,1.0,0.8510149368058215
|
| 17 |
+
clothing,0.95,0.9404296875,1774,224,213,0.9508928571428571,0.12006764374295378,1730,195,187,8,1543,0.958974358974359,0.10809248554913295,0.1942857142857143
|
| 18 |
+
clothing,0.9,0.76953125,1774,1064,958,0.900375939849624,0.5400225479143179,1730,999,910,89,820,0.9109109109109109,0.5260115606936416,0.6669109563942837
|
| 19 |
+
clothing,0.8,0.298095703125,1774,2082,1666,0.8001921229586936,0.939120631341601,1730,2065,1614,451,116,0.7815980629539951,0.9329479768786128,0.850592885375494
|
| 20 |
+
clothing,0.5,0.0038394927978515625,1774,3000,1774,0.5913333333333334,1.0,1730,2997,1730,1267,0,0.5772439105772439,1.0,0.7319653056907128
|
| 21 |
+
clothing,0.2,0.0038394927978515625,1774,3000,1774,0.5913333333333334,1.0,1730,2997,1730,1267,0,0.5772439105772439,1.0,0.7319653056907128
|
| 22 |
+
clothed,0.95,,1001,0,0,,,997,0,0,0,997,0.0,0.0,0.0
|
| 23 |
+
clothed,0.9,,1001,0,0,,,997,0,0,0,997,0.0,0.0,0.0
|
| 24 |
+
clothed,0.8,,1001,0,0,,,997,0,0,0,997,0.0,0.0,0.0
|
| 25 |
+
clothed,0.5,0.429931640625,1001,1760,880,0.5,0.8791208791208791,997,1691,860,831,137,0.5085748078060319,0.8625877632898696,0.6398809523809523
|
| 26 |
+
clothed,0.2,0.006511688232421875,1001,3000,1001,0.33366666666666667,1.0,997,3000,997,2003,0,0.3323333333333333,1.0,0.4988741556167125
|
| 27 |
+
fur,0.95,0.908203125,1270,67,64,0.9552238805970149,0.050393700787401574,1250,70,62,8,1188,0.8857142857142857,0.0496,0.09393939393939393
|
| 28 |
+
fur,0.9,0.89111328125,1270,101,91,0.900990099009901,0.07165354330708662,1250,108,97,11,1153,0.8981481481481481,0.0776,0.14285714285714285
|
| 29 |
+
fur,0.8,0.8017578125,1270,370,296,0.8,0.23307086614173228,1250,376,316,60,934,0.8404255319148937,0.2528,0.3886838868388684
|
| 30 |
+
fur,0.5,0.159423828125,1270,2506,1253,0.5,0.9866141732283464,1250,2452,1224,1228,26,0.499184339314845,0.9792,0.6612641815235007
|
| 31 |
+
fur,0.2,0.01078033447265625,1270,3000,1270,0.42333333333333334,1.0,1250,2998,1250,1748,0,0.41694462975316876,1.0,0.588512241054614
|
| 32 |
+
hair,0.95,0.9326171875,1148,63,60,0.9523809523809523,0.05226480836236934,1169,72,65,7,1104,0.9027777777777778,0.055603079555175364,0.10475423045930701
|
| 33 |
+
hair,0.9,0.8955078125,1148,171,154,0.9005847953216374,0.13414634146341464,1169,187,161,26,1008,0.8609625668449198,0.1377245508982036,0.23746312684365783
|
| 34 |
+
hair,0.8,0.79931640625,1148,526,421,0.8003802281368821,0.3667247386759582,1169,529,434,95,735,0.8204158790170132,0.3712574850299401,0.5111896348645466
|
| 35 |
+
hair,0.5,0.2115478515625,1148,2206,1103,0.5,0.960801393728223,1169,2185,1117,1068,52,0.5112128146453089,0.9555175363558597,0.6660703637447822
|
| 36 |
+
hair,0.2,0.0087127685546875,1148,3000,1148,0.38266666666666665,1.0,1169,2995,1169,1826,0,0.3903171953255426,1.0,0.5614793467819404
|
| 37 |
+
blue_eyes,0.95,0.9482421875,431,37,36,0.972972972972973,0.08352668213457076,390,34,28,6,362,0.8235294117647058,0.07179487179487179,0.1320754716981132
|
| 38 |
+
blue_eyes,0.9,0.93359375,431,54,49,0.9074074074074074,0.1136890951276102,390,53,44,9,346,0.8301886792452831,0.11282051282051282,0.1986455981941309
|
| 39 |
+
blue_eyes,0.8,0.833984375,431,199,160,0.8040201005025126,0.37122969837587005,390,184,141,43,249,0.7663043478260869,0.36153846153846153,0.4912891986062717
|
| 40 |
+
blue_eyes,0.5,0.60205078125,431,556,278,0.5,0.6450116009280742,390,548,258,290,132,0.4708029197080292,0.6615384615384615,0.5501066098081023
|
| 41 |
+
blue_eyes,0.2,0.218994140625,431,2050,410,0.2,0.951276102088167,390,2003,370,1633,20,0.18472291562656015,0.9487179487179487,0.3092352695361471
|
| 42 |
+
canid,0.95,0.92236328125,889,706,671,0.9504249291784702,0.7547806524184477,824,663,630,33,194,0.9502262443438914,0.7645631067961165,0.847343644922663
|
| 43 |
+
canid,0.9,0.70654296875,889,864,778,0.9004629629629629,0.875140607424072,824,810,723,87,101,0.8925925925925926,0.8774271844660194,0.8849449204406364
|
| 44 |
+
canid,0.8,0.3583984375,889,1036,829,0.8001930501930502,0.9325084364454443,824,983,765,218,59,0.7782299084435402,0.9283980582524272,0.8467072495849475
|
| 45 |
+
canid,0.5,0.053009033203125,889,1750,875,0.5,0.984251968503937,824,1724,812,912,12,0.4709976798143852,0.9854368932038835,0.6373626373626374
|
| 46 |
+
canid,0.2,2.6047229766845703e-05,889,3000,889,0.29633333333333334,1.0,824,3000,824,2176,0,0.27466666666666667,1.0,0.4309623430962343
|
| 47 |
+
canine,0.95,0.94384765625,866,615,585,0.9512195121951219,0.6755196304849884,804,580,554,26,250,0.9551724137931035,0.6890547263681592,0.800578034682081
|
| 48 |
+
canine,0.9,0.69921875,866,843,759,0.900355871886121,0.8764434180138568,804,806,709,97,95,0.8796526054590571,0.8818407960199005,0.8807453416149069
|
| 49 |
+
canine,0.8,0.366943359375,866,1014,812,0.8007889546351085,0.9376443418013857,804,972,748,224,56,0.7695473251028807,0.9303482587064676,0.8423423423423424
|
| 50 |
+
canine,0.5,0.058990478515625,866,1706,853,0.5,0.9849884526558892,804,1669,791,878,13,0.47393648891551826,0.9838308457711443,0.639708855640922
|
| 51 |
+
canine,0.2,0.00010389089584350586,866,3000,866,0.2886666666666667,1.0,804,3000,804,2196,0,0.268,1.0,0.42271293375394325
|
| 52 |
+
simple_background,0.95,0.95361328125,981,6,6,1.0,0.0061162079510703364,979,5,5,0,974,1.0,0.005107252298263534,0.01016260162601626
|
| 53 |
+
simple_background,0.9,0.8837890625,981,81,73,0.9012345679012346,0.0744138634046891,979,93,79,14,900,0.8494623655913979,0.08069458631256383,0.14738805970149252
|
| 54 |
+
simple_background,0.8,0.8173828125,981,227,182,0.801762114537445,0.18552497451580022,979,258,201,57,778,0.7790697674418605,0.20531154239019409,0.3249797898140663
|
| 55 |
+
simple_background,0.5,0.388427734375,981,1701,851,0.5002939447383892,0.8674821610601428,979,1738,852,886,127,0.4902186421173763,0.8702757916241062,0.6271623113728377
|
| 56 |
+
simple_background,0.2,0.008575439453125,981,3000,981,0.327,1.0,979,2996,979,2017,0,0.3267690253671562,1.0,0.49257861635220124
|
| 57 |
+
male,0.95,0.9306640625,1276,312,297,0.9519230769230769,0.23275862068965517,1301,290,278,12,1023,0.9586206896551724,0.21368178324365872,0.349465744814582
|
| 58 |
+
male,0.9,0.84521484375,1276,593,535,0.9021922428330523,0.41927899686520376,1301,576,529,47,772,0.9184027777777778,0.40661029976940816,0.5636654235482151
|
| 59 |
+
male,0.8,0.5595703125,1276,1215,974,0.8016460905349794,0.7633228840125392,1301,1234,992,242,309,0.8038897893030794,0.7624903920061491,0.7826429980276134
|
| 60 |
+
male,0.5,0.0616455078125,1276,2528,1264,0.5,0.9905956112852664,1301,2520,1294,1226,7,0.5134920634920634,0.994619523443505,0.6773096048154932
|
| 61 |
+
male,0.2,0.0026531219482421875,1276,3000,1276,0.42533333333333334,1.0,1301,3000,1301,1699,0,0.43366666666666664,1.0,0.6049755870727738
|
| 62 |
+
female,0.95,0.78857421875,1540,1151,1094,0.950477845351868,0.7103896103896103,1504,1163,1090,73,414,0.937231298366294,0.7247340425531915,0.817397825271841
|
| 63 |
+
female,0.9,0.56640625,1540,1420,1278,0.9,0.8298701298701299,1504,1423,1268,155,236,0.8910751932536893,0.8430851063829787,0.8664161257259992
|
| 64 |
+
female,0.8,0.2783203125,1540,1785,1428,0.8,0.9272727272727272,1504,1805,1408,397,96,0.7800554016620499,0.9361702127659575,0.8510123904502872
|
| 65 |
+
female,0.5,0.0008296966552734375,1540,3000,1540,0.5133333333333333,1.0,1504,2998,1504,1494,0,0.5016677785190127,1.0,0.6681474900044425
|
| 66 |
+
female,0.2,0.0008296966552734375,1540,3000,1540,0.5133333333333333,1.0,1504,2998,1504,1494,0,0.5016677785190127,1.0,0.6681474900044425
|
| 67 |
+
ambiguous_gender,0.95,,488,0,0,,,497,0,0,0,497,0.0,0.0,0.0
|
| 68 |
+
ambiguous_gender,0.9,,488,0,0,,,497,0,0,0,497,0.0,0.0,0.0
|
| 69 |
+
ambiguous_gender,0.8,0.93359375,488,115,92,0.8,0.1885245901639344,497,98,75,23,422,0.7653061224489796,0.15090543259557343,0.25210084033613445
|
| 70 |
+
ambiguous_gender,0.5,0.59375,488,734,367,0.5,0.7520491803278688,497,726,365,361,132,0.5027548209366391,0.7344064386317908,0.5968928863450532
|
| 71 |
+
ambiguous_gender,0.2,0.07574462890625,488,2430,486,0.2,0.9959016393442623,497,2445,494,1951,3,0.20204498977505111,0.993963782696177,0.335825968728756
|
| 72 |
+
text,0.95,0.9365234375,831,260,247,0.95,0.2972322503008424,782,285,265,20,517,0.9298245614035088,0.3388746803069054,0.4967197750702905
|
| 73 |
+
text,0.9,0.84716796875,831,424,382,0.9009433962264151,0.45968712394705175,782,436,387,49,395,0.8876146788990825,0.4948849104859335,0.6354679802955665
|
| 74 |
+
text,0.8,0.67724609375,831,637,511,0.8021978021978022,0.614921780986763,782,612,497,115,285,0.8120915032679739,0.6355498721227621,0.7130559540889526
|
| 75 |
+
text,0.5,0.343994140625,831,1342,671,0.5,0.8074608904933814,782,1344,655,689,127,0.48735119047619047,0.8375959079283888,0.6161806208842898
|
| 76 |
+
text,0.2,0.0240936279296875,831,3000,831,0.277,1.0,782,3000,782,2218,0,0.26066666666666666,1.0,0.41353781068217876
|
| 77 |
+
looking_at_viewer,0.95,,566,0,0,,,525,0,0,0,525,0.0,0.0,0.0
|
| 78 |
+
looking_at_viewer,0.9,,566,0,0,,,525,0,0,0,525,0.0,0.0,0.0
|
| 79 |
+
looking_at_viewer,0.8,,566,0,0,,,525,0,0,0,525,0.0,0.0,0.0
|
| 80 |
+
looking_at_viewer,0.5,0.84912109375,566,79,40,0.5063291139240507,0.0706713780918728,525,78,40,38,485,0.5128205128205128,0.0761904761904762,0.1326699834162521
|
| 81 |
+
looking_at_viewer,0.2,0.0953369140625,566,2809,562,0.20007119971520113,0.9929328621908127,525,2780,522,2258,3,0.18776978417266188,0.9942857142857143,0.3158850226928896
|
| 82 |
+
open_mouth,0.95,,555,0,0,,,547,0,0,0,547,0.0,0.0,0.0
|
| 83 |
+
open_mouth,0.9,,555,0,0,,,547,0,0,0,547,0.0,0.0,0.0
|
| 84 |
+
open_mouth,0.8,0.92529296875,555,12,10,0.8333333333333334,0.018018018018018018,547,9,8,1,539,0.8888888888888888,0.014625228519195612,0.028776978417266185
|
| 85 |
+
open_mouth,0.5,0.69775390625,555,402,201,0.5,0.3621621621621622,547,382,172,210,375,0.450261780104712,0.31444241316270566,0.37029063509149623
|
| 86 |
+
open_mouth,0.2,0.16357421875,555,2730,546,0.2,0.9837837837837838,547,2707,538,2169,9,0.19874399704469892,0.9835466179159049,0.3306699446834665
|
| 87 |
+
smile,0.95,0.94970703125,774,9,9,1.0,0.011627906976744186,768,4,4,0,764,1.0,0.005208333333333333,0.010362694300518135
|
| 88 |
+
smile,0.9,0.94873046875,774,10,9,0.9,0.011627906976744186,768,4,4,0,764,1.0,0.005208333333333333,0.010362694300518135
|
| 89 |
+
smile,0.8,0.84375,774,143,115,0.8041958041958042,0.14857881136950904,768,156,120,36,648,0.7692307692307693,0.15625,0.2597402597402597
|
| 90 |
+
smile,0.5,0.55322265625,774,1062,531,0.5,0.686046511627907,768,1016,486,530,282,0.47834645669291337,0.6328125,0.5448430493273543
|
| 91 |
+
smile,0.2,0.0257110595703125,774,3000,774,0.258,1.0,768,2995,768,2227,0,0.25642737896494155,1.0,0.4081849588094605
|
| 92 |
+
group,0.95,0.98974609375,323,24,23,0.9583333333333334,0.07120743034055728,347,33,33,0,314,1.0,0.09510086455331412,0.17368421052631577
|
| 93 |
+
group,0.9,0.9794921875,323,62,56,0.9032258064516129,0.17337461300309598,347,69,64,5,283,0.927536231884058,0.1844380403458213,0.30769230769230765
|
| 94 |
+
group,0.8,0.9130859375,323,212,170,0.8018867924528302,0.5263157894736842,347,236,192,44,155,0.8135593220338984,0.553314121037464,0.6586620926243568
|
| 95 |
+
group,0.5,0.54638671875,323,566,283,0.5,0.8761609907120743,347,588,291,297,56,0.49489795918367346,0.8386167146974063,0.6224598930481283
|
| 96 |
+
group,0.2,0.0794677734375,323,1589,318,0.2001258653241032,0.9845201238390093,347,1613,340,1273,7,0.21078735275883448,0.9798270893371758,0.3469387755102041
|
| 97 |
+
duo,0.95,0.97802734375,683,123,117,0.9512195121951219,0.17130307467057102,708,146,134,12,574,0.9178082191780822,0.18926553672316385,0.31381733021077285
|
| 98 |
+
duo,0.9,0.9482421875,683,260,234,0.9,0.34260614934114203,708,289,254,35,454,0.8788927335640139,0.3587570621468927,0.5095285857572719
|
| 99 |
+
duo,0.8,0.7666015625,683,666,533,0.8003003003003003,0.780380673499268,708,681,555,126,153,0.8149779735682819,0.7838983050847458,0.7991360691144708
|
| 100 |
+
duo,0.5,0.1884765625,683,1302,651,0.5,0.9531478770131772,708,1257,674,583,34,0.5361972951471758,0.9519774011299436,0.6860050890585242
|
| 101 |
+
duo,0.2,0.0023784637451171875,683,3000,683,0.22766666666666666,1.0,708,3000,708,2292,0,0.236,1.0,0.38187702265372164
|
| 102 |
+
feral,0.95,0.97802734375,612,80,76,0.95,0.12418300653594772,611,92,80,12,531,0.8695652173913043,0.1309328968903437,0.22759601706970128
|
| 103 |
+
feral,0.9,0.95947265625,612,193,174,0.9015544041450777,0.28431372549019607,611,178,157,21,454,0.8820224719101124,0.2569558101472995,0.3979721166032953
|
| 104 |
+
feral,0.8,0.88525390625,612,397,318,0.801007556675063,0.5196078431372549,611,407,327,80,284,0.8034398034398035,0.5351882160392799,0.6424361493123772
|
| 105 |
+
feral,0.5,0.35009765625,612,1140,570,0.5,0.9313725490196079,611,1162,557,605,54,0.4793459552495697,0.911620294599018,0.6283135927805978
|
| 106 |
+
feral,0.2,0.0009436607360839844,612,3000,612,0.204,1.0,611,2999,611,2388,0,0.20373457819273091,1.0,0.33850415512465376
|
| 107 |
+
red_eyes,0.95,0.978515625,196,5,5,1.0,0.025510204081632654,182,4,4,0,178,1.0,0.02197802197802198,0.043010752688172046
|
| 108 |
+
red_eyes,0.9,0.978515625,196,5,5,1.0,0.025510204081632654,182,4,4,0,178,1.0,0.02197802197802198,0.043010752688172046
|
| 109 |
+
red_eyes,0.8,0.86474609375,196,86,69,0.8023255813953488,0.3520408163265306,182,84,53,31,129,0.6309523809523809,0.29120879120879123,0.39849624060150374
|
| 110 |
+
red_eyes,0.5,0.62158203125,196,243,122,0.5020576131687243,0.6224489795918368,182,277,105,172,77,0.37906137184115524,0.5769230769230769,0.45751633986928103
|
| 111 |
+
red_eyes,0.2,0.34765625,196,790,158,0.2,0.8061224489795918,182,796,142,654,40,0.17839195979899497,0.7802197802197802,0.29038854805725967
|
| 112 |
+
topwear,0.95,0.9736328125,603,5,5,1.0,0.008291873963515755,602,1,1,0,601,1.0,0.0016611295681063123,0.0033167495854063015
|
| 113 |
+
topwear,0.9,0.9736328125,603,5,5,1.0,0.008291873963515755,602,1,1,0,601,1.0,0.0016611295681063123,0.0033167495854063015
|
| 114 |
+
topwear,0.8,0.939453125,603,40,32,0.8,0.05306799336650083,602,39,33,6,569,0.8461538461538461,0.054817275747508304,0.1029641185647426
|
| 115 |
+
topwear,0.5,0.61669921875,603,826,413,0.5,0.6849087893864013,602,779,418,361,184,0.5365853658536586,0.6943521594684385,0.6053584359160029
|
| 116 |
+
topwear,0.2,0.0037364959716796875,603,3000,603,0.201,1.0,602,2999,602,2397,0,0.20073357785928642,1.0,0.3343515690086087
|
| 117 |
+
bottomwear,0.95,0.970703125,423,5,5,1.0,0.01182033096926714,439,7,5,2,434,0.7142857142857143,0.011389521640091117,0.022421524663677136
|
| 118 |
+
bottomwear,0.9,0.970703125,423,5,5,1.0,0.01182033096926714,439,7,5,2,434,0.7142857142857143,0.011389521640091117,0.022421524663677136
|
| 119 |
+
bottomwear,0.8,0.97021484375,423,6,5,0.8333333333333334,0.01182033096926714,439,7,5,2,434,0.7142857142857143,0.011389521640091117,0.022421524663677136
|
| 120 |
+
bottomwear,0.5,0.73095703125,423,478,240,0.502092050209205,0.5673758865248227,439,421,208,213,231,0.49406175771971494,0.47380410022779046,0.48372093023255813
|
| 121 |
+
bottomwear,0.2,0.1458740234375,423,2060,412,0.2,0.9739952718676123,439,2047,430,1617,9,0.21006350757205666,0.979498861047836,0.34593724859211583
|
| 122 |
+
teeth,0.95,,492,0,0,,,494,0,0,0,494,0.0,0.0,0.0
|
| 123 |
+
teeth,0.9,0.96435546875,492,12,11,0.9166666666666666,0.022357723577235773,494,7,6,1,488,0.8571428571428571,0.012145748987854251,0.023952095808383235
|
| 124 |
+
teeth,0.8,0.892578125,492,71,57,0.8028169014084507,0.11585365853658537,494,69,48,21,446,0.6956521739130435,0.09716599190283401,0.17051509769094136
|
| 125 |
+
teeth,0.5,0.68408203125,492,442,221,0.5,0.4491869918699187,494,430,195,235,299,0.45348837209302323,0.39473684210526316,0.422077922077922
|
| 126 |
+
teeth,0.2,0.22021484375,492,2410,482,0.2,0.9796747967479674,494,2426,471,1955,23,0.1941467436108821,0.9534412955465587,0.3226027397260274
|
| 127 |
+
wings,0.95,0.97998046875,377,118,113,0.9576271186440678,0.29973474801061006,404,122,121,1,283,0.9918032786885246,0.2995049504950495,0.4600760456273764
|
| 128 |
+
wings,0.9,0.9404296875,377,253,228,0.9011857707509882,0.6047745358090185,404,236,213,23,191,0.902542372881356,0.5272277227722773,0.665625
|
| 129 |
+
wings,0.8,0.8583984375,377,356,285,0.800561797752809,0.7559681697612732,404,343,275,68,129,0.8017492711370262,0.6806930693069307,0.7362784471218207
|
| 130 |
+
wings,0.5,0.3701171875,377,694,347,0.5,0.9204244031830239,404,709,375,334,29,0.5289139633286318,0.9282178217821783,0.6738544474393531
|
| 131 |
+
wings,0.2,0.0386962890625,377,1855,371,0.2,0.9840848806366048,404,1800,402,1398,2,0.22333333333333333,0.995049504950495,0.3647912885662432
|
models/finetune/tag-classifier-modernbert-full/config.json
ADDED
|
The diff for this file is too large to render.
See raw diff
|
|
|
models/finetune/tag-classifier-modernbert-full/labels.json
ADDED
|
The diff for this file is too large to render.
See raw diff
|
|
|
models/finetune/tag-classifier-modernbert-full/model.safetensors
ADDED
|
@@ -0,0 +1,3 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
version https://git-lfs.github.com/spec/v1
|
| 2 |
+
oid sha256:9f120a4119c4805ff55ecafe08f1b5b5683b0aebbd7a6809fabc41bcd6f0fec0
|
| 3 |
+
size 309059422
|
models/finetune/tag-classifier-modernbert-full/special_tokens_map.json
ADDED
|
@@ -0,0 +1,37 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
{
|
| 2 |
+
"cls_token": {
|
| 3 |
+
"content": "[CLS]",
|
| 4 |
+
"lstrip": false,
|
| 5 |
+
"normalized": false,
|
| 6 |
+
"rstrip": false,
|
| 7 |
+
"single_word": false
|
| 8 |
+
},
|
| 9 |
+
"mask_token": {
|
| 10 |
+
"content": "[MASK]",
|
| 11 |
+
"lstrip": true,
|
| 12 |
+
"normalized": false,
|
| 13 |
+
"rstrip": false,
|
| 14 |
+
"single_word": false
|
| 15 |
+
},
|
| 16 |
+
"pad_token": {
|
| 17 |
+
"content": "[PAD]",
|
| 18 |
+
"lstrip": false,
|
| 19 |
+
"normalized": false,
|
| 20 |
+
"rstrip": false,
|
| 21 |
+
"single_word": false
|
| 22 |
+
},
|
| 23 |
+
"sep_token": {
|
| 24 |
+
"content": "[SEP]",
|
| 25 |
+
"lstrip": false,
|
| 26 |
+
"normalized": false,
|
| 27 |
+
"rstrip": false,
|
| 28 |
+
"single_word": false
|
| 29 |
+
},
|
| 30 |
+
"unk_token": {
|
| 31 |
+
"content": "[UNK]",
|
| 32 |
+
"lstrip": false,
|
| 33 |
+
"normalized": false,
|
| 34 |
+
"rstrip": false,
|
| 35 |
+
"single_word": false
|
| 36 |
+
}
|
| 37 |
+
}
|
models/finetune/tag-classifier-modernbert-full/tokenizer.json
ADDED
|
The diff for this file is too large to render.
See raw diff
|
|
|
models/finetune/tag-classifier-modernbert-full/tokenizer_config.json
ADDED
|
@@ -0,0 +1,945 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
{
|
| 2 |
+
"added_tokens_decoder": {
|
| 3 |
+
"0": {
|
| 4 |
+
"content": "|||IP_ADDRESS|||",
|
| 5 |
+
"lstrip": false,
|
| 6 |
+
"normalized": true,
|
| 7 |
+
"rstrip": false,
|
| 8 |
+
"single_word": false,
|
| 9 |
+
"special": false
|
| 10 |
+
},
|
| 11 |
+
"1": {
|
| 12 |
+
"content": "<|padding|>",
|
| 13 |
+
"lstrip": false,
|
| 14 |
+
"normalized": false,
|
| 15 |
+
"rstrip": false,
|
| 16 |
+
"single_word": false,
|
| 17 |
+
"special": true
|
| 18 |
+
},
|
| 19 |
+
"50254": {
|
| 20 |
+
"content": " ",
|
| 21 |
+
"lstrip": false,
|
| 22 |
+
"normalized": true,
|
| 23 |
+
"rstrip": false,
|
| 24 |
+
"single_word": false,
|
| 25 |
+
"special": false
|
| 26 |
+
},
|
| 27 |
+
"50255": {
|
| 28 |
+
"content": " ",
|
| 29 |
+
"lstrip": false,
|
| 30 |
+
"normalized": true,
|
| 31 |
+
"rstrip": false,
|
| 32 |
+
"single_word": false,
|
| 33 |
+
"special": false
|
| 34 |
+
},
|
| 35 |
+
"50256": {
|
| 36 |
+
"content": " ",
|
| 37 |
+
"lstrip": false,
|
| 38 |
+
"normalized": true,
|
| 39 |
+
"rstrip": false,
|
| 40 |
+
"single_word": false,
|
| 41 |
+
"special": false
|
| 42 |
+
},
|
| 43 |
+
"50257": {
|
| 44 |
+
"content": " ",
|
| 45 |
+
"lstrip": false,
|
| 46 |
+
"normalized": true,
|
| 47 |
+
"rstrip": false,
|
| 48 |
+
"single_word": false,
|
| 49 |
+
"special": false
|
| 50 |
+
},
|
| 51 |
+
"50258": {
|
| 52 |
+
"content": " ",
|
| 53 |
+
"lstrip": false,
|
| 54 |
+
"normalized": true,
|
| 55 |
+
"rstrip": false,
|
| 56 |
+
"single_word": false,
|
| 57 |
+
"special": false
|
| 58 |
+
},
|
| 59 |
+
"50259": {
|
| 60 |
+
"content": " ",
|
| 61 |
+
"lstrip": false,
|
| 62 |
+
"normalized": true,
|
| 63 |
+
"rstrip": false,
|
| 64 |
+
"single_word": false,
|
| 65 |
+
"special": false
|
| 66 |
+
},
|
| 67 |
+
"50260": {
|
| 68 |
+
"content": " ",
|
| 69 |
+
"lstrip": false,
|
| 70 |
+
"normalized": true,
|
| 71 |
+
"rstrip": false,
|
| 72 |
+
"single_word": false,
|
| 73 |
+
"special": false
|
| 74 |
+
},
|
| 75 |
+
"50261": {
|
| 76 |
+
"content": " ",
|
| 77 |
+
"lstrip": false,
|
| 78 |
+
"normalized": true,
|
| 79 |
+
"rstrip": false,
|
| 80 |
+
"single_word": false,
|
| 81 |
+
"special": false
|
| 82 |
+
},
|
| 83 |
+
"50262": {
|
| 84 |
+
"content": " ",
|
| 85 |
+
"lstrip": false,
|
| 86 |
+
"normalized": true,
|
| 87 |
+
"rstrip": false,
|
| 88 |
+
"single_word": false,
|
| 89 |
+
"special": false
|
| 90 |
+
},
|
| 91 |
+
"50263": {
|
| 92 |
+
"content": " ",
|
| 93 |
+
"lstrip": false,
|
| 94 |
+
"normalized": true,
|
| 95 |
+
"rstrip": false,
|
| 96 |
+
"single_word": false,
|
| 97 |
+
"special": false
|
| 98 |
+
},
|
| 99 |
+
"50264": {
|
| 100 |
+
"content": " ",
|
| 101 |
+
"lstrip": false,
|
| 102 |
+
"normalized": true,
|
| 103 |
+
"rstrip": false,
|
| 104 |
+
"single_word": false,
|
| 105 |
+
"special": false
|
| 106 |
+
},
|
| 107 |
+
"50265": {
|
| 108 |
+
"content": " ",
|
| 109 |
+
"lstrip": false,
|
| 110 |
+
"normalized": true,
|
| 111 |
+
"rstrip": false,
|
| 112 |
+
"single_word": false,
|
| 113 |
+
"special": false
|
| 114 |
+
},
|
| 115 |
+
"50266": {
|
| 116 |
+
"content": " ",
|
| 117 |
+
"lstrip": false,
|
| 118 |
+
"normalized": true,
|
| 119 |
+
"rstrip": false,
|
| 120 |
+
"single_word": false,
|
| 121 |
+
"special": false
|
| 122 |
+
},
|
| 123 |
+
"50267": {
|
| 124 |
+
"content": " ",
|
| 125 |
+
"lstrip": false,
|
| 126 |
+
"normalized": true,
|
| 127 |
+
"rstrip": false,
|
| 128 |
+
"single_word": false,
|
| 129 |
+
"special": false
|
| 130 |
+
},
|
| 131 |
+
"50268": {
|
| 132 |
+
"content": " ",
|
| 133 |
+
"lstrip": false,
|
| 134 |
+
"normalized": true,
|
| 135 |
+
"rstrip": false,
|
| 136 |
+
"single_word": false,
|
| 137 |
+
"special": false
|
| 138 |
+
},
|
| 139 |
+
"50269": {
|
| 140 |
+
"content": " ",
|
| 141 |
+
"lstrip": false,
|
| 142 |
+
"normalized": true,
|
| 143 |
+
"rstrip": false,
|
| 144 |
+
"single_word": false,
|
| 145 |
+
"special": false
|
| 146 |
+
},
|
| 147 |
+
"50270": {
|
| 148 |
+
"content": " ",
|
| 149 |
+
"lstrip": false,
|
| 150 |
+
"normalized": true,
|
| 151 |
+
"rstrip": false,
|
| 152 |
+
"single_word": false,
|
| 153 |
+
"special": false
|
| 154 |
+
},
|
| 155 |
+
"50271": {
|
| 156 |
+
"content": " ",
|
| 157 |
+
"lstrip": false,
|
| 158 |
+
"normalized": true,
|
| 159 |
+
"rstrip": false,
|
| 160 |
+
"single_word": false,
|
| 161 |
+
"special": false
|
| 162 |
+
},
|
| 163 |
+
"50272": {
|
| 164 |
+
"content": " ",
|
| 165 |
+
"lstrip": false,
|
| 166 |
+
"normalized": true,
|
| 167 |
+
"rstrip": false,
|
| 168 |
+
"single_word": false,
|
| 169 |
+
"special": false
|
| 170 |
+
},
|
| 171 |
+
"50273": {
|
| 172 |
+
"content": " ",
|
| 173 |
+
"lstrip": false,
|
| 174 |
+
"normalized": true,
|
| 175 |
+
"rstrip": false,
|
| 176 |
+
"single_word": false,
|
| 177 |
+
"special": false
|
| 178 |
+
},
|
| 179 |
+
"50274": {
|
| 180 |
+
"content": " ",
|
| 181 |
+
"lstrip": false,
|
| 182 |
+
"normalized": true,
|
| 183 |
+
"rstrip": false,
|
| 184 |
+
"single_word": false,
|
| 185 |
+
"special": false
|
| 186 |
+
},
|
| 187 |
+
"50275": {
|
| 188 |
+
"content": " ",
|
| 189 |
+
"lstrip": false,
|
| 190 |
+
"normalized": true,
|
| 191 |
+
"rstrip": false,
|
| 192 |
+
"single_word": false,
|
| 193 |
+
"special": false
|
| 194 |
+
},
|
| 195 |
+
"50276": {
|
| 196 |
+
"content": " ",
|
| 197 |
+
"lstrip": false,
|
| 198 |
+
"normalized": true,
|
| 199 |
+
"rstrip": false,
|
| 200 |
+
"single_word": false,
|
| 201 |
+
"special": false
|
| 202 |
+
},
|
| 203 |
+
"50277": {
|
| 204 |
+
"content": "|||EMAIL_ADDRESS|||",
|
| 205 |
+
"lstrip": false,
|
| 206 |
+
"normalized": true,
|
| 207 |
+
"rstrip": false,
|
| 208 |
+
"single_word": false,
|
| 209 |
+
"special": false
|
| 210 |
+
},
|
| 211 |
+
"50278": {
|
| 212 |
+
"content": "|||PHONE_NUMBER|||",
|
| 213 |
+
"lstrip": false,
|
| 214 |
+
"normalized": true,
|
| 215 |
+
"rstrip": false,
|
| 216 |
+
"single_word": false,
|
| 217 |
+
"special": false
|
| 218 |
+
},
|
| 219 |
+
"50279": {
|
| 220 |
+
"content": "<|endoftext|>",
|
| 221 |
+
"lstrip": false,
|
| 222 |
+
"normalized": false,
|
| 223 |
+
"rstrip": false,
|
| 224 |
+
"single_word": false,
|
| 225 |
+
"special": true
|
| 226 |
+
},
|
| 227 |
+
"50280": {
|
| 228 |
+
"content": "[UNK]",
|
| 229 |
+
"lstrip": false,
|
| 230 |
+
"normalized": false,
|
| 231 |
+
"rstrip": false,
|
| 232 |
+
"single_word": false,
|
| 233 |
+
"special": true
|
| 234 |
+
},
|
| 235 |
+
"50281": {
|
| 236 |
+
"content": "[CLS]",
|
| 237 |
+
"lstrip": false,
|
| 238 |
+
"normalized": false,
|
| 239 |
+
"rstrip": false,
|
| 240 |
+
"single_word": false,
|
| 241 |
+
"special": true
|
| 242 |
+
},
|
| 243 |
+
"50282": {
|
| 244 |
+
"content": "[SEP]",
|
| 245 |
+
"lstrip": false,
|
| 246 |
+
"normalized": false,
|
| 247 |
+
"rstrip": false,
|
| 248 |
+
"single_word": false,
|
| 249 |
+
"special": true
|
| 250 |
+
},
|
| 251 |
+
"50283": {
|
| 252 |
+
"content": "[PAD]",
|
| 253 |
+
"lstrip": false,
|
| 254 |
+
"normalized": false,
|
| 255 |
+
"rstrip": false,
|
| 256 |
+
"single_word": false,
|
| 257 |
+
"special": true
|
| 258 |
+
},
|
| 259 |
+
"50284": {
|
| 260 |
+
"content": "[MASK]",
|
| 261 |
+
"lstrip": true,
|
| 262 |
+
"normalized": false,
|
| 263 |
+
"rstrip": false,
|
| 264 |
+
"single_word": false,
|
| 265 |
+
"special": true
|
| 266 |
+
},
|
| 267 |
+
"50285": {
|
| 268 |
+
"content": "[unused0]",
|
| 269 |
+
"lstrip": false,
|
| 270 |
+
"normalized": true,
|
| 271 |
+
"rstrip": false,
|
| 272 |
+
"single_word": false,
|
| 273 |
+
"special": false
|
| 274 |
+
},
|
| 275 |
+
"50286": {
|
| 276 |
+
"content": "[unused1]",
|
| 277 |
+
"lstrip": false,
|
| 278 |
+
"normalized": true,
|
| 279 |
+
"rstrip": false,
|
| 280 |
+
"single_word": false,
|
| 281 |
+
"special": false
|
| 282 |
+
},
|
| 283 |
+
"50287": {
|
| 284 |
+
"content": "[unused2]",
|
| 285 |
+
"lstrip": false,
|
| 286 |
+
"normalized": true,
|
| 287 |
+
"rstrip": false,
|
| 288 |
+
"single_word": false,
|
| 289 |
+
"special": false
|
| 290 |
+
},
|
| 291 |
+
"50288": {
|
| 292 |
+
"content": "[unused3]",
|
| 293 |
+
"lstrip": false,
|
| 294 |
+
"normalized": true,
|
| 295 |
+
"rstrip": false,
|
| 296 |
+
"single_word": false,
|
| 297 |
+
"special": false
|
| 298 |
+
},
|
| 299 |
+
"50289": {
|
| 300 |
+
"content": "[unused4]",
|
| 301 |
+
"lstrip": false,
|
| 302 |
+
"normalized": true,
|
| 303 |
+
"rstrip": false,
|
| 304 |
+
"single_word": false,
|
| 305 |
+
"special": false
|
| 306 |
+
},
|
| 307 |
+
"50290": {
|
| 308 |
+
"content": "[unused5]",
|
| 309 |
+
"lstrip": false,
|
| 310 |
+
"normalized": true,
|
| 311 |
+
"rstrip": false,
|
| 312 |
+
"single_word": false,
|
| 313 |
+
"special": false
|
| 314 |
+
},
|
| 315 |
+
"50291": {
|
| 316 |
+
"content": "[unused6]",
|
| 317 |
+
"lstrip": false,
|
| 318 |
+
"normalized": true,
|
| 319 |
+
"rstrip": false,
|
| 320 |
+
"single_word": false,
|
| 321 |
+
"special": false
|
| 322 |
+
},
|
| 323 |
+
"50292": {
|
| 324 |
+
"content": "[unused7]",
|
| 325 |
+
"lstrip": false,
|
| 326 |
+
"normalized": true,
|
| 327 |
+
"rstrip": false,
|
| 328 |
+
"single_word": false,
|
| 329 |
+
"special": false
|
| 330 |
+
},
|
| 331 |
+
"50293": {
|
| 332 |
+
"content": "[unused8]",
|
| 333 |
+
"lstrip": false,
|
| 334 |
+
"normalized": true,
|
| 335 |
+
"rstrip": false,
|
| 336 |
+
"single_word": false,
|
| 337 |
+
"special": false
|
| 338 |
+
},
|
| 339 |
+
"50294": {
|
| 340 |
+
"content": "[unused9]",
|
| 341 |
+
"lstrip": false,
|
| 342 |
+
"normalized": true,
|
| 343 |
+
"rstrip": false,
|
| 344 |
+
"single_word": false,
|
| 345 |
+
"special": false
|
| 346 |
+
},
|
| 347 |
+
"50295": {
|
| 348 |
+
"content": "[unused10]",
|
| 349 |
+
"lstrip": false,
|
| 350 |
+
"normalized": true,
|
| 351 |
+
"rstrip": false,
|
| 352 |
+
"single_word": false,
|
| 353 |
+
"special": false
|
| 354 |
+
},
|
| 355 |
+
"50296": {
|
| 356 |
+
"content": "[unused11]",
|
| 357 |
+
"lstrip": false,
|
| 358 |
+
"normalized": true,
|
| 359 |
+
"rstrip": false,
|
| 360 |
+
"single_word": false,
|
| 361 |
+
"special": false
|
| 362 |
+
},
|
| 363 |
+
"50297": {
|
| 364 |
+
"content": "[unused12]",
|
| 365 |
+
"lstrip": false,
|
| 366 |
+
"normalized": true,
|
| 367 |
+
"rstrip": false,
|
| 368 |
+
"single_word": false,
|
| 369 |
+
"special": false
|
| 370 |
+
},
|
| 371 |
+
"50298": {
|
| 372 |
+
"content": "[unused13]",
|
| 373 |
+
"lstrip": false,
|
| 374 |
+
"normalized": true,
|
| 375 |
+
"rstrip": false,
|
| 376 |
+
"single_word": false,
|
| 377 |
+
"special": false
|
| 378 |
+
},
|
| 379 |
+
"50299": {
|
| 380 |
+
"content": "[unused14]",
|
| 381 |
+
"lstrip": false,
|
| 382 |
+
"normalized": true,
|
| 383 |
+
"rstrip": false,
|
| 384 |
+
"single_word": false,
|
| 385 |
+
"special": false
|
| 386 |
+
},
|
| 387 |
+
"50300": {
|
| 388 |
+
"content": "[unused15]",
|
| 389 |
+
"lstrip": false,
|
| 390 |
+
"normalized": true,
|
| 391 |
+
"rstrip": false,
|
| 392 |
+
"single_word": false,
|
| 393 |
+
"special": false
|
| 394 |
+
},
|
| 395 |
+
"50301": {
|
| 396 |
+
"content": "[unused16]",
|
| 397 |
+
"lstrip": false,
|
| 398 |
+
"normalized": true,
|
| 399 |
+
"rstrip": false,
|
| 400 |
+
"single_word": false,
|
| 401 |
+
"special": false
|
| 402 |
+
},
|
| 403 |
+
"50302": {
|
| 404 |
+
"content": "[unused17]",
|
| 405 |
+
"lstrip": false,
|
| 406 |
+
"normalized": true,
|
| 407 |
+
"rstrip": false,
|
| 408 |
+
"single_word": false,
|
| 409 |
+
"special": false
|
| 410 |
+
},
|
| 411 |
+
"50303": {
|
| 412 |
+
"content": "[unused18]",
|
| 413 |
+
"lstrip": false,
|
| 414 |
+
"normalized": true,
|
| 415 |
+
"rstrip": false,
|
| 416 |
+
"single_word": false,
|
| 417 |
+
"special": false
|
| 418 |
+
},
|
| 419 |
+
"50304": {
|
| 420 |
+
"content": "[unused19]",
|
| 421 |
+
"lstrip": false,
|
| 422 |
+
"normalized": true,
|
| 423 |
+
"rstrip": false,
|
| 424 |
+
"single_word": false,
|
| 425 |
+
"special": false
|
| 426 |
+
},
|
| 427 |
+
"50305": {
|
| 428 |
+
"content": "[unused20]",
|
| 429 |
+
"lstrip": false,
|
| 430 |
+
"normalized": true,
|
| 431 |
+
"rstrip": false,
|
| 432 |
+
"single_word": false,
|
| 433 |
+
"special": false
|
| 434 |
+
},
|
| 435 |
+
"50306": {
|
| 436 |
+
"content": "[unused21]",
|
| 437 |
+
"lstrip": false,
|
| 438 |
+
"normalized": true,
|
| 439 |
+
"rstrip": false,
|
| 440 |
+
"single_word": false,
|
| 441 |
+
"special": false
|
| 442 |
+
},
|
| 443 |
+
"50307": {
|
| 444 |
+
"content": "[unused22]",
|
| 445 |
+
"lstrip": false,
|
| 446 |
+
"normalized": true,
|
| 447 |
+
"rstrip": false,
|
| 448 |
+
"single_word": false,
|
| 449 |
+
"special": false
|
| 450 |
+
},
|
| 451 |
+
"50308": {
|
| 452 |
+
"content": "[unused23]",
|
| 453 |
+
"lstrip": false,
|
| 454 |
+
"normalized": true,
|
| 455 |
+
"rstrip": false,
|
| 456 |
+
"single_word": false,
|
| 457 |
+
"special": false
|
| 458 |
+
},
|
| 459 |
+
"50309": {
|
| 460 |
+
"content": "[unused24]",
|
| 461 |
+
"lstrip": false,
|
| 462 |
+
"normalized": true,
|
| 463 |
+
"rstrip": false,
|
| 464 |
+
"single_word": false,
|
| 465 |
+
"special": false
|
| 466 |
+
},
|
| 467 |
+
"50310": {
|
| 468 |
+
"content": "[unused25]",
|
| 469 |
+
"lstrip": false,
|
| 470 |
+
"normalized": true,
|
| 471 |
+
"rstrip": false,
|
| 472 |
+
"single_word": false,
|
| 473 |
+
"special": false
|
| 474 |
+
},
|
| 475 |
+
"50311": {
|
| 476 |
+
"content": "[unused26]",
|
| 477 |
+
"lstrip": false,
|
| 478 |
+
"normalized": true,
|
| 479 |
+
"rstrip": false,
|
| 480 |
+
"single_word": false,
|
| 481 |
+
"special": false
|
| 482 |
+
},
|
| 483 |
+
"50312": {
|
| 484 |
+
"content": "[unused27]",
|
| 485 |
+
"lstrip": false,
|
| 486 |
+
"normalized": true,
|
| 487 |
+
"rstrip": false,
|
| 488 |
+
"single_word": false,
|
| 489 |
+
"special": false
|
| 490 |
+
},
|
| 491 |
+
"50313": {
|
| 492 |
+
"content": "[unused28]",
|
| 493 |
+
"lstrip": false,
|
| 494 |
+
"normalized": true,
|
| 495 |
+
"rstrip": false,
|
| 496 |
+
"single_word": false,
|
| 497 |
+
"special": false
|
| 498 |
+
},
|
| 499 |
+
"50314": {
|
| 500 |
+
"content": "[unused29]",
|
| 501 |
+
"lstrip": false,
|
| 502 |
+
"normalized": true,
|
| 503 |
+
"rstrip": false,
|
| 504 |
+
"single_word": false,
|
| 505 |
+
"special": false
|
| 506 |
+
},
|
| 507 |
+
"50315": {
|
| 508 |
+
"content": "[unused30]",
|
| 509 |
+
"lstrip": false,
|
| 510 |
+
"normalized": true,
|
| 511 |
+
"rstrip": false,
|
| 512 |
+
"single_word": false,
|
| 513 |
+
"special": false
|
| 514 |
+
},
|
| 515 |
+
"50316": {
|
| 516 |
+
"content": "[unused31]",
|
| 517 |
+
"lstrip": false,
|
| 518 |
+
"normalized": true,
|
| 519 |
+
"rstrip": false,
|
| 520 |
+
"single_word": false,
|
| 521 |
+
"special": false
|
| 522 |
+
},
|
| 523 |
+
"50317": {
|
| 524 |
+
"content": "[unused32]",
|
| 525 |
+
"lstrip": false,
|
| 526 |
+
"normalized": true,
|
| 527 |
+
"rstrip": false,
|
| 528 |
+
"single_word": false,
|
| 529 |
+
"special": false
|
| 530 |
+
},
|
| 531 |
+
"50318": {
|
| 532 |
+
"content": "[unused33]",
|
| 533 |
+
"lstrip": false,
|
| 534 |
+
"normalized": true,
|
| 535 |
+
"rstrip": false,
|
| 536 |
+
"single_word": false,
|
| 537 |
+
"special": false
|
| 538 |
+
},
|
| 539 |
+
"50319": {
|
| 540 |
+
"content": "[unused34]",
|
| 541 |
+
"lstrip": false,
|
| 542 |
+
"normalized": true,
|
| 543 |
+
"rstrip": false,
|
| 544 |
+
"single_word": false,
|
| 545 |
+
"special": false
|
| 546 |
+
},
|
| 547 |
+
"50320": {
|
| 548 |
+
"content": "[unused35]",
|
| 549 |
+
"lstrip": false,
|
| 550 |
+
"normalized": true,
|
| 551 |
+
"rstrip": false,
|
| 552 |
+
"single_word": false,
|
| 553 |
+
"special": false
|
| 554 |
+
},
|
| 555 |
+
"50321": {
|
| 556 |
+
"content": "[unused36]",
|
| 557 |
+
"lstrip": false,
|
| 558 |
+
"normalized": true,
|
| 559 |
+
"rstrip": false,
|
| 560 |
+
"single_word": false,
|
| 561 |
+
"special": false
|
| 562 |
+
},
|
| 563 |
+
"50322": {
|
| 564 |
+
"content": "[unused37]",
|
| 565 |
+
"lstrip": false,
|
| 566 |
+
"normalized": true,
|
| 567 |
+
"rstrip": false,
|
| 568 |
+
"single_word": false,
|
| 569 |
+
"special": false
|
| 570 |
+
},
|
| 571 |
+
"50323": {
|
| 572 |
+
"content": "[unused38]",
|
| 573 |
+
"lstrip": false,
|
| 574 |
+
"normalized": true,
|
| 575 |
+
"rstrip": false,
|
| 576 |
+
"single_word": false,
|
| 577 |
+
"special": false
|
| 578 |
+
},
|
| 579 |
+
"50324": {
|
| 580 |
+
"content": "[unused39]",
|
| 581 |
+
"lstrip": false,
|
| 582 |
+
"normalized": true,
|
| 583 |
+
"rstrip": false,
|
| 584 |
+
"single_word": false,
|
| 585 |
+
"special": false
|
| 586 |
+
},
|
| 587 |
+
"50325": {
|
| 588 |
+
"content": "[unused40]",
|
| 589 |
+
"lstrip": false,
|
| 590 |
+
"normalized": true,
|
| 591 |
+
"rstrip": false,
|
| 592 |
+
"single_word": false,
|
| 593 |
+
"special": false
|
| 594 |
+
},
|
| 595 |
+
"50326": {
|
| 596 |
+
"content": "[unused41]",
|
| 597 |
+
"lstrip": false,
|
| 598 |
+
"normalized": true,
|
| 599 |
+
"rstrip": false,
|
| 600 |
+
"single_word": false,
|
| 601 |
+
"special": false
|
| 602 |
+
},
|
| 603 |
+
"50327": {
|
| 604 |
+
"content": "[unused42]",
|
| 605 |
+
"lstrip": false,
|
| 606 |
+
"normalized": true,
|
| 607 |
+
"rstrip": false,
|
| 608 |
+
"single_word": false,
|
| 609 |
+
"special": false
|
| 610 |
+
},
|
| 611 |
+
"50328": {
|
| 612 |
+
"content": "[unused43]",
|
| 613 |
+
"lstrip": false,
|
| 614 |
+
"normalized": true,
|
| 615 |
+
"rstrip": false,
|
| 616 |
+
"single_word": false,
|
| 617 |
+
"special": false
|
| 618 |
+
},
|
| 619 |
+
"50329": {
|
| 620 |
+
"content": "[unused44]",
|
| 621 |
+
"lstrip": false,
|
| 622 |
+
"normalized": true,
|
| 623 |
+
"rstrip": false,
|
| 624 |
+
"single_word": false,
|
| 625 |
+
"special": false
|
| 626 |
+
},
|
| 627 |
+
"50330": {
|
| 628 |
+
"content": "[unused45]",
|
| 629 |
+
"lstrip": false,
|
| 630 |
+
"normalized": true,
|
| 631 |
+
"rstrip": false,
|
| 632 |
+
"single_word": false,
|
| 633 |
+
"special": false
|
| 634 |
+
},
|
| 635 |
+
"50331": {
|
| 636 |
+
"content": "[unused46]",
|
| 637 |
+
"lstrip": false,
|
| 638 |
+
"normalized": true,
|
| 639 |
+
"rstrip": false,
|
| 640 |
+
"single_word": false,
|
| 641 |
+
"special": false
|
| 642 |
+
},
|
| 643 |
+
"50332": {
|
| 644 |
+
"content": "[unused47]",
|
| 645 |
+
"lstrip": false,
|
| 646 |
+
"normalized": true,
|
| 647 |
+
"rstrip": false,
|
| 648 |
+
"single_word": false,
|
| 649 |
+
"special": false
|
| 650 |
+
},
|
| 651 |
+
"50333": {
|
| 652 |
+
"content": "[unused48]",
|
| 653 |
+
"lstrip": false,
|
| 654 |
+
"normalized": true,
|
| 655 |
+
"rstrip": false,
|
| 656 |
+
"single_word": false,
|
| 657 |
+
"special": false
|
| 658 |
+
},
|
| 659 |
+
"50334": {
|
| 660 |
+
"content": "[unused49]",
|
| 661 |
+
"lstrip": false,
|
| 662 |
+
"normalized": true,
|
| 663 |
+
"rstrip": false,
|
| 664 |
+
"single_word": false,
|
| 665 |
+
"special": false
|
| 666 |
+
},
|
| 667 |
+
"50335": {
|
| 668 |
+
"content": "[unused50]",
|
| 669 |
+
"lstrip": false,
|
| 670 |
+
"normalized": true,
|
| 671 |
+
"rstrip": false,
|
| 672 |
+
"single_word": false,
|
| 673 |
+
"special": false
|
| 674 |
+
},
|
| 675 |
+
"50336": {
|
| 676 |
+
"content": "[unused51]",
|
| 677 |
+
"lstrip": false,
|
| 678 |
+
"normalized": true,
|
| 679 |
+
"rstrip": false,
|
| 680 |
+
"single_word": false,
|
| 681 |
+
"special": false
|
| 682 |
+
},
|
| 683 |
+
"50337": {
|
| 684 |
+
"content": "[unused52]",
|
| 685 |
+
"lstrip": false,
|
| 686 |
+
"normalized": true,
|
| 687 |
+
"rstrip": false,
|
| 688 |
+
"single_word": false,
|
| 689 |
+
"special": false
|
| 690 |
+
},
|
| 691 |
+
"50338": {
|
| 692 |
+
"content": "[unused53]",
|
| 693 |
+
"lstrip": false,
|
| 694 |
+
"normalized": true,
|
| 695 |
+
"rstrip": false,
|
| 696 |
+
"single_word": false,
|
| 697 |
+
"special": false
|
| 698 |
+
},
|
| 699 |
+
"50339": {
|
| 700 |
+
"content": "[unused54]",
|
| 701 |
+
"lstrip": false,
|
| 702 |
+
"normalized": true,
|
| 703 |
+
"rstrip": false,
|
| 704 |
+
"single_word": false,
|
| 705 |
+
"special": false
|
| 706 |
+
},
|
| 707 |
+
"50340": {
|
| 708 |
+
"content": "[unused55]",
|
| 709 |
+
"lstrip": false,
|
| 710 |
+
"normalized": true,
|
| 711 |
+
"rstrip": false,
|
| 712 |
+
"single_word": false,
|
| 713 |
+
"special": false
|
| 714 |
+
},
|
| 715 |
+
"50341": {
|
| 716 |
+
"content": "[unused56]",
|
| 717 |
+
"lstrip": false,
|
| 718 |
+
"normalized": true,
|
| 719 |
+
"rstrip": false,
|
| 720 |
+
"single_word": false,
|
| 721 |
+
"special": false
|
| 722 |
+
},
|
| 723 |
+
"50342": {
|
| 724 |
+
"content": "[unused57]",
|
| 725 |
+
"lstrip": false,
|
| 726 |
+
"normalized": true,
|
| 727 |
+
"rstrip": false,
|
| 728 |
+
"single_word": false,
|
| 729 |
+
"special": false
|
| 730 |
+
},
|
| 731 |
+
"50343": {
|
| 732 |
+
"content": "[unused58]",
|
| 733 |
+
"lstrip": false,
|
| 734 |
+
"normalized": true,
|
| 735 |
+
"rstrip": false,
|
| 736 |
+
"single_word": false,
|
| 737 |
+
"special": false
|
| 738 |
+
},
|
| 739 |
+
"50344": {
|
| 740 |
+
"content": "[unused59]",
|
| 741 |
+
"lstrip": false,
|
| 742 |
+
"normalized": true,
|
| 743 |
+
"rstrip": false,
|
| 744 |
+
"single_word": false,
|
| 745 |
+
"special": false
|
| 746 |
+
},
|
| 747 |
+
"50345": {
|
| 748 |
+
"content": "[unused60]",
|
| 749 |
+
"lstrip": false,
|
| 750 |
+
"normalized": true,
|
| 751 |
+
"rstrip": false,
|
| 752 |
+
"single_word": false,
|
| 753 |
+
"special": false
|
| 754 |
+
},
|
| 755 |
+
"50346": {
|
| 756 |
+
"content": "[unused61]",
|
| 757 |
+
"lstrip": false,
|
| 758 |
+
"normalized": true,
|
| 759 |
+
"rstrip": false,
|
| 760 |
+
"single_word": false,
|
| 761 |
+
"special": false
|
| 762 |
+
},
|
| 763 |
+
"50347": {
|
| 764 |
+
"content": "[unused62]",
|
| 765 |
+
"lstrip": false,
|
| 766 |
+
"normalized": true,
|
| 767 |
+
"rstrip": false,
|
| 768 |
+
"single_word": false,
|
| 769 |
+
"special": false
|
| 770 |
+
},
|
| 771 |
+
"50348": {
|
| 772 |
+
"content": "[unused63]",
|
| 773 |
+
"lstrip": false,
|
| 774 |
+
"normalized": true,
|
| 775 |
+
"rstrip": false,
|
| 776 |
+
"single_word": false,
|
| 777 |
+
"special": false
|
| 778 |
+
},
|
| 779 |
+
"50349": {
|
| 780 |
+
"content": "[unused64]",
|
| 781 |
+
"lstrip": false,
|
| 782 |
+
"normalized": true,
|
| 783 |
+
"rstrip": false,
|
| 784 |
+
"single_word": false,
|
| 785 |
+
"special": false
|
| 786 |
+
},
|
| 787 |
+
"50350": {
|
| 788 |
+
"content": "[unused65]",
|
| 789 |
+
"lstrip": false,
|
| 790 |
+
"normalized": true,
|
| 791 |
+
"rstrip": false,
|
| 792 |
+
"single_word": false,
|
| 793 |
+
"special": false
|
| 794 |
+
},
|
| 795 |
+
"50351": {
|
| 796 |
+
"content": "[unused66]",
|
| 797 |
+
"lstrip": false,
|
| 798 |
+
"normalized": true,
|
| 799 |
+
"rstrip": false,
|
| 800 |
+
"single_word": false,
|
| 801 |
+
"special": false
|
| 802 |
+
},
|
| 803 |
+
"50352": {
|
| 804 |
+
"content": "[unused67]",
|
| 805 |
+
"lstrip": false,
|
| 806 |
+
"normalized": true,
|
| 807 |
+
"rstrip": false,
|
| 808 |
+
"single_word": false,
|
| 809 |
+
"special": false
|
| 810 |
+
},
|
| 811 |
+
"50353": {
|
| 812 |
+
"content": "[unused68]",
|
| 813 |
+
"lstrip": false,
|
| 814 |
+
"normalized": true,
|
| 815 |
+
"rstrip": false,
|
| 816 |
+
"single_word": false,
|
| 817 |
+
"special": false
|
| 818 |
+
},
|
| 819 |
+
"50354": {
|
| 820 |
+
"content": "[unused69]",
|
| 821 |
+
"lstrip": false,
|
| 822 |
+
"normalized": true,
|
| 823 |
+
"rstrip": false,
|
| 824 |
+
"single_word": false,
|
| 825 |
+
"special": false
|
| 826 |
+
},
|
| 827 |
+
"50355": {
|
| 828 |
+
"content": "[unused70]",
|
| 829 |
+
"lstrip": false,
|
| 830 |
+
"normalized": true,
|
| 831 |
+
"rstrip": false,
|
| 832 |
+
"single_word": false,
|
| 833 |
+
"special": false
|
| 834 |
+
},
|
| 835 |
+
"50356": {
|
| 836 |
+
"content": "[unused71]",
|
| 837 |
+
"lstrip": false,
|
| 838 |
+
"normalized": true,
|
| 839 |
+
"rstrip": false,
|
| 840 |
+
"single_word": false,
|
| 841 |
+
"special": false
|
| 842 |
+
},
|
| 843 |
+
"50357": {
|
| 844 |
+
"content": "[unused72]",
|
| 845 |
+
"lstrip": false,
|
| 846 |
+
"normalized": true,
|
| 847 |
+
"rstrip": false,
|
| 848 |
+
"single_word": false,
|
| 849 |
+
"special": false
|
| 850 |
+
},
|
| 851 |
+
"50358": {
|
| 852 |
+
"content": "[unused73]",
|
| 853 |
+
"lstrip": false,
|
| 854 |
+
"normalized": true,
|
| 855 |
+
"rstrip": false,
|
| 856 |
+
"single_word": false,
|
| 857 |
+
"special": false
|
| 858 |
+
},
|
| 859 |
+
"50359": {
|
| 860 |
+
"content": "[unused74]",
|
| 861 |
+
"lstrip": false,
|
| 862 |
+
"normalized": true,
|
| 863 |
+
"rstrip": false,
|
| 864 |
+
"single_word": false,
|
| 865 |
+
"special": false
|
| 866 |
+
},
|
| 867 |
+
"50360": {
|
| 868 |
+
"content": "[unused75]",
|
| 869 |
+
"lstrip": false,
|
| 870 |
+
"normalized": true,
|
| 871 |
+
"rstrip": false,
|
| 872 |
+
"single_word": false,
|
| 873 |
+
"special": false
|
| 874 |
+
},
|
| 875 |
+
"50361": {
|
| 876 |
+
"content": "[unused76]",
|
| 877 |
+
"lstrip": false,
|
| 878 |
+
"normalized": true,
|
| 879 |
+
"rstrip": false,
|
| 880 |
+
"single_word": false,
|
| 881 |
+
"special": false
|
| 882 |
+
},
|
| 883 |
+
"50362": {
|
| 884 |
+
"content": "[unused77]",
|
| 885 |
+
"lstrip": false,
|
| 886 |
+
"normalized": true,
|
| 887 |
+
"rstrip": false,
|
| 888 |
+
"single_word": false,
|
| 889 |
+
"special": false
|
| 890 |
+
},
|
| 891 |
+
"50363": {
|
| 892 |
+
"content": "[unused78]",
|
| 893 |
+
"lstrip": false,
|
| 894 |
+
"normalized": true,
|
| 895 |
+
"rstrip": false,
|
| 896 |
+
"single_word": false,
|
| 897 |
+
"special": false
|
| 898 |
+
},
|
| 899 |
+
"50364": {
|
| 900 |
+
"content": "[unused79]",
|
| 901 |
+
"lstrip": false,
|
| 902 |
+
"normalized": true,
|
| 903 |
+
"rstrip": false,
|
| 904 |
+
"single_word": false,
|
| 905 |
+
"special": false
|
| 906 |
+
},
|
| 907 |
+
"50365": {
|
| 908 |
+
"content": "[unused80]",
|
| 909 |
+
"lstrip": false,
|
| 910 |
+
"normalized": true,
|
| 911 |
+
"rstrip": false,
|
| 912 |
+
"single_word": false,
|
| 913 |
+
"special": false
|
| 914 |
+
},
|
| 915 |
+
"50366": {
|
| 916 |
+
"content": "[unused81]",
|
| 917 |
+
"lstrip": false,
|
| 918 |
+
"normalized": true,
|
| 919 |
+
"rstrip": false,
|
| 920 |
+
"single_word": false,
|
| 921 |
+
"special": false
|
| 922 |
+
},
|
| 923 |
+
"50367": {
|
| 924 |
+
"content": "[unused82]",
|
| 925 |
+
"lstrip": false,
|
| 926 |
+
"normalized": true,
|
| 927 |
+
"rstrip": false,
|
| 928 |
+
"single_word": false,
|
| 929 |
+
"special": false
|
| 930 |
+
}
|
| 931 |
+
},
|
| 932 |
+
"clean_up_tokenization_spaces": true,
|
| 933 |
+
"cls_token": "[CLS]",
|
| 934 |
+
"extra_special_tokens": {},
|
| 935 |
+
"mask_token": "[MASK]",
|
| 936 |
+
"model_input_names": [
|
| 937 |
+
"input_ids",
|
| 938 |
+
"attention_mask"
|
| 939 |
+
],
|
| 940 |
+
"model_max_length": 8192,
|
| 941 |
+
"pad_token": "[PAD]",
|
| 942 |
+
"sep_token": "[SEP]",
|
| 943 |
+
"tokenizer_class": "PreTrainedTokenizerFast",
|
| 944 |
+
"unk_token": "[UNK]"
|
| 945 |
+
}
|