مدلهای زبان-بینایی یا همون VLMs، یکی از پایههای اصلی سیستمهای هوشمند شدن. با پیچیدهتر شدن کارهای هوش مصنوعی تو دنیای واقعی، این مدلها باید قابلیت استدلال خودشون رو خیلی بیشتر از درک چندرسانهای ساده بالا ببرن. یعنی لازمه دقت، جامعیت و هوشمندی بیشتری داشته باشن تا بتونن مسائل پیچیده رو حل کنن، محتوای طولانی رو بفهمن و به عنوان یک دستیار چندرسانهای عمل کنن. هدف از کارهای متنباز یا اوپنسورس تو این حوزه اینه که مرزهای تکنولوژی همراه با جامعه کاربری کشف بشه و همزمان به توسعهدهندههای بیشتری قدرت داده بشه تا اپلیکیشنهای هیجانانگیز و نوآورانهای بسازن.
یکی از جدیدترین مدلها تو این زمینه، GLM-4.5V هست. این مدل بر اساس مدل پایه متنی نسل بعدی شرکت ZhipuAI به اسم GLM-4.5-Air ساخته شده. این مدل پایه، ۱۰۶ میلیارد پارامتر داره که از این تعداد، ۱۲ میلیارد پارامتر به صورت فعال (active) هستن. رویکرد فنیای که برای ساخت GLM-4.5V استفاده شده، ادامه مسیر مدل قبلی یعنی GLM-4.1V-Thinking هست. این مدل تونسته تو ۴۲ بنچمارک عمومی زبان-بینایی، بین مدلهایی با مقیاس مشابه، به عملکرد SOTA یا همون «بهترین در نوع خود» برسه. این بنچمارکها وظایف رایجی مثل درک تصویر، ویدیو، اسناد و حتی عملیاتهای ایجنت در رابط کاربری گرافیکی (GUI) رو پوشش میدن. البته یک منبع دیگه هم تعداد این بنچمارکها رو ۴۱ مورد ذکر کرده.
فراتر از بنچمارک: تمرکز بر کاربرد در دنیای واقعی
GLM-4.5V فقط به دنبال کسب امتیاز بالا در تستها و بنچمارکها نیست، بلکه تمرکز اصلیش روی کاربردی بودن در دنیای واقعی هست. این مدل با استفاده از یک روش آموزش ترکیبی کارآمد، میتونه انواع مختلفی از محتوای بصری رو مدیریت کنه. این قابلیت بهش اجازه میده تا یک طیف کامل از استدلال بصری رو انجام بده. در ادامه به چند مورد از این قابلیتها اشاره میشه:
- استدلال روی تصویر: این قابلیت شامل درک صحنه، تحلیل پیچیده چند تصویر به صورت همزمان و تشخیص فضایی میشه.
- درک ویدیو: مدل میتونه ویدیوهای طولانی رو بخشبندی کنه و رویدادهایی که داخلشون اتفاق میفته رو تشخیص بده.
- کارهای مربوط به رابط کاربری گرافیکی (GUI): این شامل خوندن صفحه نمایش، تشخیص آیکونها و کمک به انجام کارهای دسکتاپ میشه.
- تجزیه و تحلیل نمودارهای پیچیده و اسناد طولانی: میتونه گزارشهای تحقیقاتی رو تحلیل کنه و اطلاعات کلیدی رو از داخلشون استخراج کنه.
- گراندینگ (Grounding): این به معنی مکانیابی دقیق عناصر بصری هست. یعنی میتونه یک شی خاص رو با دقت بالا توی تصویر پیدا کنه.
ویژگی جدید: حالت تفکر یا «Thinking Mode»
یک قابلیت جدید که به GLM-4.5V اضافه شده، سوییچ «Thinking Mode» هست. این ویژگی به کاربرها اجازه میده بین دو حالت یکی رو انتخاب کنن: پاسخ سریع یا استدلال عمیق. به این ترتیب میشه بین سرعت پردازش و کیفیت خروجی، بسته به نیاز کار، تعادل برقرار کرد. این سوییچ دقیقا مثل همون قابلیتی عمل میکنه که توی مدل زبان GLM-4.5 وجود داره.
چطور از GLM-4.5V استفاده کنیم؟ راهنمای عملی
برای استفاده از این مدل با استفاده از کتابخانه transformers
، اول باید یک نسخه مشخص از این کتابخونه رو نصب کنید. این کار با دستور زیر انجام میشه:
pip install transformers-v4.55.0-GLM-4.5V-preview
بعد از نصب، میتونید با استفاده از کد پایتون زیر، مدل رو اجرا کنید. این کد یک مثال ساده از نحوه ارسال یک تصویر و یک سوال متنی به مدل و دریافت پاسخ از اون رو نشون میده.
from transformers import AutoProcessor, Glm4vMoeForConditionalGeneration
import torch
MODEL_PATH = "zai-org/GLM-4.5V"
messages = [
{
"role": "user",
"content": [
{
"type": "image",
"url": "https://upload.wikimedia.org/wikipedia/commons/f/fa/Grayscale_8bits_palette_sample_image.png"
},
{
"type": "text",
"text": "describe this image"
}
],
}
]
processor = AutoProcessor.from_pretrained(MODEL_PATH)
model = Glm4vMoeForConditionalGeneration.from_pretrained(
pretrained_model_name_or_path=MODEL_PATH,
torch_dtype="auto",
device_map="auto",
)
inputs = processor.apply_chat_template(
messages,
tokenize=True,
add_generation_prompt=True,
return_dict=True,
return_tensors="pt"
).to(model.device)
inputs.pop("token_type_ids", None)
generated_ids = model.generate(**inputs, max_new_tokens=8192)
output_text = processor.decode(generated_ids[0][inputs["input_ids"].shape[1]:], skip_special_tokens=False)
print(output_text)
توضیح قدم به قدم کد
- وارد کردن کتابخانهها: در ابتدا، کلاسهای
AutoProcessor
وGlm4vMoeForConditionalGeneration
از کتابخانهtransformers
و همچنین کتابخانهtorch
وارد میشن. اینها ابزارهای لازم برای کار با مدل هستن. - مشخص کردن مسیر مدل: متغیر
MODEL_PATH
روی مقدار«zai-org/GLM-4.5V»
تنظیم میشه. این آدرس، شناسه مدل در پلتفرم Hugging Face هست و به کد میگه که کدوم مدل رو باید دانلود و استفاده کنه. - آمادهسازی ورودی: متغیر
messages
یک لیست هست که ساختار ورودی رو برای مدل مشخص میکنه. در این مثال، یک پیام از طرفuser
(کاربر) ارسال میشه. محتوای این پیام یاcontent
، خودش شامل دو بخش هست: یکی تصویر که آدرس اینترنتیش داده شده و دیگری یک متن ساده که از مدل میخواد تصویر رو توصیف کنه. - بارگذاری پردازشگر: دستور
AutoProcessor.from_pretrained(MODEL_PATH)
یک پردازشگر یاprocessor
رو بارگذاری میکنه. وظیفه این پردازشگر اینه که ورودیهای ما (مثل تصویر و متن) رو به فرمتی تبدیل کنه که مدل بتونه اون رو بفهمه. - بارگذاری مدل اصلی: خط
model = Glm4vMoeForConditionalGeneration.from_pretrained(...)
خود مدل GLM-4.5V رو بارگذاری میکنه. پارامترهایtorch_dtype="auto"
وdevice_map="auto"
به کتابخونه کمک میکنن تا مدل رو به صورت بهینه مدیریت کنه و به طور خودکار تصمیم بگیره که از پردازنده اصلی (CPU) یا کارت گرافیک (GPU) استفاده کنه. - تبدیل ورودی برای مدل: با استفاده از
processor.apply_chat_template
، ورودیmessages
به فرمت مناسب برای مدل تبدیل میشه. این فرآیند شامل توکنایز کردن متن و آمادهسازی نهایی دادههاست. - تولید پاسخ: دستور
model.generate(**inputs, max_new_tokens=8192)
مهمترین بخش کاره. اینجا مدل ورودی پردازش شده رو میگیره و شروع به تولید پاسخ میکنه.max_new_tokens=8192
حداکثر طول پاسخی که مدل میتونه تولید کنه رو مشخص میکنه. - رمزگشایی و نمایش خروجی: در نهایت،
processor.decode(...)
خروجی عددی مدل رو دوباره به متن قابل خوندن برای انسان تبدیل میکنه وprint(output_text)
اون رو نمایش میده.
درک خروجی مدل: کادرهای مرزی (Bounding Box)
وقتی مدل در پاسخ خودش به بخشی از تصویر اشاره میکنه، از توکنهای ویژهای برای مشخص کردن محدوده اون بخش استفاده میکنه. این توکنها <|begin_of_box|>
و <|end_of_box|>
هستن. اطلاعاتی که بین این دو توکن قرار میگیره، مختصات یک کادر مرزی رو در تصویر نشون میده.
این مختصات به صورت چهار عدد نمایش داده میشه، برای مثال [x1, y1, x2, y2]
. در این فرمت، (x1, y1)
مختصات گوشه بالا-چپ کادر و (x2, y2)
مختصات گوشه پایین-راست کادر هست. سبک نمایش این مختصات ممکنه متفاوت باشه و از انواع پرانتزها مثل []
، [[]]
، ()
یا <>
استفاده بشه، اما معنی همشون یکسان هست: مشخص کردن مختصات کادر. این اعداد مقادیر نسبی بین ۰ تا ۱۰۰۰ هستن که متناسب با اندازه تصویر نرمالسازی شدن.
قابلیتهای تخصصی GLM-4.5V
این مدل که توسط Z.AI به عنوان نسل جدید مدلهای استدلال بصری مبتنی بر معماری MOE معرفی شده، کاربردهای تخصصی و متنوعی داره:
- کدنویسی صفحات وب: میتونه اسکرینشات یا ویدیوی ضبط شده از یک صفحه وب رو تحلیل کنه، ساختار و منطق تعاملی اون رو بفهمه و با یک کلیک، کد کامل و قابل استفاده برای اون صفحه وب رو تولید کنه.
- گراندینگ (Grounding): این قابلیت برای شناسایی و مکانیابی دقیق اشیاء هدف به کار میره. برای سناریوهای عملی مثل بازرسیهای امنیتی، کنترل کیفیت، بررسی محتوا و نظارت از راه دور (سنجش از دور) مناسب هست.
- دستیار رابط کاربری (GUI Agent): تصاویر صفحه نمایش رو تشخیص میده و پردازش میکنه. از دستوراتی مثل کلیک کردن و کشیدن (slide) پشتیبانی میکنه و یک ابزار قابل اعتماد برای دستیارهای هوشمند جهت انجام وظایف عملیاتی فراهم میکنه.
- تفسیر اسناد طولانی و پیچیده: میتونه اسناد پیچیدهای که دهها صفحه دارن رو عمیقا تحلیل کنه. از خلاصهسازی، ترجمه و استخراج نمودار پشتیبانی میکنه و حتی میتونه بر اساس محتوای سند، دیدگاهها و بینشهای جدیدی ارائه بده.
- تشخیص و استدلال تصویر: این مدل از توانایی استدلال قوی و دانش جهانی غنی برخورداره و میتونه اطلاعات پسزمینه تصاویر رو بدون نیاز به جستجو در اینترنت استنتاج کنه.
- درک ویدیو: GLM-4.5V قادره محتوای ویدیوی طولانی رو تجزیه و تحلیل کنه و زمان، شخصیتها، رویدادها و روابط منطقی داخل ویدیو رو با دقت تشخیص بده.
- حل مسائل درسی: میتونه مسائل پیچیدهای که ترکیبی از متن و تصویر هستن رو حل کنه. این ویژگی اون رو برای سناریوهای آموزشی در سطح مدارس (K12) برای حل مسئله و ارائه توضیحات مناسب میکنه.
نحوه دسترسی و هزینهها
GLM-4.5V از طریق API در پلتفرم ZhipuAI Open در دسترسه. قیمتگذاری استفاده از این مدل به صورت زیر هست:
نوع توکن | قیمت (به ازای هر یک میلیون توکن) |
---|---|
توکنهای ورودی (Input) | ۰.۶ دلار |
توکنهای خروجی (Output) | ۱.۸ دلار |
علاوه بر API، این مدل در پلتفرم Hugging Face در مجموعهای به اسم «GLM 4.5V» قرار داره. این مجموعه شامل خود مدل، یک اپلیکیشن دمو (Demo App) و مدلهای مرتبط دیگه مثل GLM-4.5، GLM-4.1V-Thinking، CogVideo و CodeGeeX4 میشه.
دیدگاهتان را بنویسید