ernie

معرفی مدل ERNIE-4.5 Thinking: پیشرفتی در هوش مصنوعی چندوجهی

کارشناس 23 آبان 1404

مدل ERNIE-4.5-VL-28B-A3B-Thinking که بر اساس معماری قدرتمند ERNIE-4.5-VL-28B-A3B بنا گردید جهش قابل توجهی در قابلیت‌های استدلال چندوجهی ایجاد نمود. این مدل از طریق یک مرحله آموزش گسترده در اواسط دوره آموزش، مجموعه‌ای گسترده و بسیار متنوع از داده‌های استدلال زبان بصری ممتاز را به خود جذب کرد.

این فرآیند آموزش در مقیاس بزرگ، قدرت بازنمایی مدل را به طرز چشمگیری افزایش داد و در عین حال، هماهنگی معنایی بین روش‌های بصری و زبانی را عمیق‌تر کرد و قابلیت‌های بی‌سابقه‌ای را در استدلال ظریف بصری-متنی آشکار ساخت.

این مدل از تکنیک‌های یادگیری تقویتی چندوجهی پیشرفته در وظایف قابل تأیید بهره می‌برد و استراتژی‌های بهینه‌سازی سیاست توالی گروهی(Group Sequence Policy Optimization یا GSPO )و IcePop را برای تثبیت آموزش MoE همراه با نمونه‌گیری پویا از دشواری برای بهره‌وری یادگیری استثنایی ادغام می‌کند. ⚡ در پاسخ به تقاضای زیاد جامعه، عملکرد پایه مدل با بهبود قابلیت‌های دنبال کردن دستورالعمل به طور قابل توجهی تقویت و توابع پایه بصری را بیش از هر زمان دیگری در دسترس قرار می‌دهد. 🎯 علاوه بر این، ویژگی نوآورانه “تفکر با تصاویر” ، هنگامی که با ابزارهایی مانند بزرگنمایی تصویر و جستجوی تصویر متصل می‌شود، توانایی مدل را در پردازش جزئیات دقیق و مدیریت دانش بصری طولانی مدت به طرز چشمگیری افزایش می‌دهد. 🔍🖼️

این پیشرفت‌ها در کنار هم، پایه و اساسی حیاتی برای توسعه‌ی عامل‌های چندوجهی پیچیده تشکیل می‌دهند و به توسعه‌دهندگان و محققان این امکان را می‌دهند تا برنامه‌های هوش مصنوعی نسل بعدی را ایجاد کنند که مرزهای درک زبان بصری را جابه‌جا می‌کنند. 🤖🌟

ERNIE

قابلیت‌های کلیدی


به عنوان یک مدل سبک که فقط 3B پارامتر را فعال می‌کند ⚡، ERNIE-4.5-VL-28B-A3B-Thinking با عملکرد مدل‌های برتر و پرچمدار صنعت در معیارهای مختلف مطابقت نزدیکی دارد. 🚀

استفاده سریع

ابزار huggingface

می‌توانید با رفتن به آدرس زیر به صورت برخط از این مدل در huggingface استفاده نمایید

https://huggingface.co/spaces/akhaliq/ERNIE-4.5-VL-28B-A3B-Thinking

استفاده از کتابخانه trasformers

نمونه کد اجرا با استفاده از کتابخانه transformers

import torch
from transformers import AutoProcessor, AutoTokenizer, AutoModelForCausalLM

model_path = 'baidu/ERNIE-4.5-VL-28B-A3B-Thinking'
model = AutoModelForCausalLM.from_pretrained(
    model_path,
    device_map="auto",
    dtype=torch.bfloat16,
    trust_remote_code=True
)

processor = AutoProcessor.from_pretrained(model_path, trust_remote_code=True)
model.add_image_preprocess(processor)

messages = [
    {
        "role": "user",
        "content": [
            {
                "type": "text",
                "text": "What color clothes is the girl in the picture wearing?"
            },
            {
                "type": "image_url",
                "image_url": {
                    "url": "https://paddlenlp.bj.bcebos.com/datasets/paddlemix/demo_images/example1.jpg"
                }
            },
        ]
    },
]

text = processor.tokenizer.apply_chat_template(
    messages,
    tokenize=False,
    add_generation_prompt=True,
)
image_inputs, video_inputs = processor.process_vision_info(messages)
inputs = processor(
    text=[text],
    images=image_inputs,
    videos=video_inputs,
    padding=True,
    return_tensors="pt",
)

device = next(model.parameters()).device
inputs = inputs.to(device)

generated_ids = model.generate(
    inputs=inputs['input_ids'].to(device),
    **inputs,
    max_new_tokens=1024,
    use_cache=False
    )
output_text = processor.decode(generated_ids[0][len(inputs['input_ids'][0]):])
print(output_text)
استفاده از vLLM

نصب شاخه اصلی vLLM

pip install uv
uv pip install -U vllm --pre \
  --extra-index-url https://wheels.vllm.ai/nightly \
  --extra-index-url https://download.pytorch.org/whl/cu129 \
  --index-strategy unsafe-best-match

اجرای vLLM

# 80G*1 GPU,If an error occurs, add the --gpu-memory-utilization 0.95 and try again
vllm serve baidu/ERNIE-4.5-VL-28B-A3B-Thinking --trust-remote-code

اجرای vLLM با استفاده از reasoning-parser و tool-call-parser

# 80G*1 GPU,If an error occurs, add the --gpu-memory-utilization 0.95 and try again
vllm serve baidu/ERNIE-4.5-VL-28B-A3B-Thinking --trust-remote-code \
 --reasoning-parser ernie45  \
 --tool-call-parser ernie45  \
 --enable-auto-tool-choice
استفاده از FastDeplpy

طبق دستور زیر، با استفاده از FastDeploy به سرعت سرویس‌ها را مستقر کنید. برای استفاده دقیق‌تر، به مخزن GitHub مربوط به FastDeploy به آدرس زیر مراجعه کنید.

https://github.com/PaddlePaddle/FastDeploy/blob/develop/docs/get_started/ernie-4.5-vl-thinking.md

توجه: برای استقرار تک کارت، حداقل ۴۸ گیگابایت حافظه GPU مورد نیاز است.

fastdeploy serve --model baidu/ERNIE-4.5-VL-28B-A3B-Thinking \
  --max-model-len 131072 \
  --max-num-seqs 32 \
  --port 8180 \
  --quantization wint8 \
  --reasoning-parser ernie-45-vl-thinking \
  --tool-call-parser ernie-45-vl-thinking \
  --mm-processor-kwargs '{"image_max_pixels": 12845056 }'

finetune مدل با ERNIEKit

ERNIEKit یک جعبه ابزار آموزشی مبتنی بر PaddlePaddle است که به طور خاص برای سری ERNIE از مدل‌های بزرگ متن‌باز طراحی شده است. این جعبه ابزار پشتیبانی جامعی را برای سناریوهایی مانند finetune دستورالعمل (SFT، LoRA) و آموزش هم‌ترازی (DPO) ارائه می‌دهد و عملکرد بهینه را تضمین می‌کند.

مثال‌ کاربردی:

# Download model
huggingface-cli download baidu/ERNIE-4.5-VL-28B-A3B-Thinking --local-dir baidu/ERNIE-4.5-VL-28B-A3B-Thinking
# SFT
erniekit train examples/configs/ERNIE-4.5-VL-28B-A3B-Thinking/sft/run_sft_lora_8k.yaml
# SFT (Function Call)
erniekit train examples/configs/ERNIE-4.5-VL-28B-A3B-Thinking/sft_function_call/run_sft_8k.yaml

برای مثال‌های دقیق‌تر، از جمله SFT با LoRA، پیکربندی‌های چند پردازنده گرافیکی و اسکریپت‌های پیشرفته، لطفاً به پوشه مثال‌ها در مخزن ERNIEKit مراجعه کنید.

https://github.com/PaddlePaddle/ERNIE

منبع

https://huggingface.co

دیدگاه شما

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *