Bài tập bằng ngôn ngữ nói với Gemma

Việc sử dụng công nghệ trí tuệ nhân tạo (AI) bằng một ngôn ngữ nói cụ thể là nhu cầu thiết yếu đối với nhiều doanh nghiệp để có thể sử dụng công nghệ này một cách hiệu quả. Gia đình mô hình Gemma có một số chức năng đa ngôn ngữ, nhưng việc sử dụng mô hình này bằng các ngôn ngữ khác ngoài tiếng Anh thường cho kết quả không như mong đợi.

May mắn là bạn không cần phải dạy Gemma toàn bộ ngôn ngữ nói để có thể hoàn thành các nhiệm vụ bằng ngôn ngữ đó. Hơn nữa, bạn có thể điều chỉnh các mô hình Gemma để hoàn thành các nhiệm vụ cụ thể bằng một ngôn ngữ với ít dữ liệu và công sức hơn bạn nghĩ. Bằng cách sử dụng khoảng 20 ví dụ về các yêu cầu và câu trả lời dự kiến bằng ngôn ngữ đích của bạn, Gemma có thể giúp bạn giải quyết nhiều vấn đề kinh doanh bằng ngôn ngữ phù hợp nhất với bạn và khách hàng của mình.

Để xem video tổng quan về dự án và cách mở rộng dự án, bao gồm cả thông tin chi tiết từ những người xây dựng dự án, hãy xem video Trợ lý AI sử dụng ngôn ngữ nói để xây dựng bằng AI của Google. Bạn cũng có thể xem lại mã cho dự án này trong kho lưu trữ mã Sách dạy nấu ăn Gemma. Nếu không, bạn có thể bắt đầu mở rộng dự án bằng cách làm theo hướng dẫn sau.

Tổng quan

Hướng dẫn này sẽ hướng dẫn bạn cách thiết lập, chạy và mở rộng ứng dụng tác vụ bằng ngôn ngữ nói được tạo bằng Gemma và Python. Ứng dụng này cung cấp giao diện người dùng web cơ bản mà bạn có thể sửa đổi cho phù hợp với nhu cầu của mình. Ứng dụng này được xây dựng để tạo thư trả lời email của khách hàng cho một tiệm bánh mì Hàn Quốc hư cấu, đồng thời tất cả ngôn ngữ nhập và đầu ra đều được xử lý hoàn toàn bằng tiếng Hàn. Bạn có thể sử dụng mẫu ứng dụng này với bất kỳ ngôn ngữ nào và bất kỳ tác vụ kinh doanh nào sử dụng dữ liệu đầu vào và đầu ra văn bản.

Ảnh chụp màn hình giao diện người dùng của ứng dụng web K-Mail

Hình 1. Giao diện người dùng của dự án, dành cho các yêu cầu qua email về bánh nướng Hàn Quốc

Yêu cầu về phần cứng

Chạy quy trình điều chỉnh này trên máy tính bằng một đơn vị xử lý đồ hoạ (GPU) hoặc một bộ xử lý Tensor (TPU) và đủ bộ nhớ để lưu giữ mô hình hiện có, cùng với dữ liệu điều chỉnh. Để chạy cấu hình điều chỉnh trong dự án này, bạn cần khoảng 16 GB bộ nhớ GPU, khoảng cùng một lượng RAM thông thường và tối thiểu 50 GB dung lượng ổ đĩa.

Bạn có thể chạy phần điều chỉnh mô hình Gemma của hướng dẫn này bằng cách sử dụng môi trường Colab với thời gian chạy GPU T4. Nếu bạn đang xây dựng dự án này trên một thực thể máy ảo của Google Cloud, hãy định cấu hình thực thể theo các yêu cầu sau:

  • Phần cứng GPU: Bạn cần có NVIDIA T4 để chạy dự án này và nên dùng NVIDIA L4 trở lên.
  • Hệ điều hành: Chọn tuỳ chọn Học sâu trên Linux, cụ thể là Máy ảo học sâu có CUDA 12.3 M124 với trình điều khiển phần mềm GPU được cài đặt sẵn.
  • Dung lượng ổ đĩa khởi động: Cung cấp ít nhất 50 GB dung lượng ổ đĩa cho dữ liệu, mô hình và phần mềm hỗ trợ.

Thiết lập dự án

Những hướng dẫn này sẽ hướng dẫn bạn cách chuẩn bị dự án này để phát triển và kiểm thử. Các bước thiết lập chung bao gồm cài đặt phần mềm tiên quyết, sao chép dự án từ kho lưu trữ mã, đặt một số biến môi trường, cài đặt thư viện Python và kiểm thử ứng dụng web.

Cài đặt và định cấu hình

Dự án này sử dụng Python 3 và Môi trường ảo (venv) để quản lý các gói và chạy ứng dụng. Hướng dẫn cài đặt sau đây dành cho máy chủ Linux.

Cách cài đặt phần mềm cần thiết:

  • Cài đặt Python 3 và gói môi trường ảo venv cho Python.

    sudo apt update
    sudo apt install git pip python3-venv
    

Nhân bản dự án

Tải mã dự án xuống máy tính dùng để phát triển. Bạn cần có phần mềm quản lý nguồn git để truy xuất mã nguồn dự án.

Cách tải mã nguồn dự án xuống:

  1. Sao chép kho lưu trữ git bằng lệnh sau.

    git clone https://github.com/google-gemini/gemma-cookbook.git
    
  2. Bạn có thể định cấu hình kho lưu trữ git cục bộ để sử dụng tính năng thanh toán thưa thớt, để bạn chỉ có các tệp cho dự án.

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

Cài đặt thư viện Python

Cài đặt thư viện Python bằng môi trường ảo Python venv đã kích hoạt để quản lý các gói và phần phụ thuộc Python. Hãy nhớ kích hoạt môi trường ảo Python trước khi cài đặt thư viện Python bằng trình cài đặt pip. Để biết thêm thông tin về cách sử dụng môi trường ảo Python, hãy xem tài liệu về Python venv.

Cách cài đặt các thư viện Python:

  1. Trong cửa sổ dòng lệnh, hãy chuyển đến thư mục spoken-language-tasks:

    cd Gemma/spoken-language-tasks/
    
  2. Định cấu hình và kích hoạt môi trường ảo Python (venv) cho dự án này:

    python3 -m venv venv
    source venv/bin/activate
    
  3. Cài đặt các thư viện Python bắt buộc cho dự án này bằng cách sử dụng tập lệnh setup_python.

    ./setup_python.sh
    

Đặt các biến môi trường

Thiết lập một số biến môi trường bắt buộc để cho phép chạy dự án mã này, bao gồm tên người dùng Kaggle và khoá mã thông báo Kaggle. Bạn phải có tài khoản Kaggle và yêu cầu quyền truy cập vào các mô hình Gemma để có thể tải các mô hình đó xuống. Đối với dự án này, bạn thêm Tên người dùng Kaggle và Khoá mã thông báo Kaggle vào 2 tệp .env lần lượt được ứng dụng web và chương trình điều chỉnh đọc.

Cách đặt các biến môi trường:

  1. Lấy tên người dùng Kaggle và khoá mã thông báo bằng cách làm theo hướng dẫn trong tài liệu Kaggle.
  2. Truy cập vào mô hình Gemma bằng cách làm theo hướng dẫn Truy cập vào Gemma trên trang Thiết lập Gemma.
  3. Tạo các tệp biến môi trường cho dự án bằng cách tạo tệp văn bản .env tại từng vị trí sau trong bản sao của dự án:
    k-mail-replier/k_mail_replier/.env
    k-gemma-it/.env
    
  4. Sau khi tạo tệp văn bản .env, hãy thêm các chế độ cài đặt sau vào cả hai tệp:

    KAGGLE_USERNAME=<YOUR_KAGGLE_USERNAME_HERE>
    KAGGLE_KEY=<YOUR_KAGGLE_KEY_HERE>
    

Chạy và kiểm thử ứng dụng

Sau khi hoàn tất quá trình cài đặt và định cấu hình dự án, hãy chạy ứng dụng web để xác nhận rằng bạn đã định cấu hình đúng cách. Bạn nên làm việc này để kiểm tra cơ sở trước khi chỉnh sửa dự án cho mục đích sử dụng của riêng mình.

Cách chạy và kiểm thử dự án:

  1. Trong cửa sổ dòng lệnh, hãy chuyển đến thư mục /k_mail_replier/:

    cd spoken-language-tasks/k-mail-replier/
    
  2. Chạy ứng dụng bằng tập lệnh run_flask_app.sh:

    ./run_flask_app.sh
    
  3. Sau khi khởi động ứng dụng web, mã lập trình sẽ liệt kê một URL mà bạn có thể duyệt xem và kiểm thử. Thông thường, địa chỉ này là:

    http://127.0.0.1:5000/
    
  4. Trong giao diện web, hãy nhấn nút 답변 작성 (Tạo câu trả lời) bên dưới trường đầu vào đầu tiên để tạo câu trả lời từ mô hình.

Phản hồi đầu tiên từ mô hình sau khi bạn chạy ứng dụng sẽ mất nhiều thời gian hơn vì mô hình này phải hoàn tất các bước khởi chạy trong lần chạy đầu tiên. Các yêu cầu và tạo lời nhắc tiếp theo trên một ứng dụng web đang chạy sẽ hoàn tất trong thời gian ngắn hơn.

Mở rộng ứng dụng

Sau khi ứng dụng chạy, bạn có thể mở rộng ứng dụng bằng cách sửa đổi giao diện người dùng và logic nghiệp vụ để ứng dụng hoạt động cho các tác vụ liên quan đến bạn hoặc doanh nghiệp của bạn. Bạn cũng có thể sửa đổi hành vi của mô hình Gemma bằng cách sử dụng mã ứng dụng, bằng cách thay đổi các thành phần của lời nhắc mà ứng dụng gửi đến mô hình AI tạo sinh.

Ứng dụng cung cấp hướng dẫn cho mô hình cùng với dữ liệu đầu vào từ người dùng, một lời nhắc đầy đủ của mô hình. Bạn có thể sửa đổi các hướng dẫn này để thay đổi hành vi của mô hình, chẳng hạn như chỉ định rằng mô hình sẽ trích xuất thông tin từ yêu cầu và đặt thông tin đó vào định dạng dữ liệu có cấu trúc, chẳng hạn như JSON. Một cách đơn giản hơn để thay đổi hành vi của mô hình là cung cấp thêm hướng dẫn hoặc chỉ dẫn cho phản hồi của mô hình, chẳng hạn như chỉ định rằng các câu trả lời được tạo phải được viết bằng giọng điệu lịch sự.

Cách sửa đổi hướng dẫn cho câu lệnh:

  1. Trong dự án spoken-language-task, hãy mở tệp mã k-mail-replier/k_mail_replier/app.py.
  2. Trong mã app.py, hãy thêm các hướng dẫn bổ sung vào hàm get_prompt()::

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

Ví dụ này thêm cụm từ "Vui lòng viết một câu trả lời lịch sự!" vào hướng dẫn bằng tiếng Hàn.

Việc cung cấp thêm lệnh nhắc có thể ảnh hưởng mạnh đến kết quả được tạo và tốn ít công sức hơn để triển khai. Trước tiên, bạn nên thử phương thức này để xem liệu bạn có thể nhận được hành vi mong muốn từ mô hình hay không. Tuy nhiên, việc sử dụng hướng dẫn lời nhắc để sửa đổi hành vi của mô hình Gemma có giới hạn. Cụ thể, giới hạn mã thông báo đầu vào tổng thể của mô hình (8.192 mã thông báo cho Gemma 2) yêu cầu bạn phải cân bằng hướng dẫn cụ thể về lời nhắc với kích thước dữ liệu mới mà bạn cung cấp để luôn nằm trong giới hạn đó.

Hơn nữa, khi bạn muốn Gemma thực hiện các nhiệm vụ bằng một ngôn ngữ khác với tiếng Anh, việc chỉ nhắc mô hình cơ sở có thể sẽ không mang lại kết quả hữu ích một cách đáng tin cậy. Thay vào đó, bạn nên điều chỉnh mô hình bằng các ví dụ bằng ngôn ngữ đích, rồi sau đó cân nhắc sửa đổi hướng dẫn lời nhắc để điều chỉnh nhỏ hơn cho kết quả của mô hình đã điều chỉnh.

Chỉnh mô hình

Bạn nên điều chỉnh mô hình Gemma để mô hình này phản hồi hiệu quả bằng ngôn ngữ nói không phải tiếng Anh. Tuy nhiên, bạn không cần phải nói trôi chảy ngôn ngữ đích để mô hình có thể hoàn thành các nhiệm vụ bằng ngôn ngữ đó. Bạn có thể đạt được chức năng cơ bản bằng ngôn ngữ đích cho một nhiệm vụ với khoảng 20 ví dụ. Phần này của hướng dẫn giải thích cách thiết lập và chạy tính năng tinh chỉnh trên mô hình Gemma cho một tác vụ cụ thể, bằng một ngôn ngữ cụ thể.

Hướng dẫn sau đây giải thích cách thực hiện thao tác tinh chỉnh trên môi trường máy ảo. Tuy nhiên, bạn cũng có thể thực hiện thao tác tinh chỉnh này bằng cách sử dụng sổ tay Colab liên kết cho dự án này.

Yêu cầu về phần cứng

Các yêu cầu tính toán để tinh chỉnh cũng giống như yêu cầu phần cứng đối với phần còn lại của dự án. Bạn có thể chạy thao tác điều chỉnh trong môi trường Colab bằng môi trường thời gian chạy GPU T4 nếu bạn giới hạn mã thông báo đầu vào ở mức 256 và kích thước lô ở mức 1.

Chuẩn bị dữ liệu

Trước khi bắt đầu điều chỉnh mô hình Gemma, bạn phải chuẩn bị dữ liệu để điều chỉnh. Khi điều chỉnh một mô hình cho một tác vụ và ngôn ngữ cụ thể, bạn cần có một tập hợp các ví dụ về yêu cầu và phản hồi bằng ngôn ngữ mục tiêu đó. Những ví dụ này phải cho thấy văn bản yêu cầu mà không có hướng dẫn nào và văn bản phản hồi dự kiến. Để bắt đầu, bạn nên chuẩn bị một tập dữ liệu có khoảng 20 ví dụ. Các ví dụ này phải thể hiện đầy đủ các yêu cầu và phản hồi lý tưởng. Đảm bảo rằng các yêu cầu và phản hồi không lặp lại, vì điều đó có thể khiến phản hồi của mô hình lặp lại và không điều chỉnh phù hợp với các biến thể trong yêu cầu. Bảng sau đây cho thấy một số bản ghi mẫu từ tập dữ liệu của mã ví dụ này:

Yêu cầu Phản hồi
안녕아세요, 2ร 뒤 đáo 있을 아이 생일을 아이 3ji 케이크 3 고객님, 안녕하세요. 2주 뒤 아이 생일을 위한 3호 케이크 2개 주문 문의 감사합니다. 네, 3호 케이크 2개 주문 가능합니다. 아이 생일 케이크인 만큼 더욱 신경 써서 정성껏 준비하겠습니다. 혹시 원하시는 디자인이나 특별한 요청 사항이 있으시면 편하게 말씀해주세요. 픽 Platform 날짜와 시알을 자려리시면 더욱 자세 Skillshop 안내值 도와드리왠니다. 다시 시 이첈 원리 찐사드리며, 아이 생일 진심으 축 chữKếtKếtKết tải! [가게 이름] 드림
안녕하세요, 9월 15일에 있을 아들의 돌잔치를 위해 케이크를 주문하고 싶습니다. - 케이크 종류: 생크림 케이크 - 크기: 2호 - 디자인: 아기자기한 동물 디자인 - 문구: "첫 생일 축하해, 사랑하는 아들!" - 픽업 날짜 및 시간: 9월 14일 오후 3시 가격 및 주문 가능 여부를 알려주시면 감사하겠습니다. 감사합니다. 김민지 드림 안녕하세요, 김민지 님, 9월 15일 아드님의 돌잔치를 위한 케이크 주문 문의 감사합니다. - 생크림 케이크 2호, 아기자기한 동물 디자인, "첫 생일 축하해, 사랑하는 아들!" 문구, 9월 14일 오후 3시 픽업 모두 가능합니다. - 만원입니다. 윸을 원원어시면 연락 biệt세요 밐사어니다. [드림] 드림

Bảng 1. Danh sách một phần của tập dữ liệu điều chỉnh cho trình trả lời email của tiệm bánh Hàn Quốc.

Định dạng và tải dữ liệu

Bạn có thể lưu trữ dữ liệu điều chỉnh ở bất kỳ định dạng nào thuận tiện, bao gồm cả bản ghi cơ sở dữ liệu, tệp JSON, CSV hoặc tệp văn bản thuần tuý, miễn là bạn có phương tiện truy xuất bản ghi bằng mã Python. Để thuận tiện, chương trình điều chỉnh mẫu sẽ lấy bản ghi từ một kho lưu trữ trực tuyến. Trong chương trình xoay ví dụ này, tập dữ liệu điều chỉnh được tải trong mô-đun k-gemma-it/main.py bằng hàm 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",
    )
    ...

Như đã đề cập trước đó, bạn có thể lưu trữ tập dữ liệu ở định dạng thuận tiện, miễn là bạn có thể truy xuất các yêu cầu bằng các phản hồi liên quan và tập hợp các yêu cầu đó thành một chuỗi văn bản được dùng làm bản ghi điều chỉnh.

Tập hợp bản ghi điều chỉnh

Đối với quy trình điều chỉnh thực tế, mỗi yêu cầu và phản hồi được tập hợp thành một chuỗi duy nhất với các hướng dẫn và thẻ lời nhắc để cho biết nội dung của yêu cầu và nội dung của phản hồi. Sau đó, chương trình điều chỉnh này sẽ tạo mã thông báo cho chuỗi để mô hình sử dụng. Bạn có thể xem mã tập hợp bản ghi điều chỉnh trong hàm prepare_tuning_dataset() của mô-đun k-gemma-it/main.py như sau:

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
    ...

Hàm này đọc dữ liệu và định dạng dữ liệu bằng cách thêm thẻ start_of_turnend_of_turn. Đây là định dạng bắt buộc khi cung cấp dữ liệu để điều chỉnh mô hình Gemma. Mã này cũng chèn một prompt_instruction cho mỗi yêu cầu mà bạn nên chỉnh sửa cho phù hợp với ứng dụng của mình.

Tạo trọng số mô hình

Sau khi tải và thiết lập dữ liệu điều chỉnh, bạn có thể chạy chương trình điều chỉnh. Quy trình điều chỉnh cho ứng dụng mẫu này sử dụng thư viện Keras NLP để điều chỉnh mô hình bằng kỹ thuật Low Rank Adaptation (Thích ứng thứ hạng thấp) hoặc LoRA để tạo trọng số mô hình mới. So với việc điều chỉnh độ chính xác đầy đủ, việc sử dụng LoRA hiệu quả hơn đáng kể về bộ nhớ vì nó ước chừng các thay đổi đối với trọng số mô hình. Sau đó, bạn có thể phủ các trọng số ước lượng này lên trọng số của mô hình hiện có để thay đổi hành vi của mô hình.

Cách chạy quá trình điều chỉnh và tính trọng số mới:

  1. Trong cửa sổ dòng lệnh, hãy chuyển đến thư mục k-gemma-it/.

    cd spoken-language-tasks/k-gemma-it/
    
  2. Chạy quy trình điều chỉnh bằng tập lệnh tune_model:

    ./tune_model.sh
    

Quá trình điều chỉnh sẽ mất vài phút tuỳ thuộc vào tài nguyên điện toán có sẵn của bạn. Khi hoàn tất, chương trình điều chỉnh sẽ ghi các tệp trọng số *.h5 mới vào thư mục k-gemma-it/weights theo định dạng sau:

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

Khắc phục sự cố

Nếu việc điều chỉnh không hoàn tất thành công, có thể có hai lý do:

  1. Hết bộ nhớ/hết tài nguyên: Những lỗi này xảy ra khi quy trình điều chỉnh yêu cầu bộ nhớ vượt quá bộ nhớ GPU hoặc bộ nhớ CPU hiện có. Đảm bảo bạn không chạy ứng dụng web trong khi quy trình điều chỉnh đang chạy. Nếu bạn đang điều chỉnh trên một thiết bị có bộ nhớ GPU 16 GB, hãy đảm bảo bạn đã đặt token_limit thành 256batch_size thành 1.
  2. Trình điều khiển GPU chưa được cài đặt hoặc không tương thích với JAX: Quá trình chuyển đổi yêu cầu thiết bị điện toán phải cài đặt trình điều khiển phần cứng tương thích với phiên bản của thư viện JAX. Để biết thêm thông tin, hãy xem tài liệu về cách cài đặt JAX.

Triển khai mô hình đã được điều chỉnh

Quá trình điều chỉnh tạo ra nhiều trọng số dựa trên dữ liệu điều chỉnh và tổng số epoch được đặt trong ứng dụng điều chỉnh. Theo mặc định, chương trình điều chỉnh sẽ tạo 20 tệp trọng số mô hình, mỗi tệp cho một thời gian điều chỉnh. Mỗi khoảng thời gian điều chỉnh kế tiếp sẽ tạo ra các trọng số tái tạo chính xác hơn kết quả của dữ liệu điều chỉnh. Bạn có thể xem tốc độ chính xác cho từng thời gian bắt đầu của hệ thống ở đầu ra đầu cuối của quá trình điều chỉnh như sau:

...
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

Mặc dù bạn muốn tỷ lệ chính xác tương đối cao, khoảng 0,80 đến 0,90, nhưng bạn không muốn tỷ lệ này quá cao hoặc rất gần với 1,00, vì điều đó có nghĩa là các trọng số đã gần như phù hợp quá mức với dữ liệu điều chỉnh. Khi điều đó xảy ra, mô hình sẽ không hoạt động tốt đối với các yêu cầu khác biệt đáng kể so với các ví dụ về điều chỉnh. Theo mặc định, tập lệnh triển khai chọn các trọng số epoch 17, thường có tỷ lệ chính xác vào khoảng 0,90.

Cách triển khai trọng số đã tạo cho ứng dụng web:

  1. Trong cửa sổ dòng lệnh, hãy chuyển đến thư mục k-gemma-it/.

    cd spoken-language-tasks/k-gemma-it/
    
  2. Chạy quy trình điều chỉnh bằng tập lệnh deploy_weights:

    ./deploy_weights.sh
    

Sau khi chạy tập lệnh này, bạn sẽ thấy một tệp *.h5 mới trong thư mục k-mail-replier/k_mail_replier/weights/.

Thử nghiệm mô hình mới

Sau khi triển khai các trọng số mới cho ứng dụng, đã đến lúc thử mô hình mới được điều chỉnh. Bạn có thể thực hiện việc này bằng cách chạy lại ứng dụng web và tạo phản hồi.

Cách chạy và kiểm thử dự án:

  1. Trong cửa sổ dòng lệnh, hãy chuyển đến thư mục /k_mail_replier/.

    cd spoken-language-tasks/k-mail-replier/
    
  2. Chạy ứng dụng bằng tập lệnh run_flask_app.sh:

    ./run_flask_app.sh
    
  3. Sau khi khởi động ứng dụng web, mã chương trình sẽ liệt kê một URL mà bạn có thể duyệt xem và kiểm thử, thường là địa chỉ này:

    http://127.0.0.1:5000/
    
  4. Trong giao diện web, nhấn nút 답변 작성 bên dưới trường nhập đầu tiên để tạo phản hồi từ mô hình.

Giờ đây, bạn đã điều chỉnh và triển khai mô hình Gemma trong một ứng dụng! Thử nghiệm với ứng dụng và cố gắng xác định giới hạn của khả năng tạo mô hình đã điều chỉnh cho tác vụ của bạn. Nếu bạn thấy các trường hợp mà mô hình không hoạt động tốt, hãy cân nhắc thêm một số yêu cầu đó vào danh sách dữ liệu ví dụ về việc điều chỉnh bằng cách thêm yêu cầu và cung cấp phản hồi lý tưởng. Sau đó, hãy chạy lại quy trình điều chỉnh, triển khai lại các trọng số mới và kiểm thử kết quả.

Tài nguyên khác

Để biết thêm thông tin về dự án này, hãy xem kho lưu trữ mã Gemma Cookbook. Nếu bạn cần trợ giúp để xây dựng ứng dụng hoặc muốn cộng tác với các nhà phát triển khác, hãy xem máy chủ Discord của Cộng đồng nhà phát triển Google. Để biết thêm về các dự án Xây dựng với AI của Google, hãy xem danh sách phát video.