LibreMODUS
LibreMODUS to integracja przeznaczonego wyłącznie do inferencji checkpointu MODUS 14B-A7B, modelu any-to-any przekształcającego jedno wejście pochodzące z obrazu w inne: RGB na głębię, głębię na normalne, a dowolne z nich wraz z frazą na ramki. LibreYOLO obsługuje cztery zadania przez standardowe API predykcji i szerszy zestaw przez any2any().
- Zadania
- detection, depth, normal, edge
- Rozmiary
- Instalacja
pip install libreyolo- Poziom obsługi
- Poziom siostrzany, od wersji v. Osobna część produktu z własną fabryką i kontraktem.
- Projekt źródłowy
- MODUS, autorzy: EPFL Visual Intelligence and Learning Lab (VILAB), licencja: Apache-2.0 (code); research-only per the upstream model card (weights). Publikacja, kod źródłowy
- Licencje
- Kod: Apache-2.0, wagi: Apache-2.0 (code); research-only per the upstream model card (weights). Użycie komercyjne
Instalacja
LibreMODUS wymaga własnego dodatku, który instaluje accelerate do obsługi
dużego modelu wymaganej przez ten checkpoint.
pip install "libreyolo[modus]"LibreYOLO nie redystrybuuje ani nie tworzy kopii lustrzanej wag MODUS. Domyślnie
wczytanie modelu LibreMODUS pobiera wymagane pliki bezpośrednio z
EPFL-VILAB/MODUS przy przypiętej rewizji Hugging Face. Nowe pobranie zawsze
wymaga własnego uwierzytelnionego konta Hugging Face użytkownika, nawet jeśli
bramka hostingu źródłowego jest tymczasowo otwarta. Należy przeczytać i
zaakceptować warunki źródłowe, a następnie się uwierzytelnić:
hf auth loginfrom libreyolo import LibreMODUS
model = LibreMODUS(token="hf_...")Aby uniknąć żądania sieciowego, można wskazać istniejący snapshot:
model = LibreMODUS(checkpoint_path="/models/MODUS")Ten katalog musi zawierać model.safetensors, ae.safetensors,
llm_config.json, vit_config.json, tokenizer_config.json, vocab.json i
merges.txt. Poniższa sekcja Licencja opisuje dozwolone zastosowania
checkpointu.
Predykcja
from libreyolo import LibreMODUS model = LibreMODUS(size="14b-a7b", task="normal")result = model.predict("room.jpg")normals = result.normal_map.data model.set_task("edge")result = model.predict("room.jpg")edges = result.edges.data # Bez niestandardowego słownika detect dekoduje tokeny etykiet COCO# checkpointu do ciągłych identyfikatorów klas COCO-80.model.set_task("detect")result = model.predict("street.jpg")print(result.boxes.xyxy)from libreyolo import LibreMODUS model = LibreMODUS(task="detect")# set_classes() przełącza detekcję na grounding fraz: każda fraza# jest uruchamiana niezależnie i zwracana przez ten sam kontrakt Boxes.model.set_classes(["red bus", "cyclist"])result = model.predict("street.jpg", conf=0.2)print(result.boxes.xyxy, result.boxes.cls)from libreyolo import LibreMODUS model = LibreMODUS() # Od jednego do trzech wejść pochodzących z obrazu (rgb, depth, normal, canny/edge)# oraz opcjonalny tekst pomocniczy, złożone w kierunku jednego celu.result = model.any2any( inputs={"rgb": "room.jpg"}, target="normal", steps=10, cfg=2.0, seed=0,)normals = result.normal_map.data # Grounding przez any2any() wymaga wejścia tekstowego z nazwą frazy.result = model.any2any( {"rgb": "street.jpg", "text": "red bus"}, target="grounding",)print(result.boxes.xyxy)Standardowe API zadania obejmuje cztery zadania, z których każde jest mapowane
na jeden cel MODUS: depth na głębię względną (result.depth_map), normal na
normalne powierzchni (result.normal_map), edge na krawędzie w stylu Canny
(result.edges) oraz detect na ramki COCO-80 (result.boxes), chyba że
set_classes() przełączy je na grounding fraz. set_task() przełącza zadania
w tym samym wczytanym modelu. Opublikowana procedura używa dziesięciu kroków
próbkowania przepływu z prowadzeniem tekstowym 4.0 i prowadzeniem obrazowym 2.0.
Można je zastąpić argumentami inference_steps=, inference_cfg= i
inference_image_cfg= podczas tworzenia modelu.
any2any() udostępnia szerszą publiczną powierzchnię analizy: od jednego do
trzech wejść pochodzących z obrazu (rgb, depth, normal, canny/edge)
oraz opcjonalny tekst pomocniczy, złożone w kierunku dowolnego celu spośród
głębi, normalnych, krawędzi, krawędzi pochodzących z SAM, detekcji COCO lub
groundingu fraz. Wszystkie wejścia pochodzące z obrazu muszą opisywać ten sam
wyrównany obszar. LibreMODUS odrzuca niedopasowane szerokości i wysokości
zamiast niezależnie zmieniać ich rozmiar. chain=(...) generuje cele pośrednie
i przekazuje je z powrotem do tego samego kontekstu w ramach budżetu trenowania
checkpointu wynoszącego trzy warunki. verify=N (N >= 2) generuje N
kandydatów i zachowuje kandydata z najwyższym wynikiem ograniczonej kontroli
spójności własnej, udostępnionym jako result.verification_score.
dtype="bf16" (wartość domyślna) odpowiada precyzji opublikowanego checkpointu.
dtype="fp8" zapisuje kwalifikujące się wagi liniowe głównej części dekodera w
formacie E4M3 ze skalą dla każdego kanału wyjściowego, jednorazowo konwertuje je
do lokalnej pamięci podręcznej w ~/.cache/libreyolo/modus/fp8 i dekwantyzuje
do typu danych wejściowych podczas każdego mnożenia macierzy. Jest to kompromis
dotyczący pamięci, a nie dokładności na poziomie aktywacji.
Wywołania train(), val() i export() zgłaszają błąd. LibreMODUS służy
wyłącznie do inferencji, walidacja zbioru danych nie jest oferowana i nie ma
ścieżki eksportu ONNX, TensorRT ani TFLite. Predykcja w batchach i augmentacja
podczas testowania także nie są obsługiwane. Każde wywołanie przetwarza jeden
obraz.
Licencja
Sprawdź licencję w repozytorium konkretnych pobieranych wag na Hugging Face. Każdy checkpoint w organizacji LibreYOLO ma licencję, która nie zawsze jest taka sama w całej rodzinie. To repozytorium jest źródłem rozstrzygającym, a poniższe podsumowanie opisuje stan z chwili ostatniej weryfikacji tej strony.
To opis obowiązujących licencji, a nie porada prawna. Jeśli odpowiedź ma znaczenie komercyjne, przeczytaj licencje i zasięgnij własnej porady prawnej.
- Oryginalna praca
- MODUS, EPFL Visual Intelligence and Learning Lab (VILAB)
- Licencja projektu źródłowego
- Apache-2.0 (code); research-only per the upstream model card (weights)
- Kod źródłowy projektu
- github.com/EPFL-VILAB/Modus
- Kod LibreYOLO
- MIT
- Wagi
- Apache-2.0 (code); research-only per the upstream model card (weights), rozpowszechniane przez autorów. LibreYOLO ich nie hostuje ani nie udostępnia kopii.
- Interpretacja
- Apache-2.0 covers the EPFL-VILAB/Modus source repository that LibreYOLO's adapter follows; LibreYOLO's own port is MIT, permissive and usable in commercial and closed-source products, requiring only that license text and attribution travel with any copy you redistribute. The MODUS-14B-A7B checkpoint is a separate artifact under a separate license: its Hugging Face model card currently declares license: other, describes it as bagel-derived, and requests research-only use, terms that bind you directly rather than through LibreYOLO. LibreYOLO does not bundle, mirror, or redistribute this checkpoint in any form, quantized or otherwise; loading it always downloads the required files directly from EPFL-VILAB/MODUS at a pinned revision, which needs the user's own authenticated Hugging Face account and acceptance of the current upstream terms, or a checkpoint_path to a snapshot the user already obtained. One upstream file, modeling/bagel/modeling_utils.py, carries an incompatible CC BY-NC 4.0 license inherited from Meta's DiT and is not copied, adapted, or paraphrased anywhere in this port; the small permissive routines LibreYOLO needed were re-derived independently from Hugging Face Transformers (Apache-2.0) and OpenAI's guided-diffusion (MIT) instead. Training is not offered for this family.
LibreYOLO nigdzie nie hostuje ani nie tworzy kopii lustrzanej checkpointu MODUS,
w tym we własnej organizacji Hugging Face. Wczytanie zawsze pobiera przypiętą
rewizję bezpośrednio z EPFL-VILAB/MODUS albo odczytuje istniejący snapshot z
dysku wskazany przez checkpoint_path.
Cytowanie
@article{ye2026modus,
title = {MODUS: Decoder-only Any-to-Any Modeling of Diverse Modalities},
author = {Ye, Mingqiao and An, Zhaochong and Gao, Zhitong and Liu, Xian
and Fleuret, Fran\c{c}ois and Li, Chuan and Zadeh, Amir
and Belongie, Serge and Dehghan, Afshin and Allardice, Jesse
and Mizrahi, David and Kar, O\u{g}uzhan Fatih and Bachmann, Roman
and Zamir, Amir},
journal = {arXiv preprint arXiv:2607.25948},
year = {2026},
}Skopiowano z bloku cytowania autorów w github.com/EPFL-VILAB/Modus#citation.