<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0">
    <channel>
        <title>نوشته های mahsa sanaei</title>
        <link>https://virgool.io/feed/@mahsasanaei_ai</link>
        <description>مهسا ثنایی هستم.مهندس کامپیوتر و فعال در حوزه جذاب هوش مصنوعی</description>
        <language>fa</language>
        <pubDate>2026-04-15 05:00:56</pubDate>
        <image>
            <url>https://files.virgool.io/upload/users/2843050/avatar/KTrwCJ.jpg?height=120&amp;width=120</url>
            <title>mahsa sanaei</title>
            <link>https://virgool.io/@mahsasanaei_ai</link>
        </image>

                    <item>
                <title>ویروس جدیدی به نام &quot;مشاور هوش مصنوعی و اتوماسیون&quot;!</title>
                <link>https://virgool.io/@mahsasanaei_ai/%D9%88%DB%8C%D8%B1%D9%88%D8%B3-%D8%AC%D8%AF%DB%8C%D8%AF%DB%8C-%D8%A8%D9%87-%D9%86%D8%A7%D9%85-%D9%85%D8%B4%D8%A7%D9%88%D8%B1-%D9%87%D9%88%D8%B4-%D9%85%D8%B5%D9%86%D9%88%D8%B9%DB%8C-%D9%88-%D8%A7%D8%AA%D9%88%D9%85%D8%A7%D8%B3%DB%8C%D9%88%D9%86-fr4u0k8dxccl</link>
                <description>با ورود هوش مصنوعی به حوزه‌های کاربردی برای کاربران معمولی، توجه همه افراد بیشتر به این فناوری جلب شد. بازار داغ هوش مصنوعی در حال حاضر حسابی گل کرده. حالا که موضوع اتوماسیون و ایجنت‌ها (agentic workflows) داغ شده، پیج‌های زیادی رو در اینستاگرام می‌بینی که ادعای &quot;مشاور هوش مصنوعی و اتوماسیون و ایجنتیک‌دان&quot; دارن. اما وقتی لینکدین‌شون رو چک می‌کنی، نه تحصیلات مرتبط در دانشگاه دارن، و نه خبری از گواهی دوره‌های معتبر در مفاهیم کلیدی هوش مصنوعی مثل ماشین لرنینگ، دیپ لرنینگ، NLP، LLM، agentic systems و computer vision هست و حتی سابقه کار در این حوزه ها.چطور ممکنه کسی که دانش عمیق در این حوزه‌ها نداره، پروژه‌های مختلف رو در راستای اون‌ها انجام نداده و با تیم‌های حرفه‌ای کار نکرده، ادعای مشاوره داشته باشه؟ مشاوره دادن، نتیجه سال‌ها کسب دانش از پروژه‌های واقعی هست. در حوزه ایجنت و اتوماسیون هم، اغلب تنها چیزی که بلد هستن، کار با n8n هست؛ در حالی که کمپانی‌ها فقط به خاطر تسلط بر این ابزار، افراد رو استخدام نمی‌کنن. خیلی وقت‌ها هم کارفرما خودش مشخص می‌کنه که پروژه با چه زبان برنامه‌نویسی و تکنولوژی خاصی (مثل Python، LangChain یا TensorFlow) پیاده بشه.این وضعیت دقیقاً مثل این می‌مونه که کسی فقط ترکیب ژله با آب رو بلد باشه و بتونه دسر ژله درست کنه، بعد ادعا کنه متخصص حوزه دسر یا شیرینی‌پزی هست! برای ادعای تخصص و توانایی پیاده‌سازی انواع پروژه‌ها، نیاز به دانش علمی بنیادی هست، نه صرفاً تسلط بر یک ابزار no-code/low-code. متأسفانه، به دلیل اینکه این افراد زمان کافی برای تولید محتوا دارن، در سوشال مدیا به راحتی به عنوان &quot;متخصصین هوش مصنوعی&quot; شناخته می‌شن و مردم عادی, که دانش فنی ندارن, متوجه تفاوت واقعی نمی‌شن.دقیقاً مثل سه چهار سال پیش که افرادی که فقط تولید محتوا برای کار کردن با ابزارهای مختلف هوش مصنوعی یا چت با GPT رو آموزش می‌دادن، به عنوان &quot;چهره‌های هوش مصنوعی&quot; شناخته شدن. این روند داره تکرار می‌شه و فضا از متخصصان واقعی خالی است.</description>
                <category>mahsa sanaei</category>
                <author>mahsa sanaei</author>
                <pubDate>Mon, 15 Dec 2025 18:09:06 +0330</pubDate>
            </item>
                    <item>
                <title>چرا MLFlow ؟</title>
                <link>https://virgool.io/@mahsasanaei_ai/%DA%86%D8%B1%D8%A7-mlflow-dh6uumd46nov</link>
                <description>در دنیای یادگیری ماشین، مدیریت مدل‌ها و آزمایش‌ها می‌تواند چالش‌برانگیز باشد. اما MLflow به شما کمک می‌کند تا این چالش‌ها را به سادگی مدیریت کنید. در ادامه، مهم‌ترین دلایلی را بررسی می‌کنیم که چرا MLflow یک ابزار ایده‌آل برای شماست:با استفاده از MLflow می‌توانید تمام آزمایش‌های خود را به‌دقت ردیابی کنید. این ابزار به شما امکان می‌دهد پارامترها، متریک‌ها و نتایج هر آزمایش را ثبت و ذخیره نمایید، طوری که به‌راحتی بتوانید بهترین تنظیمات را بر اساس عملکردشان شناسایی کنید. این قابلیت به یادگیری از تجربیات گذشته و جلوگیری از تکرار اشتباهات کمک شایانی می‌کند.با MLflow میتوانید مدل‌های مختلف را با  پارامترهای متنوع آموزش دهید و نتایج آنها را ثبت کنید. این قابلیت به شما  امکان میدهد تاریخچه‌ای کامل از تمام آزمایش‌های خود داشته باشید و به  سادگی تشخیص دهید کدام ترکیب پارامترها و تنظیمات بهترین عملکرد را ارائه  می‌دهد. چنین مقایسه‌های سیستماتیکی به شما در اتخاذ تصمیمات آگاهانه و  توسعهٔ مدل‌های بهینه‌تر کمک می‌کنند.ابزار MLflow این قابلیت را در اختیار شما قرار می‌دهد که پروژه‌های یادگیری  ماشین خود را به شیوه‌ای منظم و ساختاریافته مدیریت نمایید. با بهره‌گیری  از MLflow Projects، می‌توانید کدها و وابستگی‌های پروژه را به سادگی  سازماندهی کنید، که این امر همکاری میان اعضای تیم را به میزان قابل توجهی  تسهیل می‌بخشد.مدل‌های یادگیری ماشین غالباً از پیچیدگی بالایی برخوردارند. MLflow به شما  اجازه می‌دهد مدل‌های خود را به آسانی ذخیره کرده و در مواقع لزوم مجدداً  بارگذاری نمایید. این قابلیت ارزشمند امکان استفاده مجدد از مدل‌ها در  پروژه‌های بعدی را فراهم می‌سازد، بدون آنکه نیازی به فرآیند زمان‌بر  بازآموزی مدل‌های قبلی وجود داشته باشد.با MLflow Registry به شما کمک می‌کند تا نسخه‌های مختلف مدل‌های خود را  مدیریت کنید. این ویژگی به شما این امکان را می‌دهد که بتوانید هر زمان که  نیاز دارید به نسخه‌های قبلی مدل‌ها دسترسی داشته باشید و تغییرات را  به‌راحتی ردیابی کنید.ابزار MLflow دارای چهار جزء اصلی است که هر کدام نقش مهمی دارند:بخش MLflow Trackingاین قسمت به شما اجازه می‌دهد که آزمایشات خود را ردیابی کنید. شما می‌توانید پارامترها، متریک‌ها و مدل‌های خود را ثبت کنید.بخش MLflow Projectsاین قسمت به شما کمک می‌کند کد و وابستگی‌های پروژه‌های یادگیری ماشین  خود را سازمان‌دهی کنید. این به شما امکان می‌دهد که پروژه‌های خود را به  راحتی به اشتراک بگذارید.بخش MLflow Modelsبا این قسمت، شما می‌توانید مدل‌های خود را ذخیره و بارگذاری کنید.  MLflow از فرمت‌های مختلف مدل پشتیبانی می‌کند، مانند TensorFlow و  Scikit-learn و ONNX.بخش MLflow Registryاین قسمت به شما کمک می‌کند تا نسخه‌های مختلف مدل‌های منتخب خود را مدیریت کنید. شما می‌توانید مدل‌ها را ثبت و مستند کنید.نصب MLflowpip install mlflowمشاهده نتایج و ردیابی‌های خود، می‌توانید از رابط کاربری MLflow استفاده کنید. با اجرای دستور زیر در ترمینال، رابط کاربری را راه‌اندازی کنید و ادرسی که میتوانید به آن دسترسی پیدا کنید را بیابید:mlflow uiردیابی  و مدیریت مدل هابرای شروع ردیابی از دستور :mlflow.start_run()و برای پایان ردیابی از دستور زیر استفاده می کنیم:mlflow.end_run()ثبتبرای ثبت هر پارامتر از دستور:mlflow.log_param(&amp;quotparam_name&amp;quot, param_value)برای ثبت متریک و ارزیابی مدل از دستور:mlflow.log_metric(&amp;quotmetric_name&amp;quot, metric_value)و برای ذخیره مدل sk-learn از دستور:mlflow.sklearn.log_model(model, &amp;quotmodel_name&amp;quot)مدل تورچ از :mlflow.pytorch.log_model(model, &amp;quotsimple_model&amp;quot)مدل تنسورفلو:mlflow.tensorflow.log_model(model, &amp;quottensorflow_model&amp;quot)استفاده می کنیم. مدل را ذخیره می کنیم تا در آینده بتوانیم به راحتی به آن دسترسی داشته باشیم و از آن بهره‌برداری کنیم.بارگذاری مدل:loaded_model = mlflow.sklearn.load_model(&amp;quotrandom_forest_model&amp;quot)loaded_model = mlflow.pytorch.load_model(&amp;quotsimple_model&amp;quot)loaded_model = mlflow.tensorflow.load_model(&amp;quottensorflow_model&amp;quot)مثال:import mlflowimport mlflow.sklearnfrom sklearn.linear_model import LinearRegressionfrom sklearn.datasets import make_regression
X, y = make_regression(n_samples=100, n_features=1, noise=0.1)model = LinearRegression()with mlflow.start_run():    model.fit(X, y)    score = model.score(X, y)    mlflow.sklearn.log_model(model, &amp;quotlinear_regression_model&amp;quot)    mlflow.log_metric(&amp;quotr2_score&amp;quot, score)

    run_id = run.info.run_id

    print(f&amp;quotRun ID: {run_id}&amp;quot)در این مثال از with برای ایجاد یک context   استفاده شده تا به صورت خودکار عمل mlflow.end_run انجام شود.متغیرrun_id در MLflow یک شناسه منحصر به فرد است که به هر  ردیابی (run) اختصاص داده می‌شود. این شناسه به شما این امکان را می‌دهد که  به‌راحتی به اطلاعات مربوط به یک ردیابی خاص دسترسی پیدا کنید، از جمله  پارامترها، متریک‌ها و مدل‌های ثبت‌شده.گام‌های ثبت آزمایش‌ها با هایپرپارامترهای مختلفابتدا نامی برای آزمایش (Experiment) انتخاب می‌کنید. این نام کمک می‌کند تمامی آزمایش‌های مرتبط در یک دسته‌بندی مشخص قرار بگیرند.یک experiment در MLflow دارای ویژگی‌هایی است:- شناسه یا experiment_id که به صورت خودکار یک شناسه یکتا دارد که از آن برای ارجاع به آن استفاده می‌شود.- نام یا name که در هنگام ساخت آن تعیین می‌شود.- ویژگی artifact_location  که مسیری (می‌تواند یک دایرکتوری محلی یا آدرس یک مخزن ابری باشد)که نتایج آزمایش‌ها و artifacts مربوط به experiment در آن ذخیره می‌شود.- ویژگی های creation_time و last_update_timeهر بار که یک مجموعه هایپرپارامتر را تست می‌کنید، یک &quot;Run&quot; جدید ایجاد می‌شود.برای هر Run، مقادیر هایپرپارامترها (مثلاً تعداد لایه‌ها، نرخ یادگیری) و متریک‌های خروجی (مثل دقت، F1-Score) را ثبت می‌کنید.مثال:ابتدا کتابخانه های مورد نیاز را ایمپورت میکنیم:import mlflowimport mlflow.sklearnfrom sklearn.linear_model import LogisticRegressionfrom sklearn.datasets import make_classificationfrom sklearn.model_selection import train_test_splitfrom sklearn.metrics import accuracy_scoreو  سپس نام آزمایش را مشخص میکنیم:experiment_name = &amp;quotHyperparameter Optimization&amp;quotmlflow.set_experiment(experiment_name)و برای کسب مشخصات آزمایش ها میتوانید از این کد استفاده کنید:experiments = mlflow.search_experiments()for experiment in experiments:    print(f&amp;quotExperiment ID: {experiment.experiment_id}&amp;quot)    print(f&amp;quotExperiment Name: {experiment.name}&amp;quot)    print(f&amp;quotArtifact Location: {experiment.artifact_location}&amp;quot)    print(f&amp;quotCreation Time: {experiment.creation_time}&amp;quot)    print(&amp;quot----------------------------------------------------&amp;quot)مقادیر مختلف برای هایپرپارامتر را مشخص میکنیم:c_values = [0.01, 0.1, 1, 10]برای تست مدل با هر کدام از هایپرپارامترها میتوانیم این کد استفاده کنیم:for c in c_values:    with mlflow.start_run():          model = LogisticRegression(C=c, random_state=42)        model.fit(X_train, y_train)        y_pred = model.predict(X_test)        accuracy = accuracy_score(y_test, y_pred)        mlflow.log_param(&amp;quotC&amp;quot, c)          mlflow.log_metric(&amp;quotaccuracy&amp;quot, accuracy)         mlflow.sklearn.log_model(model, f&amp;quotlogistic_model_c_{c}&amp;quot)رجیستری مدل‌هاهدف  نسخه‌بندی و مدیریت وضعیت مدل‌ها (مانند staging یا production) است.در پروژه‌های یادگیری ماشین، مدیریت نسخه‌های مختلف یک مدل و وضعیت آن‌ها بسیار مهم است. به این فکر کنید که ممکن است یک مدل:نسخه جدیدی داشته باشد که بهتر از نسخه قبلی است.در مرحله آزمایشی (Staging) باشد و نیاز به تست بیشتری داشته باشد.در مرحله تولید (Production) باشد و به‌طور مستقیم برای کاربران یا سیستم استفاده شود.اگر در آینده نیاز باشد نسخه‌ای از مدل بازیابی شود، می‌دانید دقیقاً کدام نسخه کجا استفاده شده است.قبل از استقرار مدل در تولید، می‌توانید آن را در مرحله Staging تست کنید.مطمئن می‌شوید که فقط مدل‌های تست‌شده در تولید قرار می‌گیرند.با  MLflow Registry  شما  می توانید این فرآیند را به‌صورت ساختاریافته و دقیق مدیریت کنید.نسخه‌بندی مدل‌ها (Model Versioning):هر بار که یک مدل جدید ثبت می‌شود، یک نسخه به آن اختصاص می‌یابد. مثلاً:نسخه 1: اولین مدلنسخه 2: مدل بهبودیافته.وضعیت مدل‌ها (Stages):هر مدل می‌تواند یکی از وضعیت‌های زیر را داشته باشد:مقدار None: وضعیت اولیه مدل، بدون تخصیص خاص.مقدار Staging: مدل در حال تست است.مقدار Production: مدل آماده استفاده در محیط واقعی است.مقدار Archived: مدل قدیمی شده و دیگر استفاده نمی‌شود.مراحل۱. ابتدا باید آن مدل در یک Run با استفاده از mlflow.log_model یا ابزار مشابه ثبت شده باشد.۲. حالا که مدل در مرحله قبلی ثبت شده، می‌توانید آن را در رجیستری نسخه‌بندی کنید.experiment_name: برای دسته‌بندی آزمایش‌ها.model_name: نام مدل در رجیستری.model_path: مسیر ثبت مدل در MLflow.run_id: شناسایی هر Run.from mlflow.tracking import MlflowClient

model_uri = f&amp;quotruns:/{run_id}/ridge_model&amp;quot

registered_model = client.create_registered_model(     name=model_name, description=&amp;quotRidge 
     Regression Model for testing different alpha values&amp;quot)

client = MlflowClient()

model_version = client.create_model_version(     name=model_name,     source=model_uri,     run_id=&amp;quot&lt;RUN_ID&gt;&amp;quot)

print(f&amp;quotModel Name: {model_name}&amp;quot) 

print(f&amp;quotModel Version: {model_version.version}&amp;quot)متد create_registered_model() تنها زمانی ضروری است که بخواهید ابتدا رجیستری را به‌صورت دستی ایجاد کنید، قبل از اضافه کردن نسخه‌های مدل به آن. این متد به شما اجازه می‌دهد توضیحات اولیه یا ویژگی‌های متادیتا برای رجیستری مشخص کنید. وقتی برای اولین بار از متد client.create_model_version() استفاده می‌کنید، رجیستری مدل به‌صورت خودکار ایجاد می‌شود اگر قبلاً وجود نداشته باشد.۳. میتوانید  وضعیت آن را مدیریت کنید: تغییر وضعیت به Staging:client.transition_model_version_stage(    name=model_name,     version=model_version.version,      stage=&amp;quotStaging&amp;quot  )print(f&amp;quotModel {model_name} Version {model_version.version} moved to Staging.&amp;quot) تغییر وضعیت به Production پس از تایید:client.transition_model_version_stage(    name=model_name,     version=model_version.version,      stage=&amp;quotProduction&amp;quot  )print(f&amp;quotModel {model_name} Version {model_version.version} moved to Production.&amp;quot)۴. استفاده ار مدلاز اطلاعات ثبت‌شده برای بارگذاری مدل در وضعیت Production استفاده می‌کنید.مثال:import mlflow.sklearnmodel_uri = f&amp;quotmodels:/{model_name}/Production&amp;quotloaded_model = mlflow.sklearn.load_model(model_uri)predictions = loaded_model.predict(X)</description>
                <category>mahsa sanaei</category>
                <author>mahsa sanaei</author>
                <pubDate>Sun, 13 Apr 2025 12:52:56 +0330</pubDate>
            </item>
                    <item>
                <title>معرفی داکر Docker</title>
                <link>https://virgool.io/@mahsasanaei_ai/%D9%85%D8%B9%D8%B1%D9%81%DB%8C-%D8%AF%D8%A7%DA%A9%D8%B1-docker-bdwjowdtw0do</link>
                <description>Dockerدر پست قبلی در مورد معماری و نحوه نصب داکر صحبت کردیم.در این قسمت با نحوه کار و استفاده آن آشنا میشویم.نحوه کار Docker:داکر فایل (Dockerfile):برای ساختن یک ایمیج، از فایل Dockerfile استفاده می‌کنید. این فایل شامل دستورات مورد نیاز برای ساخت ایمیج است. برای مثال، شما در این فایل می‌توانید مشخص کنید که ابتدا سیستم‌عاملی (مثلاً Ubuntu) نصب شود، سپس وابستگی‌های اپلیکیشن نصب شوند و در نهایت خود اپلیکیشن راه‌اندازی شود.ساخت داکر فایل :یک فایل متنی به نام Dockerfile ایجاد می‌کنید و دستورات ساخت ایمیج را در آن می‌نویسید. برای مثال:FROM python:3.8-slimCOPY  .   /appWORKDIR  /appRUN  pip  install  -r  requirements.txtCMD [&amp;quotpython&amp;quot, &amp;quotapp.py&amp;quot]دستور FROM:اولین دستوری است که در هر Dockerfile استفاده می‌شود و مشخص می‌کند که ساخت ایمیج شما از چه پایه‌ای شروع شود. این پایه می‌تواند یک سیستم‌عامل، یک زبان برنامه‌نویسی، یا حتی یک ایمیج سفارشی باشد.FROM  ubuntu:20.04این دستور از نسخه ۲۰.۰۴ سیستم‌عامل Ubuntu به عنوان ایمیج پایه استفاده می‌کند.FROM  node:14ایمیجی که از Node.js نسخه ۱۴ استفاده می‌کند.FROM  python:3.10-alpineایمیجی از پایتون نسخه ۳.۱۰ که بر پایه‌ی سیستم‌عامل سبک Alpine ساخته شده است. ایمیج‌های Alpine کم‌حجم‌تر هستند.دستور COPY :دستوری است که برای کپی کردن فایل‌ها و دایرکتوری‌ها از سیستم اصلی  به داخل ایمیج و کانتینر استفاده می‌شود.COPY   .    /appتمام فایل‌ها و دایرکتوری‌های پروژه را از محل فعلی (نقطه .) به داخل دایرکتوری /app در کانتینر کپی می‌کند.COPY myfile.txt /   app/myfile.txtدر اینجا فقط یک فایل خاص به مسیر  در داخل ایمیج کپی می‌شود.COPY  ./src   /app/srcتمام محتوای دایرکتوری src را به دایرکتوری /app/src در داخل ایمیج کپی می‌کند.دستور WORKDIR:این دستور دایرکتوری کاری داخل ایمیج را تنظیم می‌کند. تمام دستورات بعدی در این دایرکتوری اجرا می‌شوند. این کار برای جلوگیری از نیاز به استفاده از مسیرهای مطلق مفید است.WORKDIR   /appدایرکتوری کاری به /app تغییر داده می‌شود. این به این معناست که هر دستور بعدی که اجرا شود، در مسیر /app اتفاق می‌افتد.دستور RUN این دستور دستورات را در طول ساخت ایمیج اجرا می‌کند. این دستورات معمولاً برای نصب بسته‌ها، به‌روزرسانی سیستم، یا انجام تنظیمات استفاده می‌شود.RUN apt-get update &amp;&amp; apt-get install -y python3-pipاین دستور ابتدا سیستم‌عامل را به‌روزرسانی کرده و سپس بسته‌ی python3-pip را نصب می‌کند.RUN npm installاگر از Node.js استفاده می‌کنید، این دستور تمامی بسته‌های مشخص شده در فایل package.json را نصب می‌کند.RUN pip install -r requirements.txtاین دستور نیازمندی ها را از فایل ذکر شده نصب می‌کند.دستور CMD:این دستور زمانی که کانتینر شروع به کار می‌کند، اجرا می‌شود. این دستور مشخص می‌کند که چه برنامه‌ای به صورت پیش‌فرض در کانتینر اجرا شود.CMD [&amp;quotpython&amp;quot, &amp;quotapp.py&amp;quot]این دستور زمانی که کانتینر اجرا می‌شود، اپلیکیشن app.py را با پایتون اجرا می‌کند.CMD [&amp;quotnode&amp;quot, &amp;quotserver.js&amp;quot]در اینجا، کانتینر در زمان اجرا فایل server.js را با Node.js اجرا می‌کند.یک نکته ای وجود دارد که فقط یک CMD در Dockerfile می‌تواند وجود داشته باشد. اگر چندین CMD تعریف کنید، فقط آخرین آن‌ها اجرا خواهد شد.دستور ENTRYPOINT:به شما اجازه می‌دهد یک برنامه اصلی را برای اجرای کانتینر تعیین کنید که در هر صورت باید اجرا شود، حتی اگر آرگومان‌هایی به کانتینر ارسال شود.CMD و ENTRYPOINT شباهت‌هایی دارند، اما تفاوت این است که CMD به راحتی با آرگومان‌های جدید تغییر می‌کند، در حالی که ENTRYPOINT به عنوان بخش جدانشدنی از اجرای کانتینر در نظر گرفته می‌شود.ENTRYPOINT [&amp;quotpython&amp;quot, &amp;quotapp.py&amp;quot]در اینجا، کانتینر همیشه app.py را با پایتون اجرا می‌کند، حتی اگر آرگومان‌های دیگری به کانتینر داده شود.دستور EXPOSE:به Docker می‌گوید که کانتینر قرار است روی یک پورت خاص ارتباط برقرار کند. این دستور خودش به تنهایی پورت را باز نمی‌کند، اما به عنوان یک مستندسازی داخلی عمل می‌کند تا بگوید این پورت باید استفاده شود. در واقع به عنوان یک مستندات برای توسعه‌دهندگان و کاربران دیگر عمل می‌کند.EXPOSE 5000این دستور پورت ۵۰۰۰ را برای ارتباطات اپلیکیشن داخل کانتینر مستند می‌کند.به خودی خود پورت‌ها را باز نمی‌کند. برای دسترسی به پورت‌های مشخص شده، باید هنگام اجرای کانتینر از گزینه -p یا --publish استفاده کنید. EXPOSE 80پورت 80 را برای ارتباط با کانتینر مستند می‌کند.Dockerبعد از ساخت فایل داکرفایل ابتدا یک ایمیج ساخته میشود:docker  build  -t  image-1  .و بعد پورت ۸۰ داخل کانتینر را به پورت ۸۰۸ روی میزبان متصل میکند:docker  run  -p  8080:80  image-1با دستور بالا ایمیج ساخته شده را اجرا میکنیم.برای مشاهده ایمیج‌های داکر و کانتینرهای در حال اجرا، می‌توانید از دستورات زیر استفاده کنید:مشاهده لیست ایمیج‌های داکر:docker imagesمشاهده لیست کانتینرهای در حال اجرا:docker psمشاهده لاگ‌های یک کانتینر:docker logs &lt;container_id&gt;</description>
                <category>mahsa sanaei</category>
                <author>mahsa sanaei</author>
                <pubDate>Sat, 08 Feb 2025 12:54:45 +0330</pubDate>
            </item>
                    <item>
                <title>آموزش Regex در NLP</title>
                <link>https://virgool.io/@mahsasanaei_ai/%D8%A2%D9%85%D9%88%D8%B2%D8%B4-regex-%D8%AF%D8%B1-nlp-stilekqt9zkr</link>
                <description>عبارات منظم (Regex)، زبانی برای تعریف الگوهای متنی است. با استفاده از  این الگوها، می‌توانیم متن‌ها را جستجو و پردازش کنیم. در زمینه NLP، Regex  می‌تواند برای شناسایی الگوهای خاصی مثل آدرس‌های ایمیل، شماره‌های تلفن  یا کلمات خاص در متن استفاده شود.برای استفاده از Regex، با چند نماد و مفهوم اصلی آشنا می‌شویم:حروف و اعداد: حروف الفبا و اعداد به‌طور طبیعی خودشان را نشان می‌دهند.مثال: a به معنای حرف &quot;a&quot; است.به عبارت دیگر، وقتی شما حرف یا عددی را وارد می‌کنید، Regex به‌طور مستقیم به دنبال آن می‌گردد.مثال :a
این الگو فقط به دنبال حرف &quot;a&quot; می‌گردد. اگر این الگو را در متن &quot;apple&quot; اجرا کنید، حرف &quot;a&quot; را شناسایی می‌کند.5این الگو فقط به دنبال عدد &quot;5&quot; می‌گردد. اگر این الگو را در جمله &quot;I have 5 apples&quot; اجرا کنید، عدد &quot;5&quot; را شناسایی می‌کند.متغیرهای خاص:.: هر کاراکتر غیر از خط جدید (newline)d\: هر رقم (معادل [0-9])w\: هر حرف یا عدد (معادل [a-zA-Z0-9_])s\: هر فضای خالی (مثل فضا، تب یا خط جدید).این الگو به دنبال هر کاراکتر غیر از خط جدید (newline) می‌گردد. به‌عنوان  مثال، اگر این الگو را در متن &quot;hello&quot; اجرا کنید، تمام کاراکترها یعنی &quot;h&quot;،  &quot;e&quot;، &quot;l&quot;، &quot;l&quot; و &quot;o&quot; را شناسایی می‌کند.\dاین الگو به دنبال هر عدد (رقم) می‌گردد. به‌عنوان مثال، اگر این الگو را  در جمله &quot;I have 2 apples and 3 oranges&quot; اجرا کنید، اعداد &quot;2&quot; و &quot;3&quot; را  شناسایی می‌کند و به ما می‌گوید که در متن اعداد وجود دارد.\wاین الگو به دنبال هر حرف (حروف الفبا و اعداد) و همچنین کاراکتر زیرخط () می‌گردد. اگر این الگو را در جمله &quot;user_name123&quot; اجرا کنید، تمام حروف &quot;u&quot;، &quot;s&quot;، &quot;e&quot;، &quot;r&quot;، &quot;&quot;، &quot;n&quot;، &quot;a&quot;، &quot;m&quot;، &quot;e&quot;، &quot;1&quot;، &quot;2&quot; و &quot;3&quot; را شناسایی می‌کند.\sاین الگو به دنبال هر فضای خالی (مانند فضا، تب یا خط جدید) می‌گردد.  به‌عنوان مثال، اگر این الگو را در جمله &quot;Hello World&quot; اجرا کنید، فضای بین  &quot;Hello&quot; و &quot;World&quot; را شناسایی می‌کند.علامت‌های تکرار:*: نشان‌دهنده صفر یا بیشتر تکرار از الگوی قبلی+: نشان‌دهنده یک یا بیشتر تکرار از الگوی قبلی?: نشان‌دهنده صفر یا یک تکرار از الگوی قبلی{n}: نشان‌دهنده دقیقاً n بار تکرار از الگوی قبلیa*این الگو به دنبال صفر یا بیشتر تکرار از حرف &quot;a&quot; می‌گردد. اگر این الگو را  در متن &quot;aaab&quot; اجرا کنید، تمام حروف &quot;a&quot; را شناسایی می‌کند. همچنین در متن  &quot;b&quot; هیچ تطابقی نخواهد داشت زیرا &quot;a&quot; صفر بار تکرار شده است.*aاین الگو به دنبال صفر یا بیشتر تکرار از هر کاراکتری به‌علاوه یک &quot;a&quot; در انتهای آن می‌گردد. برای مثال:در &quot;ba&quot;، این الگو &quot;a&quot; را شناسایی می‌کند. &quot;bba&quot;، این الگو &quot;a&quot; را شناسایی می‌کند. در متن &quot;b&quot;، این الگو هیچ تطابقی ندارد زیرا &quot;a&quot; وجود ندارد.b+این الگو به دنبال یک یا بیشتر تکرار از حرف &quot;b&quot; می‌گردد. اگر این الگو را  در متن &quot;bbbc&quot; اجرا کنید، تمام حروف &quot;b&quot; را شناسایی می‌کند. در متن &quot;c&quot; هیچ  تطابقی نخواهد داشت زیرا &quot;b&quot; وجود ندارد.c?این الگو به دنبال صفر یا یک تکرار از حرف &quot;c&quot; می‌گردد. اگر این الگو را در  متن &quot;cat&quot; اجرا کنید، حرف &quot;c&quot; را شناسایی می‌کند. d{2}این الگو به دنبال دقیقاً دو تکرار از حرف &quot;d&quot; می‌گردد. اگر این الگو را در  متن &quot;add&quot; اجرا کنید، فقط &quot;dd&quot; را شناسایی می‌کند. در متن &quot;d&quot; یا &quot;ddd&quot;  تطابق نخواهد داشت زیرا تعداد تکرارها دقیقاً دو نیست.علائم محدودکننده:^: نشان‌دهنده شروع یک خط$: نشان‌دهنده پایان یک خط^helloاین الگو به دنبال کلمه &quot;hello&quot; در آغاز یک خط می‌گردد. وقتی ^ در ابتدای یک الگو قرار می‌گیرد (مثل ^Hello)، به معنای &quot;شروع رشته&quot; است. این نشان می‌دهد که الگو باید در ابتدا یا ابتدای یک خط قرار گیرد به عنوان مثال:در متن &quot;hello world&quot;، این الگو تطابق دارد زیرا &quot;hello&quot; در ابتدای متن قرار دارد.در متن &quot;say hello&quot;, این الگو هیچ تطابقی نخواهد داشت زیرا &quot;hello&quot; در ابتدای خط نیست.[^\s]به این معنی است که هر کاراکتری که فضای خالی (space) نباشد، شناسایی می‌شود. یعنی به معنای &quot;غیر&quot; یا &quot;عدم&quot; است.world$این الگو به دنبال کلمه &quot;world&quot; در پایان یک خط می‌گردد. به عنوان مثال:در متن &quot;hello world&quot;، این الگو تطابق دارد زیرا &quot;world&quot; در انتهای متن قرار دارد.در متن &quot;world is big&quot;، این الگو هیچ تطابقی نخواهد داشت زیرا &quot;world&quot; در پایان خط نیست.گروه‌بندی و انتخاب:(...): برای گروه‌بندی الگوها|: برای انتخاب بین چند گزینه (مثل &quot;یا&quot;)[] : مجموعه‌ای از کاراکترها(abc)این الگو به دنبال دقیقاً کاراکترهای &quot;abc&quot; می‌گردد. به عنوان مثال:در متن &quot;abc def&quot;، این الگو تطابق دارد زیرا &quot;abc&quot; وجود دارد. در متن &quot;ab def&quot;، این الگو هیچ تطابقی نخواهد داشت زیرا &quot;abc&quot; به‌طور کامل وجود ندارد.(abc)+این الگو به دنبال یک یا بیشتر تکرار از &quot;abc&quot; می‌گردد. در مثال های زیر:در متن &quot;abcabc&quot;، این الگو تطابق دارد و &quot;abc&quot; را دو بار شناسایی می‌کند. اما در متن &quot;def&quot;، هیچ تطابقی نخواهد داشت زیرا &quot;abc&quot; وجود ندارد.cat|dogاین الگو به دنبال یکی از دو گزینه &quot;cat&quot; یا &quot;dog&quot; می‌گردد. در متن &quot;I have a cat&quot;، این الگو تطابق دارد و &quot;cat&quot; را شناسایی می‌کند. در متن &quot;I have a dog&quot;، این الگو تطابق دارد و &quot;dog&quot; را شناسایی می‌کند.[a-z]این الگو به دنبال هر حرف کوچک از الفبای انگلیسی می‌گردد.[A-Z]این الگو به دنبال هر حرف بزرگ از الفبای انگلیسی می‌گردد.[0-9]این الگو به دنبال هر عدد (0 تا 9) می‌گردد.[a-zA-Z0-9]این الگو به دنبال هر حرف بزرگ یا کوچک و هر عدد می‌گردد.متن &quot;abc123&quot;: تطابق دارد و حروف &quot;a&quot;، &quot;b&quot;، &quot;c&quot;، و اعداد &quot;1&quot;، &quot;2&quot;، &quot;3&quot; را شناسایی می‌کند.متن &quot;!@#&quot;: هیچ تطابقی نخواهد داشت.مثال بیشتر:[aeiou][0-9]این الگو به دنبال یک حرف صدادار (a، e، i، o، u) و پس از آن یک عدد (0 تا 9) می‌گردد.در متن &quot;a1&quot; :&quot;a1&quot; را شناسایی می‌کند. [a-zA-Z0-9_!@#]+این الگو به دنبال یک یا بیشتر از کاراکترهای مجاز می‌گردد که شامل حروف بزرگ و کوچک، اعداد، زیرخط (_) و نمادهای خاص مانند !، @ و # است.متن &quot;user_name123!&quot; تطابق دارد و کل عبارت &quot;user_name123!&quot; را شناسایی می‌کند.متن &quot;hello@world&quot;  تطابق دارد و کل عبارت &quot;hello@world&quot; را شناسایی می‌کند.متن &quot;user-name&quot; تطابق ندارد زیرا کاراکتر &#x27;-&#x27; مجاز نیست.</description>
                <category>mahsa sanaei</category>
                <author>mahsa sanaei</author>
                <pubDate>Mon, 11 Nov 2024 13:39:04 +0330</pubDate>
            </item>
                    <item>
                <title>داکر Docker چیست؟ ( نصب داکر بر اوبونتو Ubuntu )</title>
                <link>https://virgool.io/@mahsasanaei_ai/%D8%AF%D8%A7%DA%A9%D8%B1-docker-%DA%86%DB%8C%D8%B3%D8%AA-xtcebbpgobqe</link>
                <description>داکر (Docker) یک ابزار برای ساخت، اجرا، و مدیریت کانتینرها است که به شما امکان می‌دهد تا اپلیکیشن‌ها را در محیط‌های ایزوله (کانتینر) اجرا کنید. این ایزوله بودن به شما این امکان را می‌دهد که اپلیکیشن‌ها و وابستگی‌های آن‌ها را به صورت مستقل از محیط اصلی سیستم عامل اجرا کنید.
```
+-------------------+
|   Docker Client    |
|  (CLI/API Calls)  |
+-------------------+
|
|
|
+-------------------+
|     Docker Daemon  |
|  (Manages Images,  |
|  Containers, etc.) |
+-------------------+
|          |         |
|          |         |
+---+---+  +---+---+  +---+---+
| Images |  |Containers| Volumes |
+-------+  +-------+  +-------+
```
داکر دیمون، که با نام dockerd نیز شناخته می‌شود، هسته اصلی  داکر است. این سرویس مسئول مدیریت کانتینرها، ایماژها، و شبکه‌ها می‌باشد.  دیمون به درخواست‌های API پاسخ می‌دهد و کانتینرها را ایجاد، اجرا و متوقف  می‌کند.داکر کلاینت، ابزاری است که کاربران برای تعامل با داکر از آن استفاده می‌کنند. این ابزار به صورت خط فرمان (docker) در دسترس است و به دیمون دستور می‌دهد. کلاینت می‌تواند بر روی همان ماشینی که دیمون در حال اجراست یا بر روی یک ماشین دیگر باشد.ایمیج (تصویر) یک الگوی پایه برای ساخت کانتینر است. هر ایماژ شامل فایل‌های  سیستم‌عامل، برنامه‌ها و وابستگی‌های لازم برای اجرای یک برنامه خاص است.  برای مثال، شما می‌توانید یک ایمیج از اپلیکیشنی بسازید که با پایتون نوشته شده و سپس این ایمیج را در هر سیستمی اجرا کنیدکانتینر در واقع یک بسته ایزوله‌شده است که شامل اپلیکیشن و تمام وابستگی‌های آن (مثل کتابخانه‌ها و پیکربندی‌ها) است. با استفاده از کانتینر، می‌توان اطمینان داشت که اپلیکیشن در هر محیطی (مانند سرور، کامپیوتر شخصی یا سیستم‌های ابری) با همان پیکربندی اجرا می‌شود.مراحل نصب داکر بر روی لینوکس اوبونتوآپدیت ریپوزیتوری‌ها:در مرحله اول ریپوزیتوری لیست ها را آپدیت کنید:sudo apt updateنصب داکر:sudo apt install docker.io -yفعال‌سازی سرویس داکر:sudo systemctl docker --nowچک کردن ورژن داکر:docker --versionبا چک کردن نسخه، می‌توانید اطمینان حاصل کنید که Docker به درستی نصب شده و در حال اجراست.تا اینجا با موفقیت داکر نصب و سرویس فعال شده است. حال باید یوزر سیستم را در گروه داکر اضافه کنیم تا دسترسی به پرمیشن ها داشته باشیم.اضافه کردن کاربر به گروه داکر:sudo usemode -aG docker $USERدر این دستور به جای $USER نام کاربری سیستم لینوکس شماست.در قدم بعدی چک میکنیم یوزر به گروه افزوده شده یا نه:sudo getnet group docker رفرش پرمیشن‌های گروه:newgrp docker ری‌استارت دیمون:حال daemon را ری استارت میکنیم:sudo service docker restartبرای ساخت اکانت به سایت Docker Hub مراجعه کنید و سپس با استفاده از دستور زیر روی سیستم خود لاگین کنید:docker loginو حال یوزنیم و پسورد را وارد کنید.توجه داشته باشید که داکر در ایران محدودیت‌هایی دارد و ممکن است با ارور  مواجه شوید. در این صورت، نیاز به اقداماتی برای دور زدن این محدودیت‌ها  خواهید داشت :)در پست بعدی در مورد نحوه استفاده داکر یاد خواهیم گرفت.</description>
                <category>mahsa sanaei</category>
                <author>mahsa sanaei</author>
                <pubDate>Sun, 13 Oct 2024 11:24:08 +0330</pubDate>
            </item>
                    <item>
                <title>معرفی  Flask-SQLAlchemy</title>
                <link>https://virgool.io/@mahsasanaei_ai/%D9%85%D8%B9%D8%B1%D9%81%DB%8C-flask-sqlalchemy-b1b54okajdhz</link>
                <description>در دنیای توسعه وب، انتخاب ابزار مناسب می‌تواند تفاوت زیادی در کارایی و سهولت کار شما ایجاد کند. فریم‌ورک Flask،  با سادگی و قابلیت‌های انعطاف‌پذیرش، به یکی از محبوب‌ترین گزینه‌ها برای  ایجاد وب‌اپلیکیشن‌های پایتونی تبدیل شده است. اما وقتی صحبت از مدیریت  داده‌ها به میان می‌آید، آن‌جا که پایگاه‌های داده نقش کلیدی را ایفا  می‌کنند، نیاز به ابزاری قدرتمند و کارآمد بیشتر احساس می‌شود.اینجاست که Flask-SQLAlchemy به کمک شما می‌آید. Flask-SQLAlchemy یک افزونه برای فریم‌ورک Flask است که به شما کمک می‌کند تا به راحتی با پایگاه داده‌ها کار کنید. این  افزونه به شما این امکان را می‌دهد که با استفاده از رویکرد ORM  (Object-Relational Mapping) به سادگی با پایگاه داده‌ها ارتباط برقرار  کنید. با Flask-SQLAlchemy، شما می‌توانید به راحتی مدل‌های داده‌ای خود را  تعریف کرده، داده‌ها را ذخیره و بازیابی کنید و از قدرت SQLAlchemy  بهره‌مند شوید.چرا Flask-SQLAlchemy؟سادگی: Flask-SQLAlchemy به شما این امکان را می‌دهد که با استفاده از کلاس‌ها و اشیاء، به راحتی مدل‌های پایگاه داده خود را تعریف کنید.قابلیت انعطاف‌پذیری: می‌توانید از انواع مختلف پایگاه داده‌ها (SQLite، PostgreSQL، MySQL و ...) استفاده کنید.عملکرد بالا: با استفاده از SQLAlchemy، می‌توانید از توانایی‌های پیشرفته و بهینه‌سازی‌های آن بهره‌مند شوید.مدل‌هادر Flask-SQLAlchemy، شما از کلاس‌ها برای تعریف جداول پایگاه داده استفاده  می‌کنید. هر کلاس معادل یک جدول در پایگاه داده است. ویژگی‌های کلاس معادل  ستون‌های جدول هستند.ایجاد پایگاه دادهقبل از استفاده از پایگاه داده، باید آن را ایجاد کنید. این کار معمولاً با استفاده از متدهایی مانند create_all() انجام می‌شود.کوئری‌هاشما می‌توانید از متدهای SQLAlchemy برای انجام عملیات CRUD (ایجاد، خواندن، به‌روزرسانی، حذف) بر روی داده‌ها استفاده کنید.مراحل استفاده از Flask-SQLAlchemyنصب Flask-SQLAlchemy
pip install Flask-SQLAlchemy
افزودن به پروژه
from flask import Flask
from flask_sqlalchemy import SQLAlchemy
تنظیمات اولیه 
app = Flask(__name__)
app.config[&#039;SQLALCHEMY_DATABASE_URI&#039;] = &#039;sqlite:///site.db&#039; 
app.config[&#039;SQLALCHEMY_TRACK_MODIFICATIONS&#039;] = False  
db = SQLAlchemy(app)
درconfig یک دیکشنری (dictionary) در اپلیکیشن Flask است که  تنظیمات مختلف برنامه را در خود نگه می‌دارد. شما می‌توانید از این دیکشنری  برای بارگذاری تنظیمات مختلف از جمله تنظیمات پایگاه داده، کلیدهای امنیتی  و غیره استفاده کنید.در کانفیگ اول  کلید SQLALCHEMY_DATABASE_URIمشخص می‌کند که نوع پایگاه داده و آدرس آن کجا قرار دارد.  Flask-SQLAlchemy از این کلید برای شناسایی و اتصال به پایگاه داده استفاده  می‌کند. در Flask-SQLAlchemy می‌توانید از انواع مختلف پایگاه داده‌ها استفاده  کنید و هر کدام آدرس خاص خود را دارند:برای SQLite
app.config[&#039;SQLALCHEMY_DATABASE_URI&#039;] = &#039;sqlite:///site.db&#039;
برای PostgreSQL
app.config[&#039;SQLALCHEMY_DATABASE_URI&#039;] = &#039;postgresql://username:password@localhost/mydatabase&#039;
برای MySQL
app.config[&#039;SQLALCHEMY_DATABASE_URI&#039;] = &#039;mysql+pymysql://username:password@localhost/mydatabase&#039;
در کانفیگ دوم به Flask-SQLAlchemy می‌گوید که هشدارهای مربوط به تغییرات در  شیء‌ها را دنبال نکند. این ویژگی به طور پیش‌فرض فعال است و با غیرفعال  کردن آن، می‌توانید به بهینه‌سازی کارایی برنامه کمک کنید.در SQLAlchemy(app)یک شیء SQLAlchemy ایجاد می‌کند و آن را به اپلیکیشن Flask شما متصل می‌کند. این شیء به شما امکاناتی را برای کار با پایگاه داده‌ها ارائه می‌دهدتعریف مدل‌هامدل‌ها برای تعریف ساختار پایگاه داده شما استفاده می‌شوند. به عنوان مثال، برای یک مدل کاربر می‌توانید از کد زیر استفاده کنید:class User(db.Model):
    id = db.Column(db.Integer, primary_key=True)
    username = db.Column(db.String(150), nullable=False)
    def __repr__(self):
        return f&#039;&lt;User {self.username}&gt;&#039;اdb.Modelیک کلاس پایه برای تعریف مدل‌های داده‌ای است. زمانی که شما یک کلاس جدید (مثل User) تعریف می‌کنید و از db.Model ارث‌بری می‌کنید، در واقع به آن کلاس ویژگی‌ها و متدهای لازم برای تعامل با پایگاه داده را می‌دهید.ویژگی‌های db.Modelتعریف جداول: هر کلاسی که از db.Model ارث‌بری می‌کند، به عنوان یک جدول در پایگاه داده در نظر گرفته می‌شود.مدیریت خودکار: db.Model به شما این امکان را می‌دهد که به راحتی عملیات CRUD (ایجاد، خواندن، به‌روزرسانی، حذف) را انجام دهید.پشتیبانی از ویژگی‌های ORM: با استفاده از db.Model، می‌توانید از ویژگی‌های ORM SQLAlchemy مانند ارتباطات بین جداول و کوئری‌های پیچیده استفاده کنید.در ادامه دو ستون تعریف شده است. متدdb.Column برای تعریف یک ستون جدید در جدول پایگاه داده استفاده می‌شود.db.Integer نوع داده این ستون را مشخص می‌کند. در اینجا، id نوع عدد صحیح (Integer) دارد.primary_key=Trueتعیین می‌کند که این ستون کلید  اصلی جدول است. کلید اصلی باید منحصر به فرد باشد و به عنوان شناسه برای هر  رکورد استفاده می‌شود.برای ستون دوم  ازusernameبرای ذخیره نام کاربری است.db.String(150) نوع داده این ستون را مشخص می‌کند. در اینجا، username می‌تواند یک رشته با حداکثر طول ۱۵۰ کاراکتر باشد. nullable=Falseهم تعیین می‌کند که این ستون نمی‌تواند خالی باشد. به عبارت دیگر، هر کاربر باید یک نام کاربری داشته باشد.انواع داده برای ستون هامقدار صحیح با db.Integer, مقدار اعشاری با db.Float, مقدار مالی با db.Numeric(length, float) ,انواع رشته ای db.String(max length) ,نوع تاریخ با db.Date, انواع منطقی db.Boolean, انواع باینری با db.Binary, انواع خاص با db.PickleType از جمله آن هاست.متد __repr__ نمایش نمایه (representation) یک شیء از کلاس User استفاده می‌شود. زمانی که شما یک شیء از کلاس User را چاپ کنید، این متد به طور خودکار فراخوانی می‌شود و نمایه‌ای از آن شیء را برمی‌گرداند. در اینجا، نمایه به صورت &#x27;&lt;User نام‌کاربری&gt;&#x27; بازگشت داده می‌شود. این کار به شما کمک می‌کند تا بفهمید که شیء نمایانگر چه کاربری است.ایجاد پایگاه داده و جداولقبل از استفاده از مدل‌ها، باید پایگاه داده و جداول را ایجاد کنید:
with app.app_context():
    db.create_all()
با متد app.app_context() یک زمینه (context) جدید برای اپلیکیشن Flask ایجاد می‌کند.زمینه (Context) در Flask،  برای مدیریت وضعیت و  اطلاعات مربوط به اپلیکیشن و درخواست‌ها استفاده می‌شوند. با ایجاد یک  زمینه، می‌توانید به راحتی به منابع اپلیکیشن (مانند پایگاه داده) دسترسی  پیدا کنید. با with به شما این امکان را می‌دهد که یک بلوک کد را در یک زمینه خاص اجرا کنید. وقتی بلوک with به پایان می‌رسد، زمینه به‌طور خودکار بسته می‌شود.این روش به شما کمک می‌کند تا به‌طور مؤثری منابع را مدیریت کنید و از بروز خطاهای احتمالی جلوگیری کنید.متد db.create_all()جداول پایگاه  داده را طبق مدل‌های تعریف شده شما ایجاد می‌کند. اگر جدول‌ها قبلاً وجود  نداشته باشند، آن‌ها را ایجاد می‌کند.به عبارت دیگر، با فراخوانی این متد، SQLAlchemy بررسی می‌کند که آیا  جداولی که شما با مدل‌های خود تعریف کرده‌اید وجود دارند یا نه. اگر وجود  نداشته باشند، آن‌ها را ایجاد می‌کند.عملیات CRUDدر ادامه ی مثالی که داشتیم:افزودن داده‌ها
def add_user(username):
    new_user = User(username=username)
   db.session.add(new_user)
   db.session.commit()  
    خواندن داده‌ها
def get_users():
    return User.query.all()به‌روزرسانی داده‌ها
def update_user(user_id, new_username):
    user = User.query.get(user_id)
    if user:
        user.username = new_username
        db.session.commit()
حذف داده‌ها
def delete_user(user_id):
    user = User.query.get(user_id)
    if user:
        db.session.delete(user)
        db.session.commit()با  db.session.commit() تغییرات ثبت میشود.با استفاده از این تنظیمات، می‌توانید به راحتی به انواع مختلف پایگاه  داده‌ها متصل شوید. فقط کافی است که URI مناسب را بر اساس نوع پایگاه داده  خود تنظیم کنید و اطلاعات مربوط به کاربر و پایگاه داده را وارد کنید. </description>
                <category>mahsa sanaei</category>
                <author>mahsa sanaei</author>
                <pubDate>Mon, 23 Sep 2024 11:52:15 +0330</pubDate>
            </item>
                    <item>
                <title>متد CRISP-DM (مدل استاندارد فرآیندهای داده‌کاوی)</title>
                <link>https://virgool.io/@mahsasanaei_ai/%D9%85%D8%AA%D8%AF-crisp-dm-%D9%85%D8%AF%D9%84-%D8%A7%D8%B3%D8%AA%D8%A7%D9%86%D8%AF%D8%A7%D8%B1%D8%AF-%D9%81%D8%B1%D8%A2%DB%8C%D9%86%D8%AF%D9%87%D8%A7%DB%8C-%D8%AF%D8%A7%D8%AF%D9%87-%DA%A9%D8%A7%D9%88%DB%8C-zbvdusrnmd8x</link>
                <description>روش CRISP-DM (فرایند استاندارد بین صنعتی برای داده کاوی) یک چارچوب پرکاربرد برای انجام پروژه های داده کاوی است. این یک رویکرد ساختاریافته برای برنامه ریزی و اجرای این پروژه ها ارائه می دهد و تضمین می کند که تمام مراحل لازم پوشش داده شده و پروژه در مسیر خود باقی می ماند. با پیروی از این روش، می توانیم به طور سیستماتیک به مشکلات تجاری رسیدگی کنیم و بینش های ارزشمندی را از داده ها استخراج کنیم.برای موفقیت در پروژه‌های داده‌کاوی، باید شش مرحله‌ی زیر را طی کنیم:شناخت کسب‌وکار (Business Understanding):   ابتدا باید کسب‌وکار و فرآیندهای آن را بشناسید. قرار است پروژه داده‌کاوی را برای یک سازمان، شرکت یا استارتاپ انجام دهید. بنابراین، درک عمیق از فرآیندهای آن بسیار حیاتی است. به عنوان مثال، اگر برای اوبر کار می‌کنید، باید بدانید این کسب‌وکار چگونه سرویس حمل‌ونقل ارائه می‌دهد، چگونه رانندگان و مسافران را متصل می‌کند و چه مدل‌های قیمت‌گذاری دارد. یا اگر برای آمازون کار می‌کنید، باید فرآیندهای خرید و فروش، مدیریت موجودی، و پیشنهادهای محصول را بشناسید. هرچه شناخت شما از کسب‌وکار بیشتر باشد، این مرحله با کیفیت بالاتری انجام می‌شود و می‌توانید مسائل و نیازهای کسب‌وکار را بهتر شناسایی و تحلیل کنید.شناخت داده‌ها (Data Understanding):   در این مرحله، داده‌های موجود در آن شرکت را شناسایی می‌کنیم. باید بدانیم چه داده‌هایی در دسترس داریم، چگونه تفسیر می‌شوند، چگونه می‌توانیم داده‌های جدید اضافه کنیم و چه پتانسیل‌هایی برای دریافت داده‌های جدید وجود دارد. برای مثال، در اوبر می‌توانید داده‌های مربوط به سفرها، رانندگان، مسافران و زمان‌های اوج استفاده را بررسی کنید؛ یا در آمازون می‌توانید داده‌های مربوط به تراکنش‌های خرید، نظرات مشتریان، و الگوهای خرید را تحلیل کنید.پیش‌پردازش داده‌ها (Data Preprocessing):   در این مرحله، داده‌ها را تمیز کرده و به یک ماتریس تمیز (به اصطلاح ماتریس در فضای \( R^n \)) تبدیل می‌کنیم که بتوانیم آن را به الگوریتم‌های داده‌کاوی برای ساخت مدل تزریق کنیم. این شامل پاک‌سازی داده‌ها از نویزها، نواقص و ناسازگاری‌ها، و نیز نرمال‌سازی و تغییر مقیاس داده‌ها است.مدل‌سازی (Modeling):   الگوریتم‌های یادگیری ماشین را روی داده‌ها اعمال می‌کنیم تا مدل‌های مورد نظر را بسازیم. این مرحله شامل انتخاب الگوریتم‌های مناسب، تنظیم پارامترها و آموزش مدل‌ها با استفاده از داده‌های تمیز شده است.ارزیابی (Evaluation):   بعد از ساخت مدل، آن را ارزیابی می‌کنیم. ارزیابی به ما نشان می‌دهد که الگوریتم ما که روی داده‌های تمیز اجرا شده، چقدر دقت دارد و مدل چقدر خوب کار می‌کند. اگر به دقت مورد نظر برسیم، به مرحله‌ی بعد می‌رویم. در غیر این صورت، برمی‌گردیم و بررسی می‌کنیم که در کدام مرحله اشتباه کرده‌ایم. این کار تکرار می‌شود تا به دقت مورد نظر در مرحله ارزیابی برسیم. ارزیابی شامل استفاده از معیارهای مختلف مانند دقت، صحت، بازخوانی و F1-Score است.استقرار (Deployment):در مرحله Deployment مدل CRISP-DM، مدل تحلیلی برای استفاده عملی در محیط واقعی پیاده‌سازی و نصب می‌شود و عملکرد آن پایش و بررسی می‌گردد.   بعد از استقرار مدل، چرخه را مداوم تکرار می‌کنیم و نسخه‌های بهینه‌تری ارائه می‌دهیم. مثلاً در نسخه‌های بعدی دقت بیشتری به دست می‌آوریم، داده‌های جدید و زوایای مختلف کسب‌وکار را بررسی کرده و الگوریتم‌های جدید را آزمایش می‌کنیم تا دقت را بالا ببریم. استقرار مدل شامل انتقال آن به محیط عملیاتی و نظارت بر عملکرد آن در دنیای واقعی است. بهینه‌سازی مستمر و به‌روزرسانی مدل با داده‌های جدید نیز بخشی از این مرحله است.با پیروی از روش CRISP-DM، ما از یک رویکرد جامع و سیستماتیک برای پروژه های داده کاوی اطمینان حاصل می کنیم. این روش به ما کمک می‌کند تا زمینه کسب‌وکار را درک کنیم، داده‌ها را پردازش و پاکسازی کنیم، الگوریتم‌های مناسب را اعمال کنیم، و مدل‌ها را به‌طور موثر ارزیابی و اجرا کنیم. هر مرحله بر مرحله قبلی استوار است و پایه ای قوی برای بینش دقیق و عملی ایجاد می کند.ماهیت تکرار شونده CRISP-DM به این معنی است که ما به طور مداوم مدل‌ها و فرآیندهای خود را اصلاح می‌کنیم، با داده‌های جدید و نیازهای تجاری تغییر می‌کنیم. این بهبود مستمر به سازمان‌ها کمک می‌کند تا در رقابت باقی بمانند و با اطمینان تصمیمات مبتنی بر داده‌ها را اتخاذ کنند. با تسلط بر روش CRISP-DM، دانشمندان و تحلیلگران داده می توانند نتایج با کیفیت بالا و تاثیرگذاری ارائه دهند که باعث موفقیت در پروژه های آنها می شود.</description>
                <category>mahsa sanaei</category>
                <author>mahsa sanaei</author>
                <pubDate>Sun, 04 Aug 2024 18:19:51 +0330</pubDate>
            </item>
                    <item>
                <title>mlopsچیست</title>
                <link>https://virgool.io/@mahsasanaei_ai/%D8%B6%D8%B1%D9%88%D8%B1%D8%AA-%DB%8C%D8%A7%D8%AF%DA%AF%DB%8C%D8%B1%DB%8C-mlops-pg324ldry5fg</link>
                <description> مدیریت عملیات یادگیری ماشین (MLOps): مسیر به سوی مدیریت و بهینه‌سازی فرآیندهای یادگیری ماشینمقدمهبا رشد سریع یادگیری ماشین در صنایع مختلف، نیاز به مدیریت و بهینه‌سازی فرآیندهای مرتبط با مدل‌های یادگیری ماشین بیشتر احساس می‌شود. MLOps (Machine Learning Operations) ترکیبی از مفاهیم DevOps و یادگیری ماشین است که به سازمان‌ها کمک می‌کند تا مدل‌های خود را به صورت کارآمدتر و با کیفیت بالاتری توسعه، تست، استقرار و نگهداری کنند. در حال حاضر اهمیت داشتن دانش MLOps برای افرادی که در حوزه هوش مصنوعی فعالیت می‌کنند بالا رفته است. در این مقاله، اهمیت، کاربردها، مزایا و مهارت‌های ضروری برای یادگیری MLOps را بررسی می‌کنیم. اهمیت MLOpsدر واقع MLOps باعث می‌شود تا فرآیندها خودکار و مدل‌ها بهینه‌سازی شوند، که نتیجه آن کاهش زمان لازم برای عرضه مدل‌های جدید به بازار است. نظارت و بهینه‌سازی مداوم مدل‌ها باعث افزایش دقت و کیفیت نتایج می‌شود. علاوه بر این، خودکارسازی و استانداردسازی فرآیندها بهره‌وری تیم‌ها را افزایش داده و خطاهای انسانی را کاهش می‌دهد. در نهایت، بهبود کارایی و کاهش زمان توسعه منجر به کاهش هزینه‌های کلی پروژه‌های یادگیری ماشین می‌شود.کاربردهای MLOps1. خودکارسازی فرآیندها: MLOps تمامی مراحل از آماده‌سازی داده‌ها تا آموزش، تست و استقرار مدل‌ها را خودکار می‌کند و باعث افزایش سرعت و دقت می‌شود.2. مدیریت و نظارت: نظارت مستمر بر عملکرد مدل‌ها و شناسایی به موقع مشکلات، موجب می‌شود مدل‌ها همیشه در بهترین حالت خود باشند.3. مدیریت داده‌ها:تضمین کیفیت داده‌های ورودی و خروجی مدل‌ها اهمیت بالایی دارد و MLOps به این موضوع توجه ویژه‌ای دارد. اجزای کلیدی MLOps ورژن‌بندی مدل‌ها: مانند ورژن‌بندی کد در DevOps، در MLOps نیز ورژن‌بندی مدل‌ها اهمیت دارد تا تغییرات و بهبودهای مدل به دقت پیگیری شوند.پایپلاین‌های CI/CD: این پایپلاین‌ها فرآیند ساخت، تست و استقرار مدل‌ها را خودکار می‌کنند و به بهبود کارایی و کاهش خطاها کمک می‌کنند.مانیتورینگ مداوم:نظارت بر عملکرد مدل‌ها در محیط تولید برای اطمینان از دقت و کارایی آنها ضروری است.فروشگاه ویژگی (Feature Store):مخزن مرکزی برای ذخیره و مدیریت ویژگی‌هایی که در آموزش مدل‌ها استفاده می‌شود، به استانداردسازی و استفاده مجدد از ویژگی‌ها کمک می‌کند.ابزارهای محبوب در MLOpsپلتفرم Kubeflow: برای ساخت، آموزش و استقرار مدل‌های یادگیری ماشین.ابزار MLflow: برای مدیریت چرخه‌عمر یادگیری ماشین شامل ردیابی آزمایش‌ها، پروژه‌ها و مدل‌ها.پلتفرم TensorFlow Extended (TFX): برای ایجاد و استقرار پایپلاین‌های یادگیری ماشین در مقیاس بزرگ.ابزار Airflow: برای خودکارسازی و مدیریت پایپلاین‌های داده و مدل‌های یادگیری ماشین.سرفصل‌های کلیدی برای یادگیری MLOpsبرای یادگیری MLOps، آشنایی با حوزه‌های مختلف ضروری است که هر کدام نقش مهمی در پیاده‌سازی و مدیریت موفق مدل‌های یادگیری ماشین دارند. در زیر به سرفصل‌های اصلی مورد نیاز برای یادگیری MLOps اشاره می‌کنیم:۱. شبکه و لینوکسشبکه‌های کامپیوتری: مفاهیم پایه شبکه، پروتکل‌های ارتباطی و امنیت شبکه.لینوکس: تسلط بر سیستم‌عامل لینوکس، شامل دستورات پایه، مدیریت فایل‌ها و اسکریپت‌نویسی.۲. مباحث HTML و CSSمبحث  HTML: زبان نشانه‌گذاری برای ایجاد ساختار صفحات وب.مبحث CSS: زبان استایل‌دهی برای طراحی و نمایش صفحات وب.۳.مباحث  CI/CD (Continuous Integration/Continuous Deployment)پایپلاین‌های CI/CD:  پیاده‌سازی و مدیریت پایپلاین‌های خودکار برای ساخت، تست و استقرار کد.-ابزارهای CI/CD:*آشنایی با ابزارهایی مانند Jenkins، GitLab CI، و CircleCI. ۴.کنترل نسخه و میزبانی کد با  Git و GitHubکنترل نسخه:استفاده از Git برای مدیریت نسخه‌های کد و همکاری تیمی.پلتفرم GitHub: برای میزبانی مخازن Git و همکاری روی کد. ۵. توسعه وب با Flaskفریم‌ورک Flask: برای ایجاد اپلیکیشن‌های وب با Python.- استفاده از  API‌های RESTful:برای ساخت و مدیریت API‌های تحت وب. ۶.کانتینری‌سازی و ارکستراسیون با  Docker و Kubernetesپلتفرم Docker: برای کانتینری‌سازی، استقرار و اجرای اپلیکیشن‌ها در کانتینرها.سیستم Kubernetes: برای مدیریت و مقیاس‌پذیری اپلیکیشن‌های کانتینری. ۷. سیستم‌های نهفته (Embedded Systems)- **سیستم‌های نهفته:** طراحی و توسعه نرم‌افزارهای سیستم‌های نهفته.- **میکروکنترلرها و میکروپردازنده‌ها:** آشنایی با معماری و برنامه‌نویسی آنها. ۸.سرویس‌های ابری  Google Cloud Platform (GCP)خدمات GCP: آشنایی با سرویس‌های مختلف GCP مانند Compute Engine، Cloud Storage، و AI Platform.مدیریت منابع ابری: برای استقرار و مدیریت مدل‌های یادگیری ماشین.۱۰. پلتفرم‌های جامع (TensorFlow Extended)پلتفرم TFX: برای ایجاد و مدیریت پایپلاین‌های یادگیری ماشین با استفاده از TensorFlow.اجزای TFX: مانند ExampleGen، Trainer، و Pusher.۱۰.فرمت‌های استاندارد و کتابخانه‌های بهینه‌سازی  ONNX و TensorRTفرمت ONNX: برای انتقال مدل‌های یادگیری عمیق بین چارچوب‌های مختلف.کتابخانه TensorRT: برای بهینه‌سازی و اجرای مدل‌های یادگیری عمیق روی GPUهای NVIDIA.۱۱.مبحث  TensorFlow Lite (TFLite)نسخه TFLite: برای اجرای مدل‌ها روی دستگاه‌های موبایل و سیستم‌های نهفته.بهینه‌سازی مدل‌ها: تبدیل و بهینه‌سازی مدل‌ها برای اجرای کارآمد روی دستگاه‌های کم‌مصرف.یادگیری MLOps نیازمند تسلط بر مجموعه‌ای گسترده از مهارت‌ها و فناوری‌ها است. این مهارت‌ها از مدیریت و خودکارسازی فرآیندهای یادگیری ماشین تا توسعه وب و مدیریت سیستم‌های ابری را شامل می‌شود. با فراگیری این مهارت‌ها، می‌توانید مدل‌های یادگیری ماشین را به صورت موثرتر و با کیفیت بالاتری مدیریت کنید و از قابلیت‌های پیشرفته MLOps بهره‌برداری کنید.</description>
                <category>mahsa sanaei</category>
                <author>mahsa sanaei</author>
                <pubDate>Mon, 17 Jun 2024 12:06:13 +0330</pubDate>
            </item>
                    <item>
                <title>تسلط بر روش‌های انسمبلینگ در یادگیری ماشین</title>
                <link>https://virgool.io/@mahsasanaei_ai/%D8%AA%D8%B3%D9%84%D8%B7-%D8%A8%D8%B1-%D8%B1%D9%88%D8%B4-%D9%87%D8%A7%DB%8C-%D8%A7%D9%86%D8%B3%D9%85%D8%A8%D9%84%DB%8C%D9%86%DA%AF-%D8%AF%D8%B1-%DB%8C%D8%A7%D8%AF%DA%AF%DB%8C%D8%B1%DB%8C-%D9%85%D8%A7%D8%B4%DB%8C%D9%86-xlrvwd7rsspu</link>
                <description>سلام به همه دوستان  🙋‍♀️توی این پست، می‌خوایم درباره یکی از موضوعات محبوب، یعنی روش‌های  انسمبلینگ توی یادگیری ماشین صحبت کنیم. این تکنیک‌ها خیلی در بهتر کردن  عملکرد مدل‌ها مؤثر هستن.روش‌های انسمبلینگروش‌های انسمبلینگ، چند تا مدل رو با هم ترکیب می‌کنن تا یه مدل قوی‌تر و  واحد بسازن. مفهومش ساده‌ست: از مزایای مدل‌های مختلف استفاده می‌کنه و  نقاط ضعفشون رو کم می‌کنه. روش‌های انسمبلینگ از تنوع مدل‌ها بهره می‌برن. یعنی مدل‌های مختلفی که توی  انسمبلینگ استفاده می‌شن، ممکنه از الگوریتم‌ها، ساختارها یا مجموعه‌های  داده متفاوتی استفاده کنن. این تنوع کمک می‌کنه تا مدل نهایی از دیدگاه‌های  مختلف به داده‌ها نگاه کنه و پیش‌بینی‌های دقیق‌تری ارائه بده.مزایای روش‌های انسمبلینگافزایش دقت: وقتی چند تا مدل رو با هم ترکیب می‌کنید، می‌تونید از قدرت هر مدل استفاده کنید و نقاط ضعفشون رو کمتر کنید. اینجوری، مدل نهایی دقت بیشتری داره.کاهش اورفیتینگ: یکی از مشکلات رایج تو یادگیری ماشین، اورفیتینگ هست که مدل زیادی به داده‌های آموزشی وابسته می‌شه و نمی‌تونه داده‌های جدید رو خوب پیش‌بینی کنه. با میانگین گرفتن از پیش‌بینی‌های چند تا مدل، خطاها کمتر می‌شه و مدل بهتر تعمیم می‌ده.افزایش پایداری: مدل‌های انسمبل معمولاً پیش‌بینی‌های پایدارتر و قابل اعتماد‌تری دارن. این به خاطر اینه که نوسانات و خطاهای هر مدل تکی به طور متوسط کاهش پیدا می‌کنه.انواع روش‌های انسمبلینگسه نوع اصلی از روش‌های انسمبلینگ عبارتند از:Bagging: کاهش واریانس با میانگین‌گیری از پیش‌بینی‌های مدل‌های مختلف.Boosting: کاهش بایاس با آموزش مدل‌ها به صورت متوالی و تصحیح خطاهای مدل قبلی.Stacking: ترکیب مدل‌های مختلف با استفاده از یک مدل متا-لرنر برای بهبود دقت نهایی.. Baggingمتد Bagging، یا بوت‌استرپ تجمیعی، شامل آموزش چند تا مدل مشابه روی زیرمجموعه‌های مختلفی از داده‌هاست. هدف اصلی این روش کاهش واریانس و افزایش پایداری مدل نهایی هست. یکی از معروف‌ترین الگوریتم‌های مبتنی بر Bagging، جنگل تصادفی (Random Forest) هست.مثال: Random Forest 👩‍💻مدل جنگل تصادفی از روش‌های Bagging بر روی چندین مدل درخت تصمیم استفاده می‌کنه.from sklearn.ensemble import RandomForestClassifierfrom sklearn.metrics import accuracy_score# فرض کنیم X_train، X_test، y_train و y_test داده‌های تفکیک شده ویژگی‌ها و اهداف شما هستند# آموزش مدل جنگل تصادفیrf = RandomForestClassifier(n_estimators=100, random_state=42)rf.fit(X_train, y_train)# پیش‌بینی و ارزیابیy_pred = rf.predict(X_test)print(&amp;quotدقت جنگل تصادفی:&amp;quot, accuracy_score(y_test, y_pred))۲. Boostingمتد Boosting یک روش انسمبلینگ هست که مدل‌ها رو به صورت متوالی آموزش می‌ده. هر مدل جدید خطاهای مدل قبلی رو اصلاح می‌کنه. این روش به کاهش بایاس و افزایش دقت مدل کمک می‌کنه. یکی از الگوریتم‌های معروف در این دسته، گرادیان بوستینگ (Gradient Boosting) هست.مثال: Gradient Boosting 👩‍💻from sklearn.ensemble import GradientBoostingClassifier# آموزش مدل Gradient Boostinggb = GradientBoostingClassifier(n_estimators=100, learning_rate=0.1, random_state=42)gb.fit(X_train, y_train)# پیش‌بینی و ارزیابیy_pred = gb.predict(X_test)print(&amp;quotدقت Gradient Boosting:&amp;quot, accuracy_score(y_test, y_pred))۳. Stackingمتد Stacking یک روش پیشرفته‌تر انسمبلینگ هست که شامل آموزش چند تا مدل پایه و بعد استفاده از یک مدل متا-لرنر برای ترکیب پیش‌بینی‌های اونهاست. این روش به بهبود دقت و کاهش اورفیتینگ کمک می‌کنه.مثال: استفاده از رگرسیون لجستیک به عنوان متا-لرنر 👩‍💻from sklearn.ensemble import StackingClassifierfrom sklearn.linear_model import LogisticRegressionfrom sklearn.svm import SVCfrom sklearn.tree import DecisionTreeClassifier# تعریف مدل‌های پایهbase_learners = [    (&#039;svm&#039;, SVC(kernel=&#039;linear&#039;, probability=True)),    (&#039;dt&#039;, DecisionTreeClassifier())]# تعریف متا-لرنرmeta_learner = LogisticRegression()# آموزش مدل Stackingstacking = StackingClassifier(estimators=base_learners, final_estimator=meta_learner, cv=5)stacking.fit(X_train, y_train)# پیش‌بینی و ارزیابیy_pred = stacking.predict(X_test)print(&amp;quotدقت Stacking:&amp;quot, accuracy_score(y_test, y_pred))چالش‌های استفاده از روش‌های انسمبلینگ:افزایش زمان محاسباتی: ترکیب چند تا مدل ممکنه نیاز به زمان و منابع محاسباتی بیشتری داشته باشه. این مسئله تو پروژه‌های بزرگ یا وقتی منابع محدود هستن، می‌تونه چالش‌برانگیز باشه.پیچیدگی پیاده‌سازی: پیاده‌سازی و تنظیم مدل‌های انسمبلینگ ممکنه پیچیده‌تر از مدل‌های تکی باشه. تنظیم دقیق هایپرپارامترها و انتخاب مدل‌های مناسب برای ترکیب از جمله این چالش‌هاست.تفسیربرداری: یکی از مشکلات مدل‌های انسمبلینگ اینه که تفسیر نتایجشون سخت‌تره. برخلاف مدل‌های ساده‌تر مثل رگرسیون خطی که راحت‌تر قابل توضیح هستن، مدل‌های انسمبلینگ به خاطر پیچیدگی بالا ممکنه سخت‌تر قابل درک باشن.بهترین روش‌های تنظیم هایپرپارامترها:اعتبارسنجی متقابل (Cross-Validation): یکی از بهترین روش‌ها برای تنظیم هایپرپارامترها استفاده از اعتبارسنجی متقابل هست. این روش به شما اجازه می‌ده تا عملکرد مدل رو با تنظیمات مختلف ارزیابی کنید و بهترین تنظیمات رو انتخاب کنید.جستجوی شبکه‌ای (Grid Search) و جستجوی تصادفی (Random Search): این دو روش هم برای تنظیم هایپرپارامترها خیلی مفید هستن. جستجوی شبکه‌ای تمام ترکیبات ممکن از هایپرپارامترها رو بررسی می‌کنه، در حالی که جستجوی تصادفی به صورت تصادفی از بین ترکیبات ممکن انتخاب می‌کنه.نتیجه‌گیریبا وجود چالش‌های موجود، این روش‌ها ابزارهای قدرتمندی برای حل مسائل پیچیده و بهبود نتایج پیش‌بینی‌ها هستن. با استفاده از تنوع مدل‌ها، تنظیم دقیق هایپرپارامترها و به کارگیری روش‌های مناسب، می‌تونید مدل‌های انسمبلینگ موثری بسازید که تو پروژه‌های مختلف خوب عمل کنن.</description>
                <category>mahsa sanaei</category>
                <author>mahsa sanaei</author>
                <pubDate>Fri, 17 May 2024 15:59:41 +0330</pubDate>
            </item>
                    <item>
                <title>ماتریس سردرگمی (Confusion Matrix)</title>
                <link>https://virgool.io/@mahsasanaei_ai/%D9%85%D8%A7%D8%AA%D8%B1%DB%8C%D8%B3-%D8%B3%D8%B1%D8%AF%D8%B1%DA%AF%D9%85%DB%8C-confusion-matrix-akd9bm1kthkk</link>
                <description>ماتریس سردرگمی (Confusion Matrix) ابزاری است که برای ارزیابی عملکرد یک مدل طبقه‌بندی استفاده می‌شود. این ماتریس به صورت یک جدول مربعی نمایش داده می‌شود که در آن، نتایج پیش‌بینی مدل در مقابل نتایج واقعی قرار می‌گیرند.  تعریف عناصر ماتریس سردرگمی:1. True Positive (TP): تعداد نمونه‌های مثبتی که به درستی توسط مدل به عنوان مثبت پیش‌بینی شده‌اند.2. False Positive (FP): تعداد نمونه‌های منفی که به اشتباه توسط مدل به عنوان مثبت پیش‌بینی شده‌اند.3. False Negative (FN): تعداد نمونه‌های مثبتی که به اشتباه توسط مدل به عنوان منفی پیش‌بینی شده‌اند.4. True Negative (TN): تعداد نمونه‌های منفی که به درستی توسط مدل به عنوان منفی پیش‌بینی شده‌اند.معیارهای ارزیابی از ماتریس سردرگمیبا استفاده از عناصر ماتریس سردرگمی می‌توان معیارهای مختلفی برای ارزیابی عملکرد مدل محاسبه کرد. این معیارها عبارتند از:1. دقت (Accuracy):Accuracy = (TP + TN) / (TP + TN + FP + FN)   دقت نسبت نمونه‌های درست پیش‌بینی شده (مثبت و منفی) به کل نمونه‌ها را نشان می‌دهد.2. دقت مثبت (Precision): Precision = TP / (TP + FP)   دقت مثبت نشان می‌دهد چه درصدی از نمونه‌های پیش‌بینی شده به عنوان مثبت واقعاً مثبت هستند.3. بازخوانی یا حساسیت (Recall): Precision = TP / (TP + FP)   بازخوانی نشان می‌دهد چه درصدی از نمونه‌های مثبت واقعی توسط مدل به درستی به عنوان مثبت شناسایی شده‌اند.4. امتیاز F1 (F1 Score):F1 Score = 2 * (Precision * Recall) / (Precision + Recall)   امتیاز F1 میانگین هارمونیک دقت و بازخوانی است و زمانی که تعادل بین دقت و بازخوانی مهم است، استفاده می‌شود. رسم ماتریس سردرگمیبرای درک بهتر این مفاهیم، می‌توانیم یک ماتریس سردرگمی را برای یک مجموعه داده نمونه رسم کنیم. به عنوان مثال، از مجموعه داده‌های Iris و مدل رگرسیون لجستیک استفاده می‌کنیم.import numpy as npimport matplotlib.pyplot as pltfrom sklearn.metrics import confusion_matrix, ConfusionMatrixDisplayfrom sklearn.model_selection import train_test_splitfrom sklearn.datasets import load_irisfrom sklearn.linear_model import LogisticRegressionبارگذاری داده‌های Irisdata = load_iris()X = data.datay = data.target تقسیم داده‌ها به داده‌های آموزشی و آزمونX_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.3, random_state=42)ایجاد مدل رگرسیون لجستیکmodel = LogisticRegression(max_iter=200)model.fit(X_train, y_train)پیش‌بینی بر روی داده‌های آزمونy_pred = model.predict(X_test)ایجاد ماتریس سردرگمیcm = confusion_matrix(y_test, y_pred)رسم نمودار ماتریس سردرگمیdisp = ConfusionMatrixDisplay(confusion_matrix=cm, display_labels=data.target_names)disp.plot(cmap=plt.cm.Blues)plt.title(&#039;Confusion Matrix&#039;)plt.show()تحلیل نمودار ماتریس سردرگمیدر این نمودار:- محور افقی نشان‌دهنده‌ی برچسب‌های پیش‌بینی شده (Predicted Labels) است.- محور عمودی نشان‌دهنده‌ی برچسب‌های واقعی (True Labels) است.- هر خانه نشان‌دهنده تعداد نمونه‌هایی است که به آن کلاس خاص تعلق دارند.برای مثال:- خانه‌ی [0, 0] نشان‌دهنده تعداد نمونه‌هایی است که به درستی به عنوان کلاس 0 پیش‌بینی شده‌اند (True Positive).- خانه‌ی [0, 1] نشان‌دهنده تعداد نمونه‌هایی است که به اشتباه به عنوان کلاس 0 پیش‌بینی شده‌اند، در حالی که واقعاً کلاس 1 هستند (False Positive).</description>
                <category>mahsa sanaei</category>
                <author>mahsa sanaei</author>
                <pubDate>Wed, 15 May 2024 19:00:33 +0330</pubDate>
            </item>
                    <item>
                <title>پروفایل‌سازی داده‌ها چیست؟</title>
                <link>https://virgool.io/@mahsasanaei_ai/%D9%BE%D8%B1%D9%88%D9%81%D8%A7%DB%8C%D9%84-%D8%B3%D8%A7%D8%B2%DB%8C-%D8%AF%D8%A7%D8%AF%D9%87-%D9%87%D8%A7-%DA%86%DB%8C%D8%B3%D8%AA-ej8n4wpzbdar</link>
                <description>پروفایلسازی دادهها فرآیند تجزیه و تحلیل دادههاست تا درک بهتری از  محتوا، ساختار و کیفیت منابع دادههای موجود به دست بیاد. این فرآیند به شما  کمک میکنه تا بفهمین دادههایتان دقیقاً چه شکلی هستند و چگونه میتوانید  از آنها به بهترین شکل استفاده کنید.چرا پروفایلسازی دادهها مهم است؟شناسایی مشکلات کیفی: با پروفایلسازی، میتوانید مشکلاتی مانند دادههای تکراری یا گمشده را شناسایی کرده و راهحلهایی برای رفع آنها پیدا کنید.درک ساختار دادهها: فهمیدن اینکه دادهها چگونه سازماندهی شدهاند و چه ارتباطاتی بین ستونها وجود دارد، به شما کمک میکند تا تحلیلها و گزارشهای دقیقتری تهیه کنید.آمادهسازی برای پاکسازی دادهها: پروفایلسازی به شما نشان میدهد که کدام بخشهای دادهها نیاز به توجه دارند و چگونه میتوانید دادهها را برای استفادههای بعدی تمیز کنید.مراحل پروفایلسازی دادههاجمعآوری دادهها: ابتدا دادههایی که میخواهید تحلیل کنید را جمعآوری کنید. این دادهها میتواند از منابع مختلفی مانند فایلهای CSV، پایگاههای داده، APIها و غیره باشد.تجزیه و تحلیل اولیه: در این مرحله، یک بررسی کلی از دادهها انجام میدهید تا بفهمید که دادهها شامل چه نوع اطلاعاتی هستند. این شامل مشاهده ستونها، انواع دادهها و برخی آمارهای اولیه است.شناسایی مشکلات: مشکلات کیفی دادهها مانند مقادیر گمشده، تکراری یا ناهماهنگ شناسایی میشوند. همچنین ممکن است مشکلاتی مانند ناهماهنگی در نوع دادهها یا فرمتهای متفاوت برای یک نوع داده خاص وجود داشته باشد.مستندسازی دادهها: مستندسازی شامل نوشتن توضیحات دقیقی درباره هر ستون، نوع دادهها و هر گونه مشکلی که در دادهها شناسایی شده است.استخراج گزارشها: گزارشهای کاملی از دادهها تهیه میشود که شامل جزئیاتی مانند توزیع دادهها، همبستگی بین ستونها، مقادیر پرت و دیگر آمارههای مهم است.استفاده از ابزارهای پروفایلسازی دادههایکی از ابزارهای محبوب برای پروفایلسازی دادهها در زبان برنامهنویسی Python، Pandas Profiling است. این کتابخانه به شما اجازه میدهد تا با چند خط کد، گزارشهای جامعی از دادههایتان بدست آورید که شامل:تعداد دادههای گمشدهتوزیع دادههاارتباطات بین ستونهاو دیگر خصوصیات مهمبه این ترتیب، با استفاده از پروفایلسازی دادهها، شما قادر خواهید بود دادههای خود را به شکلی کارآمدتر مدیریت و تحلیل کنید.نحوه استفاده از Pandas Profiling!pip install pandas-profilingimport pandas as pdfrom pandas_profiling import ProfileReportdf = pd.read_csv(&#039;your_data.csv&#039;)profile = ProfileReport(df, title=&amp;quotData Profiling Report&amp;quot)profile.to_file&#40;&amp;quotdata_profiling_report.html&amp;quot&#41;ویژگیهای کلیدی Pandas Profilingخلاصه آماری: ارائه آمارههای مقدماتی مانند میانگین، میانه، انحراف معیار و ...توزیع دادهها: نمایش توزیع دادهها به صورت نمودارهای گرافیکیشناسایی مقادیر گمشده و تکراری: نمایش مقادیر گمشده و تکراری در دادههاهمبستگی بین ستونها: نمایش همبستگی بین ستونهای مختلف دادههانمایش مقادیر پرت: شناسایی و نمایش مقادیر پرت در دادهها</description>
                <category>mahsa sanaei</category>
                <author>mahsa sanaei</author>
                <pubDate>Wed, 15 May 2024 11:23:36 +0330</pubDate>
            </item>
                    <item>
                <title>راهنمای گام به گام برای تنظیم FINE TUNING در LLM</title>
                <link>https://virgool.io/@mahsasanaei_ai/%D8%B1%D8%A7%D9%87%D9%86%D9%85%D8%A7%DB%8C-%DA%AF%D8%A7%D9%85-%D8%A8%D9%87-%DA%AF%D8%A7%D9%85-%D8%A8%D8%B1%D8%A7%DB%8C-%D8%AA%D9%86%D8%B8%DB%8C%D9%85-fine-tuning-shddeuqbp6k9</link>
                <description>در عصر داده‌ها و هوش مصنوعی، مدل‌های یادگیری ماشینی بزرگ (LLMs) نقش اساسی در تسهیل وظایف مختلف دارند، از پردازش زبان طبیعی گرفته تا تصمیم‌گیری‌های پیچیده. اما چجوری میشه این مدل‌ها را بهینه‌سازی کرد تا نیازهای خاص ما را برآورده کنن؟ اینجاست که  fine-tuning وارد میشه. در تصویر زیر ، مراحل کلیدی برای بهینه‌سازی LLM‌ها به نمایش گذاشته شدن.البته، این تصویر راهنمایی است برای تنظیم fine-tuning مدل‌های بزرگ یادگیری ماشینی (LLMs) که چنین کار می‌کنه:گام 1: انتخاب وظیفه یادگیریابتدا، تصمیم می‌گیریم که می‌خواهیم مدل‌مان روی چه کاری تمرکز کنه؛ مثلاً می‌تواند تشخیص دهد یک ایمیل اسپم هست یا نه، یا متون را از یک زبان به زبان دیگر ترجمه کند. برای این کار داده‌های مرتبط با اون وظیفه رو جمع‌آوری می‌کنیم.گام ۲:کاهش زمان و هزینه آموزش با LoRAبعدیش، به جای اینکه تمام بخش‌های مدل رو دوباره آموزش بدیم، فقط قسمت‌های کوچیکی به نام LoRA Adaptors رو تنظیم می‌کنیم. این باعث می‌شه که مدل راحت‌تر و ارزون‌تر به روز رسانی بشه.در زمینه fine-tuningمدل‌های یادگیری ماشینی بزرگ (LLMs)، LoRA مخفف &quot;Low-Rank Adaptation&quot; هست. LoRA یک تکنیک موثر برای تنظیم ریز مدل‌های عصبی پیچیده هست که با هدف کاهش هزینه‌ها و افزایش سرعت آموزش مدل ابداع شده .در LoRA، به جای تغییر تمام وزن‌های شبکه عصبی که می‌تواند بسیار پرهزینه و زمان‌بر باشد، فقط یک مجموعه کوچک از پارامترهای موثر به نام adaptorها تنظیم ریز میشن. این adaptorها معمولاً در لایه‌های مخفی شبکه جاسازی میشن و به نوعی به مدل اجازه میدن تا ویژگی‌های مورد نیاز برای انجام یک وظیفه خاص را یاد بگیره، بدون اینکه نیاز به بازآموزی کل مدل باشه.این کار از طریق ایجاد تغییرات در ماتریس وزن‌های مدل به صورت کم‌بعد (low-rank) انجام میشه، که تغییرات کم‌بعد به معنای اینه که تنها تعداد کمی از وزن‌ها تغییر میکنه. این امر به ما اجازه میده که فقط جنبه‌های خاصی از مدل را که بیشترین تأثیر را بر عملکرد وظیفه داره، تنظیم کنیم.در مورد (fine-tuning) در زمینه یادگیری ماشینی به روند ارتقاء یا تطبیق یک مدل پیش‌آموزش دیده (pretrained model) با یک وظیفه خاص گفته میشه. مدل‌های پیش‌آموزش دیده در داده‌های بسیار بزرگی آموزش دیدهن تا الگوهای کلی زبان، تصویر، یا هر نوع دیگری از داده‌ها را یاد بگیرن. اما وقتی صحبت از عملی کردن آن‌ها در یک دامنه یا وظیفه خاص میشه، نیاز است تا مدل‌ها را روی داده‌ها و وظایف مخصوص به آن دامنه آموزش بدیم.درfine-tuning، مدل روی یک مجموعه داده کوچک‌تر و متمرکز روی یک وظیفه یا دامنه خاص آموزش میبینه. این کار به مدل کمک میکنه تا روی الگوها و ویژگی‌های مهم برای آن وظیفه خاص تمرکز کنه و در نتیجه، عملکرد بهتری داشته باشه.گام۳:خط لوله‌ی چندین وظیفه‌ی fine-tuningدر اینجا، داده‌های خاص برای هر کار به مدل اضافه میشه و adaptor مربوط به اون کار رو فعال می‌کنیم. اینطوری مدل می‌تونه برای کارهای مختلف، مثل پاسخ به سوالات یا ترجمه، به طور خاص تنظیم بشه و عملکرد بهتری داشته باشه. همه‌ی این adaptorها تو یک محل، یعنی LoRA weights repo، ذخیره می‌شن تا وقتی نیاز بود سریع بتوان به آن‌ها دسترسی پیدا کرد.</description>
                <category>mahsa sanaei</category>
                <author>mahsa sanaei</author>
                <pubDate>Mon, 11 Mar 2024 17:46:59 +0330</pubDate>
            </item>
                    <item>
                <title>فناوری tts یا (text to speech)</title>
                <link>https://virgool.io/@mahsasanaei_ai/%D9%81%D9%86%D8%A7%D9%88%D8%B1%DB%8C-tts-%DB%8C%D8%A7-text-to-speech-d1jvkakwmnoz</link>
                <description>فناوری تبدیل متن به گفتار (TTS) یکی از پیشرفت‌های قابل توجه در حوزه فناوری هست که به ما امکان میده متن‌های نوشتاری را به گفتار صوتی تبدیل کنیم. این تکنولوژی با استفاده از الگوریتم‌های پیشرفته و هوش مصنوعی، صدای انسانی را شبیه‌سازی میکنه تا بتونه متن‌ها را به صورت طبیعی بخونه. نحوه کارکرد TTSفناوری TTS شامل چندین مرحله است که از تجزیه و تحلیل متن آغاز میشه و به تولید صدا ختم میشه:۱. پیش پردازش متن: تبدیل متن به فرمی که توسط سیستم قابل فهم باشه، شامل تبدیل اعداد به کلمات، تشخیص و تبدیل اختصارات و معانی خاص.۲. تجزیه و تحلیل گرامری: شناسایی جملات، کلمات، و واحدهای گفتاری برای تعیین تلفظ صحیح.۳. تبدیل متن به گفتار: استفاده از پایگاه‌داده‌های صوتی و الگوریتم‌های هوش مصنوعی برای تولید گفتار از متن. کاربردهای TTSفناوری TTS در زمینه‌های مختلفی کاربرد داره:۱. کتاب‌های صوتی و مطالعه: امکان دسترسی به کتاب‌ها و مقالات برای افرادی که توانایی خواندن ندارن یا ترجیح میدن به جای خواندن، گوش بدن.۲.ابزارهای کمکی: کمک به افراد دارای معلولیت‌های بینایی یا خواندن با تبدیل متون به گفتار.۳. سیستم‌های ناوبری و دستیارهای صوتی: استفاده در سیستم‌های GPS و دستیارهای صوتی مانند Siri، Google Assistant، و Alexa.۴. آموزش و یادگیری: به عنوان ابزاری برای یادگیری زبان و تقویت مهارت‌های شنیداری. مزایای TTS۱. دسترسی پذیری: افزایش دسترسی به اطلاعات برای همه، به ویژه افراد دارای محدودیت‌های خاص.۲. چندزبانی: پشتیبانی از زبان‌های مختلف، امکان دسترسی جهانی به اطلاعات را فراهم میکنه.۳. راحتی: امکان استفاده از محتوا در حین انجام دیگر فعالیت‌ها، مانند رانندگی یا پیاده‌روی. آینده TTSآینده فناوری TTS رو به رشده، با تمرکز بر بهبود کیفیت و طبیعی بودن صدا. پیشرفت‌ها در هوش مصنوعی و یادگیری عمیق امکان میده تا صداهای تولید شده توسط TTS هرچه بیشتر شبیه به گفتار انسانی واقعی باشن. ،تلاش‌ها برای افزایش تنوع لهجه‌ها و لحن‌ها در جهت ارائه تجربه‌ای شخصی‌تر و جذاب‌تر ادامه داره.</description>
                <category>mahsa sanaei</category>
                <author>mahsa sanaei</author>
                <pubDate>Sun, 18 Feb 2024 14:25:16 +0330</pubDate>
            </item>
                    <item>
                <title>دوره های رایگان هوش مصنوعی</title>
                <link>https://virgool.io/@mahsasanaei_ai/%D8%AF%D9%88%D8%B1%D9%87-%D9%87%D8%A7%DB%8C-%D8%B1%D8%A7%DB%8C%DA%AF%D8%A7%D9%86-%D9%87%D9%88%D8%B4-%D9%85%D8%B5%D9%86%D9%88%D8%B9%DB%8C-ephwbogcu047</link>
                <description>چند دوره کاربردی و مرتبط با حوزه هوش مصنوعی کاملا رایگان➡️ Stanford CS229 by Andrew Ng🌐 About this course (https://www.youtube.com/watch?v=jGwO_UgTS7I)➡️ MIT Linear Algebra🌐 About this course (https://www.youtube.com/watch?v=ZK3O402wf1c&amp;list=PL49CF3715CB9EF31D&amp;index=2)➡️ MIT Intro to Algorithms🌐 About this course (https://www.youtube.com/watch?v=HtSuA80QTyo&amp;list=PLUl4u3cNGP61Oq3tWYp6V_F-5jb5L2iHb)➡️ MIT Applied Probability🌐 About this course (https://www.youtube.com/watch?v=j9WZyLZCBzs&amp;list=PLUl4u3cNGP61MdtwGTqZA0MreSaDybji8)Stanford Databases Stanford Databases🌐 About this course (https://www.youtube.com/watch?v=D-k-h0GuFmE&amp;list=PL9ysvtVnryGpnIj9rcIqNDxakUn6v72Hm)</description>
                <category>mahsa sanaei</category>
                <author>mahsa sanaei</author>
                <pubDate>Thu, 18 Jan 2024 18:34:18 +0330</pubDate>
            </item>
                    <item>
                <title>مدل‌های زبانی بزرگ: دنیای جدیدی از فناوری</title>
                <link>https://virgool.io/@mahsasanaei_ai/%D9%85%D8%AF%D9%84-%D9%87%D8%A7%DB%8C-%D8%B2%D8%A8%D8%A7%D9%86%DB%8C-%D8%A8%D8%B2%D8%B1%DA%AF-%D8%AF%D9%86%DB%8C%D8%A7%DB%8C-%D8%AC%D8%AF%DB%8C%D8%AF%DB%8C-%D8%A7%D8%B2-%D9%81%D9%86%D8%A7%D9%88%D8%B1%DB%8C-aiotkag1wnv3</link>
                <description> مدل‌های زبانی بزرگ: دنیای جدیدی از فناوری چیستی مدل‌های زبانی بزرگتا حالا شده بخوای با یه دستیار مجازی حرف بزنی و اون همه چیز رو بفهمه؟ خوب، این دقیقاً کاریه که مدل‌های زبانی بزرگ مثل GPT (مثلاً GPT-4) انجام می‌دن. این مدل‌ها با استفاده از هوش مصنوعی و یادگیری ماشین، قادرند به زبان انسان صحبت کنن و متونی رو بنویسن که واقعاً شبیه نوشته‌های یه انسان واقعیه. کاربردهای مدل‌های زبانیاین مدل‌ها توی خیلی از کارها می‌تونن کمک کنن. مثلاً:1. پاسخگویی به سوالات: می‌تونی هر سوالی بپرسی و اونا جوابت رو بدن، چه در مورد آب و هوا باشه، چه یه موضوع علمی پیچیده.2. نوشتن متن: داستان، شعر، مقاله، ایمیل، هرچی که بخوای، این مدل‌ها می‌تونن برات بنویسن.3.ترجمه زبان‌ها:می‌تونی متنی رو به یک زبان بنویسی و این مدل‌ها اون رو به زبان دیگه‌ای ترجمه کنن.4.آموزش و یادگیری: این مدل‌ها می‌تونن به عنوان معلم مجازی برای یادگیری زبان‌ها، مهارت‌های برنامه‌نویسی و خیلی چیزهای دیگه عمل کنن.کاربرد های دیگر ۱. تولید خودکار متنمدل‌های زبانی بزرگ می‌تونن به صورت خودکار متون رو تولید کنن. این قابلیت باعث شده که در نگارش مقالات، محتواهای اینترنتی و حتی داستان‌ها بسیار کاربردی باشن. به این ترتیب، می‌تونیم به سرعت و به شکل هوشمندانه محتوای متنی تولید کنیم که شامل مقالات علمی، مطالب وب، داستان‌های خلاقانه و غیره می‌شود. ۲. ترجمه ماشینییکی دیگه از کاربردهای مهم این مدل‌ها ترجمه ماشینیه. با تشخیص الگوها و ساختارهای زبانی مختلف، مدل‌های زبانی بزرگ قادرند متون رو از یک زبان به زبان دیگر ترجمه کنن. این امکان، ترجمه خودکار و فوری متون رو ممکن می‌سازه.۳. پاسخگویی به سوالاتاین مدل‌ها توانایی پاسخگویی منطقی و دقیق به سوالات رو دارن. با آگاهی و دانش گسترده خود، به سوالات مطرح شده با جزئیات و دقت پاسخ می‌دن و نیازهای کاربران رو در بهترین شکل ممکن برآورده می‌کنن. ۴. خلاصه‌سازی متون بلندخلاصه‌سازی متون بلند یکی دیگر از قابلیت‌های این مدل‌هاست. این ویژگی نشان‌دهنده سطح بالای هوشمندی این ربات‌هاست و کمک می‌کنه که از متون بلند، خلاصه‌های مختصر و مفید تولید کنیم. ۵. ایجاد چت‌بات و دستیار مجازیاین مدل‌ها می‌تونن به عنوان چت‌بات یا دستیار مجازی عمل کنن. با قابلیت پاسخگویی خودکار و فوری به سوالات و درخواست‌های کاربران، به ما کمک می‌کنن تا خدمات بهتری رو در اختیار کاربران بگذاریم. ۶. پشتیبانی آنلاینمدل‌های زبانی بزرگ توانایی پاسخ‌گویی خودکار و آنی به سوالات و درخواست‌های مشتریان رو دارن. این ویژگی در پشتیبانی آنلاین بسیار مفید و کاربردی است.اینها تنها بخشی از کاربردهای فراوان مدل‌های زبانی بزرگ مثل GPT هستند که نشون می‌ده چطور این فناوری می‌تونه در جنبه‌های مختلف کمک‌کننده باشه. فراتر از حدوداین مدل‌ها دائماً در حال پیشرفتن و هر روز قابلیت‌ها و کاربردهای جدیدی پیدا می‌کنن. از ساختن هنر تا کمک به پزشکان در تشخیص بیماری‌ها، این مدل‌های زبانی دنیای ما رو متحول می‌کنن. جمع‌بندیمدل‌های زبانی بزرگ نه تنها یه ابزار باحال و جذاب هستن، بلکه اونا دارن به صورت واقعی جهان ما رو تغییر می‌دن. با هوش مصنوعی که توی این مدل‌ها به کار رفته، مرزهای بین انسان و ماشین داره کمرنگ‌تر می‌شه و این فقط شروع ماجراست!---امیدوارم این مقاله به سوالات شما در مورد مدل‌های زبانی بزرگ و کاربردهایشان پاسخ دهد.</description>
                <category>mahsa sanaei</category>
                <author>mahsa sanaei</author>
                <pubDate>Wed, 17 Jan 2024 21:14:52 +0330</pubDate>
            </item>
                    <item>
                <title>انتقال راحت دیتاست از کگل</title>
                <link>https://virgool.io/@mahsasanaei_ai/%D8%A7%D9%86%D8%AA%D9%82%D8%A7%D9%84-%D8%B1%D8%A7%D8%AD%D8%AA-%D8%AF%DB%8C%D8%AA%D8%A7%D8%B3%D8%AA-%D8%A7%D8%B2-%DA%A9%DA%AF%D9%84-ci2wd3wuzjaq</link>
                <description>ما خیلی وقتا برای کار از دیتاست های کگل استفاده میکنیم.خب یه راه اینه که اون دیتاست را دانلود کنیم و اگر در محیطی مثل کولب کار میکنیم یکبار هم اپلود اون توی محیط کولب یا گوگل درایو انجام بدیم.این روش هم حجم  اینترنت رو مصرف میکنه و هم اگر حجم دیتاست زیاد باشه  با اوضاع سرعت و کندی کار سختی هست.روش دیگه استفاده از انتقال مستقیم دیتاست به داخل گوگل درایو یا اون محیط کار هست.برای این روش یه ویدیو تهیه کردم و میتونید به راحتی یادبگیرید.فقط لازمه فایل جیسون از اکانت کگلتون بگیرید و ادرس دیتاستتون را داشته باشید.یادتون باشه به مسیر دایرکتوری ها هم دقت کنید.https://www.aparat.com/v/KOaRS</description>
                <category>mahsa sanaei</category>
                <author>mahsa sanaei</author>
                <pubDate>Wed, 13 Dec 2023 17:03:59 +0330</pubDate>
            </item>
                    <item>
                <title>علم داده</title>
                <link>https://virgool.io/@mahsasanaei_ai/%D8%B9%D9%84%D9%85-%D8%AF%D8%A7%D8%AF%D9%87-dwpewrbpigsd</link>
                <description>🔬 سلام دوستان! امروز میخوام درباره یک موضوع جدید صحبت کنم، علم داده.علم داده یعنی چی؟ خب، فکر کنید که هر روز ما با تعداد زیادی اطلاعات روبرو هستیم، مثل پست های اینستاگرام، پیام ها، فیلم ها، وبسایت ها و... حالا علم داده به ما میگه چطور این اطلاعات رو جمع کنیم، تحلیل کنیم و بهشون معنا بدیم. مثلاً میتونیم ببینیم کدوم پست ها بیشتر لایک میشن، یا الگوهای خاصی توی پیام ها پیدا کنیم.💡 کاربردهای علم داده:  علم داده خیلی کاربردیه و توی زندگی روزمره مون تاثیر زیادی داره. برای مثال، در حوزه تجارت، ما میتونیم با استفاده از علم داده الگوهای خرید مشتریان رو تشخیص بدیم و بهترین استراتژی ها رو برای بازاریابی انتخاب کنیم. یا مثلاً توی علم پزشکی، با تحلیل داده ها میشه بیماری ها رو قبل از اینکه از دست بریم، پیش بینی کرد و اقدامات لازم رو انجام داد. حتی داده ها میتونن در بهبود شهرها هم کمک کنن. مثلاً با تجزیه و تحلیل داده های مربوط به ترافیک، میشه بهترین زمان ها برای رفت و آمد در شهر رو پیدا کرد. در دنیای امروز، حجم بزرگی از داده‌ها در دسترس هست، اما این داده‌ها به تنهایی ارزش کمی دارن. علم داده به ما کمک می‌کنه از این داده‌ها برای گرفتن تصمیمات هوشمندانه در حوزه هوش مصنوعی استفاده کنیم.علم داده از الگوریتم‌ها و تکنیک‌های متنوعی مثل یادگیری ماشین و شبکه‌های عصبی استفاده می‌کنه. این الگوریتم‌ها به ما امکان میده تا مدل‌های هوشمندی بسازیم که براساس داده‌ها، پیش‌بینی‌ها و تحلیل‌های دقیقی را ارائه میدن.علم داده در زمینه‌های مختلف هوش مصنوعی، مانند تشخیص الگو، ترجمه ماشینی و پردازش زبان طبیعی مورد استفاده قرار می‌گیره. با استفاده از این رشته، می‌توانیم سیستم‌های هوشمند و تصمیم‌گیری هوشمند در این زمینه‌ها داشته باشیم.علم داده، امکانات منحصربه‌فردی را برای شناسایی الگوها و روابط در داده‌ها فراهم میکنه. این ابزار قدرتمند به ما کمک میکنه تا درک بهتری از داده‌ها و پدیده‌های پشت داده‌ها داشته باشیم.  در نهایت، علم داده در هوش مصنوعی به ما امکان میده تا  عملکرد و کارایی سیستم‌های هوشمند را بهبود بدیم. </description>
                <category>mahsa sanaei</category>
                <author>mahsa sanaei</author>
                <pubDate>Tue, 05 Dec 2023 16:57:26 +0330</pubDate>
            </item>
                    <item>
                <title>چرا پایتون ؟</title>
                <link>https://virgool.io/newdima/%DA%86%D8%B1%D8%A7-%D9%BE%D8%A7%DB%8C%D8%AA%D9%88%D9%86-tyhagmpcrmzv</link>
                <description>پایتون به عنوان یک زبان برنامه‌نویسی، در حوزه هوش مصنوعی به عنوان زبان اصلی و پراستفاده مورد ترجیح قرارمی‌گیره.چند دلیل برای برتری این زبان :سادگی و خوانایی: پایتون با داشتن ساختار ساده و خوانایی بالا، به برنامه‌نویسان امکان میده به راحتی کد بنویسند و آن را مدیریت کنند. این ویژگی بسیار مهم هست چون در پروژه‌های هوش مصنوعی که ممکن است پیچیدگی بالایی داشته باشند، راحتی در نوشتن و خواندن کد امری بی‌نظیره.پایتون به دلیل محبوبیت بالا و جامعه فعال برنامه‌نویسان، از تعداد زیادی منبع آموزشی و مستندات بهره‌منده. این مسئله به برنامه‌نویسان کمک میکنه تا به راحتی در مسیر یادگیری و حل مشکلات خود پیشروی کنن.پایتون با داشتن کتابخانه‌های متعددی مثل Scikit-learn و TensorFlow، به برنامه‌نویسان امکان میده به راحتی الگوریتم‌های یادگیری ماشین را پیاده‌سازی و آزمایش کنن. این کتابخانه‌ها دارای ابزارها و توابعی هستن که فرآیند طراحی و ارزیابی مدل‌های یادگیری ماشین را ساده میکنهمناسب برای تحلیل دادهپایتون کتابخانه هایی برای تجزیه تحلیل داده ها  که رکن اصلی در هوش مصنوعی است را داره.کتابخانه هایی مثل matplotlib وpandasو numpy.اماکن تجزیه و تحلیل و پاکسازی و مصور سازی داده ها را هم دراختیار قرار میدهپشتیبانی از یادگیری ماشین: پایتون با داشتن کتابخانه‌های متعددی مانند Scikit-learn و TensorFlow، به برنامه‌نویسان امکان میده به راحتی الگوریتم‌های یادگیری ماشین را پیاده‌سازی و آزمایش کنن. این کتابخانه‌ها دارای ابزارها و توابعی هستند که فرآیند طراحی و ارزیابی مدل‌های یادگیری ماشین را ساده میکنن.پایتون برای پردازش داده‌های بزرگ نیز مناسب هست، اما باید توجه داشت که عملکرد آن در مقابل زبان‌های دیگری مانند C++ و Java به طور کلی کمی کندتر هست. با این حال، با استفاده از کتابخانه‌های قدرتمندی مانند NumPy و Pandas، می‌توانید داده‌های بزرگ را به طور موثر و بهینه در پایتون پردازش کنید. در ضمن، با استفاده از ابزارهای مانند Dask و PySpark نیز میتونید قابلیت پردازش موازی و توزیع شده را در پایتون برای داده‌های بزرگ فراهم کنید.در عمل، برای پردازش داده‌های بزرگ در پایتون، معمولاً از رویکردهایی مانند خواندن و پردازش داده‌ها به صورت بخش‌های کوچکتر، استفاده میشه. به این ترتیب، میتونید از قابلیت‌های پویایی که پایتون در اختیار داره برای کنترل و پردازش داده‌های بزرگ بهره‌برداری کنید.</description>
                <category>mahsa sanaei</category>
                <author>mahsa sanaei</author>
                <pubDate>Mon, 06 Nov 2023 16:05:20 +0330</pubDate>
            </item>
                    <item>
                <title>هوش مصنوعی چیه</title>
                <link>https://virgool.io/@mahsasanaei_ai/%D9%87%D9%88%D8%B4-%D9%85%D8%B5%D9%86%D9%88%D8%B9%DB%8C-%DA%86%DB%8C%D9%87-eifisctfcmuz</link>
                <description>
سلام. در این پست ، می‌خواییم با هم در مورد مفهوم هوش مصنوعی صحبت کنیم.اصلا هوش مصنوعی چی هست؟هوش مصنوعی علمی هست که کمک میکنه ماشین شبیه به یه انسان عمل کنه.یعنی قابلیتانسانی را برای ماشین پیاده می کنیم.این حوزه شامل مفاهیمی مثل  یادگیری ماشین، یادگیری عمیق و شبکه‌های عصبی مصنوعی و ... هست که در ادامه مهم ترین انها را بررسی میکنیم.یادگیری ماشین به ماشین‌ها امکان میده تا بدون نیاز به کد نویسی صریح، با فهمیدن و تشخیص الگوها و قواعد در دیتا، یادبگیرن کارهایی را انجام بدن. در واقع، ماشین‌ها از طریق یادگیری ماشین قابلیت تطبیق و بهتر شدن خودشون را پیدا می‌کند. یعنی خودشون بفهمند  چه کار کنند.شبکه عصبی روشی است که هوش مصنوعی را به انسان شبیه تر کنه وبراساس ساختار نورون مغز پیاده شده .یک گراف که ورودی داره و دیتا در لایه های درونی پردازش میشه  و منجر به خروجی میشه.یادگیری عمیق بخشی از ماشین لرنینگ هست که بر اساس شبکه عصبی مصنوعی است.در واقع وقتی شبکه عصبی عمیق تر میشه .الگوریتم‌ها و روش‌هایی که بر مبنای شبکه‌های عصبی عمیق قرار می‌گیرن، به ماشین‌ها قدرتی عظیم در تشخیص الگوها و فهمیدن ویژگی‌های پیچیده‌تر از طریق تحلیل داده‌ها میدن.در یادگیری عمیق معماری های زیادی داریم.با استفاده از این مفاهیم و تکنیک‌ها، هوش مصنوعی به ما امکان میده تا ماشین‌ها را به گونه‌ای توسعه بدیم که بتونه الگوها را تشخیص بده، تصمیم‌های هوشمندانه بگیره و عملکردی شبیه به انسان داشته باشه.</description>
                <category>mahsa sanaei</category>
                <author>mahsa sanaei</author>
                <pubDate>Sat, 21 Oct 2023 10:56:37 +0330</pubDate>
            </item>
                    <item>
                <title>Scikit-LLM</title>
                <link>https://virgool.io/@mahsasanaei_ai/scikit-llm-pdqvxus4okvn</link>
                <description>برای آنالیز متن یه پکیج پایتونی به نام Scikit LLm هست که ترکیب LLM مثل OpenAI3 با scikit Learn هست .این کتابخانه شامل امکانات مختلفی است که در زیر به چند مورد مهم ان آنها اشاره شده:طبقه بندی Zero-shot text: این ویژگی به شما اجازه می دهد تا برای طبقه بندی متن حتی برای برچسب هایی که در داده های آموزشی شما وجود ندارد استفاده کنید.دسته بندی Zero-shot text چند برچسبی: این ویژگی همچنین به شما اجازه می دهد تا با استفاده از روش طبقه بندی شات صفر، چندین برچسب به متون اختصاص دهید.بردار سازی متن: این ویژگی متن را به بردارهای عددی یا ویژگی های عددی تبدیل می کند که می توانید برای مدل سازی و تحلیل متن از آنها استفاده کنید.ترجمه متن: با استفاده از این قابلیت می توانید متون را به زبان های دیگر ترجمه کنید.خلاصه سازی متن: این ویژگی به شما امکان می دهد خلاصه سازی متن را انجام دهید و خروجی های خلاصه شده را دریافت کنید.نصباول از همه، قبل از شروع استفاده از Scikit-LLM، باید کلید OpenAI API خود را بدست بیارید تا بتونید به Scikit-LLM منتقل کنید تا پس از نصب پیکربندی شود.2. پس از آن، آن را به این صورت نصب کنید:pip install scikit-llm3.برای تنظیمات به صورت زیر عمل کنیدimport os
from skllm.config import SKLLMConfig
from dotenv import load_dotenv
load_dotenv()
OPENAI_SECRET_KEY = os.environ[&amp;quotOPENAI_SECRET_KEY&amp;quot]
OPENAI_ORG_ID = os.environ[&amp;quotOPENAI_ORG_ID&amp;quot]
SKLLMConfig.set_openai_key(OPENAI_SECRET_KEY)
SKLLMConfig.set_openai_org(OPENAI_ORG_ID)در اموزش های اینده نحوه کار با این کتابخانه را یاد خواهیم گرفت</description>
                <category>mahsa sanaei</category>
                <author>mahsa sanaei</author>
                <pubDate>Tue, 17 Oct 2023 21:24:56 +0330</pubDate>
            </item>
            </channel>
</rss>