--- license: mit library_name: redup-topicmodel tags: - topic-modeling - bigartm - multilingual - feature-extraction --- # REDUP multilingual topic model Multilingual topic model that maps a document to a **125-dimensional topic distribution**. The repository contains inference weights and per-language BPE tokenizers for **100 languages**. The dump is built for **BigARTM 0.9.2**. It is **not** a Transformers / Diffusers checkpoint: `AutoModel` and `AutoTokenizer` are not supported. | | | |---|---| | Framework | BigARTM 0.9.2 | | Topics | 125 (`topic_0` … `topic_124`) | | Languages | 100 | | Output | topic distribution (sums ≈ 1) | | License | MIT | ## Related repositories | Role | Repository | |------|------------| | **Training / research pipeline** | [machine-intelligence-laboratory/text_categorization](https://github.com/machine-intelligence-laboratory/text_categorization) | | **Inference service (recommended)** | [redup-ai/redup.python.topicmodel](https://github.com/redup-ai/redup.python.topicmodel) | Use **text_categorization** as the historical training reference. For serving embeddings and explanations in production, prefer **redup.python.topicmodel**. ## Repository contents | Path | Description | |------|-------------| | `artm/parameters.bin` | BigARTM model metadata and regularizers | | `artm/p_wt.bin` | Topic–word matrix Φ used at inference | | `tokenizers.json.gz` | BPE packs keyed by language: `{lang: {vocab, merges}}` | | `config.json` | Machine-readable metadata | | `LICENSE` | MIT | Total size is about **251 MB**. ## Languages Each document must provide modality `lang` with an ISO-like code from the table below. Tokens are scored under BigARTM class id `@{lang}`. | | | | | | |---|---|---|---|---| | `af` | `am` | `ar` | `av` | `az` | | `ba` | `be` | `bg` | `bn` | `bs` | | `ca` | `ce` | `cs` | `cv` | `cy` | | `da` | `de` | `el` | `en` | `eo` | | `es` | `et` | `eu` | `fa` | `fi` | | `fr` | `gd` | `gl` | `gu` | `he` | | `hi` | `hr` | `hu` | `hy` | `ia` | | `id` | `inh` | `is` | `it` | `ja` | | `jv` | `ka` | `kaa` | `kbd` | `kk` | | `kl` | `km` | `ko` | `krc` | `ky` | | `la` | `lez` | `lo` | `lt` | `lv` | | `mg` | `mhr` | `mi` | `mk` | `ml` | | `mn` | `mo` | `ms` | `my` | `myv` | | `ne` | `nl` | `no` | `oc` | `os` | | `pl` | `pt` | `rm` | `rn` | `ro` | | `ru` | `sah` | `sh` | `si` | `sk` | | `sl` | `sm` | `so` | `sq` | `sr` | | `sv` | `sw` | `ta` | `tg` | `th` | | `tk` | `tr` | `tt` | `udm` | `uk` | | `ur` | `uz` | `vi` | `yi` | `zh` | ## How to download ```bash pip install huggingface_hub ``` ```python from huggingface_hub import snapshot_download root = snapshot_download(repo_id="redup-ai/topicmodel-multilingual") ``` ## Usage Recommended path: the inference helpers from [redup.python.topicmodel](https://github.com/redup-ai/redup.python.topicmodel). ```bash pip install huggingface_hub bigartm==0.9.2 # install redup-topicmodel from the service repository / package index you use ``` ```python import asyncio from types import SimpleNamespace from redup_topicmodel.topicmodel.worker import TopicModel def document(document_id: str, tokens: list[str], lang: str): return SimpleNamespace( document_id=document_id, tokens=tokens, modalities={"lang": lang}, ) async def main(root: str): model = TopicModel({ "artifact_root": root, }) pack = SimpleNamespace(documents=[ document("doc-en", ["hello", "world"], "en"), document("doc-ru", ["привет", "мир"], "ru"), ]) result = await model.get_documents_embedding("example", pack) for embedding in result["embeddings"]: # length-125 topic distribution print(len(embedding["values"]), sum(embedding["values"])) asyncio.run(main(root)) ``` ### gRPC service Point the service config at the downloaded directory: ```yaml TopicModel: artifact_root: /path/from/snapshot_download ``` ### Tokenizer only ```python from redup_topicmodel.topicmodel.bpe import Tokenizers tokenizers = Tokenizers.load(f"{root}/tokenizers.json.gz") print(tokenizers["en"].encode("hello world")) ``` ## Limitations - Requires BigARTM and the redup inference stack; not compatible with `transformers.AutoModel` / `AutoTokenizer`. - `parameters.bin` is a BigARTM pickle — load only trusted artifacts. - `tokenizers.json.gz` stores independent BPE packs per language; it is not a Hugging Face `tokenizer.json` export. - Short or out-of-vocabulary inputs may produce degenerate topic mass (for example concentrated on `topic_0`). ## License MIT. See `LICENSE`.