هوش مصنوعی فابریس: پیاده سازی فنی فعلی

در آخرین پست، Fabrice AI: The Technical Journey سفری را که برای ساختن Fabrice AI طی یک دایره کامل طی کردیم، توضیح دادم. من با استفاده از Chat GPT 3 و 3.5 شروع کردم. من که از نتایج ناامید شده بودم، سعی کردم از چارچوب Langchain استفاده کنم تا مدل هوش مصنوعی خود را در بالای آن بسازم، قبل از بازگشت به Chat GPT هنگامی که آنها شروع به استفاده از پایگاه داده های برداری کردند و نتایج را به طور گسترده با 4o بهبود بخشیدند.

در اینجا روند فعلی آموزش Fabrice AI آمده است:

  • داده‌های آموزشی (پست‌های وبلاگ، آدرس‌های یوتیوب، آدرس‌های اینترنتی پادکست، آدرس‌های اینترنتی پی‌دی‌اف و نشانی‌های اینترنتی تصویر) در پایگاه داده وردپرس ما ذخیره می‌شوند.
  • داده ها را استخراج می کنیم و ساختار می دهیم.
  • ما داده های ساختار یافته را برای آموزش با استفاده از Assistant API در اختیار Open AI قرار می دهیم.
  • Open AI سپس یک پایگاه داده فروشگاه برداری ایجاد کرده و آن را ذخیره می کند.

در اینجا نمونه ای از داده های ساخت یافته آورده شده است. هر قسمت از محتوا فایل JSON خود را دارد. ما مطمئن می شویم که از محدودیت 32000 توکن تجاوز نکنیم.

{

“id”: “1”،

“تاریخ”: “”،

“لینک”: “https://fabricegrinda.com/”،

“عنوان”: {

“rendered”: “هوش مصنوعی فابریس چیست؟”

  },

“دسته”: “درباره فابریس”،

“featured_media”: “https://fabricegrinda.com/wp-content/uploads/2023/12/About-me.png”،

“other_media”: “”,

“knowledge_type”: “وبلاگ”،

“contentUpdated”: “هوش مصنوعی Fabrice یک نمایش دیجیتالی از افکار فابریس بر اساس پست های وبلاگ او و انتخاب پادکست ها و مصاحبه های رونویسی شده با استفاده از ChatGPT است. با توجه به اینکه بسیاری از رونویسی ها به طور ناقص رونویسی شده اند و وبلاگ فقط یک نمایش محدود از فرد فابریس است. ، ما از نادرستی و اطلاعات از دست رفته عذرخواهی می کنیم، با این وجود، این شروع خوبی است برای دریافت نظرات فابریس در مورد بسیاری از موضوعات، اشاره کنید.”

}

پیاده سازی فنی فعلی است:

  • وب سایت رو به رو مصرف کننده در AWS Amplify میزبانی می شود.
  • ادغام بین سایت عمومی و Open AI از طریق یک لایه API انجام می شود که روی AWS به عنوان یک سرور API Python میزبانی می شود.
  • ما از MongoDB به عنوان یک گزارش برای ذخیره تمام سوالات پرسیده شده توسط عموم، پاسخ های داده شده توسط Chat GPT و URL های منابع استفاده می کنیم.
  • ما از اسکریپت های مختلفی برای ساختار دادن به داده های وبلاگ، یوتیوب و غیره استفاده می کنیم تا برای آموزش به Open AI ارسال کنیم.
  • ما از React-Speech Recognition برای تبدیل درخواست های صوتی به متن استفاده می کنیم.
  • ما همچنین از Google Analytics برای ردیابی ترافیک وب سایت استفاده می کنیم.

توجه به این نکته ضروری است که ما از دو دستیار استفاده می کنیم:

  • یکی برای پاسخ به سوالات
  • یکی برای دریافت URL های ابرداده، URL های وبلاگ که دارای محتوای اصلی برای نمایش منابع در پایین پاسخ ها هستند.

بعدش چی؟

  1. بهبودهای گفتار به متن

مدل Open AI’s Whisper برای گفتار به متن دقیق‌تر از React است. همچنین از چندین زبان خارج از جعبه پشتیبانی می‌کند و در مدیریت گفتار، لهجه‌ها و گویش‌های ترکیبی زبان خوب است. در نتیجه به احتمال زیاد در ماه های آینده به سمت آن حرکت خواهم کرد. این گفت که راه اندازی آن پیچیده تر است بنابراین ممکن است مدتی طول بکشد. شما باید مدل را مدیریت کنید، وابستگی ها را مدیریت کنید (مثلاً پایتون، کتابخانه ها)، و اطمینان حاصل کنید که سخت افزار کافی برای عملکرد کارآمد دارید. همچنین Whisper برای استفاده مستقیم در مرورگرها طراحی نشده است. هنگام ساخت یک برنامه وب، باید یک سرویس پشتیبان ایجاد کنید تا رونویسی را مدیریت کند که پیچیدگی را اضافه می کند.

  • Fabrice AI Avatar

من می خواهم یک آواتار Fabrice AI ایجاد کنم که شبیه من باشد و بتوانید با آن مکالمه داشته باشید. من D-iD را ارزیابی کردم اما متوجه شدم که برای اهدافم بسیار گران است. Eleven Labs فقط صدادار است. Synthesia عالی است اما در حال حاضر ویدیوها را در زمان واقعی ایجاد نمی کند. در پایان تصمیم گرفتم از HeyGen با توجه به قیمت و عملکرد مناسب تر استفاده کنم.

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

  • داشبورد سفارشی

در حال حاضر، من باید یک پرس و جو MongoDB را اجرا کنم تا عصاره سوالات و پاسخ های روز را دریافت کنم. من در حال ساخت یک داشبورد ساده هستم که در آن می توانم استخراج و آمار ساده در مورد تعداد پرس و جوها در هر زبان، تعداد درخواست های گفتار به متن و غیره را دریافت کنم.

  • منابع داده های اضافی

ما فقط نمونه کارها FJ Labs را در Fabrice AI آپلود کردیم. اکنون می توانید بپرسید که آیا یک شرکت بخشی از پورتفولیو است یا خیر. Fabrice AI با توضیح کوتاهی از شرکت و پیوند به وب سایت آن پاسخ می دهد.

با توجه به تعداد سؤالات شخصی Fabrice AI که پاسخی برای آنها نداشت، من وقت گذاشتم تا هر بلندگو را در ویدیوی تولد 50 سالگی خود به صورت دستی برچسب گذاری کنم تا محتوای مورد نیاز را ارائه دهم.

نتیجه

با تمام کارهایی که در دوازده ماه گذشته بر روی همه چیزهای مرتبط با هوش مصنوعی انجام داده ام، به نظر می رسد یک نتیجه جهانی روشن وجود دارد: هرچه بیشتر منتظر بمانید، ارزان تر، آسان تر و بهتر می شود، و احتمال اینکه هوش مصنوعی Open AI ارائه کند بیشتر می شود. آن را در ضمن اگر سوالی داشتید با من در میان بگذارید.

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 هیجان‌زده هستم. همانطور که در پست آخر ذکر شد، سوالات پرسیده شده را برای تکمیل پایگاه دانش در جایی که خلاء وجود دارد، مرور خواهم کرد. من همچنین امیدوار هستم که در نهایت یک نسخه تعاملی منتشر کنم که شبیه من باشد و بتوانید با آن صحبت کنید.

>