Telegram Web Link
مشکلات #LLM در راه رسیدن به هوش مصنوعی عمومی #AGI چیست؟

@silicon_brain I از هوش مصنوعی عقب نمانید
۸ پروژه معروف یادگیری ماشین Kaggle رو تو این پست معرفی کردیم:
https://www.instagram.com/p/C-IhdHkCYCy/?igsh=bDc2ZWpnYzR4MnI0
پیشرفت در زمینه بهینه ساز ها توسط متا

متا بهینه‌سازی بنام Schedule-free Optimizer معرفی کرده که مورد توجه قرار گرفته. خیلی‌ها درحال ارزیابیش هستن و فیدبک مثبت دادن. چه ویژگی مثبتی داره که ترند شده؟

عملکرد بهتری نسبت به بهینه‌سازهای رایج مثل #SGD و #Adam داره. شکل بالا رو ببینید. این بهینه‌ساز نسبت به بهینه‌ساز AdamW با تابع پله‌ای یا کسینوسی همگرایی سریع‌تری داره.

نیازی به تنظیم لرنینگ ریت (LR Scheduler) نداره. یعنی، دیگه نیازی نیست که #learning_rate رو حین آموزش تغییر بدید.

چطوری ازش استفاده کنیم؟ اول که نصب:
pip install schedulefree

بعدش هم می‌تونید از بهینه‌ساز مبتنی بر SGD یا AdamW استفاده کنید:
optimizer = schedulefree.AdamWScheduleFree(model.parameters(), lr=args.lr)

تو لینک زیر، اومدن یک شبکه CNN رو روی دیتاست MNIST با این بهینه‌ساز آموزش دادن که برای شروع کار باهاش و ارزیابی عملکردش میتونین استفاده کنین:
لینک کد | گیتهاب
#ScheduleFree
@silicon_brain | از هوش مصنوعی عقب نمانید
کامبک گوگل به دنیای LLM

گوگل دیپ‌مایند (#deep_m8nd) مدل Gemma-2 با دو بیلیون پارامتر رو عرضه کرده. یکی از بزرگترین دستاوردهای این کار، عملکرد بهتر مدل در پلتفرم ارزیابی Chatbot Arena نسبت به مدل GPT-3.5 هست!

مدل GPT-3.5 بیش از 175 بیلیون پارامتر و Gemma-2 تنها با دو بیلیون پارامتر داره! تصویر هم مربوط به LMSYS Chatbot Arena هست که عملکرد مدل Gemma-2 رو نسبت به سایر مدل‌ها نشون میده.

علاوه بر Gemma-2 2B دو نسخه دیگه بنام GemmaShield و GemmaScope هم عرضه شده که اینها هم کاربردهای بسیار جالبی دارن.

شاید ندونید LMSYS Chatbot Arena چی هست؟
یک پلتفرم آنلاین و آزاد هست برای ارزیابی #LLM ها و VLM-هاست. ارزیابی‌های جالبی هم داره؛ مثلا، یک حالت Battle داره. شما یک سوال میپرسید و دو مدل A و B نامشخص بهش جواب میدن. شما جواب‌ها رو میخونید و بعد می‌تونید انتخاب کنید که کدوم جواب بهتر هست. بعد از اینکه جواب دادید، بهتون میگه این دو مدل که بهت جواب دادن اسمشون چی بوده.

وبلاگ Gemma-2

#gemma #lmsys #chatbot_arena
@silicon_brain | از هوش مصنوعی عقب نمانید
دیگر نیازی به پرامپت انجینیرینگ نیست، از این به بعد بجای پرامپت‌های طولانی تو کد با #DSPy تمیز و با دقت بالا برنامه نویسی کن!


برای سیستمی شدن حل مسئله به روش پرامپتینگ، DSPy دو کار انجام می‌دهد. اول، جریان برنامه شما (ماژول‌ها) را از پارامترهای هر مرحله (LM prompts و weights) جدا می‌کند. دوم، DSPy بهینه‌سازهای جدیدی معرفی می‌کند که الگوریتم‌های مبتنی بر مدل زبانی هستند و می‌توانند دستورات و/یا وزن‌های مدل زبانی شما را بر اساس معیاری که می‌خواهید به حداکثر برسانید، تنظیم کنند.

مقاله
گیت‌هاب
داکیومنت

بخش 1/3

#prompt_engineering
#LLM

@silicon_brain | از هوش مصنوعی عقب نمانید
مفاهیم رو در ادامه بررسی کنیم ✌️
Signature

یک Signature مشخصه‌ای اعلامی از رفتار ورودی/خروجی یک ماژول DSPy است. Signatures به شما این امکان را می‌دهد که به مدل زبانی بگویید چه کاری باید انجام دهد، بدون اینکه مشخص کنید چگونه باید از مدل زبانی بخواهیم که آن را انجام دهد.

مثال:
class CheckCitationFaithfulness(dspy.Signature):
"""Verify that the text is based on the provided context."""

context = dspy.InputField(desc="facts here are assumed to be true")
text = dspy.InputField()
faithfulness = dspy.OutputField(desc="True/False indicating if text is faithful to context")


Modules
یک ماژول DSPy، واحد اصلی برای برنامه‌هایی است که از مدل‌های زبانی (LMs) استفاده می‌کنند.

هر ماژول داخلی یک تکنیک پرسشگری خاص مانند chain of thought یا ReAct را انتزاع می‌کند. این ماژول‌ها به گونه‌ای طراحی شده‌اند که می‌توانند هر Signature در DSPy را پردازش کنند.

ماژول‌های DSPy پارامترهای قابل یادگیری دارند (مثل بخش‌های کوچکی که پرسش و وزن‌های مدل زبانی را تشکیل می‌دهند) و می‌توانند برای پردازش ورودی‌ها و ارائه خروجی‌ها فراخوانی شوند.

چندین ماژول می‌توانند با هم ترکیب شده و ماژول‌های بزرگتری (برنامه‌ها) را تشکیل دهند. ماژول‌های DSPy الهام گرفته از ماژول‌های شبکه‌های عصبی (NN) در PyTorch هستند، اما برای برنامه‌های مدل زبانی (LM) به کار می‌روند.

مثال:

sentence = "it's a charming and often affecting journey."  # example from the SST-2 dataset.

# 1) Declare with a signature.
classify = dspy.Predict('sentence -> sentiment')

# 2) Call with input argument(s).
response = classify(sentence=sentence)

# 3) Access the output.
print(response.sentiment)


Data

فریمورک یادشده یک چارچوب یادگیری ماشین است، بنابراین کار با آن شامل مجموعه‌های آموزشی، اعتبارسنجی و آزمون است.

برای هر نمونه در داده‌های شما، معمولاً بین سه نوع مقدار تفاوت قائل می‌شویم: ورودی‌ها، برچسب‌های میانی و برچسب نهایی. شما می‌توانید بدون استفاده از برچسب‌های میانی یا نهایی نیز از DSPy به‌طور مؤثر استفاده کنید، اما حداقل به چند نمونه ورودی نیاز خواهید داشت.

مثال:
qa_pair = dspy.Example(question="This is a question?", answer="This is an answer.")



Metrics

یک متریک فقط یک تابع است که نمونه‌هایی از داده‌های شما را می‌گیرد و خروجی سیستم شما را بررسی کرده و امتیازی برمی‌گرداند که کیفیت خروجی را نشان می‌دهد. چه چیزی باعث می‌شود خروجی‌های سیستم شما خوب یا بد باشند؟

مثال متریک ai:

gpt4T = dspy.OpenAI(model='gpt-4-1106-preview', max_tokens=1000, model_type='chat')

def metric(gold, pred, trace=None):
    question, answer, tweet = gold.question, gold.answer, pred.output

    engaging = "Does the assessed text make for a self-contained, engaging tweet?"
    correct = f"The text should answer `{question}` with `{answer}`. Does the assessed text contain this answer?"
   
    with dspy.context(lm=gpt4T):
        correct =  dspy.Predict(Assess)(assessed_text=tweet, assessment_question=correct)
        engaging = dspy.Predict(Assess)(assessed_text=tweet, assessment_question=engaging)

    correct, engaging = [m.assessment_answer.lower() == 'yes' for m in [correct, engaging]]
    score = (correct + engaging) if correct and (len(tweet) <= 280) else 0

    if trace is not None: return score >= 2
    return score / 2.0

بخش 2\3



@silicon_brain | از هوش مصنوعی عقب نمانید
Optimizers (Teleprompters)


یک بهینه‌ساز DSPy الگوریتمی است که می‌تواند پارامترهای یک برنامه DSPy (یعنی پرامپت‌ها و/یا وزن‌های مدل زبانی) را تنظیم کند تا معیارهایی که شما مشخص کرده‌اید، مانند دقت، به حداکثر برسد.

در DSPy، بهینه‌سازهای داخلی زیادی وجود دارند که استراتژی‌های بسیار متفاوتی را به کار می‌برند. یک بهینه‌ساز DSPy معمولاً سه چیز را دریافت می‌کند:

- برنامه DSPy شما. این می‌تواند یک ماژول منفرد (مثلاً dspy.Predict) یا یک برنامه پیچیده چند ماژولی باشد.
- متریک شما. این تابعی است که خروجی برنامه شما را ارزیابی کرده و به آن امتیاز می‌دهد (هرچه بالاتر، بهتر).
- چند ورودی آموزشی. این ممکن است بسیار کم (یعنی فقط ۵ یا ۱۰ نمونه) و ناقص باشد (فقط ورودی‌های برنامه شما، بدون هیچ برچسبی).

اگر داده‌های زیادی داشته باشید، DSPy می‌تواند از آن استفاده کند. اما می‌توانید با داده‌های کم شروع کرده و نتایج قوی بگیرید.


مثال:
from dspy.teleprompt import BootstrapFewShotWithRandomSearch

# Set up the optimizer: we want to "bootstrap" (i.e., self-generate) 8-shot examples of your program's steps.
# The optimizer will repeat this 10 times (plus some initial attempts) before selecting its best attempt on the devset.
config = dict(max_bootstrapped_demos=4, max_labeled_demos=4, num_candidate_programs=10, num_threads=4)

teleprompter = BootstrapFewShotWithRandomSearch(metric=YOUR_METRIC_HERE, **config)
optimized_program = teleprompter.compile(YOUR_PROGRAM_HERE, trainset=YOUR_TRAINSET_HERE)


Assertion
بخشی از چارچوب DSPy است و به منظور خودکارسازی اجرای محدودیت‌های محاسباتی بر روی مدل‌های زبانی طراحی شده است. DSPy Assertions به توسعه‌دهندگان این امکان را می‌دهد که مدل‌های زبانی را با حداقل مداخله دستی به سمت نتایج مطلوب هدایت کنند و قابلیت اطمینان، پیش‌بینی‌پذیری و صحت خروجی‌های مدل زبانی را بهبود بخشند.

مثال

dspy.Suggest(
    len(query) <= 100,
    "Query should be short and less than 100 characters",
)

dspy.Suggest(
    validate_query_distinction_local(prev_queries, query),
    "Query should be distinct from: "
    + "; ".join(f"{i+1}) {q}" for i, q in enumerate(prev_queries)),
)

بخش 3/3


@silicon_brain | از هوش مصنوعی عقب نمانید
This media is not supported in your browser
VIEW IN TELEGRAM
مجموعه ultralytics

یک کتابخونه بنام #ultralytics داره که Yolo 8 در این کتابخونه هست. به‌صورت پیوسته هم یولو 8 رو آپدیت میکنن. اخیرا به نسخه 8.2 آپدیت شده.

اما، یک بخش دیگه از همین کتابخونه ultralytics، ماژول solutions هست. برای سناریوهای مختلفی که در دنیای واقعی پیش میاد، الگوریتم‌هایی رو آماده کردن. چند نمونه از الگوریتم‌هایی که در بخش solutions وجود داره:
- Object Counting
- Object Blurring
- Speed Estimation
- Distance Calculation
- Parking Management
- Live Inference with Streamlit

مثلا، در ویدئوی بالا با Object Counting، اشیای موجود در ویدئو با دقت خوبی درحال شمارش هستن.

خلاصه اینکه، بهتون دید میده که بینایی کامپیوتر در چه جاهایی میتونه کاربرد داشته باشه. همچنین، در یک پروژه با ساختار مشابه می‌تونید از ایده‌ها و متدهای بخش solutions کتابخونه ultralytics استفاده کنید.
#yolo
لینک

@silicon_brain | از هوش مصنوعی عقب نمانید
@silicon_brain - LLMs.pdf
1.4 MB
داکیومنتی جالب برای LLM

اگه تو یادگیری ماشین تازه کار هستین شاید براتون سوال باشه که این #LLM ها چی هستن و چرا این‌قدر دارن سر و صدا کردن؟

توی این داکیومنت قدر مورد اینکه LLM ها چطوری کار می‌کنن، چرا این‌قدر مهمن و چه کاربردهایی دارن گفته
حتی اگه تازه کار نیستی، جهت یادآوری پیشنهاد میشه این جزوه رو بخونی

(برای منابع بیشتر رو #cheatsheet بزنید)

@silicon_brain | از هوش مصنوعی عقب نمانید
تحقیقات به سمت کوچک‌تر کردن مدل‌های LLM

مشخصا مدلها به سمت کوچکتر شدن و کیفیت بیشتر سوق داده میشن بعدها میشه چندین میلیارد پارامتر رو در لپ تاپ شخصی عادی اجرا کرد. .

در گفتگویی قبلی که #Yann_Lecun گفته بود روی مدلهای LLM کار نکنید این تحقیقات رو برای شرکتهای بزرگ بزارید آِیا این کار محقق میشه که هرکسی بتواند روی این تحقیقات پژوهشهای خودش رو جلو ببره ؟!!

در ادامه با مدل
Biggie-SmoLlm-0.15B-Base
آشنا بشین

So theoretically, with this LLaMa 3 70B can start running on a 12GB GPUs, (which many phone has already)
the Llama 3.1 8B model, which typically requires about 16 GB of memory in full fp16 precision (necessitating a high-end GPU like the RTX 4090), can be compressed to run on just 8 GB of memory using 4-bit quantization.

Even more extreme compression to 1-bit quantization could potentially reduce the model's footprint to around 1 GB, potentially enabling #LLM deployment on mobile devices.

◾️ llamagnific-3-87b-gguf

@silicon_brain | از هوش مصنوعی عقب نمانید
شبکه‌های عصبی کولموگروف-آرنولد (KANs)

درشبکه‌های عصبی، ما معمولا به‌دنبال تخمین‌زدن یک تابع چندمتغیره‌ی پیوسته‌ی بسیار پیچیده هستیم!

در شبکه‌های عصبی سنتی (MLP ها)، هر سیگنال ورودی به‌صورت خطی، در یک پارامتر (وزن یال‌ها) ضرب شده، حاصل این ضرب‌ها وارد node های لایه‌های بعدی شده و آن‌جا با هم تجمیع (+) می‌شوند و حاصل‌جمع از یک تابع غیرخطیِ ثابت (Activation Function) مثل #ReLU یا #Sigmoid عبور می‌کند. قضیه‌ی Universal Approximation می‌گه، از نگاه تئوری، یک #MLP با فقط با یک لایه‌ی پنهان (شامل تعداد نورون متناهی اما گاها خیلی زیاد) قادرست هر تابع چندمتغیره‌ی پیوسته، با هر میزان پیچیدگی را با هر دقتی که مدنظر ما باشد، تخمین بزند.

شبکه‌های #KAN اما براساس قضیه‌ی Kolmogorov-Arnold Representation شکل گرفته‌اند که می‌گه، هر تابع چندمتغیره‌ی پیوسته (هرچند پیچیده) رو می‌شه به‌صورت جمع تعداد متناهی (اما گاها بسیار زیاد) تابع تک متغیره‌ی پیوسته نوشت (به‌صورت دقیق!)

ادامه در کامنت

@silicon_brain | از هوش مصنوعی عقب نمانید
منبعی فوق العاده ویژوال برای درک عملکرد ترنسفورمر و LLM

یه مدل #Transformer یا LLM چطوری فکر میکنه؟ چطوری کلماتو تولید میکنه؟ چرا هذیان(#hallucination) میگه؟

این سایت سعی کرده به صورت ویژوال شده، مفاهیمی مثل Word embedding، Transformer و ... رو که از اجزای اصلی #LLM ها هستند رو توضیح بده. توصیه می‌کنم تو یه فرصت مناسبی یه نگاه بهش بندازی.

فرقی نداره چه سطح دانشی تو زمینه NLP داری، به هر حال یا چیزی یاد میگیری و یا یادآوری میشه برات
لینک

@silicon_brain | از هوش مصنوعی عقب نمانید
This media is not supported in your browser
VIEW IN TELEGRAM
نمایش شبکه عصبی به صورت سه بعدی!

اگه تو دنیای #یادگیری_عمیق هستی و دلت می‌خواد مدل‌های شبکه عصبی‌ رو به شکل باحال و قابل درک به نمایش بذاری، باید با TensorSpace.js آشنا بشی

این کتابخونه فوق‌العاده با استفاده از Three.js و TensorFlow.js کار میکنه و می‌تونی معماری و عملکرد شبکه‌هات رو به صورتی ببینی که همیشه تو ذهنت بوده
لینک
#tensorflow #tensorspace

@silicon_brain | از هوش مصنوعی عقب نمانید
مجموعه poloclub ابزاری تحت عنوان Transformer Explainer معرفی کرده که برای اهداف آموزشی فوق‌العاده هست. کار کردن با این ابزار رو پیشنهاد می‌کنم، اگه میخوایید به درک عمیق‌تری در #transformer و مدل‌سازی زبان (Language Modeling) برسید.

این ابزار بر پایه مدل GPT-2 کار میکنه. یعنی، واقعا محاسبات پشت GPT-2 رو به شما مرحله به مرحله نشون میده. کل مراحل رو می‌تونید ریز به ریز ببینید: توکن امبدینگ، پوزیشنال انکدینگ، مولتی هد اتنشن، #mlp و الی آخر.
همچنین، خروجی معنی‌دار تولید میکنه. با کلیک روی بخش‌های مختلف، می‌تونید محاسبات مربوط به هر بخش رو ببینید.

مثلا، توی تصویر بالا ببینید برای ورودی Data visualization empowers users to در خروجی مدل چه پیشنهادهایی داده.

البته، poloclub سال‌هاست که چنین ابزارهایی میسازه. اگه به این آدرس برید، ابزارهایی که در گذشته ساختن رو می‌تونید ببینید. به عنوان نمونه، CNN Explainer و GAN Lab هم از کارهای این گروه هست.

@silicon_brain | از هوش مصنوعی عقب نمانید
8 تا از الگوریتم های معروف سری زمانی

بعضی از این الگوریتم های #time_series رویکرد آماری و ساده ای دارن مثل #Arima و برخی از شبکه های عمیق استفاده میکنن مثل #LSTM

مثل هر تسک یادگیری ماشینی هر کدام از این الگوریتم ها استفاده خودشونو دارن و نمیشه گفت یکی از اینها برتری نسبت به بقیه داره

مثلا زمانی که میخوایین از یک دیتاست سریع یه ارزیابی داشته باشین، الگوریتم #XGBoost توصیه میشه (نه تنها برای تسک سری زمانی بلکه برای تسک #Estimation هم خوب جواب میده). اما وقتی میخوایین عمیق تر بشین و الگوهای پیچیده رو پیدا کنین میشه از روش بازگشتی مثل LSTM استفاده کرد.
اینم در نظر داشته باشین بعضی از دیتاست ها الگو پیچیده ای ندارن و استفاده از الگوریتم های پیچیده مزیت خاصی نداره و شایدم هزینه زیادی نسبت به بقیه داشته باشه

مزایا و معایب هر کدوم از این روشارو بخونید

@silicon_brain | از هوش مصنوعی عقب نمانید
This media is not supported in your browser
VIEW IN TELEGRAM
مدل جالب Sapiens برای وظایف مختلف حوزه بینایی کامپیوتر

بخش Reality شرکت #Meta یک مجموعه مدل بنام Sapiens معرفی کرده که مخصوص چهار تسک مهم بینایی کامپیوتر با محوریت انسان هست:
- تخمین ژست (#Pose_Estimation)
- سگمنت اعضای بدن (#Body_part_Segmentation)
- تخمین عمق (#Depth_Estimation)
- پیش‌بینی نرمال سطح (#Surface_Normal_Prediction)

- مدل‌ها بر پایه ویژن ترنسفورمرها طراحی شدن.
- مدل‌ها ورودی رزولوشن بالا در اندازه 1024×1024 قبول میکنن.
- روی 300 میلیون تصویر انسان آموزش دیدن.
- چهار مدل به سایزهای 0.3 0.6 1.0 2.0 بیلیون پارامتر ارائه شده.
- نسخه Pretrain و Finetune شده مدل‌ها در هاگینگ‌فیس قرار داده شده.
- مقاله Sapiens در ECCV پذیرفته شده.
مقاله | گیتهاب
@silicon_brain | از هوش مصنوعی عقب نمانید
2025/07/04 06:34:20
Back to Top
HTML Embed Code: