1. Trang chủ
  2. » Giáo Dục - Đào Tạo

Báo cáo thực tập ngành công nghệ thông tin Đề tài chatbot hỗ trợ tuyển sinh

14 54 1
Tài liệu đã được kiểm tra trùng lặp

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Tiêu đề Chatbot hỗ trợ tuyển sinh
Tác giả Nguyễn Khắc Nam Huy
Người hướng dẫn Nguyễn Văn Hoàng, TS. Ngô Thị Duyên
Trường học Đại học Quốc gia Hà Nội, Trường Đại học Công nghệ
Chuyên ngành Công nghệ thông tin
Thể loại Báo cáo thực tập
Năm xuất bản 2024
Thành phố Hà Nội
Định dạng
Số trang 14
Dung lượng 203,89 KB

Nội dung

Quá trình thu thập dữ liệu phải tự phát triển một công cụ Web Scraping để tổng hợp dữ liệu  Bài toán 3: Tạo ra một chatbot tư vấn tuyển sinh sử dụng mô hình RAG để tổng hợp dữ liệu và t

Trang 1

ĐẠI HỌC QUỐC GIA HÀ NỘI TRƯỜNG ĐẠI HỌC CÔNG NGHỆ

-BÁO CÁO THỰC TẬP

NGÀNH: CÔNG NGHỆ THÔNG TIN

ĐỀ TÀI: CHATBOT HỖ TRỢ TUYỂN SINH

Cán bộ hướng dẫn: Nguyễn Văn Hoàng

Giảng viên đánh giá: TS Ngô Thị Duyên Sinh viên: Nguyễn Khắc Nam Huy

Mã sinh viên: 21020542 Lớp: K66-CB

Hà Nội, tháng 10 năm 2024

Trang 2

Mục lục

I Giới thiệu chung 3

a Giới thiệu công ty 3

b Giới thiệu công việc 3

c Giới thiệu qua bài toán 4

II Yêu cầu bài toán 4

a Bài toán 1 4

b Bài toán 2 4

c Bài toán 3 5

III Tóm tắt lý thuyết, giải pháp, thuật toán 6

a Các lý thuyết, giải pháp và thuật toán liên quan 6

b Một số lý thuyết, công cụ và dịch vụ nổi bật được ứng dụng và các tích hợp để giải quyết vấn đề 7

IV Mô tả phần mềm cài đặt 10

V Kết quả đạt được, hướng phát triển 10

Trang 3

LỜI CẢM ƠN

Trong suốt thời gian 3 năm học tập và rèn luyện tại Trường Đại Học Công Nghệ cho đến nay, em đã nhận được rất nhiều sự quan tâm, giúp đỡ của quý thầy

cô và bạn bè Với lòng biết ơn sâu sắc và chân thành nhất, em xin gửi đến quý thầy

cô ở khoa Công Nghệ Thông Tin – Trường Đại Học Công Nghệ đã nhiệt tình truyền đạt vốn kiến thức quý báu cho chúng em trong suốt thời gian học tập tại trường

Và đặc biệt, trong học kỳ này, Khoa đã tổ chức cho chúng em được tiếp cận với môn mà theo em là rất hữu ích đối với sinh viên ngành Khoa Học Máy Tính

Đó là bộ môn thực tập doanh nghiệp, để sinh viên có được kiến thức thực tiễn và

có định hướng cho công việc sau này Em xin gửi đến thầy Lê Phê Đô, người đã hướng dẫn cho em để có thể hoàn thành bộ môn thực tập doanh nghiệp này lời cảm

ơn sâu sắc nhất

Em cũng xin gửi lời cảm ơn chân thành tới công ty NTT DATA VDS vì đã giúp đỡ, tạo điều kiện và môi trường thuận lợi cho quá trình thực tập của em, giúp

em được trải nghiệm thực tiễn, trau dồi kĩ năng và tác phong làm việc trong suốt quá trình thực tập tại công ty Em cũng xin bày tỏ lòng biết ơn đến các anh/chị đồng nghiệp tại công ty, những người đã luôn giúp đỡ cũng như hỗ trợ em trong suốt quá trình thực tập Nhờ có sự hướng dẫn từ các anh/chị, em đã có thể hoàn thành tốt các công việc được giao cũng tích luỹ thêm kinh nghiệm thực tiễn quý giá

Trong quá trình thực tập, do kinh nghiệm thực tế còn hạn chế, khó tránh khỏi những sai sót Em kính mong thầy cô/bộ phận đánh giá bỏ qua những thiếu sót này Và với báo cáo thực tập này, nếu có thể, em rất mong nhận được những ý kiến đóng góp quý báu từ thầy/cô để em có thể hoàn thiện hơn trong tương lai

Em xin chân thành cảm ơn!

Trang 4

I Giới thiệu chung

a Giới thiệu công ty

NTT DATA VDS là một công ty thành viên của tập đoàn NTT DATA, một trong những nhà cung cấp dịch vụ công nghệ thông tin hàng đầu thế giới

có trụ sở tại Nhật Bản Với hơn 50 năm kinh nghiệm trong lĩnh vực công nghệ thông tin, NTT DATA đã và đang xây dựng danh tiếng vững chắc trên toàn cầu, cung cấp các giải pháp và dịch vụ công nghệ tiên tiến nhằm hỗ trợ sự phát triển của các doanh nghiệp và tổ chức

Tại Việt Nam, NTT DATA VDS chuyên cung cấp các dịch vụ và giải pháp công nghệ thông tin tiên tiến bao gồm:

 Giải pháp phần mềm doanh nghiệp: Hỗ trợ các doanh nghiệp tối ưu hóa quy trình hoạt động, tăng cường hiệu quả làm việc và quản lý hệ thống thông tin một cách chuyên nghiệp và hiệu quả

 Phát triển ứng dụng và dịch vụ số: Xây dựng các ứng dụng và nền tảng số hóa nhằm tăng cường trải nghiệm khách hàng và đáp ứng nhu cầu thị trường

số ngày càng phát triển

 Giải pháp tích hợp hệ thống: Cung cấp các giải pháp tích hợp hệ thống, giúp các doanh nghiệp quản lý, phân tích và xử lý dữ liệu một cách hiệu quả

 Dịch vụ quản lý và vận hành hệ thống CNTT: Đảm bảo hệ thống thông tin của doanh nghiệp luôn hoạt động ổn định, an toàn và hiệu quả

b Giới thiệu công việc

Trong thời gian thực tập tại công ty, em đã có cơ hội tiếp thu và trau đòi thêm nhiều kiến thức về lập trình nói chung, đặc biệt là kiến thức về data analysis và AI Em đã được hướng dẫn và học hỏi từ các anh chị phụ trách, giú

em hiểu rõ hơn về các ngôn ngữ lập trình, các công cụ và công nghệ phổ biến Công việc chinh của em trong giai đoạn này là vừa học lý thuyết, vừa áp dụng thực hành thông qua các assignment được giao cho bởi các anh chị phụ trách Các assignment yêu cầu vận dụng rất nhiều kỹ năng trong các mảng phân tích dữ liệu, Machine Learning và AI Qua quá trình này, em không chỉ

Trang 5

rèn luyện kỹ năng lập trình mà còn phát triển thêm khả năng tự nghiên cứu, tìm tòi giải pháp và cách giải quyết vấn đề

c Giới thiệu qua bài toán

Như đã nói ở trên, các bàu táon mà em cần giải quyết là những bài taons

áp dụng các kiến thức từ cơ bản đén chuyên sâu ở các mảng Phân tích dữ liệu, Machine Learning và AI 3 bài toán lớn có nội dung như sau:

 Bài toán 1: Thực hành Data Manipulation và Data Visualization thông qua việc tìm hiểu và sàng lọc dữ liệu về các bài TED Talk trên kaggle.com

 Bài toán 2: Phát triển một model Machine Learning dự doán giá homestay trong địa bàn Hà Nội dựa trên dữ liệu tự thu thập Quá trình thu thập dữ liệu phải tự phát triển một công cụ Web Scraping để tổng hợp dữ liệu

 Bài toán 3: Tạo ra một chatbot tư vấn tuyển sinh sử dụng mô hình RAG để tổng hợp dữ liệu và trả lời các câu hỏi tuyển sinh Có sử dụng framework hỗ trợ LlamaIndex và cơ sở dữ liệu vector Pinecone

II Yêu cầu bài toán

a Bài toán 1

Trang web kaggle.com tổng hợp thông tin về tất cả các bài TED Talks được đăng trên trang chính thức Dataset bao gồm rất nhiều thông tin như số lượng xem, bình luận, mô tả, diễn giả…

Sử dụng các thư viện hỗ trợ là NumPy, Pandas và các thư viện hình hoá

dữ liệu như Matplotlib và Seaborn để xử lý và sàng lọc dữ liệu để dễ dàng phân tích, thống kê về các tiêu chí như số lượng người xem, bình luận, đánh giá…

b Bài toán 2

Tạo ra một công cụ Data Crawling để tổng hợp dữ liệu, thông tin về các căn nhà trong địa phận Hà Nội Sau đó sử dụng thông tin và xây dựng một model Machine Learning có khả năng dự đoán giá nhà với sai số nhỏ nhất có thể

Trang 6

 Về ngôn ngữ và công cụ sử dụng: Sử dụng selenium webdriver để mở trang web thông qua Python và thu thập dữ liệu cũng như vượt qua Cloudflare, sử dụng Pandas và Seaborn để sắp xếp cũng như loại bỏ các dữ liệu không hợp

lệ như dữ liệu trống, dữ liệu ngoại lai Cuối cùng là sử dụng thư viện sklearn

để luyện model Machine Learning để đạt kết quả mong muốn

 Yêu cầu chất lượng:

- Thu thập dữ liệu trong thời gian nhanh và hợp lý, giảm thiểu rủi rõ gặp lỗi và các hình thức tường lửa

- Xử lý dữ liệu hợp lý, thống kê các tiêu chí phù hợp và loại bỏ các dữ liệu gây ảnh hưởng tới kết quả như dữ liệu Null hay Outliers (dữ liệu ngoại lai)

- Phát triển model dự đoán giá nhà theo các thông tin cho trước với sai

số nhỏ nhất có thể (dự kiến deviation 5%)

c Bài toán 3

 Về ngôn ngữ và framework sử dụng: Sử dụng framework LlamaIndex giúp chia nhỏ và vector hoá dữ liệu cũng như lưu trữ vào cơ sở dữ liệu vector Pinecone để dễ dàng truy cập Sử dụng streamlit để tạo giao diện dễ sử dụng

 Về chức năng: Đầy đủ chức năng hỗ trợ và trả lời câu hỏi, ngoài ra còn các chức năng bổ sung thêm Cụ thể

o Chức năng trả lời các câu hỏi tuyển sinh: Sử dụng mô hình RAG và tổng hợp các dữ liệu trên trang tuyển sinh của nhà trường Từ đó tạo

ra được một cơ sở dữ liệu vector phù hợp để dễ dàng trong việc triển khai và sử dụng dữ liệu cũng như tìm kiếm câu trả lời

o Chức năng thêm vào: Sử dụng agents do LlamaIndex cũng cấp,

chatbot còn có thể thực hiện các tác vụ cơ bản, hoặc bất kì tác vụ nào được thêm vào miễn là được cung cấp quyền và tạo sẵn function phù hợp

Trang 7

III Tóm tắt lý thuyết, giải pháp, thuật toán

a Các lý thuyết, giải pháp và thuật toán liên quan

Trong mỗi bài toán, em đều vận dụng các lý thuyết đã học được và tạo

ra các giải pháp phù hợp với yêu cầu cụ thể của bài toán như sau:

 Trong bài toán 2, em đã áp dụng các bước cơ bản trong quá việc huấn luyện model Machine Learning đã được học như sau:

o Bước 1 Xác định vấn đề

Đầu tiên, em xác định loại vấn đề mà bạn muốn giải quyết, chẳng hạn như phân loại, hồi quy, phân nhóm, hay dự đoán thời gian Điều này sẽ giúp chọn lựa mô hình phù hợp

o Bước 2 Thu thập dữ liệu

Em đã học cách sử dụng Webdriver để làm công cụ tạo trình duyệt web thông qua Python Tuy vậy trong quá trình thu thập dữ liệu thì gặp phải khó khăn do trang web yêu cầu có sử dụng bảo mật Cloudflare Qua nhiều phép thử với các công cụ khác nhau như requests, seleniumbase, chromedriver… thì selenium và fake_useragent là công cụ duy nhất giúp thu thập dữ liệu website mà ít bị chặn bởi Cloudflare

o Bước 3 Tiền xử lý dữ liệu

 Xử lý thiếu dữ liệu: Loại bỏ hoặc thay thế các giá trị thiếu.

 Chuyển đổi định dạng: Chuyển đổi các kiểu dữ liệu để phù hợp

với yêu cầu của mô hình

 Chuẩn hóa và tiêu chuẩn hóa: Đảm bảo rằng các tính năng có

cùng quy mô

 Mã hóa các biến phân loại: Sử dụng các phương pháp như

one-hot encoding hoặc label encoding cho các biến phân loại

o Bước 4: Huấn luyện mô hình

Sau khi hoàn tất thu thập và thực hiện bước tiền xử lý dữ liệu với sự trợ giúp của Pandas và Seaborn Thì em thực hiện train model Machine

Trang 8

Learning bằng cách phân chia dữ liệu thành tập huấn luyện (training set) và tập kiểm tra (test set) theo tỉ lệ 80%-20% Sau đó em lựa chọn mô hình bằng cách đánh giá qua các mô hình như Random Forest, SVM, Neural Network… qua các tiêu chí như R2 hay MSE (Mean Squared Error) để xác định mô hình cũng như đánh giá Sau đó tối ưu hoá mô hình bằng phương pháp điều chỉnh các tham số siêu (hyperparameter tuning)

 Trong bài toán 3, em áp dụng mô hình RAG (Retrieval-Augmented Generation) cho chatbot, có sử dụng framework LlamaIndex để quảlý,

tổ chức dữ liệu cũng như tạo chỉ mục và vector hoá dữ liệu, còn

Pinecone để truy xuất vector và lưu trữ Quy trình hoạt động diễn ra như sau:

1 Dữ liệu được tổ chức: LlamaIndex giúp thu thập và tạo chỉ mục

cho các tài liệu từ nhiều nguồn, đảm bảo dữ liệu được tổ chức một cách hiệu quả

2 Chuyển đổi thành vector: Các tài liệu được chuyển đổi thành

vector thông qua các mô hình nhúng (embedding models) và sau

đó được lưu trữ trong Pinecone

3 Truy xuất thông tin: Khi nhận được câu hỏi từ người dùng, mô

hình RAG sẽ sử dụng Pinecone để tìm kiếm các tài liệu liên quan nhất dựa trên vector của câu hỏi

4 Tạo câu trả lời: Các tài liệu đã truy xuất sẽ được đưa vào mô hình

sinh (generation model) để tạo ra câu trả lời cho câu hỏi

5 Phản hồi: Cuối cùng, câu trả lời được trả về cho người dùng, giúp

họ nhận được thông tin chính xác và phong phú

b Một số lý thuyết, công cụ và dịch vụ nổi bật được ứng dụng và các tích hợp để giải quyết vấn đề

LlamaIndex: LlamaIndex (trước đây được gọi là GPT Index) là một

framework giúp kết nối các mô hình ngôn ngữ lớn (LLMs) với các nguồn dữ liệu bên ngoài, cho phép truy xuất và quản lý thông tin một cách hiệu quả LlamaIndex được thiết kế để cải thiện khả năng truy xuất và tổng hợp thông tin, hỗ trợ trong việc xây dựng các ứng dụng thông minh, như hệ thống hỏi

Trang 9

đáp tự động, trợ lý ảo, và nhiều ứng dụng khác liên quan đến xử lý ngôn ngữ

tự nhiên (NLP)

Trong bài toán này, em sử dụng các chức năng sau của LlamaIndex:

- Quản lý và tổ chức dữ liệu: LlamaIndex giúp thu thập, tổ chức và

lưu trữ dữ liệu từ nhiều nguồn khác nhau, tạo điều kiện thuận lợi cho việc truy xuất thông tin Bằng cách xây dựng chỉ mục từ các tài liệu, LlamaIndex giúp cho việc tìm kiếm và truy xuất trở nên dễ dàng và hiệu quả hơn

- Tạo chỉ mục từ khóa: LlamaIndex có khả năng tạo ra các chỉ mục từ

khóa từ tài liệu, cho phép mô hình RAG tìm kiếm thông tin theo ngữ nghĩa, giúp truy xuất chính xác hơn

 Pinecone:Pinecone là một nền tảng cơ sở dữ liệu vector được thiết kế đặc

biệt để lưu trữ, tìm kiếm và truy xuất các vector đại diện cho dữ liệu

Pinecone rất phù hợp cho các ứng dụng yêu cầu tìm kiếm thông tin nhanh chóng và chính xác trong các không gian vector cao chiều, như trong lĩnh vực xử lý ngôn ngữ tự nhiên (NLP), nhận dạng hình ảnh, và nhiều ứng dụng

AI khác

Trong bài toán này, em sử dụng các chức năng sau của Pinecone:

- Cơ sở dữ liệu vector: Pinecone cho phép người dùng lưu trữ và quản

lý hàng triệu vector mà không cần phải xây dựng và duy trì hạ tầng phức tạp Điều này giúp đơn giản hóa quy trình phát triển ứng dụng AI

- Tìm kiếm tương tự (Similarity Search): Pinecone hỗ trợ các truy

vấn tìm kiếm tương tự (similarity search) bằng cách tìm kiếm các vector tương đồng nhất với một vector truy vấn Điều này rất hữu ích trong việc tìm kiếm tài liệu, hình ảnh, hoặc bất kỳ dạng dữ liệu nào có thể được biểu diễn dưới dạng vector

 Mô hình RAG ứng dụng LlamaIndex và Pinecone:

Phần 1 Chuẩn bị dữ liệu

Trang 10

1 Dữ liệu gốc:

o Bắt đầu với một tập hợp các tài liệu hoặc thông tin từ nhiều nguồn khác nhau Đây có thể là các bài viết, tài liệu nghiên cứu, hay bất kỳ

dữ liệu nào có giá trị thông tin

2 Sử dụng LlamaIndex:

o Tổ chức và chỉ mục dữ liệu: LlamaIndex giúp tổ chức dữ liệu, tạo ra

các chỉ mục từ khóa hoặc chỉ mục nhúng cho các tài liệu Điều này cho phép mô hình truy xuất thông tin dễ dàng và hiệu quả hơn

o Quản lý tài liệu: LlamaIndex có thể xử lý việc lưu trữ và quản lý tài

liệu, giúp bạn duy trì một kho dữ liệu có cấu trúc rõ ràng và dễ dàng truy cập

Phần 2 Chuyển đổi dữ liệu thành vector

3 Mô hình nhúng (Embedding model):

o Các tài liệu trong chỉ mục được chuyển đổi thành vector thông qua các mô hình nhúng như BERT, Sentence Transformers hoặc các mô hình khác Những vector này đại diện cho các tài liệu trong không gian vector cao chiều

4 Lưu trữ vector:

o Các vector này sau đó được lưu trữ trong Pinecone, một cơ sở dữ liệu

vector cho phép truy xuất thông tin nhanh chóng và hiệu quả

Phần 3 Truy xuất thông tin

5 Người dùng đưa ra câu hỏi:

o Khi người dùng đặt câu hỏi hoặc yêu cầu thông tin, mô hình sẽ tạo ra một vector tương ứng với câu hỏi đó

6 Tìm kiếm trong Pinecone:

o Mô hình RAG sử dụng Pinecone để tìm kiếm các vector tài liệu tương

tự nhất với vector câu hỏi Pinecone thực hiện tìm kiếm tương tự

Trang 11

nhanh chóng, trả về danh sách các tài liệu có độ tương đồng cao nhất với câu hỏi

Phần 4 Tạo câu trả lời

7 Tổng hợp thông tin:

o Các tài liệu đã được truy xuất từ Pinecone sẽ được đưa vào mô hình sinh (generation model) như GPT-3 hoặc GPT-4 Mô hình này sẽ sử dụng thông tin từ các tài liệu để tạo ra câu trả lời

8 Tạo phản hồi tự nhiên:

o Mô hình sinh sẽ tạo ra một câu trả lời mạch lạc và tự nhiên, kết hợp các thông tin từ nhiều tài liệu khác nhau để tạo ra phản hồi chính xác cho người dùng

Phần 5 Trả về kết quả

9 Kết quả cho người dùng:

o Cuối cùng, câu trả lời được trả về cho người dùng, cung cấp thông tin chính xác và phong phú dựa trên các tài liệu đã truy xuất

IV Mô tả phần mềm cài đặt

Trong các bài toán, em sử dụng công cụ Visual Studio Code để lập trình Visual Studio Code là trình chỉnh sửa mã nguồn mở và miễn phí, thích hợp với mọi hệ điều hành và ngôn ngữ Với ưu điểm lớn về số lượng extension và các tính năng hỗ trợ hữu ích

Ngoài ra còn có các công cụ như Octoparse giúp thu thập dữ liệu và Docker để triển khai ứng dụng qua container

V Kết quả đạt được, hướng phát triển

Sau 3 tháng học tập và thực tập tại công ty thì em đã góp nhặt được rất nhiều kiến thức quý giá cũng như các kĩ năng hữu ích như:

Ngày đăng: 21/11/2024, 20:34

TỪ KHÓA LIÊN QUAN

TÀI LIỆU CÙNG NGƯỜI DÙNG

TÀI LIỆU LIÊN QUAN

w