Fabrice AI: The Technical Journey

همانطور که در پست قبلی اشاره کردم، توسعه هوش مصنوعی Fabrice بسیار پیچیده‌تر از حد انتظار بود و من را وادار کرد تا بسیاری از رویکردهای مختلف را بررسی کنم.

رویکرد اولیه: فهرست لاما – جستجوی برداری

اولین تلاش من برای تقویت توانایی های بازیابی Fabrice AI شامل استفاده از Llama Index برای جستجوی برداری بود. مفهوم ساده بود: محتوا را از وبلاگ من بگیرید، آن را به اسناد Langchain تبدیل کنید و سپس آنها را به اسناد Llama تبدیل کنید. این اسناد Llama سپس در یک نمایه برداری ذخیره می‌شوند و من را قادر می‌سازد تا از این فهرست برای اطلاعات مرتبط پرس و جو کنم.

با این حال، هنگامی که شروع به آزمایش سیستم کردم، مشخص شد که این رویکرد نتایجی را که من انتظارش را داشتم را به همراه ندارد. به طور خاص، زمانی که من از سیستم با سؤالات زمینه ای مانند “بزرگترین اشتباهاتی که بنیانگذاران بازار مرتکب می شوند چیست؟” هوش مصنوعی نتوانست پاسخ های معناداری ارائه دهد. به جای بازیابی محتوای ظریفی که می دانستم در داده ها جاسازی شده است، پاسخ های نامربوط یا ناقص را برمی گرداند.

این شکست اولیه باعث شد در رویکردم تجدید نظر کنم. متوجه شدم که صرفاً ذخیره محتوا در یک نمایه برداری کافی نیست. مکانیسم بازیابی مورد نیاز برای درک زمینه و تفاوت های ظریف سوالات مطرح شده. این درک اولین درس از بسیاری از درس هایی بود که تکامل هوش مصنوعی فابریس را شکل داد.

ذخیره سازی دانش: ذخیره سازی و بازیابی اسناد MongoDB

با در نظر گرفتن محدودیت‌های رویکرد Llama Index، در مرحله بعدی ذخیره‌سازی اسناد Llama در MongoDB را بررسی کردم. طرحواره منعطف و ساختار سندمحور MongoDB راه حلی امیدوارکننده برای مدیریت انواع متنوعی از محتوایی که در طول سال ها انباشته کرده بودم به نظر می رسید.

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

این شکست ناامید کننده بود، اما یک درس مهم را نیز نشان داد: روش ذخیره سازی به اندازه استراتژی بازیابی مهم است. من شروع به بررسی گزینه های دیگری کردم، مانند استفاده از MongoDB Atlas برای جستجوهای برداری، که به طور بالقوه می تواند دقت و مقیاس پذیری مورد نیاز من را فراهم کند. با این حال، قبل از متعهد شدن به این جایگزین، می‌خواستم روش‌های دیگری را بررسی کنم تا تعیین کنم که آیا راه‌حل مؤثرتری وجود دارد یا خیر.

فروشگاه بازیابی و بردار فراداده: جستجوی ویژگی

یکی از راه‌های بعدی که بررسی کردم، استفاده از بازیابی ابرداده همراه با ذخیره‌سازی برداری بود. ایده پشت این رویکرد طبقه بندی مجموعه وسیعی از اطلاعات در هوش مصنوعی Fabrice و سپس بازیابی پاسخ ها بر اساس این دسته بندی ها بود. با ساختاردهی داده ها با ابرداده، امیدوار بودم که توانایی هوش مصنوعی را برای ارائه پاسخ های خاص و هدفمند بهبود بخشم.

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

این رویکرد به من درس ارزشمندی در مورد اهمیت زمینه در هوش مصنوعی داد. صرفاً طبقه بندی اطلاعات کافی نیست. هوش مصنوعی همچنین باید بفهمد که چگونه این دسته‌ها با هم تعامل دارند و با هم همپوشانی دارند تا درک منسجمی از محتوا ایجاد کنند. بدون این عمق درک، حتی پیچیده ترین روش های بازیابی نیز ممکن است کوتاهی کنند.

ساختار دانش: SummaryTreeIndex

همانطور که به اصلاح Fabrice AI ادامه دادم، با ایجاد SummaryTreeIndex آزمایش کردم. هدف این رویکرد خلاصه کردن تمام اسناد در قالب درختی بود که به هوش مصنوعی اجازه می‌داد در میان این خلاصه‌ها حرکت کند و اطلاعات مربوطه را بر اساس ساختار محتوا بازیابی کند.

ایده این بود که با خلاصه کردن اسناد، هوش مصنوعی بتواند به سرعت نکات کلیدی را شناسایی کند و با اطلاعات مختصر و دقیق به سوالات پاسخ دهد. با این حال، این روش نیز با چالش های قابل توجهی روبرو بود. هوش مصنوعی برای ارائه پاسخ‌های معنادار به پرسش‌های پیچیده، مانند «چگونه تصمیم‌های مهم در زندگی بگیریم؟» تلاش می‌کرد. به جای استفاده از محتوای غنی و ظریف ذخیره شده در خلاصه ها، پاسخ های هوش مصنوعی اغلب کم عمق یا ناقص بودند.

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

به همین دلیل است که در نسخه Fabrice AI که در حال حاضر فعال است، من از هوش مصنوعی دارم که ابتدا خلاصه‌ای از پاسخ را قبل از پرداختن به جزئیات بیشتر ارائه می‌کند.

گسترش افق: شاخص نمودار دانش

با شناخت محدودیت‌های روش‌های قبلی، به رویکرد پیچیده‌تری روی آوردم: شاخص نمودار دانش. این رویکرد شامل ساختن یک نمودار دانش از متن بدون ساختار بود، که هوش مصنوعی را قادر می ساخت تا در پرس و جوی مبتنی بر موجودیت شرکت کند. هدف ایجاد درک پویاتر و بهم پیوسته‌تر از محتوا بود که به Fabrice AI اجازه می‌داد به سؤالات پیچیده و مرتبط با زمینه به طور مؤثرتری پاسخ دهد.

علیرغم وعده خود، شاخص نمودار دانش نیز با موانع قابل توجهی روبرو شد. هوش مصنوعی برای تولید نتایج دقیق، به‌ویژه برای پرسش‌هایی که نیاز به درک عمیق زمینه داشتند، تلاش کرد. به عنوان مثال، هنگامی که از شما پرسیده شد “ارزیابی های منصفانه بذر و سری A چیست؟” هوش مصنوعی باز هم نتوانست پاسخ مناسبی را ارائه دهد و مشکل ادغام متن بدون ساختار در یک نمودار دانش منسجم را برجسته می کند.

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

ارزیابی مجدد داده ها: جمینی

پس از چندین شکست، تصمیم گرفتم با استفاده از هوش مصنوعی گوگل، Gemini ، رویکرد متفاوتی در پیش بگیرم. ایده این بود که مجموعه داده‌ها را از فایل‌های JSON-CSV ایجاد کنیم و سپس یک مدل سفارشی LLM را با استفاده از این داده‌ها آموزش دهیم. من امیدوار بودم که با استفاده از داده های ساختاریافته و یک مدل آموزشی قوی، بتوانم بر برخی از چالش هایی که تلاش های قبلی را با مشکل مواجه کرده بود، غلبه کنم.

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

این تجربه من را بر آن داشت تا پتانسیل استفاده از BigQuery را برای ذخیره داده‌های JSON در نظر بگیرم، که بستری مقیاس‌پذیرتر و قابل اعتمادتر برای مدیریت مجموعه داده‌های بزرگ مورد نیاز برای آموزش موثر Fabrice AI فراهم می‌کند.

ترکیب نقاط قوت: اسناد Langchain با Pinecone

علی‌رغم چالش‌هایی که تاکنون با آن مواجه شده‌ام، مصمم بودم راه‌حلی بیابم که به Fabrice AI اجازه دهد به طور مؤثر دانش را ذخیره و بازیابی کند. این عزم من را بر آن داشت تا با اسناد Langchain و Pinecone آزمایش کنم. این رویکرد شامل ایجاد یک فروشگاه برداری Pinecone با استفاده از اسناد Langchain و تعبیه‌های OpenAI و سپس بازیابی اسناد مشابه برتر بر اساس پرس و جو بود.

این روش نویدبخش بود، به ویژه زمانی که پرس و جو شامل عنوان سند بود. به عنوان مثال، وقتی از شما می پرسند “کلید شادی چیست؟” هوش مصنوعی توانست محتوای مربوطه را به طور دقیق بازیابی و خلاصه کند. با این حال، همچنان محدودیت‌هایی وجود داشت، به‌ویژه زمانی که پرس و جو فاقد کلمات کلیدی یا عناوین خاصی بود.

این رویکرد پتانسیل ترکیب فناوری های مختلف را برای افزایش عملکرد هوش مصنوعی نشان داد. با ادغام اسناد Langchain با فروشگاه برداری Pinecone، من توانستم ارتباط و دقت پاسخ‌های هوش مصنوعی را بهبود بخشم، البته با محدودیت‌هایی.

دستیابی به ثبات: GPT Builder OpenAI

پس از بررسی روش‌ها و فناوری‌های مختلف، به Open AI’s GPT Builder روی آوردم تا دانش ذخیره شده در Fabrice AI را تجمیع و اصلاح کنم. با آپلود تمام محتوا در یک پایگاه دانش GPT، هدف من ایجاد یک پلت فرم سازگارتر و قابل اعتمادتر برای بازیابی و تعامل با دانشم بود.

این رویکرد یکی از موفق‌ترین روش‌ها بود، زیرا هوش مصنوعی توانست نتایج بهتری را در طیف وسیعی از پرس‌و‌جوها ارائه دهد. کلید این موفقیت، ادغام تمام دانش در یک سیستم منسجم و منسجم بود که به هوش مصنوعی این امکان را می داد که در هنگام پاسخ دادن به سؤالات، از وسعت کامل محتوا استفاده کند.

همانطور که در پست قبلی من ذکر شد، من نتوانستم آن را در وب سایت خود اجرا کنم و فقط برای مشترکین پولی Chat GPT در دسترس بود که به نظر من بسیار محدود بود. همچنین با وجود اینکه بهتر بود، باز هم کیفیت پاسخ ها را دوست نداشتم و از انتشار آن برای عموم راحت نبودم.

اصلاح نهایی: دستیاران GPT با استفاده از مدل 4o

آخرین قطعه از پازل در توسعه هوش مصنوعی Fabrice با معرفی دستیارهای GPT با استفاده از مدل 4o به دست آمد. این رویکرد نشان دهنده اوج همه چیزهایی بود که در طول پروژه یاد گرفته بودم. با استفاده از یک پایگاه داده برداری و اصلاح دستورات، هدف من دستیابی به بالاترین سطح ممکن از دقت و درک متنی در پاسخ‌های هوش مصنوعی بود.

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

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

نتایج چشمگیر بود. هوش مصنوعی اکنون قادر بود طیف گسترده ای از پرس و جوها را با دقت بالا مدیریت کند، حتی زمانی که سؤالات باز بودند یا نیاز به درک عمیقی از زمینه داشتند. به عنوان مثال، وقتی از شما می پرسند “چگونه مهمترین تصمیمات زندگی خود را بگیریم؟” هوش مصنوعی پاسخی جامع و روشنگر ارائه کرد و از منابع و دیدگاه‌های مختلف برای ارائه پاسخی جامع استفاده کرد.

این موفقیت اوج صدها ساعت کار و آزمایش های بی شمار بود. این نشان داد که با ترکیب مناسب فناوری و اصلاح، می‌توان هوش مصنوعی ایجاد کرد که نه تنها بتواند اطلاعات را به طور موثر ذخیره و بازیابی کند، بلکه به روشی معنادار با آن درگیر شود. توسعه دستیارهای GPT با استفاده از مدل 4o نقطه‌ای بود که Fabrice AI واقعاً خودش را نشان داد و به سطح پیچیدگی و دقتی دست یافت که از ابتدا تصور می‌کردم. سپس GPT Assistants API در وبلاگ من ادغام شد تا به کاربران نهایی اجازه دهد تا با Fabrice AI همانطور که در حال حاضر آن را در وبلاگ می بینید تعامل داشته باشند.

تامل در سفر

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

با نگاهی به آینده، من برای ادامه اصلاح و گسترش هوش مصنوعی Fabrice هیجان‌زده هستم. همانطور که در پست آخر ذکر شد، سوالات پرسیده شده را برای تکمیل پایگاه دانش در جایی که خلاء وجود دارد، مرور خواهم کرد. من همچنین امیدوار هستم که در نهایت یک نسخه تعاملی منتشر کنم که شبیه من باشد و بتوانید با آن صحبت کنید.