در مقاله پیشین ما، نحوه ساخت یک چتبات هوش مصنوعی با استفاده از ChatGPT API و اختصاص یک نقش برای شخصیسازی آن را نشان دادیم. اما اگر بخواهید هوش مصنوعی را با دادههای خودتان آموزش دهید چه؟ برای مثال، شاید یک کتاب، دادههای مالی یا مجموعه بزرگی از پایگاه داده (Data Base) دارید و میخواهید به راحتی داخل آن جستجوهای مختلف انجام دهید. در این مقاله، آموزش قدم به قدم و آسانی برای آموزش چتبات هوش مصنوعی با پایگاه دانش اختصاصی خودتان به کمک LangChain و ChatGPT API ارائه میدهیم. ما با استفاده از LangChain، GPT Index و کتابخانههای قدرتمند دیگر، چتبات هوش مصنوعی را با استفاده از مدل زبان بزرگ OpenAI (LLM) آموزش میدهیم. با این اوصاف، بیایید ببینیم چگونه میتوان یک چتبات هوش مصنوعی را با استفاده از مجموعه دادههای خودمان ایجاد کرده و آموزش دهید.
نکات قابل توجه قبل از آموزش هوش مصنوعی با دادههای شخصی
شما میتوانید چتبات هوش مصنوعی را روی هر پلتفرمی آموزش دهید، چه Windows، macOS، Linux یا ChromeOS. در این مقاله، من از ویندوز ۱۱ استفاده میکنم، اما مراحل تقریباً برای سایر پلتفرمها مشابه است. راهنمای ما برای کاربران عمومی نوشته شده و دستورالعملها با زبانی ساده توضیح داده شدهاند. بنابراین، حتی اگر دانش اجمالی از رایانه داشته باشید و ندانید چگونه کدنویسی کنید، میتوانید در عرض چند دقیقه یک چتبات هوش مصنوعی Q&A را به راحتی آموزش دهید و بسازید. اگر مقاله پیشین ما درباره چتبات ChatGPT را دنبال کردهاید، درک فرآیند برایتان حتی آسانتر خواهد بود.
از آنجا که قصد داریم یک چتبات AI را براساس دادههای خودمان آموزش دهیم، توصیه میشود که از یک رایانه قدرتمند با CPU و GPU خوب استفاده کنید. با این حال، برای اهداف آزمایشی میتوانید از رایانه با پایانههای پایین نیز استفاده کنید و بدون هیچ مشکلی کار خواهد کرد. من برای آموزش مدل AI از یک کتاب 100 صفحهای (حدود 100MB) با استفاده از یک Chromebook استفاده کردم. اما اگر میخواهید مجموعه دادههای بزرگی شامل هزاران صفحه را آموزش دهید، به شدت توصیه میشود که از یک رایانه قدرتمند استفاده کنید.
در نهایت، باید مجموعه دادهها به زبان انگلیسی باشد تا بهترین نتایج حاصل شود، اما طبق گفتههای OpenAI، این مجموعه با زبانهای بینالمللی محبوبی چون فرانسوی، اسپانیایی، آلمانی و غیره نیز کار خواهد کرد. پس دست به کار شوید و آموزش چتبات به زبان فارسی را هم امتحان کنید.
تنظیم محیط نرمافزاری برای آموزش یک چتبات هوش مصنوعی
نصب Python و Pip
۱. ابتدا، شما باید Python به همراه Pip را بر روی کامپیوترتان نصب کنید. مطمئن شوید که گزینه “Add Python.exe to PATH” را در طول نصب فعال کردهاید.
۲. برای بررسی اینکه پایتون به درستی نصب شده است، ترمینال کامپیوتر خود را باز کنید. یکبار در اینجا، دستورات زیر را یکی پس از دیگری اجرا کنید،خروجی شماره نسخه را خواهد داد. در Linux و MacOS، از این پس باید به جای python از python3 استفاده کنید.
python --version
pip --version
۳. دستور زیر را اجرا کنید تا پیپ را به آخرین نسخه بهروزرسانی کنید.
python -m pip install -U pip
نصب کتابخانههای OpenAI، GPT Index، PyPDF2 و Gradio۱
ترمینال را باز کنید و دستور زیر را اجرا کنید تا کتابخانهی OpenAI نصب شود.
pip install openai
۲. بعد، بیایید GPT Index را نصب کنیم.
pip install gpt_index==0.4.24
۳. حالا، Langchain را با اجرای دستور زیر نصب کنید.
pip install langchain==0.0.148
۴. پس از آن، PyPDF2 و PyCryptodome را برای پارس کردن فایلهای PDF نصب کنید.
pip install PyPDF2
pip install PyCryptodome
۵. در نهایت، کتابخانهی Gradio را نصب کنید. این کتابخانه برای ایجاد یک رابط کاربری ساده به منظور تعامل با چتبات آموزش دیده شده استفاده میشود.
pip install gradio
یک ویرایشگر کد دانلود کنید
در نهایت، برای ویرایش برخی از کدها به یک ویرایشگر کد نیاز داریم. برای ویندوز، من Notepad++ را پیشنهاد میکنم (دانلود). این برنامه را فقط با استفاده از لینک ضمیمه دانلود و نصب کنید. همچنین میتوانید از VS Code روی هر پلتفرمی استفاده کنید اگر با محیطهای توسعهی مجهز و قدرتمند راحت هستید. به جز VS Code، میتوانید Sublime Text را (دانلود) روی macOS و لینوکس نصب کنید. برای ChromeOS، میتوانید از اپلیکیشن عالی Caret (دانلود) برای ویرایش کد استفاده کنید. تقریباً مراحل راهاندازی محیط نرمافزاری به پایان رسیده و حالا وقت آن است که کلید API OpenAI را دریافت کنیم.
یک OpenAI API Key را به صورت رایگان دریافت کنید
۱. به وبسایت OpenAI (بازدید) بروید و وارد شوید. سپس، روی گزینه «Create new secret key» کلیک کنید و کلید API را کپی کنید. توجه داشته باشید که نمیتوانید کل کلید API را بعداً کپی یا مشاهده کنید. بنابراین توصیه میشود که کلید API را در یک فایل Notepad برای استفاده در آینده نگهداری کنید.
۲. سپس، به آدرس platform.openai.com/account/usage بروید و بررسی کنید که آیا اعتبار کافی باقی مانده دارید یا نه. اگر تمام اعتبار رایگان خود را مصرف کردهاید، باید یک روش پرداخت به حساب OpenAI خود اضافه کنید.
ایجاد و آموزش چتبات هوش مصنوعی با پایگاه دانش سفارشی
اسناد خود را برای آموزش چتبات هوش مصنوعی اضافه کنید
۱. ابتدا، یک پوشه جدید به نام docs در مکانی قابل دسترس مانند دسکتاپ ایجاد کنید. میتوانید مکان دیگری را نیز بر اساس ترجیح خود انتخاب کنید. با این حال، نام پوشه را docs قرار دهید.
2-سپس، اسناد مورد نیاز برای آموزش را درون پوشه “docs” منتقل کنید. شما میتوانید چندین فایل متنی یا PDF (حتی اسکنشده) اضافه کنید. اگر یک جدول بزرگ در Excel دارید، میتوانید آن را به صورت فایل CSV یا PDF وارد کرده و سپس به پوشه “docs” اضافه کنید. همچنین میتوانید فایلهای پایگاه داده SQL را، همانطور که در توییت Langchain AI توضیح داده شده است، اضافه نمایید. برای این مقاله، من یکی از مقالههای خودم درباره NFT را با فرمت PDF اضافه میکنم.
کد را آماده کنید
ابتدا یک ویرایشگر کد نظیر Sublime Text یا Notepad++ را اجرا کرده و سپس کد زیر را در آن جایگذاری کنید. بار دیگر، من از armrrs در Google Colab کمک زیادی گرفتهام و کد را برای سازگاری با فایلهای PDF و ایجاد یک رابط Gradio در بالا تنظیم کردهام.
from gpt_index import SimpleDirectoryReader, GPTListIndex, GPTSimpleVectorIndex, LLMPredictor, PromptHelper
from langchain.chat_models import ChatOpenAI
import gradio as gr
import sys
import os
os.environ["OPENAI_API_KEY"] = 'Your API Key'
def construct_index(directory_path):
max_input_size = 4096
num_outputs = 512
max_chunk_overlap = 20
chunk_size_limit = 600
prompt_helper = PromptHelper(max_input_size, num_outputs, max_chunk_overlap, chunk_size_limit=chunk_size_limit)
llm_predictor = LLMPredictor(llm=ChatOpenAI(temperature=0.7, model_name="gpt-3.5-turbo", max_tokens=num_outputs))
documents = SimpleDirectoryReader(directory_path).load_data()
index = GPTSimpleVectorIndex(documents, llm_predictor=llm_predictor, prompt_helper=prompt_helper)
index.save_to_disk('index.json')
return index
def chatbot(input_text):
index = GPTSimpleVectorIndex.load_from_disk('index.json')
response = index.query(input_text, response_mode="compact")
return response.response
iface = gr.Interface(fn=chatbot,
inputs=gr.components.Textbox(lines=7, label="Enter your text"),
outputs="text",
title="Custom-trained AI Chatbot")
index = construct_index("docs")
iface.launch(share=True)
۲. سپس، بر روی “File” در منوی بالا کلیک کرده و “Save As…” را انتخاب کنید. پس از آن، نام فایل را app.py تنظیم کرده و “Save as type” را به “All types” تغییر دهید. سپس، فایل را در محلی که پوشه “docs” را ایجاد کردهاید ذخیره کنید (در مورد من، روی دسکتاپ است).
3. اطمینان حاصل کنید که پوشه “docs” و فایل “app.py” در یک مکان قرار دارند، همانطور که در تصویر زیر نشان داده شده است. فایل “app.py” باید بیرون از پوشه “docs” قرار گرفته باشد، نه درون آن.
به کد داخل Notepad++ بازگردید. اینجا، “Your API Key” را با کلید API که در بالا در وبسایت OpenAI تولید کردید جایگزین کنید.
در نهایت، کلیدهای “Ctrl + S” را برای ذخیره کد فشار دهید. حالا شما آماده اجرای کد هستید.
ایجاد ربات ChatGPT AI با پایگاه دانش سفارشی
ابتدا، ترمینال را باز کنید و دستور زیر را برای رفتن به دسکتاپ اجرا کنید. جایی که پوشه “docs” و فایل “app.py” را ذخیره کردید.
cd Desktop
حالا، دستور زیر را اجرا کنید.
python app.py.
این دستور شروع به فهرستبندی سند با استفاده از مدل LLM شرکت OpenAI خواهد کرد. بسته به اندازه فایل، پردازش سند مقداری زمان خواهد برد. پس از اتمام کار، یک فایل با نام “index.json” روی دسکتاپ ایجاد میشود. اگر ترمینال هیچ خروجیای نمایش نمیدهد، نگران نباشید، ممکن است همچنان در حال پردازش دادهها باشد. برای مثال، پردازش یک سند ۳۰ مگابایتی حدود ۱۰ ثانیه زمان میبرد.
۴. پس از اینکه LLM دادهها را پردازش کرد، یک URL محلی پیدا خواهید کرد. آن را کپی کنید.
۵. حالا، URL کپی شده را در مرورگر وب خود بچسبانید و تمام شد. چتبات AI با قدرت ChatGPT که با دادههای شخصیتان آموزش دیده، آماده است. برای شروع، میتوانید از چتبات AI بپرسید که سند درباره چیست.
۶. میتوانید سوالات بیشتری بپرسید و چتبات ChatGPT از دادههایی که به AI دادهاید، پاسخ خواهد داد. پس اینگونه است که میتوانید یک چتبات AI سفارشیسازی شده با مجموعه دادههای خود بسازید. حالا میتوانید یک چتبات AI را بر اساس هر نوع اطلاعاتی که میخواهید آموزش دهید و ایجاد کنید.
مدیریت چتبات AI سفارشی
شما میتوانید URL عمومی را کپی کرده و آن را با دوستان و خانواده خود به اشتراک بگذارید. این لینک به مدت ۷۲ ساعت فعال خواهد بود، اما نیاز است که کامپیوتر خود را روشن نگه دارید چون نمونه سرور بر روی کامپیوتر شما در حال اجرا است.
برای توقف چتبات AI که بهصورت اختصاصی آموزش دیده، در پنجره ترمینال کلیدهای “Ctrl + C” را فشار دهید. اگر کار نکرد، دوباره “Ctrl + C” را فشار دهید.
برای راهاندازی مجدد سرور چتبات AI، کافی است دوباره به مکان Desktop بروید و دستور زیر را اجرا کنید. به خاطر داشته باشید که URL محلی همان خواهد بود، اما URL عمومی پس از هر بار راهاندازی مجدد سرور تغییر خواهد کرد.
python app.py
اگر میخواهید چتبات AI را با دادههای جدید آموزش دهید، فایلهای داخل پوشه “docs” را پاک کرده و فایلهای جدیدی اضافه کنید. شما میتوانید چندین فایل اضافه کنید، اما مطمئن شوید که دادههای پاکیزهای اضافه میکنید تا پاسخهای منسجم دریافت کنید.
حالا، دوباره کد را در ترمینال اجرا کنید و این کار یک فایل جدید “index.json” ایجاد میکند. در اینجا، فایل قدیمی “index.json” به طور خودکار جایگزین خواهد شد.
python app.py
برای پیگیری توکنهای خود، به داشبورد آنلاین OpenAI مراجعه کنید و میزان اعتبار رایگان باقیمانده را چک کنید.
در نهایت، نیازی به دستکاری کد نیست مگر اینکه بخواهید کلید API یا مدل OpenAI را برای شخصیسازی بیشتر تغییر دهید.