Các mô hình ngôn ngữ lớn trên thiết bị dùng Keras và TensorFlow Lite

1. Trước khi bắt đầu

Một trong những bước đột phá thú vị nhất của công nghệ học máy gần đây là Mô hình ngôn ngữ lớn (LLM). Những công cụ này có thể được dùng để tạo văn bản, dịch ngôn ngữ và trả lời câu hỏi một cách toàn diện và cung cấp nhiều thông tin. Các LLM (chẳng hạn như Google LaMDAPaLM) được huấn luyện dựa trên lượng lớn dữ liệu văn bản. Nhờ đó, chúng có thể học các mẫu thống kê cũng như mối quan hệ giữa các từ và cụm từ. Điều này cho phép họ tạo văn bản giống với văn bản do con người viết và dịch ngôn ngữ với độ chính xác cao.

Các LLM rất lớn về dung lượng lưu trữ và thường tiêu tốn nhiều công suất điện toán để chạy. Điều này có nghĩa là các LLM này thường được triển khai trên đám mây và là vấn đề khá khó khăn với công nghệ Học máy trên thiết bị (ODML) do sức mạnh tính toán hạn chế trên thiết bị di động. Tuy nhiên, bạn có thể chạy các LLM ở quy mô nhỏ hơn (ví dụ: GPT-2) trên một thiết bị Android hiện đại mà vẫn đạt được kết quả ấn tượng.

Dưới đây là bản minh hoạ cách chạy phiên bản mô hình Google PaLM với 1,5 tỷ thông số trên Google Pixel 7 Pro mà không cần tăng tốc độ phát.

PaLM trên Pixel 7 Pro

Trong lớp học lập trình này, bạn sẽ tìm hiểu các kỹ thuật và công cụ để xây dựng một ứng dụng hỗ trợ LLM (sử dụng GPT-2 làm mô hình mẫu) với:

  • KerasNLP để tải một mô hình ngôn ngữ lớn (LLM) được huấn luyện trước
  • KerasNLP để tinh chỉnh một mô hình ngôn ngữ lớn (LLM)
  • TensorFlow Lite nhằm chuyển đổi, tối ưu hoá và triển khai LLM trên Android

Điều kiện tiên quyết

  • Kiến thức trung cấp về Keras và TensorFlow Lite
  • Kiến thức cơ bản về phát triển Android

Kiến thức bạn sẽ học được

  • Cách sử dụng KerasNLP để tải một mô hình ngôn ngữ lớn (LLM) được huấn luyện trước và tinh chỉnh mô hình này
  • Cách định lượng và chuyển đổi mô hình ngôn ngữ lớn (LLM) sang TensorFlow Lite
  • Cách chạy suy luận trên mô hình TensorFlow Lite đã chuyển đổi

Bạn cần có

  • Quyền truy cập vào Colab
  • Phiên bản mới nhất của Android Studio
  • Một thiết bị Android hiện đại có RAM hơn 4 GB

2. Bắt đầu thiết lập

Cách tải mã nguồn cho lớp học lập trình này:

  1. Chuyển đến kho lưu trữ GitHub cho lớp học lập trình này.
  2. Nhấp vào Mã > Tải tệp zip xuống để tải tất cả mã nguồn cho lớp học lập trình này.

hình ảnh kho lưu trữ

  1. Giải nén tệp zip đã tải xuống để giải nén thư mục gốc examples chứa tất cả tài nguyên bạn cần.

3. Chạy ứng dụng khởi đầu

  1. Nhập thư mục examples/lite/examples/generative_ai/android vào Android Studio.
  2. Khởi động Trình mô phỏng Android, sau đó nhấp vào execute.png Run (Chạy) trong trình đơn điều hướng.

Chạy và khám phá ứng dụng

Ứng dụng sẽ chạy trên thiết bị Android của bạn. Ứng dụng này được gọi là "Tự động hoàn tất". Giao diện người dùng khá đơn giản: bạn có thể nhập một số từ gốc vào hộp văn bản rồi nhấn vào Tạo; Sau đó, ứng dụng sẽ chạy dự đoán trên một LLM (mô hình ngôn ngữ lớn) và tạo ra văn bản bổ sung dựa trên dữ liệu đầu vào của bạn.

Hiện tại, nếu bạn nhấn vào Tạo sau khi nhập một số từ thì sẽ không có gì xảy ra. Lý do là mô hình này chưa chạy một mô hình ngôn ngữ lớn (LLM).

ảnh chụp màn hình ứng dụng khởi đầu

4. Chuẩn bị LLM để triển khai trên thiết bị

5. Hoàn thiện ứng dụng Android

Giờ thì bạn đã chuyển đổi mô hình GPT-2 thành TensorFlow Lite, cuối cùng bạn có thể triển khai nó trong ứng dụng.

Chạy ứng dụng

  1. Kéo tệp mô hình autocomplete.tflite đã tải xuống ở bước cuối cùng vào thư mục app/src/main/assets/ trong Android Studio.

thêm mô hình vào Android Studio

  1. Nhấp vào execute.png Run (Chạy) trong trình đơn điều hướng rồi chờ ứng dụng tải.
  2. Nhập một số từ gốc vào trường văn bản, sau đó nhấn vào Tạo.

ảnh chụp màn hình ứng dụng đã hoàn thiện

6. Lưu ý về AI có trách nhiệm

Như đã nêu trong thông báo về OpenAI GPT-2, có một số điểm hạn chế và lưu ý đáng chú ý đối với mô hình GPT-2. Trên thực tế, các LLM hiện nay thường gặp phải một số thách thức phổ biến như ảo tưởng, kết quả phản cảm, công bằng và thiên kiến; bởi vì các mô hình này được huấn luyện dựa trên dữ liệu thực tế, do đó, chúng phản ánh các vấn đề trong thế giới thực.

Lớp học lập trình này chỉ được tạo để minh hoạ cách tạo ứng dụng sử dụng các mô hình ngôn ngữ lớn (LLM) bằng công cụ TensorFlow. Mô hình được tạo trong lớp học lập trình này chỉ dành cho mục đích giáo dục chứ không dành cho mục đích phát hành chính thức.

Để sử dụng quy trình sản xuất LLM, bạn phải lựa chọn kỹ lưỡng các tập dữ liệu huấn luyện và các giải pháp giảm thiểu an toàn toàn diện. Để tìm hiểu thêm về AI có trách nhiệm trong bối cảnh các mô hình ngôn ngữ lớn (LLM), đừng quên xem buổi chia sẻ kỹ thuật về chủ đề Phát triển an toàn và có trách nhiệm bằng mô hình ngôn ngữ tạo sinh tại Google I/O 2023 và tham khảo Bộ công cụ về AI có trách nhiệm.

7. Kết luận

Xin chúc mừng! Bạn đã xây dựng một ứng dụng để tạo văn bản mạch lạc dựa trên hoạt động đầu vào của người dùng bằng cách chạy một Mô hình ngôn ngữ lớn được huấn luyện trước hoàn toàn trên thiết bị!

Tìm hiểu thêm