Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (2.4 MB, 26 trang )
<span class="text_page_counter">Trang 1</span><div class="page_container" data-page="1">
<b>TRƯỜNG ĐẠI HỌC CẦN THƠ </b>
<b>TRƯỜNG CÔNG NGHỆ THÔNG TIN VÀ TRUYỀN THÔNG </b>
---🖎🕮✍---
<b>BÁO CÁO </b>
<b>THỰC TẬP TỐT NGHIỆP </b>
<b>TRUNG TÂM CNPM TRƯỜNG ĐẠI HỌC CẦN THƠ </b>
<b>ĐỀ TÀI: </b>
<b>XÂY DỰNG ỨNG DỤNG THAM QUAN ẢO TRUNG TÂM HỌC LIỆU ĐHCT </b>
Giảng viên hướng dẫn: TS. GVC. Nguyễn Thanh Hải
</div><span class="text_page_counter">Trang 2</span><div class="page_container" data-page="2"><b>LỜI CẢM ƠN </b>
Với lòng biết ơn sâu sắc, tôi cũng muốn bày tỏ lòng biết ơn đến TS.GVC.Nguyễn Thanh Hải vì việc chỉ ra những sai sót, hướng dẫn giải quyết giúp tơi hồn thành thực tập tốt nhất có thể.
Tôi xin gửi lời cảm ơn đến thầy TS. Cù Vĩnh Lộc và trung tâm CNPM trường Đại học Cần Thơ vì sự tận tâm hướng dẫn và giúp đỡ trong q trình học tập và hồn thành thực tập tại cơ quan.
Tôi cũng biết ơn đến các thầy cô trong bộ môn Hệ thống thông tin, cũng như các thầy cô giảng dạy tại Trường Công nghệ thông tin và Truyền thơng, Đại học Cần Thơ vì sự giúp đỡ trong quá trình học tập và nghiên cứu.
Trải qua quá trình học tập và thực hiện đề tài, tôi luôn nhận được sự động viên từ bạn bè, đồng nghiệp và người thân trong gia đình. Mặc dù còn thiếu kinh nghiệm nghiên cứu và hạn chế về thời gian và thiết bị, nhưng tôi rất mong nhận được sự đóng góp và đánh giá của các thầy cô và các bạn học viên. Tôi xin chân thành cảm ơn!
Xin lưu ý: Phần phân tích thiết kế, chi tiết hệ thống và thiết kế nhân vật, môi trường. Do hệ thống ứng dụng phần hệ thống ban đầu là kết quả của một tập thể nên xin khơng trình bài tại báo cáo thực tập cá nhân của em. Vì ứng dụng là đề tài nghiên cứu khoa học của cả nhóm và em chỉ là một thành viên nên em xin phép trình bày phần em nghiên cứu và thực hiện trong quá trình thực hiện.
<i>Cần Thơ, ngày tháng năm 2024 </i>
Học viên thực hiện
<b>Nguyễn Việt Nga </b>
</div><span class="text_page_counter">Trang 3</span><div class="page_container" data-page="3"><b>PHIẾU ĐÁNH GIÁ BÁO CÁO THỰC TẬP TỐT NGHIỆP THẠC SĨ NGÀNH HTTT (HƯỚNG ỨNG DỤNG) </b>
<b>HỌC KỲ 2 – 2023 – 2024 </b>
<b>(Dùng cho giảng viên chấm báo cáo thực tập) </b>
Họ và tên giảng viên chấm: TS.GVC. Nguyễn Thanh Hải
Họ và tên học viên thực tập: Nguyễn Việt Nga . Mã số HV: M2522009
Đề tài: Xây dựng ứng dụng tham quan ảo trung tâm học liệu ĐHCT
<b>tối đa chấm <sup>Điểm </sup></b>
I.1. Đúng format của khoa (Trang bìa, trang lời cảm ơn, trang mục lục và các nội dung báo cáo). Sử dụng đúng mã và font tiếng Việt (Unicode Times New Roman, Size 13)
- Nếu tham gia xuất bản được bài báo và điểm mục I và II < 10 điểm. Thưởng tối đa 1 điểm tùy theo đóng góp của tác giả.
</div><span class="text_page_counter">Trang 5</span><div class="page_container" data-page="5"><small>2.3.4. Chi tiết các bước cài đặt: ...7 </small>
<small>a. Cài đặt Unity và Package Trung tâm học liệu: ...7 </small>
<small>b. Cài đặt tích hợp LLM vào Unity: ... 11</small>
<small>c. Tạo NPC điều khiển GPT bằng Inworld AI: ... 12</small>
<small>2.4. Các vấn đề còn tồn tại: ... 19</small>
<small>2.5. Hướng phát triển ... 20</small>
<small>TÀI LIỆU THAM KHẢO ... 21 </small>
</div><span class="text_page_counter">Trang 6</span><div class="page_container" data-page="6"><b>1.2. Tầm nhìn và sứ mệnh 1.2.1. Tầm nhìn </b>
Trở thành một đơn vị xuất sắc của ngành Công nghiệp phần mềm Việt Nam, đáp ứng nhu cầu của thị trường trong nước và quốc tế.
<b>1.2.2. Sứ mệnh </b>
Xây dựng một môi trường năng động, sáng tạo vì sự phát triển nền cơng nghiệp phần mềm và dịch vụ công nghệ thông tin vùng Đồng bằng sông Cửu Long và Việt Nam.
<b>1.3. Triết lý kinh doanh </b>
Hợp tác cùng phát triển với Niềm tin - Đam mê - Trách nhiệm
Phát triển nhân viên: Chúng tôi cam kết tạo dựng môi trường làm việc chuyên nghiệp, đồng tâm hiệp lực, phát hiện và bồi dưỡng nguồn nhân lực thông qua các hoạt động chun mơn cao và các khóa đào tạo trong và ngồi nước.
Cải tiến: Chúng tơi ln tin tưởng có phương cách tốt hơn để giải quyết vấn đề. Ở CUSC khơng chỉ có cơng nghệ mà cịn ý tưởng mới, dịch vụ mới để làm cho mọi việc tốt hơn. Chúng tôi không chỉ đáp ứng yêu cầu mà làm tốt nhất có thể để vượt sự mong đợi của khách hàng.
</div><span class="text_page_counter">Trang 7</span><div class="page_container" data-page="7">2
<b>PHẦN 2. NỘI DUNG THỰC TẬP 2.1. Lý do chọn đề tài: </b>
Hiện nay, việc áp dụng công nghệ ảo vào lĩnh vực giảng dạy, tham quan, xây dựng, giải trí, …. đang là xu thế ở các nước. Công nghệ áp dụng việc phác thảo những mơ hình 3D sống động, mang tính trực quan cao. Việc tạo ra một mơ hình trung tâm học liệu với các phịng học, phòng nghiên cứu , thực hành, thư viện, … giúp sinh viên có cái nhìn tổng quan về thư viện, các khoa, trường, giúp sinh viên khái quát đường đi, thích thú hơn khi học, nghiên cứu ở thư viện và trường.
<b>2.2. Các nghiên cứu có liên quan: </b>
Xây dựng ứng dụng tham quan ảo khoa CNTT và TT: Tạo trò chơi 3d ứng dụng bằng Unreal Engine và Blender với tính năng định vị và chỉ đường đến văn phòng khoa CNTT, kèm hiệu ứng âm thanh, mơ phỏng trực quan nhằm phục vụ tìm hiểu tham quan khoa CNTT và TT của trường DHCT.
Ứng dụng Unity3D xây dựng ứng dụng khám phá khoa CNTT và TT (Discovery of CICT): là một ứng dụng trò chơi tham quan ảo khoa CNTT và TT bằng Unity3D và Sketup Pro, trò chơi cho phép người chơi tham quan khoa dưới hình thức minigame và thực hiện nhiệm vụ tìm các phịng học để khám phá khoa.
Ứng dụng tham quan bảo tàng ảo bằng web3D: là ứng dụng web cho phép người dùng tham quan các bảo tàng từ xa bằng cơng nghệ tích hợp thực tế ảo. Ứng dụng sử dụng 3d Tour cho phép người dùng có thể truy cập web và di chuyển, quan sát từ các góc nhìn khác nhau, đi đến các vị trí xung quanh như chính bản thân đang đứng trong bảo tàng.
<b>2.3. Kết quả thực tập </b>
<b>2.3.1. Nội dung công việc được giao </b>
Nghiên cứu kỹ thuật và thực hành:
- Nghiên cứu và thực hành cài đặt hệ thống trung tâm học liệu được xây dựng bằng Unity: Kết quả có thể xem hệ thống tham quan trung tâm học liệu demo trên
- Nghiên cứu và cài đặt Unity [3][4][5][6][7][8][9][10] , 3dsmax, tìm hiểu mơ hình LLM[1][11]
- Mục tiêu hướng tới là từ hệ thống trung tâm học liệu, tích hợp Ai để nâng cao sự tương tác giữa người tham quan với những nhân vật trong trung tâm học liệu một cách sống động và gần gũi thông qua hợp nhất ý thức với ngữ cảnh và những hành động, cử chỉ phù hợp với ngữ cảnh.
<b>2.3.2. Giải pháp thực hiện </b>
- Nghiên cứu Unity
</div><span class="text_page_counter">Trang 8</span><div class="page_container" data-page="8">- Nội dung đề tài:
Tìm hiểu, sưu tầm, chụp hình các sơ dồ, cấu trúc tất cả các phòng chức năng, cảnh quan, kiến trúc bên trong, bên ngoài, vật dụng, con người. Cấu trúc chi tiết kích thước, chất liệu, ánh sáng,...
Thực hiện tham quan, tìm kiếm, tương tác trong trung tâm học liệu
Tích hợp các mơ hình AI ví dụ LLM để thực hiện tương tác giữa người chơi và hệ thống và NPC được sinh động, nhằm cung cấp nhiều chức năng hữu ích, hấp dẫn cho người chơi.
- Phân tích, thiết kế hệ thống ứng dụng ở phần đầu:
Bố trí mơi trường; bố trí nhân vật, NPC ở các tầng trệt, lầu 1, lầu 2.
Lập trình cơ chế di chuyển nhân vật, cơ chế tương tác, tìm kiếm của nhân vật, NPC. Lập trình bật, tắt, nhấn chuột, bàn phím.
Lập trình cơ chế tìm phịng, đường đi, tìm sách
- Phần thực tập tích hợp AI mơ hình LLM, tích hợp chatGPT để thực hiện hỏi đáp sinh động giữa người chơi và NPC trí tuệ nhân tạo.
Cịn ChatGPT thì sao?
</div><span class="text_page_counter">Trang 9</span><div class="page_container" data-page="9">4
Hầu hết mọi người truy cập trang này sẽ quen thuộc với ChatGPT do OpenAI phát hành và sẽ chứng kiến sự tương tác với LLM tự nhiên và mạnh mẽ như thế nào. Vậy thì tại sao khơng trực tiếp sử dụng ChatGPT trong trò chơi?
Sử dụng ChatGPT với chi phí quy mơ lớn. Mỗi tương tác có một khoản chi phí rất nhỏ nhưng khi thực hiện trên quy mơ lớn, đối với hàng nghìn người dùng với hàng nghìn lượt tương tác mỗi người, chi phí này khơng hề nhỏ.
Nó tạo ra sự phụ thuộc. Nếu vì bất kỳ lý do gì ChatGPT ngừng hoạt động hoặc giá tăng cao và nhà phát triển không đủ khả năng chi trả nữa, trò chơi sẽ bị hỏng.
LLM nguồn mở có độ chính xác ngang bằng với ChatGPT. Tơi chưa tìm thấy điểm chuẩn chuẩn hóa nào để chứng minh điều này, nhưng các mơ hình do Meta (Llama) và Mistral phát hành dường như có độ chính xác tương tự như ChatGPT về mặt chất lượng. LLM ngày càng có kích thước nhỏ hơn. Mistral 7B[2] gần đây đánh bại Llama2 13B và vượt trội hơn Llama 34B trên nhiều điểm chuẩn. Các phương pháp lượng tử hóa đẩy xa hơn giới hạn này bằng cách giảm kích thước mơ hình xuống mức có thể sử dụng được trên bất kỳ PC và GPU nào hiện nay. Mistral 7B được lượng tử hóa bằng phương pháp Q4_K_M ( model , lượng tử hóa ) yêu cầu tối đa 7GB RAM để chạy.
LLMUnity là gói cho phép chạy và phân phối các mơ hình LLM trong cơng cụ Unity.
Nó được xây dựng dựa trên thư viện llama.cpp tuyệt vời cho phép sử dụng LLM mà không cần phụ thuộc vào phần mềm bên ngoài và llamafile triển khai llama.cpp theo cách đa nền tảng. LLMUnity cung cấp các chức năng sau: Đa nền tảng, hỗ trợ Windows, Linux và macOS; Chạy cục bộ mà không cần truy cập internet nhưng cũng hỗ trợ máy chủ từ xa; Suy luận nhanh về CPU và GPU; Hỗ trợ các mơ hình LLM chính; Dễ dàng cài đặt, gọi điện chỉ với 1 dịng code; Miễn phí sử dụng cho cả mục đích cá nhân và thương mại
Làm thế nào nó hoạt động
</div><span class="text_page_counter">Trang 10</span><div class="page_container" data-page="10">5
LLMUnity sử dụng máy chủ llama.cpp dưới mui xe. Máy chủ nhận được yêu cầu POST, chạy suy luận trên LLM và trả về phản hồi. Máy chủ được llamafile biên dịch thành tệp thực thi và có thể được sử dụng trên các hệ điều hành khác nhau (Windows, Linux, MacOS) dựa trên thư viện quốc tế. LLMUnity triển khai một ứng dụng khách gửi yêu cầu POST và chuyển kết quả đến ứng dụng Unity của bạn.
<i>Hình 1a: Các tùy chọn khác nhau có thể được tham số hóa trong tập lệnh LLM </i>
Chức năng cơ bản:
</div><span class="text_page_counter">Trang 11</span><div class="page_container" data-page="11">6
Hàm Chat của LLM được gọi và phản hồi được nhận không đồng bộ khi nó được hồn thành (theo kiểu phát trực tuyến hoặc khơng phát trực tuyến) bởi hàm
HandleReply.
<i>Hình 1b: Kết quả tích hợp mơ hình LLM trong Unity </i>
Đã thực hiện Tạo hai nhân vật NPC điều khiển GPT bằng Inworld AI trong Unity.
<i>Hình 2: Kết quả tích hợp mơ hình LLM trong Unity </i>
</div><span class="text_page_counter">Trang 12</span><div class="page_container" data-page="12">7
<i>Hình 3: Nhân vật NPC được tạo từ ảnh của người </i>
<b>2.3.4. Chi tiết các bước cài đặt: </b>
<b>a. Cài đặt Unity và Package Trung tâm học liệu: </b>
Unity là gì? Unity là một game engine đa nền tảng được phát triển bởi công ty Unity Technologies, chủ yếu được dùng để phát triển video game cho 21 nền tảng bao gồm máy tính, game consoles (như PlayStation) và điện thoại,…
Unity hỗ trợ mạnh các tính năng sau:
- Tạo giao diện UI của Game như tạo drop bar, textbox,… - Hiển thị mơ hình 3D, 2D – hệ thống vật lý 2D, 3D - Networking: Hỗ trợ tạo game chơi nhiều người cùng lúc
- Hỗ trợ nền tảng đặc biệt mới: AR – Augmented reality (Thực tế tăng cường), VR – Virtual reality (Thực tế ảo)
- AI hỗ trợ con chatpot, LLM, Yolo,… trong màn hình game, hỗ trợ package tạo nên bot trong game
- Hỗ trợ hiển thị chữ bằng font đặc biệt. - Ngoại Thất Tổng Thể:
</div><span class="text_page_counter">Trang 13</span><div class="page_container" data-page="13">8
<i>Hình 4: Ảnh chụp trung tâm học liệu (Tác giả: Võ Duy Anh) </i>
- Mơ hình 3d và texture:
</div><span class="text_page_counter">Trang 14</span><div class="page_container" data-page="14">9
<i>Hình 5: Vẽ và dựng 3D (Tác giả: Võ Duy Anh) </i>
- Kết quả cài đặt ứng dụng:
B1: Import package Trung tâm học liệu:
B2: Cài StarterAssets - FirstPerson | Updates in new CharacterController package. Công cụ Render Pipeline tích hợp sẵn là Render Pipeline mặc định của Unity. Đây là một Render Pipeline đa dụng có các tùy chọn giới hạn cho việc tùy chỉnh. Universal Render Pipeline (URP) là một Scriptable Render
</div><span class="text_page_counter">Trang 15</span><div class="page_container" data-page="15">10
Pipeline dễ dàng và nhanh chóng tùy chỉnh, cho phép bạn tạo đồ họa tối ưu trên nhiều nền tảng. High Definition Render Pipeline (HDRP) là một Scriptable Render Pipeline cho phép bạn tạo đồ họa hiện đại, chất lượng cao trên các nền tảng cao cấp.
B3: Starter Assets – ThirdPerson bộ điều khiển cơ sở nhân vật
Giao diện Unity
</div><span class="text_page_counter">Trang 16</span><div class="page_container" data-page="16">11
B4: Kết quả tích hợp character và background
<i>Hình 6: Ứng dụng tham quan Trung tâm học liệu </i>
<b>b. Cài đặt tích hợp LLM vào Unity: </b>
B1: Cài LLM for Unity
B1: Sử dụng model mistral-7b-instruct-v0.2.Q4KM.gguf [2] để thực hiện debug LLM. Thực hiện scene khung chatpot. Hình 7 là thực hiện demo khung chatpot của tôi và AI.
<i>Hình 7: Cuộc trị chuyện giữa tơi và trí tuệ nhân tạo </i>
</div><span class="text_page_counter">Trang 17</span><div class="page_container" data-page="17">12
<b>c. Tạo NPC điều khiển GPT bằng Inworld AI: </b>
- Tổng quan về Inworld: Inworld là gì?
1. Inworld là một nền tảng Character Engine mạnh mẽ cho AI NPCs, cho phép tạo ra những nhân vật sống động và gần gũi với người chơi thông qua hành vi phức tạp và biểu đạt đa phương thức của cá nhân - Inworld không chỉ cung cấp sức mạnh cho việc tạo hình nhân vật, mà cịn hỗ trợ các tính năng như hợp nhất, ý thức với ngữ cảnh và nâng cao sự tương tác của người chơi, giúp tạo ra trải nghiệm chơi game đa dạng và hấp dẫn.
<i>Hình 8: Đăng ký tài khoản ở Inworld AI NPCs </i>
2. Các tính năng cốt lõi của Inworld - Biểu đạt đa phương thức của cá nhân
- Trí tuệ nhân tạo thời gian thực tối ưu cho hiệu suất và quy mơ
- Mơ hình hành vi tiên tiến với cuộc trị chuyện, giọng nói, hoạt hình và cảm xúc - Mạng ngữ cảnh để hiển thị NPC trong logic và mơ tưởng trong thế giới của họ - Điều khiển an toàn, tri thức, câu chuyện và bộ nhớ có thể cấu hình
Bước 1: Tạo nhân vật (Character Creation)
- Dùng OpenAI - ChatGPT để tạo hội thoại trong thời gian thực chp player Character), nhân vật, trò chơi. Tạo demo là trải nghiệm VR trong đó người dùng nói chuyện với nhân vật hồn tồn tự nhiên chỉ bằng cách nói qua microphone thơng qua việc sử dụng GPT của OpenAI. Nhân vật nghe người dùng nói và đưa ra phản hồi bằng diễn giải lời nói nghe tự nhiên và khá phù hợp
NPC(Non-- ChatGPT của OpenAI: - Tạo nhân vật bằng Inworld:
- Truy cập . Click vào try inworld
</div><span class="text_page_counter">Trang 18</span><div class="page_container" data-page="18">13
<i>Hình 9: Tạo nhân vật trong Inworld AI NPCs </i>
- Đăng nhập
- Giao diện tài khoản của Inworld
- Click vào Arcade để có nhiều nhân vật hơn
</div><span class="text_page_counter">Trang 19</span><div class="page_container" data-page="19">14
- Tự tạo nhân vật theo theo hình tượng ta cần.
- Tạo workspaces:
</div><span class="text_page_counter">Trang 20</span><div class="page_container" data-page="20">15
- Điền thơng tin chi tiết và upload hình ảnh của nhân vật ta muốn tạo theo hình mẫu này
</div><span class="text_page_counter">Trang 22</span><div class="page_container" data-page="22">17
- Tải và cài đặt AI NPC Engine để diễn hoạt cử chỉ, khẩu hình miệng, chuyển động và để giao tiếp chat GPT với nhân vật.
- Click Open in Unity. Và cài đặt engine này.
- Thực hiện tạo scene để import và sử dụng nhân vật Window >Manager package
</div><span class="text_page_counter">Trang 23</span><div class="page_container" data-page="23">18
- Khai báo API key và token key để Unity nhận nhan vật được tạo trên Inworld
- Sử dụng import nhân vật vào scene, cấp quyền cho mic và âm thanh của bạn.
</div><span class="text_page_counter">Trang 24</span><div class="page_container" data-page="24">Giao diện của ứng dụng có màu sắc vẫn chưa thật sự bắt mắt. Khơng có đủ thời gian để xây dựng một hệ thống nhân vật đại diện cho từng người ở trung tâm học liệu như vậy sẽ trực quan hơn. Ứng dụng có khung hình giới giạn thích hợp sử dụng di động. Hoạt động NPC rất giới hạn, diễn hoạt đơn giản đa phần dùng Asset của Unity hổ trợ. Hoạt ảnh của người chơi cũng quá đơn giản, chỉ mang tính demo chưa thật sự hấp dẫn như các game chuyên nghiệp. Ứng dụng gần giống như một minigame vẫn chưa thật sự trực quan còn thiếu nhiều chức năng tương tác sinh động, trực quan thực hơn. Sự tương tác giữa người chơi và NPC còn đơn giản và sử dụng các mơ hình LLM cịn đang trong quá trình thử nghiệm và cũng dùng Asset để hỗ trợ, khơng thực sự tạo hoạt cảnh có kịch bản và diễn hoạt chuyên nghiệp. Ứng dụng nặng, chưa thật sự tối ưu. Thiếu nhiều chức năng.
</div><span class="text_page_counter">Trang 26</span><div class="page_container" data-page="26">21
<b>TÀI LIỆU THAM KHẢO </b>
[1] GALLOTTA, Roberto, et al. Large Language Models and Games: A Survey and Roadmap. arXiv preprint arXiv:2402.18659, 2024.
[2] Jiang, Albert Q., et al. "Mistral 7B." arXiv preprint arXiv:2310.06825 (2023).[3] Suvak, J., & Nguyễn, D. T. (2014). Lập trình Game với Unity: Learn Unity3D programming with UnityScript: Unity's JavaScript for beginners. H: Bách khoa Hà Nội.
[4] Blackman, Sue, and Jenny Wang. Unity for absolute beginners. Apress, 2014.[5] Calabrese, Dave. Unity 2D game development. Packt publishing, 2014.[6] Thorn, Alan. Learn unity for 2d game development. Apress, 2013.[7] Okita, Alex. Learning C# programming with Unity 3D. AK Peters/CRC Press, 2019.
[8] Suvak, Janine. "Learn Unity3D Programming with UnityScript." Unity’s JavaScript for Beginners (2014).
multi-platform game development. Apress, 2013.
2021 Mar 24.
[11] Makropoulos, A. (Jan 9, 2024). Integrating Large Language Models in the Unity engine with LLMUnity. USA: Towards Data Science.
</div>