لاما متا: فراتر از یک مدل زبانی

تکامل لاما: به چالش کشیدن وضع موجود

هنگامی که Llama برای اولین بار ظاهر شد، تسلط LLM های بزرگ و منبع بسته از غول های فناوری را به چالش کشید. Meta AI استراتژی ای را اتخاذ کرد که بر روی مدل های کوچکتر و عمومی تر متمرکز بود. ایده اصلی این بود که این مدل‌های کوچک‌تر، که روی تعداد زیادی توکن آموزش داده شده‌اند، برای آموزش مجدد و تنظیم دقیق برای وظایف تخصصی، آسان‌تر و مقرون‌به‌صرفه‌تر خواهند بود. این رویکرد در تضاد شدید با روند ساخت مدل‌های بزرگ‌تر و فشرده‌تر از منابع بود.

با این حال، ماهیت ‘منبع باز’ Llama موضوع بحث است. مجوز Meta Llama شامل محدودیت های خاصی در استفاده تجاری و قابل قبول است. در حالی که این محدودیت ها مسلماً قابل توجیه هستند، اما با تعریف دقیق Open Source Initiative از منبع باز در تضاد هستند. این امر منجر به بحث های مداوم در مورد اینکه آیا Llama واقعاً به عنوان منبع باز واجد شرایط است یا خیر، شده است.

پیمایش چالش های حقوقی: نگرانی های مربوط به حق چاپ

توسعه Llama بدون موانع قانونی نبوده است. در سال 2023، متا با دو شکایت دسته جمعی از سوی نویسندگانی مواجه شد که ادعا می کردند کتاب های دارای حق چاپ آنها بدون اجازه برای آموزش Llama استفاده شده است. این دعاوی حقوقی مسائل پیچیده حق چاپ پیرامون داده های آموزشی مورد استفاده برای مدل های زبان بزرگ را برجسته می کند. تاکنون، دادگاه ها نسبت به ادعاهای نویسندگان همدلی چندانی نشان نداده اند.

گسترش قابلیت ها: خانواده مدل در حال رشد Llama

از اواخر سال 2023، Meta AI به طور قابل توجهی خانواده Llama را گسترش داده است. این مدل ها دیگر به تعاملات مبتنی بر متن محدود نمی شوند. اکوسیستم فعلی Llama شامل مدل‌های چندوجهی است که قادر به پردازش ورودی‌های متنی و بصری هستند، و همچنین مدل‌هایی که برای تفسیر کد و یکپارچه‌سازی ابزار طراحی شده‌اند. علاوه بر این، متا اجزای ایمنی را با نام Llama Guard معرفی کرده است تا خطرات و حملات احتمالی را شناسایی و کاهش دهد، اینها به گونه ای طراحی شده اند که بخشی از یک چارچوب کلی به نام ‘Llama Stack’ باشند.

در اینجا نگاهی عمیق تر به برخی از مدل های کلیدی در خانواده Llama (خلاصه شده از کارت های مدل Meta AI) داریم:

Llama Guard 1: حفاظت از تعاملات

Llama Guard 1 یک مدل 7 میلیارد پارامتری بر اساس Llama 2 است. این مدل به عنوان یک محافظ ورودی-خروجی عمل می کند و محتوا را هم در درخواست های کاربر (طبقه بندی درخواست) و هم در پاسخ های LLM (طبقه بندی پاسخ) طبقه بندی می کند. این مدل به اطمینان از تعاملات ایمن تر و مسئولانه تر با سیستم های مبتنی بر Llama کمک می کند.

Llama Guard از یک طبقه بندی شش سطحی برای دسته بندی آسیب های احتمالی استفاده می کند:

  • خشونت و نفرت: محتوایی که خشونت یا نفرت را نسبت به افراد یا گروه ها ترویج می کند.
  • محتوای جنسی: مطالب جنسی صریح یا محتوایی که از کودکان سوء استفاده می کند، آنها را مورد آزار قرار می دهد یا به خطر می اندازد.
  • اسلحه و سلاح های غیرقانونی: محتوای مربوط به فروش، استفاده یا اصلاح غیرقانونی سلاح گرم و سایر سلاح ها.
  • مواد تنظیم شده یا کنترل شده: محتوایی که استفاده یا فروش غیرقانونی مواد مخدر، الکل یا تنباکو را ترویج می کند.
  • خودکشی و آسیب به خود: محتوایی که خودکشی یا آسیب به خود را تشویق می کند یا دستورالعمل هایی را برای آن ارائه می دهد.
  • برنامه ریزی جنایی: محتوایی که فعالیت های غیرقانونی را تسهیل یا برنامه ریزی می کند.

Code Llama 70B: سه گانه ای از مهارت کدنویسی

Code Llama 70B گسترش قابل توجهی در قابلیت های کدنویسی Llama را نشان داد. این مدل در سه نوع مجزا موجود است:

  • Code Llama: مدل پایه ای که برای تولید و درک کد عمومی طراحی شده است. این می تواند کد تولید کند، عملکرد کد را توضیح دهد و به اشکال زدایی کمک کند.
  • Code Llama – Python: یک نسخه تخصصی که برای برنامه نویسی پایتون طراحی شده است. این مدل برای تولید و درک کد پایتون بهینه شده است و آن را به ابزاری ارزشمند برای توسعه دهندگان پایتون تبدیل می کند.
  • Code Llama – Instruct: یک نوع متمرکز بر پیروی از دستورالعمل ها و اطمینان از استقرار ایمن تر. این مدل به ویژه برای تولید کدی که از دستورالعمل ها و پروتکل های ایمنی خاص پیروی می کند مفید است.

هر سه نوع در اندازه های مختلف موجود هستند: 7 میلیارد، 13 میلیارد، 34 میلیارد و 70 میلیارد پارامتر. Code Llama و انواع آن برای استفاده تجاری و تحقیقاتی، عمدتاً به زبان انگلیسی و زبان های برنامه نویسی مرتبط، طراحی شده اند. شواهد کافی وجود دارد که نشان می دهد Code Llama دارای توانایی های کدنویسی قوی است.

Llama Guard 2: طبقه بندی ایمنی پیشرفته

Llama Guard 2 بر اساس پایه و اساس نسخه قبلی خود ساخته شده است و قابلیت های طبقه بندی ایمنی پیشرفته ای را ارائه می دهد. این مدل 8 میلیارد پارامتری، بر اساس Llama 3، برای پیش بینی برچسب های ایمنی در 11 دسته، مطابق با طبقه بندی خطرات MLCommons، آموزش دیده است.

دسته بندی های خطر تحت پوشش Llama Guard 2 عبارتند از:

  • S1: جرایم خشونت آمیز: محتوای مربوط به اعمال مجرمانه خشونت آمیز.
  • S2: جرایم غیر خشونت آمیز: محتوای مربوط به جرایم غیر خشونت آمیز.
  • S3: جرایم مرتبط با جنسیت: محتوای مربوط به جرایم جنسی.
  • S4: سوء استفاده جنسی از کودکان: محتوایی که از کودکان سوء استفاده جنسی می کند، آنها را مورد آزار قرار می دهد یا به خطر می اندازد.
  • S5: مشاوره تخصصی: مشاوره غیرمجاز یا گمراه کننده در زمینه های تخصصی (به عنوان مثال، پزشکی، حقوقی، مالی).
  • S6: حریم خصوصی: محتوایی که حریم خصوصی را نقض می کند یا اطلاعات شخصی را بدون رضایت فاش می کند.
  • S7: مالکیت معنوی: محتوایی که حقوق مالکیت معنوی را نقض می کند.
  • S8: سلاح های بی رویه: محتوای مربوط به سلاح هایی که باعث آسیب گسترده و بی رویه می شوند.
  • S9: نفرت: محتوایی که نفرت یا تعصب را نسبت به افراد یا گروه ها ابراز می کند.
  • S10: خودکشی و آسیب به خود: محتوایی که خودکشی یا آسیب به خود را ترویج می کند یا دستورالعمل هایی را برای آن ارائه می دهد.
  • S11: محتوای جنسی: مطالب جنسی صریح.

Meta Llama 3: تطبیق پذیری در گفتگو

Meta Llama 3 در دو اندازه، 8 میلیارد و 70 میلیارد پارامتر، با هر دو نوع از پیش آموزش دیده و تنظیم شده با دستورالعمل ارائه می شود. مدل های تنظیم شده با دستورالعمل به طور خاص برای برنامه های مبتنی بر گفتگو بهینه شده اند و آنها را برای ربات های گفتگو و سیستم های هوش مصنوعی مکالمه ای مناسب می کند.

Prompt Guard: دفاع در برابر ورودی های مخرب

Prompt Guard یک مدل طبقه بندی کننده است که برای شناسایی درخواست های مخرب، از جمله جیلبریک (تلاش برای دور زدن محدودیت های ایمنی) و تزریق درخواست (تلاش برای دستکاری خروجی مدل از طریق ورودی های ساخته شده) طراحی شده است. Meta AI تنظیم دقیق Prompt Guard را با داده های خاص برنامه برای دستیابی به عملکرد بهینه توصیه می کند.

برخلاف Llama Guard، Prompt Guard به ساختار درخواست خاصی نیاز ندارد. این بر روی یک ورودی رشته ای عمل می کند و آن را به عنوان ایمن یا ناامن (در دو سطح مختلف شدت) طبقه بندی می کند. این یک مدل BERT است که منحصراً برچسب ها را خروجی می دهد.

Llama Guard 3: ایمنی چندوجهی و چند زبانه

Llama Guard 3 در سه نسخه موجود است: Llama Guard 3 1B، Llama Guard 3 8B و Llama Guard 3 11B-Vision. دو مورد اول مدل های فقط متنی هستند، در حالی که سومی قابلیت های درک بصری مدل Llama 3.2 11B-Vision را در خود جای داده است. همه نسخه ها چند زبانه هستند (برای درخواست های فقط متنی) و به دسته بندی های خطر تعریف شده توسط کنسرسیوم MLCommons پایبند هستند.

Llama Guard 3 8B همچنین می تواند برای دسته S14، سوء استفاده از مفسر کد، استفاده شود. توجه به این نکته مهم است که مدل Llama Guard 3 1B برای این دسته خاص بهینه نشده است.

دسته بندی های خطر، که در مورد Llama Guard 2 گسترش یافته اند، عبارتند از:

  • S1: جرایم خشونت آمیز
  • S2: جرایم غیر خشونت آمیز
  • S3: جرایم مرتبط با جنسیت
  • S4: سوء استفاده جنسی از کودکان
  • S5: افترا
  • S6: مشاوره تخصصی
  • S7: حریم خصوصی
  • S8: مالکیت معنوی
  • S9: سلاح های بی رویه
  • S10: نفرت
  • S11: خودکشی و آسیب به خود
  • S12: محتوای جنسی
  • S13: انتخابات
  • S14: سوء استفاده از مفسر کد

Meta Llama 3.1: مدل های مولد چند زبانه

مجموعه Meta Llama 3.1 شامل مدل های زبان بزرگ چند زبانه، از جمله مدل های مولد از پیش آموزش دیده و تنظیم شده با دستورالعمل در اندازه های 8 میلیارد، 70 میلیارد و 405 میلیارد پارامتر (ورودی متن، خروجی متن) است.

زبان های پشتیبانی شده عبارتند از: انگلیسی، آلمانی، فرانسوی، ایتالیایی، پرتغالی، هندی، اسپانیایی و تایلندی.

Meta Llama 3.2: قابلیت های گفتگوی پیشرفته

مجموعه Llama 3.2 دارای مدل های زبان بزرگ چند زبانه است که شامل مدل های مولد از پیش آموزش دیده و تنظیم شده با دستورالعمل در اندازه های 1 میلیارد و 3 میلیارد پارامتر (ورودی متن، خروجی متن) می شود. نسخه های کوانتیزه شده این مدل ها نیز موجود است. مدل‌های فقط متنی تنظیم‌شده با دستورالعمل Llama 3.2 برای گفتگوی چند زبانه بهینه‌سازی شده‌اند و در کارهایی مانند بازیابی و خلاصه‌سازی عامل‌محور عالی هستند. مدل های 1B و 3B مشتقات کوچکتر و کم قدرت تر Llama 3.1 هستند.

زبان های رسمی پشتیبانی شده عبارتند از: انگلیسی، آلمانی، فرانسوی، ایتالیایی، پرتغالی، هندی، اسپانیایی و تایلندی. با این حال، Llama 3.2 بر روی طیف وسیع تری از زبان ها فراتر از این هشت زبان آموزش دیده است.

Llama 3.2-Vision: استدلال و درک تصویر

مجموعه Llama 3.2-Vision مدل های زبان بزرگ چندوجهی را معرفی می کند. این مدل ها برای استدلال تصویر از پیش آموزش دیده و تنظیم شده با دستورالعمل هستند و در اندازه های 11 میلیارد و 90 میلیارد پارامتر (ورودی متن و تصویر، خروجی متن) موجود هستند. مدل های تنظیم شده با دستورالعمل برای تشخیص بصری، استدلال تصویر، شرح نویسی و پاسخ به سوالات عمومی در مورد تصاویر بهینه شده اند.

برای وظایف فقط متنی، زبان های رسمی پشتیبانی شده عبارتند از: انگلیسی، آلمانی، فرانسوی، ایتالیایی، پرتغالی، هندی، اسپانیایی و تایلندی. Llama 3.2 بر روی مجموعه وسیع تری از زبان ها آموزش دیده است، اما برای برنامه های تصویر + متن، انگلیسی تنها زبان پشتیبانی شده است.

Meta Llama 3.3: یک مدل 70B قدرتمند

مدل زبان بزرگ چند زبانه Meta Llama 3.3 یک مدل مولد از پیش آموزش دیده و تنظیم شده با دستورالعمل با 70 میلیارد پارامتر (ورودی متن، خروجی متن) است.

زبان های پشتیبانی شده: انگلیسی، آلمانی، فرانسوی، ایتالیایی، پرتغالی، هندی، اسپانیایی و تایلندی.

درک این نکته بسیار مهم است که مدل های زبان بزرگ، از جمله Llama 3.2، برای استقرار مجزا در نظر گرفته نشده اند. آنها باید در یک سیستم هوش مصنوعی جامع با حفاظ های ایمنی مناسب ادغام شوند. از توسعه دهندگان انتظار می رود که حفاظ های سیستم را پیاده سازی کنند، به خصوص هنگام ساخت سیستم های عامل.

Llama 3.3، مدل‌های فقط متنی Llama 3.2 و Llama 3.1 شامل پشتیبانی داخلی برای ابزارهای زیر هستند:

  • Brave Search: یک فراخوانی ابزار برای انجام جستجوهای وب.
  • Wolfram Alpha: یک فراخوانی ابزار برای اجرای محاسبات پیچیده ریاضی.
  • Code Interpreter: یک فراخوانی ابزار که مدل را قادر می سازد کد پایتون را خروجی دهد.

توجه: مدل‌های Llama 3.2 vision از فراخوانی ابزار با ورودی‌های متن + تصویر پشتیبانی نمی‌کنند.

Llama Stack: یک چارچوب یکپارچه

تعداد زیاد مدل های Llama می تواند گیج کننده باشد. برای ساده‌سازی فرآیند انتخاب و یکپارچه‌سازی، متا Llama Stack را ارائه می‌دهد. این چارچوب بر مدل‌های Llama تأکید دارد، اما آداپتورهایی را برای قابلیت‌های مرتبط، مانند پایگاه‌های داده برداری برای تولید تقویت‌شده با بازیابی (RAG) نیز فراهم می‌کند.

Llama Stack در حال حاضر از SDK ها در پایتون، سوئیفت، نود و کاتلین پشتیبانی می کند. این توزیع های مختلفی را ارائه می دهد، از جمله:

  • توزیع محلی (با استفاده از Ollama): برای توسعه و آزمایش محلی.
  • توزیع های روی دستگاه (iOS و Android): برای استقرار مدل های Llama در دستگاه های تلفن همراه.
  • توزیع برای GPU ها: برای استفاده از قدرت GPU ها برای پردازش سریعتر.
  • توزیع های میزبانی شده از راه دور (Together و Fireworks): برای دسترسی به مدل های Llama از طریق خدمات مبتنی بر ابر.

مفهوم اصلی پشت Llama Stack این است که توسعه دهندگان را قادر می سازد تا برنامه ها را به صورت محلی بسازند و سپس به راحتی به یک محیط تولید منتقل شوند. حتی یک Llama Stack Playground تعاملی برای توسعه محلی در برابر یک Llama Stack از راه دور فراهم می کند.

اجرای مدل های Llama: گزینه های استقرار همه کاره

مدل های Llama را می توان در پلتفرم های مختلفی از جمله لینوکس، ویندوز، macOS و ابر مستقر کرد. مدل‌های Llama کوانتیزه‌شده، مانند Llama 3.2 و Llama 3.2-Vision، می‌توانند به طور موثر بر روی سخت‌افزار مدرن، حتی در لپ‌تاپ‌هایی مانند M4 Pro MacBook Pro با استفاده از ابزارهایی مانند Ollama اجرا شوند.

متا راهنماهای جامعی برای استقرار و استفاده از مدل های Llama ارائه می دهد. علاوه بر این، راهنماهای یکپارچه سازی برای فریم ورک های محبوب مانند LangChain و LlamaIndex در دسترس هستند.

به طور خلاصه، Llama از یک مدل زبانی ساده فراتر رفته است، اکنون یک چارچوب هوش مصنوعی چندوجهی کامل با ویژگی های ایمنی، تولید کد و پشتیبانی از بسیاری از زبان ها است. سیستم متا به آن اجازه می دهد تا در مکان های زیادی مستقر شود، اما مسائل حقوقی مربوط به داده های آموزشی و بحث در مورد اینکه آیا Llama منبع باز است، ادامه دارد.