モデル / データセット
microsoft/unilm avatar
microsoft/unilm

microsoft/unilm を採用前に読む: 単一リポジトリに集まった前学習モデル群の輪郭

Large-scale Self-supervised Pre-training Across Tasks, Languages, and Modalities

スター 22,217フォーク 2,705PythonMIT

ひと目でわかる

これは何?
unilm は単一のライブラリではなく、BEiT、LayoutLM、WavLM、Kosmos など多数の研究プロジェクトを1つのリポジトリに並べたモノレポである。何が実際に動くコードで、何が論文への入口にすぎないのかを README から切り分ける。
誰に向いている?
unilm は「1つのモデルを導入する」対象ではなく、論文単位でサブディレクトリを選んで取り出す辞書のようなリポジトリだ。LayoutLMv3 や BEiT のように学習・推論コードがディレクトリ内に揃っているものは、Document AI や画像前学習の再現実装として検討する価値がある。
商用利用できる?
できます。MIT は寛容なライセンスで、著作権表示とライセンス表示を残せば、使用・改変・販売が可能です。
今もメンテナンスされている?
されています。最後のコミットは 1 日前です。
何の言語で書かれている?
主に Python です(GitHub の言語統計による)。

回答はプロジェクトの GitHub データ(最終同期:2026年9月15日)と当サイトの分析に基づくもので、法的助言ではありません。

オープンソース詳細解説

unilm という名前が指していないもの

名前から受ける印象と、実際の中身にはずれがある。unilm は統一された API を持つライブラリではない。README の冒頭は aka.ms/GeneralAI へのリンクと採用募集から始まり、その後に Foundation Architecture、Foundation Models、Vision、Speech、Multimodal、Toolkits、Applications という分類でサブプロジェクトが並ぶ。つまりこれは、マイクロソフトの研究チームが継続的に出してきた前学習モデルの発表を1か所に集めた置き場である。インストール手順はリポジトリ直下に共通のものが用意されているわけではなく、各サブディレクトリの README を個別に読む必要がある。読者が最初に理解すべきなのは、この構造そのものが採用コストの見積もりに直結するという点だ。

TorchScale への切り出しが示す設計方針

README は Foundation Architecture の節で TorchScale を別リポジトリとして案内している。DeepNet、Magneto として知られる Foundation Transformers、長さ外挿可能な Transformer、X-MoE がここに含まれる。注目したいのは、これらが unilm 内のサブディレクトリではなく、外部リポジトリへのリンクとして提示されていることだ。アーキテクチャ層の再利用を狙って切り出されたと読める。実務上の意味は大きい。DeepNet や X-MoE のコードを追う場合、unilm を clone しても目的のコードは入っておらず、TorchScale 側を見に行く必要がある。README の記述だけでは、どのサブディレクトリが torchscale に依存し、どのバージョンを要求するかは分からない。ここは各ディレクトリの README で確認するしかない。

コードが同梱されているモデルと、論文リンクだけのモデル

README のリンクの張り方にはっきりした差がある。BEiT、BEiT-2、DiT、TextDiffuser、LayoutLM 系、LayoutXLM、MarkupLM、XDoc、VLMo、VL-BEiT、BEiT-3、WavLM、VALL-E、Kosmos-2、Kosmos-2.5、MetaLM、UniLM、InfoXLM、DeltaLM、MiniLM、AdaLM、EdgeLM、SimLM、E5、s2s-ft、TrOCR は github.com/microsoft/unilm/tree/master/... への内部リンクで、リポジトリ内にディレクトリが存在することを示す。一方、BitNet、RetNet、LongNet、MiniLLM、UniSpeech、UniSpeech-SAT、SpeechT5、SpeechLM、Kosmos-1、Aggressive Decoding は arXiv へのリンクのみで、README 上にコードの所在は書かれていない。この違いは導入検討の初期段階で必ず確認すべきものだ。前者は実装を読み、学習を回す候補になる。後者は論文を読む入口であって、unilm から動くコードを得られる保証はない。

Document AI と視覚前学習の系譜

このリポジトリで最も層が厚いのは Document AI の系列である。LayoutLM、LayoutLMv2、LayoutLMv3、LayoutXLM、MarkupLM、XDoc が並び、テキスト、レイアウト、画像を組み合わせた文書理解を対象にする。スキャン文書や PDF の処理が想定用途として README に明記されている。視覚側では BEiT と BEiT-2 が生成的自己教師あり前学習を担い、DiT が文書画像向け、TextDiffuser 系が拡散モデルによる文字描画を扱う。BEiT-3 はこれらを統合する汎用マルチモーダル基盤モデルとして位置づけられ、README は The Big Convergence という表現でタスク、言語、モダリティをまたぐ前学習の流れを説明している。ただし、この表現は研究上の方向性を示すもので、API の統一を意味しない。LayoutLMv3 と BEiT-3 では入力形式も学習スクリプトも別物である。

音声と多言語の担当範囲

音声は WavLM と VALL-E がディレクトリとして存在し、UniSpeech、UniSpeech-SAT、SpeechT5、SpeechLM は arXiv リンクのみという非対称がある。多言語は InfoXLM/XLM-E と DeltaLM/mT6 が100以上の言語を対象とすると README に記されている。LayoutXLM は Document AI の多言語版という位置づけだ。言語理解と生成の統合は UniLM が担い、軽量モデルは MiniLM、EdgeLM、類似度マッチングは SimLM、テキスト埋め込みは E5 が担当する。ここで注意したいのは、100以上の言語という記述がモデルの対応言語数を指すのであって、各言語での品質が均一であるという主張ではないことだ。特定言語での実運用を考えるなら、その言語を含む評価結果を論文側で確認する必要がある。

リリース履歴が語る更新の偏り

リポジトリ全体の最終 push は2026年8月26日だが、リリース一覧は yoco.v0 が2024年5月、s2s-ft.v0.3 が2020年4月、s2s-ft.v0.2 が2020年3月となっている。タグ付きリリースは3件しかなく、しかも s2s-ft の2件は2020年に固まっている。つまり、このリポジトリの更新はタグではなく master ブランチへのコミットで進んできた。採用検討の際に「最新リリースが2020年だから古い」と判断するのは正確ではない。逆に「最終 push が新しいから全体が保守されている」と判断するのも危うい。ディレクトリごとに活発さが異なるため、対象ディレクトリのコミット履歴を個別に見る必要がある。s2s-ft のようなツールキットは、タグ付きリリースを基準にバージョンを固定できる数少ない例だ。

ライセンスと依存の確認点

リポジトリ全体のライセンスは MIT と表示されている。ただし、モノレポでは個々のサブディレクトリや、配布される学習済みチェックポイントに別の条件が付く場合がある。MIT 表示だけを根拠に、すべてのモデル重みが同じ条件で使えると結論づけるのは早い。チェックポイントの入手先とその配布条件は各ディレクトリの README で個別に確認する必要がある。依存関係も同様で、README は TorchScale を別リポジトリとして案内しているため、Foundation Architecture 系のコードを使う場合は torchscale 側のバージョン整合を取ることになる。ここは法的判断ではなく確認作業の話であり、実際の利用条件は配布元の記載に従う。

代替としての Hugging Face Transformers

同じモデルを別経路で使う選択肢がある。BEiT、LayoutLM 系、WavLM、SpeechT5 などは Hugging Face Transformers に実装が取り込まれており、モデルクラスとトークナイザを統一 API で扱える。違いは明確だ。unilm 側は研究コードとして、論文の学習手順、前処理、評価スクリプトがディレクトリ単位でまとまっている。前学習を再現したり、損失関数やマスク戦略を変更して追試したりする用途ではこちらが向く。逆に、既存の学習済み重みを推論に使うだけなら、Transformers 側の統一インターフェースのほうが依存解決もバージョン管理も単純になる。どちらが優れているかではなく、学習過程に手を入れるかどうかで選ぶ。

編集部の結論

unilm は「1つのモデルを導入する」対象ではなく、論文単位でサブディレクトリを選んで取り出す辞書のようなリポジトリだ。LayoutLMv3 や BEiT のように学習・推論コードがディレクトリ内に揃っているものは、Document AI や画像前学習の再現実装として検討する価値がある。逆に、RetNet、LongNet、BitNet、MiniLLM のように README が arXiv リンクのみで、リポジトリ内にコードの記載がないものは、このリポジトリから動くものを得ようとする用途には向かない。採用を決める前に、対象ディレクトリの README で学習済みチェックポイントの入手先と、依存する torchscale のバージョン指定を確認すること。リポジトリ全体の最終更新が2026年8月でも、s2s-ft の最新リリースは2020年4月であり、更新の新しいディレクトリと古いディレクトリが同居している。

公式情報源

  1. License: MIT
  2. microsoft/unilm on GitHub
  3. Project website
  4. README
  5. Releases
コミュニティノート

コミュニティノート