Bối cảnh và vấn đề nghiên cứu
Nghiên cứu được thực hiện xuất phát từ thực trạng gia tăng nhanh chóng của các bệnh không lây nhiễm tại Việt Nam như đái tháo đường, bệnh tim mạch và béo phì. Dẫn liệu từ Báo Sức khỏe và Đời sống (cơ quan ngôn luận của Bộ Y tế) năm 2023 chỉ ra rằng người Việt Nam trung bình có tới 10 năm phải sống trong tình trạng bệnh tật, trong đó các bệnh không lây nhiễm chiếm đến 78,6% tổng số ca tử vong. Cùng với đó, khoảng 59% dân số Việt Nam không tiêu thụ đủ lượng rau và trái cây theo khuyến nghị của Tổ chức Y tế Thế giới (WHO). Chế độ dinh dưỡng không hợp lý trở thành nguyên nhân trực tiếp làm suy giảm thể lực và gia tăng tỷ lệ mắc các bệnh mạn tính. Mặt khác, các khảo sát y tế năm 2023 cho thấy nhu cầu tư vấn dinh dưỡng lâm sàng ở bệnh nhân là rất lớn: tỷ lệ mong muốn được tư vấn ở bệnh nhân ung thư phổi đạt 56,7% khi nằm viện, tăng lên 91,5% khi được cán bộ chuyên trách tư vấn và 81,2% khi tiếp cận tại giường bệnh; tại Bệnh viện Bệnh Nhiệt đới Trung ương, nhu cầu này ghi nhận ở mức 90%.
Trước thực tế đó, các công cụ hỗ trợ dinh dưỡng hiện hành vẫn bộc lộ nhiều điểm hạn chế khi vận hành trong bối cảnh thực tiễn tại Việt Nam:
| Hệ thống / Ứng dụng |
Phạm vi & Đơn vị phát triển |
Ưu điểm chính |
Hạn chế ghi nhận |
| Nutrition Diagnosis Expert System |
Hiệp hội Dinh dưỡng Hoa Kỳ (ADA), 2012 |
Cơ sở tri thức chuẩn mực cao, bám sát các hướng dẫn chẩn đoán lâm sàng |
Triển khai riêng cho thị trường Mỹ, yêu cầu tài khoản trả phí, khác biệt lớn về văn hóa ẩm thực và nguồn thực phẩm |
| DANES |
Ấn Độ, ra mắt tháng 12/2017 |
Miễn phí, dễ tiếp cận, thiết kế phù hợp với thói quen ăn uống của người Ấn Độ |
Chưa được công nhận rộng rãi quốc tế, không tương thích với mô hình bệnh lý và thực phẩm tại Việt Nam |
| Nutri Expert |
Viện Nghiên cứu Dinh dưỡng TP.HCM (nghiệm thu 24/05/2023) |
Phù hợp thể trạng người Việt, hỗ trợ tra cứu thành phần, khảo sát khẩu phần, tính BMI |
Nhập liệu thủ công, chưa có khả năng đọc hiểu và phân tích bệnh án tự động, thiếu AI cá nhân hóa sâu |
Để giải quyết khoảng trống công nghệ trên, đề tài xác định 4 nhiệm vụ nghiên cứu cụ thể:
- Xác định và chuẩn bị đề tài: Lựa chọn hướng nghiên cứu, thống nhất tên đề tài và nhận định hướng từ giảng viên hướng dẫn.
- Khảo sát và phân tích lý thuyết: Nghiên cứu thực trạng, tính cấp thiết và hệ thống hóa tài liệu khoa học liên quan đến AI và dinh dưỡng.
- Phát triển hệ thống: Thiết kế và xây dựng 5 module chức năng chính (NutriChat, NutriRecipes, NutriCalorie, NutriMaterial, NutriReminder), bao gồm cả hạ tầng backend và giao diện frontend.
- Kiểm thử và đánh giá: Thử nghiệm chức năng, rà soát lỗi, đo lường độ chính xác của các mô hình học máy và đánh giá hiệu năng hệ thống.
Đối tượng nghiên cứu: Người dùng tiềm năng bao gồm người bệnh có nhu cầu xây dựng chế độ dinh dưỡng lâm sàng chuyên biệt và người thân chịu trách nhiệm chăm sóc, hỗ trợ dinh dưỡng cho người bệnh.
Phạm vi nghiên cứu:
- Nội dung: Tư vấn thực phẩm cá nhân hóa theo hồ sơ bệnh án; ước tính thành phần dinh dưỡng và năng lượng (calo) từ ảnh chụp món ăn; số hóa bệnh án từ hình ảnh chụp; tạo công thức món ăn; theo dõi chỉ số thể chất (BMI, cân nặng, chiều cao) và nhắc nhở thói quen lành mạnh.
- Ngôn ngữ: Tiếng Việt.
- Không gian và thời gian: Đồ án thực hiện tại Bộ môn Trí tuệ Nhân tạo, Khoa Công nghệ Thông tin, Trường Đại học Sư phạm Kỹ thuật TP. Hồ Chí Minh trong thời gian từ tháng 01/2025 đến tháng 06/2025.
Cơ sở lý thuyết và phương pháp
Khóa luận kết hợp lý thuyết thị giác máy tính, xử lý ngôn ngữ tự nhiên và kiến trúc phần mềm di động hiện đại nhằm giải quyết bài toán tư vấn dinh dưỡng:
1. Khung lý thuyết và mô hình AI:
-
Mô hình dự đoán thành phần dinh dưỡng (Food Extractor): Kế thừa hướng tiếp cận kết hợp mạng tích chập và biến đổi thị giác. Kiến trúc gồm mạng nơ-ron tích chập EfficientNet-B0 đóng vai trò mạng xương sống (backbone) để trích xuất đặc trưng cục bộ cấp thấp; khối Swin Transformer (phiên bản Swin-Tiny) với cơ chế cửa sổ trượt (shifted window) nhằm nắm bắt tương quan ngữ cảnh tầm xa; mạng kim tự tháp đặc trưng (Feature Pyramid Network - FPN) thực hiện hợp nhất đa tầng các đặc trưng; cuối cùng kết nối với các lớp tuyến tính (fully connected) để dự đoán đồng thời 4 chỉ số dinh dưỡng: calories, protein, carbohydrates và fat.
-
Hàm mất mát đa tác vụ (Multi-task Loss): Mô hình tối ưu hóa đồng thời 4 mục tiêu hồi quy thông qua hàm:
$$L_{total} = \sum_{t \in {cal, protein, carb, fat}} \left( \frac{1}{2\sigma_t^2} L_t + \ln(1 + \sigma_t^2) \right)$$
Trong đó $\sigma_t$ là tham số học được đại diện cho độ không chắc chắn (uncertainty) của tác vụ $t$; mất mát thành phần $L_t$ được định nghĩa bằng sai số tuyệt đối trung bình chuẩn hóa theo giá trị thực tế:
$$L_t = \frac{\sum_{i=1}^N |y_{t,i} - \hat{y}{t,i}|}{\sum{i=1}^N y_{t,i}}$$
2. Công cụ và công nghệ nền tảng:
- Framework LangChain: Quản lý chuỗi xử lý (Chains), tác tử (Agents), mẫu câu lệnh (Prompt templates) và tích hợp công cụ (Tools).
- Kỹ thuật RAG (Retrieval-Augmented Generation): Kết hợp giữa truy xuất tri thức ngoài từ cơ sở dữ liệu vector và mô hình ngôn ngữ lớn để trả lời các câu hỏi y khoa chính xác, tránh hiện tượng sinh ảo giác thông tin.
- Cơ sở dữ liệu Vector Pinecone: Lưu trữ và tìm kiếm vector tương đồng cho toàn bộ kho tài liệu dinh dưỡng và ngữ cảnh người dùng.
- Mô hình ngôn ngữ lớn (LLM): Gemma và Gemini 2.0 đóng vai trò sinh phản hồi hội thoại và suy luận thực đơn.
- Mô hình thị giác - ngôn ngữ PaliGemma: Đảm nhiệm vai trò nhận diện trực quan món ăn và nhận dạng ký tự quang học (OCR) để bóc tách văn bản từ ảnh hồ sơ bệnh án.
- Mô hình kiểm duyệt Llama Guard: Thiết lập hàng rào an toàn cho nội dung hội thoại y tế.
- Công cụ mở rộng tri thức WebSearch: Tích hợp GoogleSerperAPIWrapper tra cứu thông tin dinh dưỡng thời gian thực qua web.
3. Phương pháp nghiên cứu thực nghiệm và nguồn dữ liệu:
- Dữ liệu hình ảnh dinh dưỡng: Trích xuất và tiền xử lý từ tập dữ liệu công khai Nutrition5k.
- Phân chia tập dữ liệu: Tỷ lệ 80% huấn luyện (training), 10% kiểm định (validation) và 10% kiểm thử độc lập (testing).
- Cấu hình huấn luyện: Kích thước ảnh chuẩn hóa $224 \times 224$ pixels; kích thước batch 32; thuật toán tối ưu Adam; tốc độ học (learning rate) 0.0001; kỹ thuật tính toán hỗn hợp nửa độ chính xác (mixed precision training với
torch.cuda.amp).
- Thang đo đánh giá: Sai số tuyệt đối trung bình (Mean Absolute Error - MAE) trên 4 chỉ số dinh dưỡng; độ lệch hội tụ của Train Loss / Val Loss; thang điểm chuyên gia 5 mức đối với chất lượng hội thoại NutriChat.
Thiết kế và triển khai
Hệ thống được thiết kế theo mô hình phân tầng hướng dịch vụ, kết nối ứng dụng di động phía người dùng với máy chủ xử lý tác vụ trí tuệ nhân tạo:
[Flutter Mobile App] (Frontend - Android)
[FastAPI Server] (Backend Orchestrator)
1. Kiến trúc kỹ thuật và hạ tầng:
- Giao diện người dùng (Frontend): Xây dựng trên nền tảng Flutter đa nền tảng, xuất bản bản dựng cho hệ điều hành Android, quản lý giao diện tương tác thời gian thực và camera chụp ảnh.
- Máy chủ xử lý nghiệp vụ (Backend): Xây dựng bằng framework FastAPI (Python), cung cấp các điểm cuối API bất đồng bộ (asynchronous endpoints) để điều phối luồng dữ liệu, giao tiếp với các mô hình suy luận và cơ sở dữ liệu quan hệ.
- Hạ tầng phần cứng: Tách biệt máy chủ ứng dụng (Backend Server) và máy chủ tính toán mô hình lớn (LLM Server) với tài nguyên tính toán GPU nhằm đáp ứng tốc độ phản hồi.
2. Thiết kế chi tiết các phân hệ chức năng:
- Phân hệ NutriChat: Triển khai quy trình RAG hoàn chỉnh. Khi nhận câu hỏi, hệ thống kích hoạt cơ chế Function Calling để kiểm tra ngữ cảnh câu hỏi, truy xuất các đoạn văn bản tương đồng từ Pinecone, kết hợp hồ sơ bệnh án cá nhân để định hình prompt đưa vào mô hình Gemma/Gemini 2.0. Trong trường hợp thiếu dữ liệu nội bộ, module gọi công cụ GoogleSerperAPIWrapper để bổ sung ngữ cảnh trực tuyến.
- Phân hệ NutriRecipe: Tiếp nhận ảnh chụp đĩa thức ăn hoặc nguyên liệu, sử dụng PaliGemma nhận diện thực phẩm kết hợp mô hình Food Extractor phân tích thành phần định lượng. Sau đó, LLM sinh công thức nấu ăn chi tiết, có kèm cảnh báo tương thích với bệnh lý của người dùng.
- Phân hệ NutriCalo: Tiếp nhận hình ảnh món ăn, chuẩn hóa về kích thước $224 \times 224$ và truyền qua mạng EfficientNet-B0 + Swin-Tiny + FPN để dự báo tự động hàm lượng calo, chất đạm, tinh bột và chất béo trong khẩu phần, ghi nhật ký ăn uống tự động.
- Phân hệ NutriMaterial: Module OCR chuyên biệt sử dụng PaliGemma để bóc tách các trường văn bản từ ảnh chụp bệnh án (chẩn đoán, tiền sử bệnh, chỉ số xét nghiệm) và ánh xạ dữ liệu vào đối tượng có cấu trúc
MedicalRecord, lưu trữ phục vụ cá nhân hóa phản hồi của NutriChat.
- Phân hệ NutriReminder: Quản lý lịch biểu và kích hoạt các thông báo nhắc nhở người dùng uống nước, giờ dùng bữa, cập nhật cân nặng và theo dõi các thói quen sinh hoạt khoa học.
Nội dung chính theo từng chương
Chương 1: Lý thuyết liên quan
Chương 1 hệ thống hóa toàn bộ các nền tảng lý thuyết và công nghệ được sử dụng trong đề tài. Về AI, nhóm nghiên cứu phân tích mô hình dự đoán thành phần dinh dưỡng kết hợp mạng tích chập cục bộ EfficientNet-B0 với mạng biến đổi thị giác Swin Transformer và khối FPN. Về công cụ, chương phân tích chi tiết kiến trúc framework LangChain (gồm Chains, Agents, Tools, Prompt templates và Document Loaders) cùng quy trình Retrieval-Augmented Generation (RAG). Về mặt công nghệ, chương làm rõ vai trò của các mô hình ngôn ngữ lớn Gemma và Gemini 2.0, mô hình thị giác - ngôn ngữ PaliGemma phục vụ nhận dạng văn bản và hình ảnh, cùng giải pháp kiểm duyệt an toàn Llama Guard.
Chương 2: Xây dựng hệ thống ứng dụng
Chương 2 mô tả quá trình thiết kế chi tiết kiến trúc và giải pháp kỹ thuật của hệ thống. Tác giả trình bày các bảng yêu cầu phần cứng tối thiểu và khuyến nghị cho cả ba thành phần: thiết bị di động chạy Flutter, máy chủ Backend Server (FastAPI) và máy chủ suy luận LLM Server. Chương cung cấp sơ đồ thiết kế tổng thể hệ thống, sơ đồ tuần tự và luồng nghiệp vụ chi tiết cho 5 module chức năng: NutriChat, NutriRecipe, NutriCalo, NutriMaterial, NutriReminder. Thiết kế cơ sở dữ liệu được cụ thể hóa bằng sơ đồ quan hệ thực thể (ERD), định nghĩa các thực thể quản trị người dùng, nhật ký dinh dưỡng và lớp đối tượng MedicalRecord phục vụ lưu trữ bệnh án số hóa.
Chương 3: Cài đặt và thử nghiệm
Chương 3 trình bày chi tiết quy trình huấn luyện và đánh giá thực nghiệm các mô hình học máy:
- Mô hình Food Extractor: Thực hiện tiền xử lý dữ liệu Nutrition5k, chuẩn hóa ảnh về $224 \times 224$, chia tỷ lệ 80:10:10. Tiến hành huấn luyện qua 5 epoch với 1372 batch mỗi epoch (tổng thời gian 3 giờ 21 phút 6 giây). Sự biến thiên của hàm mất mát qua từng epoch được ghi nhận chi tiết:
| Thứ tự Epoch |
Training Loss |
Validation Loss |
Thời gian thực thi (giây) |
| Epoch 1 |
3.5682 |
3.4854 |
2929,56 |
| Epoch 2 |
3.4215 |
3.3980 |
2540,12 |
| Epoch 3 |
3.3340 |
3.3150 |
2315,45 |
| Epoch 4 |
3.2871 |
3.2810 |
2180,90 |
| Epoch 5 |
3.2597 |
3.2641 |
2108,34 |
- Kho dữ liệu RAG cho NutriChat: Chuẩn bị dữ liệu tài liệu dinh dưỡng mặc định, làm sạch, tạo vector embedding và lưu trữ phân tầng lên dịch vụ Pinecone; tích hợp cơ chế Function Calling để điều phối câu hỏi.
- Module NutriRecipe & NutriMaterial: Cài đặt pipeline suy luận PaliGemma cho hai tác vụ: nhận diện món ăn sinh công thức nấu ăn và trích xuất thực thể bệnh án.
- Đánh giá NutriChat: Kiểm thử hệ thống hỏi đáp theo hai kịch bản: câu hỏi độc lập và chuỗi hội thoại có lưu vết ngữ cảnh (Chat History) theo thang điểm chất lượng 5 mức.
Chương 4: Kết quả và nhận xét
Chương 4 tổng hợp các kết quả thực nghiệm đạt được từ từng phân hệ:
- Độ chính xác mô hình Food Extractor: Mô hình đạt độ hội tụ ổn định tại epoch thứ 5. Kết quả kiểm thử tính theo sai số tuyệt đối trung bình (MAE) trên 4 thành phần dinh dưỡng:
- Calories: MAE = 0,23
- Protein: MAE = 0,25
- Fat (chất béo): MAE = 0,27
- Carbohydrates (tinh bột): MAE = 0,30
- Đánh giá các phân hệ RAG, NutriRecipe và NutriMaterial: Kho dữ liệu vector trên Pinecone đáp ứng truy xuất ngữ cảnh chính xác cho NutriChat; module NutriRecipe trả lời đầy đủ bước chế biến và cảnh báo y khoa; module NutriMaterial bóc tách chính xác các trường thông tin bệnh án từ ảnh chụp thực tế.
Kết quả và đóng góp
Khóa luận hoàn thành toàn diện các mục tiêu đề ra và đạt được các kết quả cụ thể:
1. Kết quả kỹ thuật và định lượng:
- Xây dựng và huấn luyện thành công mô hình Food Extractor đa tác vụ (kết hợp EfficientNet-B0, Swin-Tiny và FPN). Mô hình hội tụ tốt sau 5 epoch huấn luyện (Train Loss đạt 3,2597; Val Loss đạt 3,2641), không gặp hiện tượng quá khớp (overfitting). Sai số MAE trên tập kiểm thử Nutrition5k dao động từ 0,23 đến 0,30, trong đó độ chính xác cao nhất đạt được ở hai chỉ số Calories (MAE = 0,23) và Protein (MAE = 0,25).
- Triển khai thành công ứng dụng di động hoàn chỉnh bằng Flutter kết hợp máy chủ dịch vụ FastAPI, vận hành đồng bộ 5 module chức năng: NutriChat, NutriRecipe, NutriCalo, NutriMaterial và NutriReminder.
- Xây dựng thành công quy trình RAG kết hợp cơ sở dữ liệu vector Pinecone, công cụ mở rộng GoogleSerperAPIWrapper và mô hình ngôn ngữ lớn (Gemma / Gemini 2.0), cho phép trả lời câu hỏi bám sát hồ sơ bệnh lý cá nhân.
2. Đóng góp của đề tài:
- So với các nghiên cứu trước đây (như NutriVision): Khắc phục hạn chế của việc chỉ nhận diện đơn lẻ bằng cách kết hợp trích xuất đặc trưng sâu (EfficientNet + Swin Transformer + FPN) để dự đoán đồng thời 4 thành phần dinh dưỡng; bổ sung module sinh công thức nấu ăn và cá nhân hóa chế độ ăn cho từng bệnh lý thay vì chỉ trả lời câu hỏi cơ bản.
- So với các hệ thống ứng dụng tại Việt Nam (như Nutri Expert): Bổ sung tính năng phân tích tự động hình ảnh bệnh án bằng mô hình thị giác PaliGemma, thay thế hoàn toàn việc người bệnh phải nhập liệu chỉ số lâm sàng thủ công; tích hợp trợ lý ảo tương tác bằng ngôn ngữ tự nhiên tiếng Việt được kiểm duyệt nội dung an toàn.
- Khắc phục rào cản từ các hệ thống nước ngoài: Giải quyết triệt để rào cản chi phí bản quyền và sự không tương thích về cơ sở dữ liệu thực phẩm của Nutrition Diagnosis Expert System (Mỹ) và DANES (Ấn Độ), cung cấp giải pháp miễn phí và phù hợp với thói quen ăn uống của người Việt Nam.
Hạn chế và hướng nghiên cứu tiếp
Khóa luận ghi nhận các hạn chế kỹ thuật và đề xuất định hướng phát triển:
1. Hạn chế:
- Do giới hạn về tài nguyên tính toán phần cứng, mô hình Food Extractor mới được huấn luyện thử nghiệm trên phiên bản rút gọn của tập dữ liệu Nutrition5k trong 5 epoch, chưa bao phủ hết các món ăn truyền thống đặc thù và đa dạng của Việt Nam.
- Sai số dự đoán thành phần Carbohydrates vẫn ở mức tương đối cao (MAE = 0,30) do sự biến thiên lớn về hình thức và phương pháp chế biến tinh bột trong thực tế.
- Khả năng nhận diện món ăn hiện tại chủ yếu tiếp nhận ảnh chụp ở một góc đơn lẻ, chưa kết hợp trích xuất đồng thời từ nhiều góc chụp (đa góc) để khắc phục triệt để hiện tượng thức ăn bị che khuất hoặc nhiều món xếp chồng lên nhau.
2. Hướng nghiên cứu tiếp:
- Mở rộng tập dữ liệu hình ảnh món ăn đặc thù của Việt Nam, gia tăng số lượng epoch huấn luyện trên hạ tầng máy chủ GPU công suất lớn hơn.
- Xây dựng đồ thị tri thức sức khỏe chuyên sâu (Health Knowledge Graph) về bệnh lý và dinh dưỡng lâm sàng nhằm tối ưu hóa việc liên kết logic giữa tình trạng bệnh và danh mục thực phẩm kiêng kỵ.
- Tích hợp kỹ thuật trích xuất đa góc chụp (multi-view food recognition) nhằm nâng cao độ chính xác khi phân tích các đĩa thức ăn phức tạp.
- Tiếp tục tối ưu hóa thời gian phản hồi (latency) của chuỗi RAG và mô hình LLM khi triển khai trên diện rộng.
Giá trị tham khảo
Tài liệu khóa luận mang lại giá trị học thuật và ứng dụng thực tiễn rõ rệt:
- Đối tượng tham khảo: Sinh viên và học viên cao học thuộc các ngành Công nghệ Thông tin, Khoa học Dữ liệu, Trí tuệ Nhân tạo và Kỹ thuật Phần mềm đang tìm kiếm tài liệu tham khảo cho các đề tài đồ án tốt nghiệp về y tế thông minh (Smart Healthcare) hoặc trợ lý ảo đối thoại.
- Nội dung có giá trị tham khảo cao:
- Quy trình thiết kế kiến trúc học sâu kết hợp giữa mạng tích chập (EfficientNet) và Vision Transformer (Swin Transformer) qua mạng FPN phục vụ bài toán hồi quy đa tác vụ từ hình ảnh.
- Kiến trúc tích hợp hoàn chỉnh hệ thống RAG: từ khâu tiền xử lý tài liệu, embedding lưu trữ lên Pinecone, thiết kế hàm kiểm soát Function Calling, đến kỹ thuật trích xuất OCR bệnh án qua mô hình PaliGemma.
- Bản đặc tả yêu cầu kỹ thuật hạ tầng (phần cứng, phần mềm, bảo mật, hiệu năng) và thiết kế hệ thống tương tác giữa client di động Flutter với API bất đồng bộ FastAPI.
Câu hỏi thường gặp
1. Khóa luận sử dụng kiến trúc học sâu nào để dự đoán thành phần dinh dưỡng từ hình ảnh thực phẩm và đạt độ chính xác ra sao?
Tác giả xây dựng mô hình Food Extractor kết hợp 3 thành phần: EfficientNet-B0 đóng vai trò backbone trích xuất đặc trưng cục bộ, khối Swin Transformer (Swin-Tiny) nắm bắt quan hệ ngữ cảnh tầm xa, và mạng kim tự tháp đặc trưng (FPN) hợp nhất đa tầng. Mô hình được huấn luyện trên tập Nutrition5k qua 5 epoch với hàm mất mát đa tác vụ. Kết quả kiểm thử độc lập cho thấy sai số tuyệt đối trung bình (MAE) đạt: Calories = 0,23; Protein = 0,25; Fat = 0,27; Carbohydrates = 0,30.
2. Làm thế nào hệ thống NutriChat có thể đưa ra lời khuyên dinh dưỡng bám sát tình trạng bệnh lý của từng cá nhân?
NutriChat ứng dụng kỹ thuật Retrieval-Augmented Generation (RAG) được xây dựng trên framework LangChain. Hệ thống liên kết dữ liệu hồ sơ bệnh án (được số hóa từ trước qua module NutriMaterial) với kho tri thức dinh dưỡng lưu trữ dạng vector trên Pinecone. Trước khi sinh câu trả lời bằng LLM (Gemma/Gemini 2.0), cơ chế Function Calling sẽ kiểm tra ngữ cảnh câu hỏi và truy xuất các cảnh báo y khoa liên quan để đưa vào prompt phản hồi.
3. Phân hệ NutriMaterial giải quyết bài toán nhập liệu bệnh án của người bệnh như thế nào?
Thay vì yêu cầu người dùng phải gõ thủ công các thông số xét nghiệm hay bệnh lý phức tạp, NutriMaterial sử dụng mô hình thị giác - ngôn ngữ PaliGemma để thực hiện nhận dạng ký tự quang học (OCR) trực tiếp từ hình ảnh chụp hồ sơ bệnh án. Văn bản sau khi bóc tách được xử lý và định dạng thành đối tượng dữ liệu cấu trúc MedicalRecord để lưu trữ vào hệ thống.
4. Khóa luận sử dụng những công nghệ và framework nào để xây dựng hoàn chỉnh ứng dụng?
Hệ thống sử dụng Flutter để phát triển ứng dụng di động cho hệ điều hành Android; máy chủ backend được xây dựng bằng Python với FastAPI; cơ sở dữ liệu vector sử dụng Pinecone; framework điều phối AI là LangChain; các mô hình trí tuệ nhân tạo gồm EfficientNet-B0, Swin-Tiny, PaliGemma, Gemma, Gemini 2.0 và Llama Guard; công cụ tìm kiếm bổ sung sử dụng GoogleSerperAPIWrapper.
5. Đồ án có điểm cải tiến công nghệ nổi bật nào so với phần mềm Nutri Expert của Viện Nghiên cứu Dinh dưỡng TP.HCM?
Trong khi Nutri Expert chủ yếu hỗ trợ tra cứu thông tin tĩnh và yêu cầu người dùng nhập liệu thủ công các chỉ số BMI, cân nặng, đồ án đã giải quyết được việc đọc và phân tích tự động ảnh chụp bệnh án (qua PaliGemma OCR), tích hợp trợ lý chatbot tương tác trực tiếp bằng ngôn ngữ tự nhiên (RAG kết hợp LLM), và ứng dụng mô hình thị giác máy tính để phân tích định lượng calo và sinh công thức nấu ăn trực tiếp từ ảnh chụp món ăn.
Kết luận
Đồ án tốt nghiệp "Ứng dụng tư vấn dinh dưỡng khoa học cho người bệnh" của hai sinh viên Mai Anh Khoa và Nguyễn Thành Lợi đã giải quyết hiệu quả bài toán tư vấn dinh dưỡng cá nhân hóa dành riêng cho thể trạng và văn hóa ẩm thực của người bệnh tại Việt Nam. Bằng việc kết hợp kiến trúc học sâu lai ghép (EfficientNet-B0, Swin Transformer, FPN) để ước tính dinh dưỡng cùng quy trình RAG dựa trên các mô hình ngôn ngữ lớn (Gemma, PaliGemma) và cơ sở dữ liệu vector Pinecone, nhóm tác giả đã xây dựng thành công một hệ thống phần mềm hoàn chỉnh gồm 5 phân hệ dịch vụ chạy trên nền tảng Flutter và FastAPI. Các kết quả thực nghiệm định lượng về sai số MAE và độ hội tụ mô hình đã chứng minh tính khả thi của giải pháp trong việc số hóa bệnh án, cảnh báo thực phẩm nguy hại và hỗ trợ người bệnh quản lý chế độ ăn uống khoa học.