تصور کنید میخواهید یک مدل هوش مصنوعی بسازید اما در پیچیدگیهای ریاضی تنظیم لایهها و حافظه گرافیکی غرق شدهاید. کتابخانه Tensorless دقیقاً برای حذف همین اصطکاکها طراحی شده تا فاصله بین «داشتن داده» و «داشتن مدل» را به یک خط کد کاهش دهد. این رویکرد تکاملی در واقع ادامه مسیر چارچوبی برای خودکارسازی آموزش مدلهای هوش مصنوعی است که پیشتر به بررسی جزئیات ساختاری آن پرداختیم.
تنظیم اندازه مدل، اندازه دسته (Batch Size) — که شبیه تعیین تعداد صفحاتی است که یک دانشآموز در هر نوبت برای یادگیری میخواند — و واژگان برای مدلهای زبانی بزرگ (LLM) — مثل کتابخانهداری که میلیاردها صفحه را خوانده و حالا با همان لحن جواب میدهد — معمولاً نیازمند تلاشهای دستی خستهکننده است. این ابزار با خودکارسازی این پارامترها، مسیر تبدیل دادههای خام به مدل آموزشدیده را هموار میکند.
ساخت یک مدل سفارشی معمولاً به تخصص عمیقی در ابرپارامترها (Hyperparameter) مانند اندازه لایههای پنهان و سرهای توجه نیاز دارد. برای بسیاری از توسعهدهندگان، این سد فنی باعث میشود آزمایشهای سریع غیرممکن شود. این دشواری با پیچیدگیهای سختافزاری، مانند مدیریت CUDA یا تنظیمات چند-GPU، تشدید میشود؛ موضوعی که همانطور که در تحلیل قبلی ما دربارهی محدودیتهای VRAM و اثر آن بر استنتاج اشاره کردیم، یکی از بزرگترین چالشهای عملیاتی است. در همین راستا، توزیع حافظه در خوشههای پردازشی راهکاری کلیدی برای عبور از سد حافظه در مدلهای عظیم به شمار میرود.
به نقل از گزارشی در وبسایت dev.to که در ۲۷ اوت ۲۰۲۶ منتشر شد، سازنده Tensorless در ابتدا قصد داشت یک پشته شبکه عصبی کاملاً مستقل بسازد. اما این رویکرد بهدلیل دشواری زیاد در بازسازی پشتیبانی از GPU و TPU که توسط چارچوبهای تثبیتشده به کمال رسیده بود، شکست خورد. در نتیجه، پروژه تغییر مسیر داد تا به یک لایه انتزاعی سطح بالا تبدیل شود که روی PyTorch قرار میگیرد.
سازوکار خودکارسازی
این کتابخانه که با نام tensorless-pytorch در PyPI در دسترس است، چندین گام حیاتی در خط لوله یادگیری ماشین را خودکار میکند:
- مقیاسدهی خودکار: کتابخانه بر اساس حجم بدنه دادههای ورودی و در قالب چندین سطح پیشفرض، اندازه مدل و اندازه دسته را تعیین میکند.
- تنظیمات پیشفرض: مواردی مانند تعداد Epochها، تنظیمات اعتبارسنجی و تخصیص سختافزاری بهطور خودکار مدیریت میشوند.
- توکنسازی یکپارچه: سامانه بهصورت پیشفرض از توکنسازی (Tokenization) — شبیه بریدن یک کیک طولانی به تکههای کوچک برای بلعیدن راحتتر توسط مدل — با روش BPE استفاده میکند، هرچند کاربر میتواند آن را به سطح کاراکتر تغییر دهد.

کاربران میتوانند پروژه را با یک دستور ساده آغاز کنند: model = tl.train("./corpus.txt", task="text-generation"). برای کسانی که کنترل بیشتری میخواهند، امکان بازنویسی تنظیمات خودکار، مثلاً تعیین epochs=20 یا max_seq_len=128 فراهم است.
فراتر از تولید متن ساده
این چارچوب از وظایف متنوعی فراتر از LLMهای ساده پشتیبانی میکند و گردشکارهای داخلی برای موارد زیر دارد:
- طبقهبندی متن: آموزش مدلها برای دستهبندی متون بر اساس پوشههای داده.
- رگرسیون جدولی: مدیریت فایلهای CSV برای پیشبینی مقادیر عددی.
- طبقهبندی جدولی: شامل پیشپردازش برای تاریخهای ISO و دستههای با تعداد زیاد.
فرآیند پیشآموزش (Pretraining) و تنظیم دقیق (Fine-tuning) — مثل وقتی به یک پزشک عمومی، تخصص پوست میدهیم تا روی یک حوزه دقیق شود — نیز ساده شده است. کاربر میتواند یک مدل پایه را آموزش دهد و سپس با آرگومان pretrained="base.tl" آن را به جلسه آموزشی دوم ببرد. این کار باعث میشود معماری و توکنساز همراستا بمانند و خطاهای رایج ناهماهنگی در تنظیم دقیق رخ ندهد. این بهینهسازی در معماری یادگیری، یادآور تحولی است که ترنسفورمرها با جایگزینی پردازش ترتیبی در مدیریت گلوگاههای حافظه ایجاد کردند.
سختافزار و عملکرد
به دلیل بهرهگیری از PyTorch، ابزار Tensorless از بهینهسازیهای سختافزاری مدرن پشتیبانی میکند. این کتابخانه آموزش با دقت ترکیبی را روی GPUهای دارای CUDA فعال میکند تا در حافظه و زمان صرفهجویی شود. برای مدلهای بزرگتر، از تکنیک gradient checkpointing برای جلوگیری از خطاهای کمبود حافظه استفاده میکند. همچنین آموزش روی TPU از طریق پرچم device="tpu" امکانپذیر است.
برای نمایش این خط لوله، توسعهدهنده مدل CatTongue را ساخت؛ یک چتبات که روی مجموعه داده کوچکی از گفتگوهای انسان و گربه آموزش دیده است. این پروژه به عنوان یک «تست دود» عمل میکند تا نشان دهد چگونه تغییر یک فایل JSON ساده، رفتار مدل را بدون نیاز به دست زدن به پیکربندیهای پیچیده تنسور تغییر میدهد.
موازنه مهندسی
تکامل این پروژه یک درس کلیدی در مهندسی هوش مصنوعی را برجسته میکند: ارزش عدم اختراع دوباره چرخ. توسعهدهنده با رها کردن تلاش برای ساخت یک موتور سفارشی و تبدیل آن به یک پوشش برای PyTorch، تمرکز را از رفع باگهای زیرساختی به تجربه توسعهدهنده (DX) منتقل کرد.
برای کاربر نهایی، این یعنی فاصله بین «داشتن داده» و «داشتن مدل» بهشدت کاهش یافته است. اگرچه این ابزار قرار نیست جایگزین چارچوبهای حرفهای برای پژوهشهای مدلهای پیشرو شود، اما محیطی ایدهآل برای نمونهسازی سریع فراهم میکند.
این چرخش به سمت یادگیری ماشین «بدون پیکربندی» (Zero-config)، آیندهای را نشان میدهد که در آن مهارت اصلی توسعهدهندگان از تنظیمات ریاضی به سمت مدیریت و پالایش دادهها حرکت میکند. وقتی چارچوب، تنسورها را مدیریت میکند، کیفیت مجموعه داده تنها اهرم معنادار برای بهبود عملکرد است.
گام بعدی شما
- اگر مجموعه دادههای متنی کوچکی دارید، کتابخانه
tensorless-pytorchرا نصب کنید و اولین مدل طبقهبندی خود را در کمتر از ۵ دقیقه بسازید. - مخزن CatTongue در گیتهاب را بررسی کنید تا ببینید چگونه تغییر در JSON مستقیماً بر خروجی مدل اثر میگذارد.
- برای پروژههای بزرگتر، از قابلیت آموزش با دقت ترکیبی برای کاهش مصرف VRAM استفاده کنید.
اما داستان سختافزاری این تحول حتی شگفتانگیزتر است — به تحلیل ما دربارهی تراشههای Blackwell مراجعه کنید.




گفتگو