در چشمانداز سریع در حال تحول مدلهای زبانی بزرگ (LLMs)، رقابت عمدتاً توسط غولهای منبعبسته مانند GPT-4 و کلادو کنترل میشود. با این حال، جنبش متنباز رقبای قدرتمندی تولید کرده است، با خانواده فالکون از مؤسسه نوآوری فناوری (TII) که به عنوان نمونهای برجسته از هوش مصنوعی با عملکرد بالا و در دسترس خودنمایی میکند. این پست وبلاگ به معماری فنی فالکون، اهمیت آن برای اکوسیستم توسعهدهندگان و نحوه پیادهسازی آن در پروژههای شما میپردازد.
چه چیزی فالکون را منحصر به فرد میکند؟
برخلاف بسیاری از مدلهایی که به مجموعه دادههای عظیم و غیرشفاف متکی هستند، فالکون بر روی مجموعه داده RefinedWeb آموزش دیده است که مجموعهای گزینش شده از بیش از 800 میلیارد توکن از صفحات وب است. این استراتژی پیشآموزش سختگیرانه، همراه با یک انتخاب معماری خاص، فالکون را متمایز میکند. خانواده مدل از نسخه سبک 7B تا انواع قابل توجه 40B و 180B متغیر است و انعطافپذیری را برای محدودیتهای محاسباتی مختلف ارائه میدهد.
ویژگی تعریفکننده فالکون استفاده آن از GQA (توجه با کوئری گروهی) است. در حالی که توجه چند سر استاندارد (MHA) میتواند در حین استنتاج به دلیل نیاز به بازیابی تمام جفتهای کلیدی-مقداری برای هر کوئری از نظر محاسباتی پرهزینه باشد، GQA کوئریها را گروهبندی کرده و کلیدها و مقادیر را بین چندین سر توجه به اشتراک میگذارد. این بهینهسازی به طور قابل توجهی استفاده از حافظه و تأخیر استنتاج را کاهش میدهد و امکان سرعت تولید سریعتر بدون قربانی کردن کیفیت را فراهم میکند. علاوه بر این، فالکون از الگوریتم FlashAttention استفاده میکند که آموزش و استنتاج را با کاهش گلوگاههای پهنای باند حافظه بیشتر تسریع میکند.
شکافتن معماری فنی
معماری فالکون بر روی ساختار ترانسفورمر بنا شده است اما با بهبودهای خاصی. این مدل از جاسازی موقعیتی ALiBi (توجه با انحرافات خطی) به جای کدهای موقعیتی مطلق یا آموخته شده سنتی استفاده میکند. ALiBi یک جریمه خطی بر روی امتیازات توجه بر اساس فاصله بین توکنها تحمیل میکند که به مدل اجازه میدهد تا برای دنبالههای طولانیتر از آنچه آموزش دیده است، تعمیم بهتری داشته باشد. این یک مزیت حیاتی برای وظایفی است که نیاز به درک زمینه طولانی دارند.
این مدل همچنین از توابع فعالسازی ReLU استفاده میکند که سریعتر و کممصرفتر از فعالسازیهای GeLU یا SwiGLU یافت شده در بسیاری از مدلهای بزرگ دیگر هستند و به کارایی آن کمک میکنند. این انتخابهای طراحی باعث میشوند فالکون نه تنها قدرتمند، بلکه برای استقرار در طیف وسیعتری از سختافزارها بسیار قابل اجرا باشد.
پیادهسازی فالکون با Hugging Face
برای توسعهدهندگانی که به دنبال یکپارچهسازی فالکون در برنامههای خود هستند، کتابخانه transformers Hugging Face پشتیبانی بیدرنگی ارائه میدهد. در زیر یک مثال عملی از نحوه بارگذاری و اجرای استنتاج با نسخه 7B مدل آورده شده است.
from transformers import AutoTokenizer, AutoModelForCausalLM
import torch
# Load the model and tokenizer
model_name = "tiiuae/falcon-7b"
tokenizer = AutoTokenizer.from_pretrained(model_name)
model = AutoModelForCausalLM.from_pretrained(model_name, trust_remote_code=True)
# Move model to GPU if available
device = torch.device("cuda" if torch.cuda.is_available() else "cpu")
model.to(device)
# Prepare input text
input_text = "The future of artificial intelligence is"
inputs = tokenizer(input_text, return_tensors="pt").to(device)
# Generate text
outputs = model.generate(**inputs, max_new_tokens=50, do_sample=True, temperature=0.7)
# Decode and print the result
print(tokenizer.decode(outputs[0], skip_special_tokens=True))
ملاحظات استقرار
در حالی که اجرای محلی فالکون بر روی سختافزار مصرفکننده برای انواع کوچکتر امکانپذیر است، مدلهای 40B و 180B به VRAM قابل توجهی نیاز دارند. برای محیطهای تولید، در نظر بگیرید که از موتورهای استنتاج بهینهشده مانند vLLM یا TGI (استنتاج تولید متن) استفاده کنید. این ابزارها از PagedAttention و دستهبندی پیوسته برای حداکثر کردن throughput و کاهش تأخیر استفاده میکنند که فالکون را برای برنامههای با همزمانی بالا قابل اجرا میسازد.
نتیجهگیری
فالکون نمایانگر یک جهش بزرگ به جلو در فضای LLM متنباز است. با ترکیب یک مجموعه داده آموزشی عظیم و گزینش شده با یک معماری کارآمد مبتنی بر GQA و FlashAttention، TII مدلی را تحویل داده است که از نظر کیفیت با جایگزینهای انحصاری رقابت میکند، در حالی که شفافیت و در دسترس بودن را حفظ میکند. برای توسعهدهندگان و سازمانهایی که به دنبال ساخت برنامههای NLP قوی و مقیاسپذیر هستند، فالکون یک پایه جذاب و با عملکرد بالا را ارائه میدهد که امروزه برای استقرار آماده است.