وظایف به زبان های گفتاری با Gemma

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

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

برای یک نمای کلی از پروژه و نحوه گسترش آن، از جمله بینش افرادی که آن را می‌سازند، ویدیوی Spoken Language Assistant AI Build with Google AI را بررسی کنید. همچنین می توانید کد این پروژه را در مخزن کد کتاب آشپزی Gemma بررسی کنید. در غیر این صورت، می توانید با استفاده از دستورالعمل های زیر، توسعه پروژه را شروع کنید.

نمای کلی

این آموزش شما را در راه اندازی، اجرا و گسترش یک برنامه کاربردی زبان گفتاری ساخته شده با Gemma و Python راهنمایی می کند. این برنامه یک رابط کاربری وب اولیه را ارائه می دهد که می توانید آن را مطابق با نیازهای خود تغییر دهید. این برنامه برای پاسخ به ایمیل های مشتریان برای یک نانوایی ساختگی کره ای ساخته شده است و تمام ورودی و خروجی زبان به طور کامل به زبان کره ای انجام می شود. شما می توانید از این الگوی کاربردی با هر زبان و هر کار تجاری که از ورودی متن و خروجی متن استفاده می کند استفاده کنید.

تصویری از رابط کاربری برنامه وب K-Mail

شکل 1. رابط کاربری پروژه، برای سوالات ایمیل نانوایی کره ای

الزامات سخت افزاری

این فرآیند تنظیم را روی رایانه‌ای با واحد پردازش گرافیکی (GPU) یا واحد پردازش Tensor (TPU) و حافظه کافی برای نگهداری مدل موجود به‌علاوه داده‌های تنظیم اجرا کنید. برای اجرای تنظیمات تنظیم در این پروژه، به حدود 16 گیگابایت حافظه GPU، تقریباً به همان میزان رم معمولی و حداقل 50 گیگابایت فضای دیسک نیاز دارید.

شما می توانید بخش تنظیم مدل Gemma این آموزش را با استفاده از یک محیط Colab با زمان اجرا T4 GPU اجرا کنید. اگر این پروژه را بر روی یک نمونه Google Cloud VM می‌سازید، نمونه را مطابق با این شرایط پیکربندی کنید:

  • سخت افزار GPU : برای اجرای این پروژه به NVIDIA T4 نیاز است و NVIDIA L4 یا بالاتر توصیه می شود.
  • سیستم عامل : یک گزینه Deep Learning on Linux ، به ویژه Deep Learning VM با CUDA 12.3 M124 با درایورهای نرم افزار GPU از پیش نصب شده را انتخاب کنید.
  • اندازه دیسک راه‌اندازی : حداقل 50 گیگابایت فضای دیسک را برای داده‌ها، مدل‌ها و نرم‌افزارهای پشتیبانی‌کننده خود فراهم کنید.

راه اندازی پروژه

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

نصب و پیکربندی کنید

این پروژه از Python 3 و Virtual Environments ( venv ) برای مدیریت بسته ها و اجرای برنامه استفاده می کند. دستورالعمل‌های نصب زیر برای دستگاه میزبان لینوکس است.

برای نصب نرم افزار مورد نیاز:

  • پایتون 3 و بسته محیط مجازی venv را برای پایتون نصب کنید.

    sudo apt update
    sudo apt install git pip python3-venv
    

پروژه را شبیه سازی کنید

کد پروژه را در کامپیوتر توسعه دهنده خود دانلود کنید. برای بازیابی کد منبع پروژه به نرم افزار کنترل منبع git نیاز دارید.

برای دانلود کد پروژه:

  1. با استفاده از دستور زیر مخزن git را کلون کنید.

    git clone https://github.com/google-gemini/gemma-cookbook.git
    
  2. اختیاری، مخزن git محلی خود را برای استفاده از پرداخت پراکنده پیکربندی کنید، بنابراین فقط فایل های پروژه را در اختیار داشته باشید.

    cd gemma-cookbook/
    git sparse-checkout set Gemma/spoken-language-tasks/
    git sparse-checkout init --cone
    

کتابخانه های پایتون را نصب کنید

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

برای نصب کتابخانه های پایتون:

  1. در پنجره ترمینال، به فهرست spoken-language-tasks بروید:

    cd Gemma/spoken-language-tasks/
    
  2. محیط مجازی پایتون (venv) را برای این پروژه پیکربندی و فعال کنید:

    python3 -m venv venv
    source venv/bin/activate
    
  3. با استفاده از اسکریپت setup_python کتابخانه های پایتون مورد نیاز را برای این پروژه نصب کنید.

    ./setup_python.sh
    

تنظیم متغیرهای محیطی

چند متغیر محیطی را تنظیم کنید که برای اجازه دادن به این پروژه کد مورد نیاز است، از جمله نام کاربری Kaggle و کلید نشانه Kaggle. شما باید یک حساب Kaggle داشته باشید و درخواست دسترسی به مدل های Gemma را داشته باشید تا بتوانید آنها را دانلود کنید. برای این پروژه، نام کاربری Kaggle و Kaggle Token Key خود را به دو فایل .env اضافه می‌کنید که به ترتیب توسط برنامه وب و برنامه تنظیم خوانده می‌شوند.

برای تنظیم متغیرهای محیطی:

  1. نام کاربری Kaggle و کلید رمز خود را با دنبال کردن دستورالعمل‌های موجود در مستندات Kaggle دریافت کنید.
  2. با دنبال کردن دستورالعمل های دسترسی به Gemma در صفحه راه اندازی Gemma ، به مدل Gemma دسترسی پیدا کنید.
  3. با ایجاد یک فایل متنی .env در هر یک از این مکان‌ها در کلون پروژه، فایل‌های متغیر محیطی را برای پروژه ایجاد کنید:
    k-mail-replier/k_mail_replier/.env
    k-gemma-it/.env
    
  4. پس از ایجاد فایل های متنی .env ، تنظیمات زیر را به هر دو فایل اضافه کنید:

    KAGGLE_USERNAME=<YOUR_KAGGLE_USERNAME_HERE>
    KAGGLE_KEY=<YOUR_KAGGLE_KEY_HERE>
    

برنامه را اجرا و تست کنید

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

برای اجرا و تست پروژه:

  1. در پنجره ترمینال، به دایرکتوری /k_mail_replier/ بروید:

    cd spoken-language-tasks/k-mail-replier/
    
  2. برنامه را با استفاده از اسکریپت run_flask_app.sh اجرا کنید:

    ./run_flask_app.sh
    
  3. پس از راه‌اندازی برنامه وب، کد برنامه یک URL را فهرست می‌کند که می‌توانید آن را مرور و آزمایش کنید. به طور معمول، این آدرس:

    http://127.0.0.1:5000/
    
  4. در رابط وب، دکمه 답변 작성 را در زیر اولین فیلد ورودی فشار دهید تا پاسخی از مدل ایجاد شود.

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

برنامه را گسترش دهید

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

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

برای اصلاح دستورالعمل های سریع:

  1. در پروژه talk-language-task، فایل کد k-mail-replier/k_mail_replier/app.py را باز کنید.
  2. در کد app.py ، دستورالعمل های افزودنی را به تابع get_prompt(): اضافه کنید:

    def get_prompt():
        return "발신자에게 요청에 대한 감사를 전하고, 곧 자세한 내용을
            알려드리겠다고 정중하게 답장해 주세요. 정중하게 답변해 주세요!:\n"
    

این مثال عبارت "لطفا یک پاسخ مودبانه بنویسید" را اضافه می کند. به دستورالعمل ها به زبان کره ای

ارائه دستورالعمل فوری اضافی می تواند به شدت بر خروجی تولید شده تأثیر بگذارد و اجرای آن به میزان قابل توجهی تلاش کمتری می کند. ابتدا باید این روش را امتحان کنید تا ببینید آیا می توانید رفتار مورد نظر خود را از مدل دریافت کنید. با این حال، استفاده از دستورالعمل‌های سریع برای اصلاح رفتار مدل جما محدودیت‌هایی دارد. به ویژه، محدودیت کلی رمز ورودی مدل، که 8192 توکن برای Gemma 2 است، از شما می‌خواهد دستورالعمل‌های فوری دقیق را با اندازه داده‌های جدیدی که ارائه می‌دهید متعادل کنید تا زیر آن محدودیت بمانید.

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

مدل را تنظیم کنید

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

دستورالعمل‌های زیر نحوه انجام عملیات تنظیم دقیق در یک محیط VM را توضیح می‌دهند، با این حال، می‌توانید این عملیات تنظیم را با استفاده از نوت بوک Colab مربوط به این پروژه نیز انجام دهید.

الزامات سخت افزاری

الزامات محاسباتی برای تنظیم دقیق مانند الزامات سخت افزاری برای بقیه پروژه است. اگر توکن های ورودی را به 256 و اندازه دسته ای را به 1 محدود کنید، می توانید عملیات تنظیم را در یک محیط Colab با زمان اجرای GPU T4 اجرا کنید.

داده ها را آماده کنید

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

درخواست کنید پاسخ
안녕하세요 ، 2 주 뒤에 아이 아이 생일을 위해 3 호 케이크 3 개를 주문하고 가능할까요 가능할까요؟ 고객님، 안녕하세요. 2주 뒤 아이 생일을 위한 3호 케이크 2개 주문 문의 감사합니다. 네، 3호 케이크 2개 주문 가능합니다. 아이 생일 케이크인 만큼 더욱 신경 써서 정성껏 준비하겠습니다. 혹시 원하시는 디자인이나 특별한 요청 사항이 있으시면 편하게 짐씀해 있으시면 편하게 짐씀해. 픽업 날짜와 시간을 알려주시면 더욱 자세한 안내를 도와드리겠습니다. 다시 한번 문의 감사드리며، 아이 생일 진심으로 축하합니다! [가게 이름] 드림
안녕하세요، 9월 15일에 있을 아들의 돌잔치를 위해 케이크를 주문하공주문하고. - 케이크 종류: 생크림 케이크 - 크기: 2호 - 디자인: 아기자기한 동물 디자 하해، 사랑하는 아들!" - 픽업 날짜 및 시간: 9월 14일 오후 3시 가격 및 주문 가능 여부를 알부를 알려주 . 감사합니다. 김민지 드림 안녕하세요، 김민지 님، 9월 15일 아드님의 돌잔치를 위한 케이크 주월 님의 돌잔치를 위한 케이크 주월 님의 - 생크림 케이크 2호، 아기자기한 동물 디자인، "첫 생일 축하해، 사랑하들!" 문구, 9월 14일 오후 3시 픽업 모두 가능합니다. - 가격은 5만원입니다. 주문을 원하시면 연락 주세요 감사합니다. [가게 이름] 드림

جدول 1. فهرست بخشی از مجموعه داده تنظیم برای پاسخگوی ایمیل نانوایی کره ای.

فرمت داده ها و بارگذاری

می‌توانید داده‌های تنظیم خود را در هر قالبی که مناسب است، از جمله رکوردهای پایگاه داده، فایل‌های JSON، CSV یا فایل‌های متنی ساده ذخیره کنید، تا زمانی که ابزاری برای بازیابی رکوردها با کد پایتون داشته باشید. برای راحتی، برنامه تنظیم نمونه رکوردها را از یک مخزن آنلاین دریافت می کند. در این مثال برنامه گردان، مجموعه داده تنظیم در ماژول k-gemma-it/main.py با استفاده از تابع prepare_tuning_dataset() بارگذاری می شود:

def prepare_tuning_dataset():
    tokenizer = keras_nlp.models.GemmaTokenizer.from_preset(model_id)

    # load data from repository (or local directory)
    from datasets import load_dataset
    ds = load_dataset(
        # Dataset : https://huggingface.co/datasets/bebechien/korean_cake_boss
        "bebechien/korean_cake_boss",
        split="train",
    )
    ...

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

رکوردهای تنظیم را جمع آوری کنید

برای فرآیند تنظیم واقعی، هر درخواست و پاسخ در یک رشته واحد با دستورالعمل‌ها و برچسب‌ها جمع می‌شود تا محتوای درخواست و محتوای پاسخ را نشان دهد. سپس این برنامه تنظیم، رشته را برای مصرف توسط مدل نشانه گذاری می کند. می‌توانید کد مونتاژ یک رکورد تنظیم را در تابع prepare_tuning_dataset() ماژول k-gemma-it/main.py مشاهده کنید:

def prepare_tuning_dataset():
    ...
    prompt_instruction = "다음에 대한 이메일 답장을 작성해줘."

    for x in data:
        item = f"<start_of_turn>user\n{prompt_instruction}\n\"{x['input']}\"<end_of_turn>\n<start_of_turn>model\n{x['output']}<end_of_turn>"
        length = len(tokenizer(item))
        # skip data if the token length is longer than our limit
        if length < token_limit:
            tuning_dataset.append(item)
            if(len(tuning_dataset)>=num_data_limit):
                break
    ...

این تابع در داده‌ها را می‌خواند و با افزودن تگ‌های start_of_turn و end_of_turn که فرمت مورد نیاز هنگام ارائه داده برای تنظیم یک مدل Gemma است، آن‌ها را قالب‌بندی می‌کند. این کد همچنین یک prompt_instruction برای هر درخواست درج می کند که باید آن را مطابق با برنامه خود ویرایش کنید.

وزن مدل را تولید کنید

هنگامی که داده های تنظیم را در جای خود قرار دادید و بارگذاری می کنید، می توانید برنامه تنظیم را اجرا کنید. فرآیند تنظیم برای این برنامه مثال از کتابخانه Keras NLP برای تنظیم مدل با یک تطبیق رتبه پایین یا تکنیک LoRA برای تولید وزن‌های مدل جدید استفاده می‌کند. در مقایسه با تنظیم دقیق کامل، استفاده از LoRA به طور قابل توجهی کارآمدتر حافظه است زیرا تغییرات وزن مدل را تقریب می‌کند. سپس می توانید این وزن های تقریبی را روی وزن های مدل موجود قرار دهید تا رفتار مدل را تغییر دهید.

برای انجام اجرای کوک و محاسبه وزن های جدید:

  1. در یک پنجره ترمینال، به دایرکتوری k-gemma-it/ بروید.

    cd spoken-language-tasks/k-gemma-it/
    
  2. فرآیند تنظیم را با استفاده از اسکریپت tune_model اجرا کنید:

    ./tune_model.sh
    

فرآیند تنظیم بسته به منابع محاسباتی موجود شما چندین دقیقه طول می کشد. هنگامی که با موفقیت کامل شد، برنامه تنظیم فایل‌های وزن *.h5 جدید را در فهرست راهنمای k-gemma-it/weights با فرمت زیر می‌نویسد:

gemma2-2b_k-tuned_4_epoch##.lora.h5

عیب یابی

اگر تنظیم با موفقیت کامل نشد، دو دلیل محتمل وجود دارد:

  1. کمبود حافظه / منابع تمام شده : این خطاها زمانی رخ می دهند که فرآیند تنظیم، حافظه ای را درخواست می کند که از حافظه GPU یا حافظه CPU موجود بیشتر باشد. اطمینان حاصل کنید که در حین اجرای فرآیند تنظیم، برنامه وب را اجرا نمی کنید. اگر روی دستگاهی با 16 گیگابایت حافظه GPU تنظیم می‌کنید، مطمئن شوید که token_limit روی 256 و batch_size روی 1 تنظیم شده است.
  2. درایورهای GPU نصب نشده یا ناسازگار با JAX : فرآیند چرخش مستلزم آن است که دستگاه محاسباتی دارای درایورهای سخت افزاری نصب شده باشد که با نسخه کتابخانه های JAX سازگار باشد. برای جزئیات بیشتر، به مستندات نصب JAX مراجعه کنید.

استقرار مدل تنظیم شده

فرآیند تنظیم وزن های متعددی را بر اساس داده های تنظیم و تعداد کل دوره های تنظیم شده در برنامه تنظیم ایجاد می کند. به طور پیش فرض، برنامه تنظیم 20 فایل وزن مدل، یک فایل برای هر دوره تنظیم تولید می کند. هر دوره تنظیم پی در پی وزنه هایی تولید می کند که نتایج داده های تنظیم را با دقت بیشتری بازتولید می کند. شما می توانید نرخ های دقت برای هر دوره را در خروجی ترمینال فرآیند تنظیم به شرح زیر مشاهده کنید:

...
Epoch 14/20
10/10 ━━━━━━━━━━━━━━━━━━━━ 6s 567ms/step - loss: 0.4026 - sparse_categorical_accuracy: 0.8235
Epoch 15/20
10/10 ━━━━━━━━━━━━━━━━━━━━ 6s 569ms/step - loss: 0.3659 - sparse_categorical_accuracy: 0.8382
Epoch 16/20
10/10 ━━━━━━━━━━━━━━━━━━━━ 6s 571ms/step - loss: 0.3314 - sparse_categorical_accuracy: 0.8538
Epoch 17/20
10/10 ━━━━━━━━━━━━━━━━━━━━ 6s 572ms/step - loss: 0.2996 - sparse_categorical_accuracy: 0.8686
Epoch 18/20
10/10 ━━━━━━━━━━━━━━━━━━━━ 6s 574ms/step - loss: 0.2710 - sparse_categorical_accuracy: 0.8801
Epoch 19/20
10/10 ━━━━━━━━━━━━━━━━━━━━ 6s 575ms/step - loss: 0.2451 - sparse_categorical_accuracy: 0.8903
Epoch 20/20
10/10 ━━━━━━━━━━━━━━━━━━━━ 6s 575ms/step - loss: 0.2212 - sparse_categorical_accuracy: 0.9021

در حالی که می‌خواهید میزان دقت نسبتاً بالا باشد، در حدود 0.80 تا 0.90، نمی‌خواهید این میزان بسیار بالا یا بسیار نزدیک به 1.00 باشد، زیرا این بدان معناست که وزن‌ها به بیش از حد برازش داده‌های تنظیم نزدیک شده‌اند. وقتی این اتفاق می افتد، مدل در درخواست هایی که به طور قابل توجهی با نمونه های تنظیم متفاوت است، عملکرد خوبی ندارد. به‌طور پیش‌فرض، اسکریپت استقرار وزن‌های دوران 17 را انتخاب می‌کند، که معمولاً دارای نرخ دقت حدود 0.90 هستند.

برای استقرار وزن های تولید شده در برنامه وب:

  1. در یک پنجره ترمینال، به دایرکتوری k-gemma-it/ بروید.

    cd spoken-language-tasks/k-gemma-it/
    
  2. فرآیند تنظیم را با استفاده از اسکریپت deploy_weights اجرا کنید:

    ./deploy_weights.sh
    

پس از اجرای این اسکریپت، باید یک فایل *.h5 جدید در دایرکتوری k-mail-replier/k_mail_replier/weights/ ببینید.

مدل جدید را تست کنید

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

برای اجرا و تست پروژه:

  1. در یک پنجره ترمینال، به دایرکتوری /k_mail_replier/ بروید.

    cd spoken-language-tasks/k-mail-replier/
    
  2. برنامه را با استفاده از اسکریپت run_flask_app.sh اجرا کنید:

    ./run_flask_app.sh
    
  3. پس از راه‌اندازی برنامه وب، کد برنامه یک URL را فهرست می‌کند که می‌توانید آن را مرور و آزمایش کنید، معمولاً این آدرس عبارت است از:

    http://127.0.0.1:5000/
    
  4. در رابط وب، دکمه 답변 작성 را در زیر اولین فیلد ورودی فشار دهید تا پاسخی از مدل ایجاد شود.

شما اکنون یک مدل Gemma را در یک برنامه تنظیم و مستقر کرده اید! برنامه را آزمایش کنید و سعی کنید محدودیت های قابلیت تولید مدل تنظیم شده را برای کار خود تعیین کنید. اگر سناریوهایی پیدا کردید که مدل عملکرد خوبی ندارد، با افزودن درخواست و ارائه یک پاسخ ایده‌آل، برخی از آن درخواست‌ها را به فهرست داده‌های نمونه تنظیمی خود اضافه کنید. سپس فرآیند تنظیم را دوباره اجرا کنید، وزنه های جدید را مجدداً مستقر کنید و خروجی را آزمایش کنید.

منابع اضافی

برای اطلاعات بیشتر در مورد این پروژه، به مخزن کد کتاب آشپزی Gemma مراجعه کنید. اگر برای ساختن برنامه به کمک نیاز دارید یا به دنبال همکاری با توسعه دهندگان دیگر هستید، سرور Google Developers Community Discord را بررسی کنید. برای پروژه‌های Build with Google AI، لیست پخش ویدیو را بررسی کنید.