این پست از ابعاد مختلف مهم هست...
حدود چهار ماه پیش، آقای Andrej Karpathy پستی در X منتشر کرد که ترجمه خلاصه اون رو به کمک ChatGPT در زیر آوردم:
خب، مثل خیلی از کارهای Karpathy، این کار هم با استقبال قابل توجهی مواجه شد. مثلا، یک پویشی راه افتاد که هزینه آموزش مدل GPT-2 124M رو روی دیتاست FineWeb برای رسیدن به لاس 3.28 کاهش بدن. در واقع، هدف این بود که بیایید یک کاری کنیم، هرچه سریعتر به لاس 3.28 روی ولیدیشن دیتاست FineWeb برسیم.
این مدت، من میدیدم که افرادی از کاهش زمان آموزش مدل میگفتن و مدام پیگیری میکردم. مثلا، Keller Jordan خیلی روی این پروژه کار کرد و خیلی پست میذاشت. حالا بعد از چهار ماه، Karpathy یک پستی درباره این ماجرا منتشر کرده:
لیست کارهای Keller Jordan برای رسیدن به 5 دقیقه رو میتونید در تصویر پست بعدی ببینید. سعی کردم لینکهای مهم رو در متن براتون بذارم.
مدتها بود که میخواستم درباره این ماجرا بنویسم، اما نمیتونستم به شکل خوبی مطلب رو بیان کنم. برای من این پروژه خیلی آموزنده و الهامبخش بود و خیلی پیگیرش بودم و هستم...
@pytorch_howsam
حدود چهار ماه پیش، آقای Andrej Karpathy پستی در X منتشر کرد که ترجمه خلاصه اون رو به کمک ChatGPT در زیر آوردم:
در سال ۲۰۱۹، OpenAI مدل GPT-2 رو معرفی کرد. امروز، بعد حدودا ۵ سال، میتونید مدل مشابهی رو تنها با حدود ۶۷۲ دلار و یک نود 8XH100 GPU طی ۲۴ ساعت آموزش بدید. پروژه llm.c که روی اون کار کردم، راهنمای کاملی برای این فرآیند ارائه میده.
پیشرفتهای سختافزاری (مثل، GPUهای H100)، نرمافزاری (CUDA، cuBLAS، FlashAttention) و دادههای باکیفیت (مثل FineWeb-Edu) هزینهها رو چشمگیر کاهش دادن. llm.c مستقیماً با C/CUDA نوشته شده و نیازی به محیطهای پیچیده Python یا ابزارهایی مانند pip نداره. فقط یک نود GPU ابری رو راهاندازی میکنید، ملزومات رو نصب میکنید و در چند دقیقه آماده اجرا میشه.
این پروژه از علاقهام به بازتولید GPT-2 برای یک ویدیوی آموزشی شروع شد. اما در ادامه مسیر، یادگیری بیشتر CUDA، بازنویسی همهچیز از صفر (حدود ۵,۰۰۰ خط کد برای llm.c) و ساخت سیستمی سریع، کوچک و پایدار رو در پی داشت.
هنوز کارهای زیادی باقی مونده، از جمله بهبود پایداری آموزش برای مدلهای بزرگتر، تست fp8 و اضافه کردن معماریهای مدرنتر.
خب، مثل خیلی از کارهای Karpathy، این کار هم با استقبال قابل توجهی مواجه شد. مثلا، یک پویشی راه افتاد که هزینه آموزش مدل GPT-2 124M رو روی دیتاست FineWeb برای رسیدن به لاس 3.28 کاهش بدن. در واقع، هدف این بود که بیایید یک کاری کنیم، هرچه سریعتر به لاس 3.28 روی ولیدیشن دیتاست FineWeb برسیم.
این مدت، من میدیدم که افرادی از کاهش زمان آموزش مدل میگفتن و مدام پیگیری میکردم. مثلا، Keller Jordan خیلی روی این پروژه کار کرد و خیلی پست میذاشت. حالا بعد از چهار ماه، Karpathy یک پستی درباره این ماجرا منتشر کرده:
یادتون میاد با llm.c بازتولید آموزش مدل GPT-2 124M حدود ۴۵ دقیقه روی 8XH100 زمان میبرد؟ از اون موقع، Keller Jordan (و حالا خیلیهای دیگه) روی نسخه جدید و اصلاحشده NanoGPT کار کردن و این زمان رو به فقط ۵ دقیقه کاهش دادن! عاشق این ریپو هستم؛ 👏 ۶۰۰ خط کد!
لیست کارهای Keller Jordan برای رسیدن به 5 دقیقه رو میتونید در تصویر پست بعدی ببینید. سعی کردم لینکهای مهم رو در متن براتون بذارم.
مدتها بود که میخواستم درباره این ماجرا بنویسم، اما نمیتونستم به شکل خوبی مطلب رو بیان کنم. برای من این پروژه خیلی آموزنده و الهامبخش بود و خیلی پیگیرش بودم و هستم...
@pytorch_howsam
PyTorch Howsam
این پست از ابعاد مختلف مهم هست... حدود چهار ماه پیش، آقای Andrej Karpathy پستی در X منتشر کرد که ترجمه خلاصه اون رو به کمک ChatGPT در زیر آوردم: در سال ۲۰۱۹، OpenAI مدل GPT-2 رو معرفی کرد. امروز، بعد حدودا ۵ سال، میتونید مدل مشابهی رو تنها با حدود ۶۷۲ دلار…
لیست بهبودهایی که منجر به کاهش چشمگیر زمان آموزش مدل برای رسیدن به لاس 3.28 شده. اول هر آیتم زمان هم نوشته شده. یکی از موارد جالب، اثر آپگرید کردن پایتورچ هست.
تصویر بالا، درخت تکامل مدلهای زبانی بزرگ (LLM) رو از سال ۲۰۱۸ تا ۲۰۲۴ نشون میده.
نمودار سه شاخه اصلی داره:
* شاخه قرمز شامل مدلهای Encoder-only مثل BERT هست.
* شاخه سبز شامل مدلهای Encoder-Decoder مثل T5 هست.
* شاخه آبی شامل مدلهای Decoder-only مثل GPT هست.
توی هر شاخه، برگها مسیر پیشرفت مدلها رو نشون میدن. مثلا، در شاخه آبی، شروعکننده تقریبا GPT-2 بوده و جدیدترین هم Llama 3.2 هست.
@pytorch_howsam
نمودار سه شاخه اصلی داره:
* شاخه قرمز شامل مدلهای Encoder-only مثل BERT هست.
* شاخه سبز شامل مدلهای Encoder-Decoder مثل T5 هست.
* شاخه آبی شامل مدلهای Decoder-only مثل GPT هست.
توی هر شاخه، برگها مسیر پیشرفت مدلها رو نشون میدن. مثلا، در شاخه آبی، شروعکننده تقریبا GPT-2 بوده و جدیدترین هم Llama 3.2 هست.
@pytorch_howsam
👶🤗
هاگینگفیس، یکسری مدل و دیتاست در مقیاس کوچک (Small) داره که اسمشون رو smol گذاشته!
مثلا، مجموعه SmolLM مدل زبانی کوچک با سایزهای 360M 135M و 1.7B پارامتر هست. این مدلها قدرتمندتر از مدلهای رقیب مثل MobileLLM متا عمل کردن. قبلا درباره MobileLLM اینجا، اینجا و اینجا نوشتم.
مدلهای SmolLM روی یک مجموعه دیتاست باکیفیت بنام SmolLM-Corpus آموزش داده شدن. این مجموعه دیتاست هم منتشر شده و میتونید برای آموزش مدلهای زبانی کوچک ازش استفاده کنید.
اخیرا، SmolVLM رو منتشر کردن که یک vision Language Model هست. این مدل هم با داشتن 2B پارامتر جز VLM-های کوچک محسوب میشه. توی تصویر بالا هم جایگاه این مدل رو نسبت به سایر مدلهای کوچک میتونید ببینید.
یک نکته جالب هم اینکه، وبلاگ SmolVLM در سایت هاگینگفیس اینطوری شروع شده:
@pytorch_howsam
هاگینگفیس، یکسری مدل و دیتاست در مقیاس کوچک (Small) داره که اسمشون رو smol گذاشته!
مثلا، مجموعه SmolLM مدل زبانی کوچک با سایزهای 360M 135M و 1.7B پارامتر هست. این مدلها قدرتمندتر از مدلهای رقیب مثل MobileLLM متا عمل کردن. قبلا درباره MobileLLM اینجا، اینجا و اینجا نوشتم.
مدلهای SmolLM روی یک مجموعه دیتاست باکیفیت بنام SmolLM-Corpus آموزش داده شدن. این مجموعه دیتاست هم منتشر شده و میتونید برای آموزش مدلهای زبانی کوچک ازش استفاده کنید.
اخیرا، SmolVLM رو منتشر کردن که یک vision Language Model هست. این مدل هم با داشتن 2B پارامتر جز VLM-های کوچک محسوب میشه. توی تصویر بالا هم جایگاه این مدل رو نسبت به سایر مدلهای کوچک میتونید ببینید.
یک نکته جالب هم اینکه، وبلاگ SmolVLM در سایت هاگینگفیس اینطوری شروع شده:
This year has seen a boom in multimodal AI with many large vision language models released.
@pytorch_howsam
امروز سایت deep-ml.com رو بررسی کردم؛ این سایت، شامل یکسری مساله تمرینی در حوزه هوش مصنوعی هست. برای هر مساله توضیحاتی ارائه شده و میشه بهصورت آنلاین کدنویسی و نتیجه رو برای چک کردن سابمیت کرد.
بیشتر تمریناتش مربوط به جبر خطی، یادگیری ماشین و یادگیری عمیق هست. فقط یک یا دو مساله برای بینایی کامپیوتر و پردازش زبان طبیعی داره. امیدوارم، مسالهها بیشتر بشه. خودم علاقهمند شدم که در طراحی مساله باهاشون همکاری کنم! :)
به عنوان معلم، همیشه به دوستان پیشنهاد کردم که در آموزش صرفا تماشاگر نباشید و حتما روی مباحث تئوری و کدنویسی تمرین حل کنید.
@pytorch_howsam
بیشتر تمریناتش مربوط به جبر خطی، یادگیری ماشین و یادگیری عمیق هست. فقط یک یا دو مساله برای بینایی کامپیوتر و پردازش زبان طبیعی داره. امیدوارم، مسالهها بیشتر بشه. خودم علاقهمند شدم که در طراحی مساله باهاشون همکاری کنم! :)
به عنوان معلم، همیشه به دوستان پیشنهاد کردم که در آموزش صرفا تماشاگر نباشید و حتما روی مباحث تئوری و کدنویسی تمرین حل کنید.
@pytorch_howsam
مهدی، از بچههای هوسم، مطلبی درباره فریمورک Polars در گروهمون به اشتراک گذاشته. جالبه!
@pytorch_howsam
سلام دوستان
اگر با دادههای جدولی حجیم سر و کار دارید پیشنهاد میکنم Polars رو امتحان کنید.
با زبان Rust نوشته شده که یکی از سریعترین زبانهاست.
از معماری columnar (ستونی) برای پردازش دادهها استفاده میکنه که باعث میشه عملکرد فوقالعادهای داشته باشه، بهویژه برای تحلیل دادههای بزرگ.
امکان استفاده از چندین هسته CPU و حتی GPU رو فراهم میکنه که برای پردازشهای سنگین عالیه.
از توابع کاربردی مثل groupby، join، aggregation، و window functions پشتیبانی میکنه.
من شخصاً از Polars برای پردازش یک فایل CSV با حجم ۹.۵ گیگابایت استفاده کردم و بدون هیچ مشکلی، با سرعت خیلی خیلی خوبی کارم رو انجام داد. میتونید توی Google Colab یا kaggle و gpu که در اختیارتون میگذاره استفاده کنید.
https://github.com/pola-rs/polars
@pytorch_howsam
GitHub
GitHub - pola-rs/polars: Dataframes powered by a multithreaded, vectorized query engine, written in Rust
Dataframes powered by a multithreaded, vectorized query engine, written in Rust - pola-rs/polars
قبلا، چند تا کتاب درباره LLM معرفی کرده بودم. توی دو ماه گذشته مشغول مطالعه دو کتاب زیر بودم:
کتاب درباره Build a Large Language Model از Sebastian Raschka
کتاب Hands-on LLMs از آقای Jay Alammar
احتمالا یک نقد و بررسی از اون دو کتاب مینویسم. فعلا، در این حد بگم که هر دو کتاب خوب هستن و ارزش خوندن دارن.
اما، الان به این فکر میکنم که بعد از این کتابها چه کتابی مطالعه کنم؛ تمایل دارم، کتابی انتخاب کنم که تمرکز بیشتری روی پروداکشن داشته باشه. خوشبختانه، چند تا کتاب از Manning دیدم که جالب هستن. هنوز دقیق بررسی نکردم، اما لیست کتابها رو اینجا میذارم:
کتاب LLMs in Production (از فهرست مطالب این کتاب خیلی خوشم اومد)
کتاب AI Agents in Action (فهرست مطالب خوبی داره)
کتاب Generative AI in Action (بعید هست کتاب بعدیم این باشه)
کتاب Build LLM Applications (from Scratch) (هنوز کامل منتشر نشده)
کتاب Hugging Face in Action (🧐)
این کتاب هم فهرست مطالب خوبی داره:
کتاب LLM Engineer's Handbook
بعدا نتیجه بررسی و مطالعه کتابها رو اینجا مینویسم.
کتاب درباره Build a Large Language Model از Sebastian Raschka
کتاب Hands-on LLMs از آقای Jay Alammar
احتمالا یک نقد و بررسی از اون دو کتاب مینویسم. فعلا، در این حد بگم که هر دو کتاب خوب هستن و ارزش خوندن دارن.
اما، الان به این فکر میکنم که بعد از این کتابها چه کتابی مطالعه کنم؛ تمایل دارم، کتابی انتخاب کنم که تمرکز بیشتری روی پروداکشن داشته باشه. خوشبختانه، چند تا کتاب از Manning دیدم که جالب هستن. هنوز دقیق بررسی نکردم، اما لیست کتابها رو اینجا میذارم:
کتاب LLMs in Production (از فهرست مطالب این کتاب خیلی خوشم اومد)
کتاب AI Agents in Action (فهرست مطالب خوبی داره)
کتاب Generative AI in Action (بعید هست کتاب بعدیم این باشه)
کتاب Build LLM Applications (from Scratch) (هنوز کامل منتشر نشده)
کتاب Hugging Face in Action (🧐)
این کتاب هم فهرست مطالب خوبی داره:
کتاب LLM Engineer's Handbook
بعدا نتیجه بررسی و مطالعه کتابها رو اینجا مینویسم.
میخوام از این بعد پستهای جالب فارسی/انگلیسی در X (توییتر سابق) رو همراه با رفرنس در این کانال بذارم.
با یک پست جالب از آقای Andrej Karpathy شروع کنیم! 😊
لینک پست در X
@pytorch_howsam
با یک پست جالب از آقای Andrej Karpathy شروع کنیم! 😊
یکی از کارایی که خیلی دوست دارم با مدلهای زبانی بزرگ انجام بدم اینه که باهاشون کتاب بخونم. مثلاً وقتی دارم یه کتاب میخونم، بتونم سوال بپرسم یا بحثهایی که خودش تولید میکنه (مثل سبک NotebookLM) رو بشنوم، در حالی که مدل خودش بهطور خودکار از محتوای متن یاد میگیره. به نظرم اگه آمازون یا یه شرکت دیگه یه کیندل هوشمند با هوش مصنوعی بسازه که "درست کار کنه"، خیلی موفق میشه.
فعلاً میشه با یه سری اسکریپت این ایده رو تا حدی پیاده کرد. شاید هم یکی قبلاً یه اپلیکیشن خفن برای خوندن کتاب با هوش مصنوعی ساخته باشه و من خبر نداشته باشم!
لینک پست در X
@pytorch_howsam
آقای Ilya Sutskever توی X (توییتر سابق) ترند شده. یک سخنرانی با موضوع زیر در کنفرانس NeurIPS 2024 داشته:
لینک ویدئوی سخنرانی (حدودا 25 دقیقه)
خودم هم درحال دیدن ویدئو هستم. منتها چون وقتم کم هست، مجبورم تکه تکه ببینم! تموم شد، سعی میکنم خلاصهای از صحبتش رو اینجا بذارم.
فعلا، خیلی خلاصه بگم که، ماجرای این سخنرانی برمیگرده به دهه 2014 تا 2024 در Sequence to sequence learning که با کار ایلیا و همکارانش در گوگل در سال 2014 با مقاله زیر آغاز شده:
@pytorch_howsam
Sequence to sequence learning with neural networks: what a decade
لینک ویدئوی سخنرانی (حدودا 25 دقیقه)
خودم هم درحال دیدن ویدئو هستم. منتها چون وقتم کم هست، مجبورم تکه تکه ببینم! تموم شد، سعی میکنم خلاصهای از صحبتش رو اینجا بذارم.
فعلا، خیلی خلاصه بگم که، ماجرای این سخنرانی برمیگرده به دهه 2014 تا 2024 در Sequence to sequence learning که با کار ایلیا و همکارانش در گوگل در سال 2014 با مقاله زیر آغاز شده:
Sequence to Sequence Learning with Neural Networks link
@pytorch_howsam
یک مدتی هست سایتی بنام aman.ai رو کشف کردم؛ حجم محتواهای آموزشی این سایت به شکل عجیبی زیاده! پر از بلاگ پست از سطح مقدماتی تا سطح بالا هست. حتی، کورسهای معروف استنفورد و کورسرا رو نتبرداری کردن! دوست دارم بیشتر بررسیش کنم.
شخصا وبلاگ و تولید محتوا رو دوست دارم و براش زیاد وقت میذارم. اما الان سوالم این هست که اینها چطوری این حجم محتوا رو آماده کردن؟! 🧐
شما فقط به لیست مطالبی که برای LLM آوردن، نگاه کن:
Primers • Overview of Large Language Models
@pytorch_howsam
شخصا وبلاگ و تولید محتوا رو دوست دارم و براش زیاد وقت میذارم. اما الان سوالم این هست که اینها چطوری این حجم محتوا رو آماده کردن؟! 🧐
شما فقط به لیست مطالبی که برای LLM آوردن، نگاه کن:
Primers • Overview of Large Language Models
توجه: برای شروع LLM روی این آموزش سرمایهگذاری نکنید. هم از مطالبی که در صفحه بالا گفتن و هم عنوانش مشخص هست که برای افراد از آب و گل دراومده هست!
@pytorch_howsam
aman.ai
Aman's AI Journal • Primers • Overview of Large Language Models
Aman's AI Journal | Course notes and learning material for Artificial Intelligence and Deep Learning Stanford classes.
This media is not supported in your browser
VIEW IN TELEGRAM
کگل و کولب!
به روشی که در ویدئوی بالا گفته شده، میتونید نوتبوک کگل رو در کولب باز کنید. عالی!🤌
@pytorch_howsam
به روشی که در ویدئوی بالا گفته شده، میتونید نوتبوک کگل رو در کولب باز کنید. عالی!
@pytorch_howsam
Please open Telegram to view this post
VIEW IN TELEGRAM
دو خبر جالب!
گوگل، لیستی شامل 321 نمونه واقعی استفاده از Gen AI در شرکتها و سازمانها رو منتشر کرده. لینک
مدل DeepSeek-V3 از لحاظ دقت و سرعت موردتوجه قرار گرفته. مشابه با ChatGPT میشه از این سرویس هم استفاده کرد. سرعت تولید متنش جالب توجه هست! ثبتنام بدون دردسری داره. لینک
@pytorch_howsam
گوگل، لیستی شامل 321 نمونه واقعی استفاده از Gen AI در شرکتها و سازمانها رو منتشر کرده. لینک
مدل DeepSeek-V3 از لحاظ دقت و سرعت موردتوجه قرار گرفته. مشابه با ChatGPT میشه از این سرویس هم استفاده کرد. سرعت تولید متنش جالب توجه هست! ثبتنام بدون دردسری داره. لینک
@pytorch_howsam
سایت Prompt Engineering Guide مطالب آموزشی خوب و منظمی داره. محدود به rompt Engineering هم نیست.
https://www.promptingguide.ai/
@pytorch_howsam
Motivated by the high interest in developing with LLMs, we have created this new prompt engineering guide that contains all the latest papers, advanced prompting techniques, learning guides, model-specific prompting guides, lectures, references, new LLM capabilities, and tools related to prompt engineering.
https://www.promptingguide.ai/
@pytorch_howsam
www.promptingguide.ai
Prompt Engineering Guide | Prompt Engineering Guide
A Comprehensive Overview of Prompt Engineering
بریدهای از کتاب Hands-on LLMs!
در فصل 6 کتاب، درباره مهندسی پرامپت (Prompt Engineering) صحبت شده. در یکی از بخشهای این فصل درباره استدلال یا Reasoning در مدلهای مولد توضیح داده شده. در ادامه، خلاصه این بخش رو آوردم...
کتاب، قبل از اینکه درباره استدلال در مدلهای مولد صحبت کنه، به استدلال در انسان اشاره میکنه. گریزی به کتاب معروف Thikning, Fast and Slow اثر Daniel Kahneman میزنه. این کتاب درباره روشهای فکر کردن انسانهاست و ارتباطی به هوش مصنوعی نداره. این کتاب میگه، به طور کلی، روشهای فکر کردن ما به دو دسته تقسیم میشن: سیستم ۱ و سیستم ۲؛ سیستم ۱ خودکار و سریع هست؛ مثل وقتی که یک چیزی رو سریع حدس میزنی یا احساسی تصمیم میگیری. این سیستم شبیه مدلهای مولد هست که بدون فکر کردن، خروجی تولید میکنن. از طرف دیگه، سیستم ۲، آهستهتر و منطقیتر هست؛ مثلا، وقتی که با دقت فکر میکنی یا یک مساله پیچیده ریاضی حل میکنی. حالا، در LLM تلاش میشه که سیستم 2 پیادهسازی بشه تا مدل قبل از پاسخ دادن، فکر کنه.
کتاب دو روش استدلال رو معرفی میکنه:
1. زنجیره تفکر (Chain-of-Tought)
2. درخت تفکر (Tree-of-Tought)
1. روش Chain-of-Tought:
به جای اینکه مدل مستقیم و سریع پاسخ رو تولید کنه، مراحل فکری رسیدن رو هم نشون میده. مثلا، وقتی یک سوال حل مسئله ریاضی بهش داده میشه، اول فرآیند فکر کردن رو مرحله به مرحله توضیح میده و بعد به جواب نهایی میرسه. این کار باعث میشه مدلها در حل مسائل پیچیده بهتر عمل کنن. این تکنیک شبیه روشی هست که آدمها موقع فکر کردن استفاده میکنن؛ یعنی، اول استدلال و بعد نتیجهکیری.
2. روش Tree-of-Thought:
روش پیشرفتهتری نسبت به Chain-of-Thought هست. توی این روش، به جای اینکه مدل فقط یک مسیر خطی از فکر کردن رو دنبال کنه، چندین مسیر فکری مختلف رو بررسی میکنه؛ مثل یک درخت که شاخههای مختلف داره. هر شاخه نماینده یک راهحل یا یک استدلال متفاوت هست. مدل این شاخهها رو ارزیابی میکنه و بهترینشون رو انتخاب میکنه تا به جواب بهتری برسه. تصویر پیوستی مربوط به همین روش استدلال درختی هست.
کتاب Hands-on LLMs رو قبلا اینجا معرفی کردم. کتاب خوبی هست. خودم هم به تازگی مطالعه این کتاب رو تموم کردم.
@pytorch_howsam
در فصل 6 کتاب، درباره مهندسی پرامپت (Prompt Engineering) صحبت شده. در یکی از بخشهای این فصل درباره استدلال یا Reasoning در مدلهای مولد توضیح داده شده. در ادامه، خلاصه این بخش رو آوردم...
کتاب، قبل از اینکه درباره استدلال در مدلهای مولد صحبت کنه، به استدلال در انسان اشاره میکنه. گریزی به کتاب معروف Thikning, Fast and Slow اثر Daniel Kahneman میزنه. این کتاب درباره روشهای فکر کردن انسانهاست و ارتباطی به هوش مصنوعی نداره. این کتاب میگه، به طور کلی، روشهای فکر کردن ما به دو دسته تقسیم میشن: سیستم ۱ و سیستم ۲؛ سیستم ۱ خودکار و سریع هست؛ مثل وقتی که یک چیزی رو سریع حدس میزنی یا احساسی تصمیم میگیری. این سیستم شبیه مدلهای مولد هست که بدون فکر کردن، خروجی تولید میکنن. از طرف دیگه، سیستم ۲، آهستهتر و منطقیتر هست؛ مثلا، وقتی که با دقت فکر میکنی یا یک مساله پیچیده ریاضی حل میکنی. حالا، در LLM تلاش میشه که سیستم 2 پیادهسازی بشه تا مدل قبل از پاسخ دادن، فکر کنه.
کتاب دو روش استدلال رو معرفی میکنه:
1. زنجیره تفکر (Chain-of-Tought)
2. درخت تفکر (Tree-of-Tought)
1. روش Chain-of-Tought:
به جای اینکه مدل مستقیم و سریع پاسخ رو تولید کنه، مراحل فکری رسیدن رو هم نشون میده. مثلا، وقتی یک سوال حل مسئله ریاضی بهش داده میشه، اول فرآیند فکر کردن رو مرحله به مرحله توضیح میده و بعد به جواب نهایی میرسه. این کار باعث میشه مدلها در حل مسائل پیچیده بهتر عمل کنن. این تکنیک شبیه روشی هست که آدمها موقع فکر کردن استفاده میکنن؛ یعنی، اول استدلال و بعد نتیجهکیری.
2. روش Tree-of-Thought:
روش پیشرفتهتری نسبت به Chain-of-Thought هست. توی این روش، به جای اینکه مدل فقط یک مسیر خطی از فکر کردن رو دنبال کنه، چندین مسیر فکری مختلف رو بررسی میکنه؛ مثل یک درخت که شاخههای مختلف داره. هر شاخه نماینده یک راهحل یا یک استدلال متفاوت هست. مدل این شاخهها رو ارزیابی میکنه و بهترینشون رو انتخاب میکنه تا به جواب بهتری برسه. تصویر پیوستی مربوط به همین روش استدلال درختی هست.
کتاب Hands-on LLMs رو قبلا اینجا معرفی کردم. کتاب خوبی هست. خودم هم به تازگی مطالعه این کتاب رو تموم کردم.
@pytorch_howsam
سباستین راشکا یک وبلاگ درباره مقالات تحقیقاتی برجسته در سال 2024 نوشته. اولش گفته که انقدر حجم کارهای تحقیقاتی ارزشمند سال 2024 زیاد هست که باید کتاب نوشت! به همین خاطر، تصمیم گرفته، هر ماه از سال 2024 رو به یک کار ارزشمند اختصاص بده. فعلا، شش ماه اول سال 2024 رو نوشته. اگه خواستید، میتونید از لینک زیر مطالعه کنید.
Noteworthy AI Research Papers of 2024 (Part One)
ماه قبل، راشکا گفت که تصادف کرده و آسیب دیده. یک مدتی نمیتونست پشت میز بشینه و کار کنه. توی این پست گفت که حالش بهتره. امیدوارم به خوبی ریکاوری کنه.
من هم تصمیم گرفتم که کار مربوط به هر ماه رو بهصورت خلاصه اینجا بنویسم. توی این پست درباره کار ماه ژانویه نوشتم.
1. ژانویه: روش Mixture of Experts مدل Mixtral
تنها چند روز پس از شروع ژانویه 2024، تیم Mistral AI مقاله Mixtral of Experts یا MoE را (در تاریخ 8 ژانویه 2024) منتشر کرد. آنها در این مقاله، مدل Mixtral 8x7B را معرفی کردند.
این مقاله و مدل در زمان خود بسیار تاثیرگذار بود، چون Mixtral 8x7B یکی از اولین مدلهای MoE با وزنهای باز (open-weight) بود که عملکرد چشمگیری داشت و در معیارهای مختلف، Llama 2 70B و GPT-3.5 را پشت سر گذاشته بود.
مدل MoE یا Mixture of Experts چیست؟
یک مدل تجمعی که چندین زیرشبکه کوچک "متخصص" (Expert) را در یک معماری شبیه به GPT ترکیب میکند. میتوان گفت، هر زیرشبکه مسئول انجام یکسری تسک خاص و متفاوت هست. استفاده از چندین زیرشبکه کوچک به جای یک شبکه بزرگ باعث میشود که مدلهای MoE منابع محاسباتی را به صورت بهینهتری استفاده کنند.
ساختار مدل Mixtral 8x7B به چه شکلی هست؟
در شکل بالا ساختار مدل Mixtral 8x7B نشان داده شده است. بهطور خاص، در Mixtral 8x7B، هر ماژول Feed-Forward در معماری ترنسفورمر با 8 لایه متخصص (Expert) جایگزین شده است.
در شکل چهار نکته مهم وجود دارد:
1) معماری مدل شبیه به GPT (مبتنی بر دیکدر) هست.
2) 8 متخصص در ماژول فیدفورارد قرار گرفتهاند.
3) یک ماژول Router وجود دارد که توکنها را به 8 ماژول متخصص فیدفورارد هدایت میکند.
4) خروجی این 8 ماژول متخصص با یکدیگر جمع میشوند.
@pytorch_howsam
Please open Telegram to view this post
VIEW IN TELEGRAM
مجموعه Misguided Attention :
این مجموعهای از پِرامپتها (سوالات یا دستورالعملها) است که برای به چالش کشیدن تواناییهای استدلالی مدلهای زبانی بزرگ (LLMs) در حضور اطلاعات گمراهکننده طراحی شدهاند. این پرامپتها تغییرات کوچکی در آزمونهای فکری، معماها یا پارادوکسهای شناختهشده (که به آنها "سوالات پیچیده" نیز گفته میشود) ایجاد میکنند.
رفتار مورد انتظار این است که مدلهای زبانی بزرگ، با استفاده از استدلال منطقی، مشکلات را بهصورت گامبهگام حل کنند. با این حال، بسیاری از مدلها بهدلیل مواجهه مکرر با نسخههای اصلی این مشکلات در دادههای آموزشیشان، بهاشتباه مسئله را تشخیص داده و به جای بررسی جزئیات و حل مسئلهی اصلاحشده، پاسخهایی برای نسخهی اصلی و تغییرنیافتهی مسئله ارائه میدهند. در برخی موارد نیز ممکن است رشتههایی از استدلالهای متناقض مشاهده شود که در یک متن بهطور متناوب ظاهر میشوند.
گیت هاب
این مجموعهای از پِرامپتها (سوالات یا دستورالعملها) است که برای به چالش کشیدن تواناییهای استدلالی مدلهای زبانی بزرگ (LLMs) در حضور اطلاعات گمراهکننده طراحی شدهاند. این پرامپتها تغییرات کوچکی در آزمونهای فکری، معماها یا پارادوکسهای شناختهشده (که به آنها "سوالات پیچیده" نیز گفته میشود) ایجاد میکنند.
رفتار مورد انتظار این است که مدلهای زبانی بزرگ، با استفاده از استدلال منطقی، مشکلات را بهصورت گامبهگام حل کنند. با این حال، بسیاری از مدلها بهدلیل مواجهه مکرر با نسخههای اصلی این مشکلات در دادههای آموزشیشان، بهاشتباه مسئله را تشخیص داده و به جای بررسی جزئیات و حل مسئلهی اصلاحشده، پاسخهایی برای نسخهی اصلی و تغییرنیافتهی مسئله ارائه میدهند. در برخی موارد نیز ممکن است رشتههایی از استدلالهای متناقض مشاهده شود که در یک متن بهطور متناوب ظاهر میشوند.
گیت هاب
PyTorch Howsam
قبلا، چند تا کتاب درباره LLM معرفی کرده بودم. توی دو ماه گذشته مشغول مطالعه دو کتاب زیر بودم: کتاب درباره Build a Large Language Model از Sebastian Raschka کتاب Hands-on LLMs از آقای Jay Alammar احتمالا یک نقد و بررسی از اون دو کتاب مینویسم. فعلا، در این…
خب، از بین این کتابهای کاندیدا (پیام ریپلایشده)، هیچ کدوم رو انتخاب نکردم! 🙃 نه اینکه کتاب خوبی نباشن، بلکه تصمیم گرفتم کتاب جدید تمرکز بیشتری روی بعد علمی داشته باشه، نه عملی و پروداکشن. خلاصه اینکه، یک کتاب خوب بنام Transformers in Action پیدا کردم!
این کتاب، تسکها و معماریهای مختلفی رو پوشش داده که همین فاکتور باعث شد برای مطالعه انتخابش کنم. مثلا، برای هر یک از تسکهای زیر یک فصل جداگانه درنظر گرفته:
Text Summarization
Machine Translation
Text Classification
Text Generation
Multimodal Models
توی هرکدوم از فصلهای بالا، مدلهای معروف رو تشریح کرده. مثلا در فصل Text Generation، مدلهای زیر رو معرفی کرده:
GPT-1 to GPT-3
InstructGPT
GPT-NeoX-20B
Llama
RedPajama
Alpaca
Dolly
Falcon
مطمئن نبودم که کتاب خوبی باشه. تصمیم گرفتم، قبل معرفی در این کانال، کمی مطالعه رو جلو ببرم و ارزیابیش کنم. الان، اواسط فصل سوم این کتاب (Text Summarization) هستم. دیگه به این جمعبندی رسیدم که کتاب خیلی خوبی هست.
لینک کتاب در Manning
@pytorch_howsam
این کتاب، تسکها و معماریهای مختلفی رو پوشش داده که همین فاکتور باعث شد برای مطالعه انتخابش کنم. مثلا، برای هر یک از تسکهای زیر یک فصل جداگانه درنظر گرفته:
Text Summarization
Machine Translation
Text Classification
Text Generation
Multimodal Models
توی هرکدوم از فصلهای بالا، مدلهای معروف رو تشریح کرده. مثلا در فصل Text Generation، مدلهای زیر رو معرفی کرده:
GPT-1 to GPT-3
InstructGPT
GPT-NeoX-20B
Llama
RedPajama
Alpaca
Dolly
Falcon
مطمئن نبودم که کتاب خوبی باشه. تصمیم گرفتم، قبل معرفی در این کانال، کمی مطالعه رو جلو ببرم و ارزیابیش کنم. الان، اواسط فصل سوم این کتاب (Text Summarization) هستم. دیگه به این جمعبندی رسیدم که کتاب خیلی خوبی هست.
لینک کتاب در Manning
@pytorch_howsam
Please open Telegram to view this post
VIEW IN TELEGRAM
PyTorch Howsam
خب، از بین این کتابهای کاندیدا (پیام ریپلایشده)، هیچ کدوم رو انتخاب نکردم! 🙃 نه اینکه کتاب خوبی نباشن، بلکه تصمیم گرفتم کتاب جدید تمرکز بیشتری روی بعد علمی داشته باشه، نه عملی و پروداکشن. خلاصه اینکه، یک کتاب خوب بنام Transformers in Action پیدا کردم! این…
بریدهای از فصل سوم کتاب Transformers in Action ✂️
موضوع فصل سوم، خلاصهسازی متن یا Text Summarization هست. کتاب میگه، دو نوع خلاصهسازی داریم:
1. Extractive Summarization
2. Abstractive Summarization
در ادامه، با مثال زیر، تفاوت بین این دو نوع رو توضیح میدم:
در حالت Extractive Summarization، جملات مهم از متن اصلی برداشته میشن، بدون اینکه تغییری توشون داده بشه. یعنی دقیقا همون جملات متن اصلی رو میاره. در متن زیر، مستقیم جملات مهم از متن اصلی برداشته شده، بدون هیچ تغییری:
روشهای مبتنی بر Abstractive Summarization، معنای متن درک میکنن و با جملهبندی خودشون، خلاصهای تولید میکنن که ممکنه توی متن اصلی نباشه. در جمله زیر، با خلاصه کردن و جملهبندی جدید، مفهوم اصلی بیان شده، ولی جملهها دقیقاً از مثال بالا نیست:
کتاب، تعدادی از روشهای معروف از هر دو دسته رو معرفی میکنه؛ روشهای مبتنی بر شبکههای ترنسفورمری معمولا در دسته Abstractive Summarization قرار میگیرن. این مدلها به دلیل توانایی بالاشون در درک معنای متن و تولید جملات جدید، برای این نوع خلاصهسازی خیلی مناسب هستن.
کتاب میگه که اگرچه روشهای Decoder-only مثل GPT هم میتونن خلاصهسازی متن انجام بدن، اما روشهای مبتنی بر Encoder-Decoder یا Text-to-Text عملکرد بهتری دارن. چند نمونه از روشهای Encoder-Decoder که در این فصل توضیح داده شده:
BART
T5
Pegasus
LongFormer
BigBird
بد نیست به این پست هم نگاهی بندازید: درخت تکامل LLM-ها
@pytorch_howsam
موضوع فصل سوم، خلاصهسازی متن یا Text Summarization هست. کتاب میگه، دو نوع خلاصهسازی داریم:
1. Extractive Summarization
2. Abstractive Summarization
در ادامه، با مثال زیر، تفاوت بین این دو نوع رو توضیح میدم:
شب گذشته بارش باران در تهران باعث کاهش آلودگی هوا شد. با این حال، خیابانها به دلیل آبگرفتگی دچار ترافیک سنگین شدند. این شرایط تا صبح ادامه داشت و باعث تأخیر در رفتوآمد مردم شد.
در حالت Extractive Summarization، جملات مهم از متن اصلی برداشته میشن، بدون اینکه تغییری توشون داده بشه. یعنی دقیقا همون جملات متن اصلی رو میاره. در متن زیر، مستقیم جملات مهم از متن اصلی برداشته شده، بدون هیچ تغییری:
شب گذشته بارش باران در تهران باعث کاهش آلودگی هوا شد. خیابانها به دلیل آبگرفتگی دچار ترافیک سنگین شدند.
روشهای مبتنی بر Abstractive Summarization، معنای متن درک میکنن و با جملهبندی خودشون، خلاصهای تولید میکنن که ممکنه توی متن اصلی نباشه. در جمله زیر، با خلاصه کردن و جملهبندی جدید، مفهوم اصلی بیان شده، ولی جملهها دقیقاً از مثال بالا نیست:
باران شب گذشته در تهران، هم آلودگی هوا را کاهش داد و هم باعث ترافیک و تأخیر در رفتوآمد شد.
کتاب، تعدادی از روشهای معروف از هر دو دسته رو معرفی میکنه؛ روشهای مبتنی بر شبکههای ترنسفورمری معمولا در دسته Abstractive Summarization قرار میگیرن. این مدلها به دلیل توانایی بالاشون در درک معنای متن و تولید جملات جدید، برای این نوع خلاصهسازی خیلی مناسب هستن.
کتاب میگه که اگرچه روشهای Decoder-only مثل GPT هم میتونن خلاصهسازی متن انجام بدن، اما روشهای مبتنی بر Encoder-Decoder یا Text-to-Text عملکرد بهتری دارن. چند نمونه از روشهای Encoder-Decoder که در این فصل توضیح داده شده:
BART
T5
Pegasus
LongFormer
BigBird
بد نیست به این پست هم نگاهی بندازید: درخت تکامل LLM-ها
@pytorch_howsam
Please open Telegram to view this post
VIEW IN TELEGRAM
Telegram
PyTorch Howsam
تصویر بالا، درخت تکامل مدلهای زبانی بزرگ (LLM) رو از سال ۲۰۱۸ تا ۲۰۲۴ نشون میده.
نمودار سه شاخه اصلی داره:
* شاخه قرمز شامل مدلهای Encoder-only مثل BERT هست.
* شاخه سبز شامل مدلهای Encoder-Decoder مثل T5 هست.
* شاخه آبی شامل مدلهای Decoder-only مثل…
نمودار سه شاخه اصلی داره:
* شاخه قرمز شامل مدلهای Encoder-only مثل BERT هست.
* شاخه سبز شامل مدلهای Encoder-Decoder مثل T5 هست.
* شاخه آبی شامل مدلهای Decoder-only مثل…