Im Bereich der Künstlichen Intelligenz (KI) gibt es einen neuen Meilenstein: Das Salesforce AI Research Team hat kürzlich das xGen-MM (auch bekannt als BLIP-3) veröffentlicht. Dieses neue Framework für Large Multimodal Models (LMMs) hat sofort die Spitze der Rangliste auf Hugging Face erobert. In diesem Artikel werfen wir einen detaillierten Blick auf die Merkmale, die Entwicklung und die Bedeutung dieses neuen Modells.
Das xGen-MM Framework ist ein umfassendes System zur Entwicklung von Large Multimodal Models. Es umfasst sorgfältig kuratierte Datensätze, eine Trainingsrezeptur, Modellarchitekturen und eine Reihe von LMMs. xGen-MM steht für xGen-MultiModal und erweitert die Salesforce xGen-Initiative auf Foundation AI-Modelle. Die Modelle wurden rigoros auf einer Vielzahl von Aufgaben getestet, sowohl bei Einzel- als auch bei Multi-Bild-Benchmarks.
Das xGen-MM Framework bietet eine Reihe von herausragenden Merkmalen:
Die xGen-MM Modelle haben in verschiedenen Evaluationsszenarien hervorragende Leistungen gezeigt. Der vortrainierte Basismodell zeigt starke In-Context-Lernfähigkeiten, während das instruktionsgetunte Modell eine wettbewerbsfähige Leistung im Vergleich zu anderen Open-Source LMMs ähnlicher Größe aufweist.
Die nachfolgende Tabelle zeigt die Leistung einiger xGen-MM Modelle im Vergleich zu anderen Modellen:
Ein wesentlicher Aspekt bei der Entwicklung von KI-Modellen ist die Sicherheit und die ethische Verantwortung. Salesforce hat bei der Entwicklung von xGen-MM großen Wert darauf gelegt, schädliche Verhaltensweisen zu minimieren. Das Modell wurde speziell darauf abgestimmt, Risiken wie Halluzinationen zu mindern und die Sicherheit zu verbessern. Die Hauptdatenquellen stammen aus dem Internet, einschließlich Webseiten und kuratierter Datensätze, wobei bestimmte Datenquellen aufgrund bekannter Risiken ausgeschlossen wurden.
Ein herausragendes Merkmal von xGen-MM ist seine Open-Source-Natur. Salesforce hat die Modelle, die kuratierten groß angelegten Datensätze und den Fine-Tuning-Code veröffentlicht, um weitere Fortschritte in der LMM-Forschung zu ermöglichen. Dies fördert die Transparenz und ermöglicht es Forschern und Entwicklern, auf der Grundlage dieser Ressourcen weiter zu experimentieren und zu innovieren.
Das xGen-MM Framework erfordert die Verwendung der Entwicklungsversion der Transformers-Bibliothek. Hier ist ein Beispiel für die Nutzung des xgen-mm-phi3-mini-instruct-r-v1 Modells:
from transformers import AutoModelForVision2Seq, AutoTokenizer, AutoImageProcessor, StoppingCriteria import torch import requests from PIL import Image def apply_prompt_template(prompt): s = ( '<|system|>\\nA chat between a curious user and an artificial intelligence assistant. ' "The assistant gives helpful, detailed, and polite answers to the user's questions.<|end|>\\n" f'<|user|>\\n\\n{prompt}<|end|>\\n<|assistant|>\\n' ) return s class EosListStoppingCriteria(StoppingCriteria): def __init__(self, eos_sequence = [32007]): self.eos_sequence = eos_sequence def __call__(self, input_ids: torch.LongTensor, scores: torch.FloatTensor, **kwargs) -> bool: last_ids = input_ids[:,-len(self.eos_sequence):].tolist() return self.eos_sequence in last_ids model_name_or_path = "Salesforce/xgen-mm-phi3-mini-instruct-r-v1" model = AutoModelForVision2Seq.from_pretrained(model_name_or_path, trust_remote_code=True) tokenizer = AutoTokenizer.from_pretrained(model_name_or_path, trust_remote_code=True, use_fast=False, legacy=False) image_processor = AutoImageProcessor.from_pretrained(model_name_or_path, trust_remote_code=True) tokenizer = model.update_special_tokens(tokenizer) img_url = 'https://storage.googleapis.com/sfr-vision-language-research/BLIP/demo.jpg' raw_image = Image.open(requests.get(img_url, stream=True).raw).convert('RGB') query = "how many dogs are in the picture?" model = model.cuda() inputs = image_processor([raw_image], return_tensors="pt", image_aspect_ratio='anyres') prompt = apply_prompt_template(query) language_inputs = tokenizer([prompt], return_tensors="pt") inputs.update(language_inputs) inputs = {name: tensor.cuda() for name, tensor in inputs.items()} generated_text = model.generate(**inputs, image_size=[raw_image.size], pad_token_id=tokenizer.pad_token_id, do_sample=False, max_new_tokens=768, top_p=None, num_beams=1, stopping_criteria = [EosListStoppingCriteria()], ) prediction = tokenizer.decode(generated_text[0], skip_special_tokens=True).split("<|end|>")[0] print("==> prediction: ", prediction)
Das xGen-MM (BLIP-3) Framework von Salesforce AI Research markiert einen bedeutenden Fortschritt in der Entwicklung von Large Multimodal Models. Mit seinem Fokus auf hochwertige Datensätze, umfassende Trainingsmethoden und Sicherheitsaspekte stellt es eine wertvolle Ressource für die Forschung und Entwicklung im Bereich der KI dar. Die Open-Source-Natur des Frameworks ermöglicht es der Gemeinschaft, auf diesen Fortschritten aufzubauen und weitere Innovationen voranzutreiben.