đồ án 2 finetuning large language model

35 0 0
Tài liệu đã được kiểm tra trùng lặp
đồ án 2 finetuning large language model

Đ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

Trang 1

ĐẠI HỌC QUỐC GIA TP HỒ CHÍ MINHTRƯỜNG ĐẠI HỌC CÔNG NGHỆ THÔNG TIN

KHOA CÔNG NGHỆ PHẦN MỀM

ĐỒ ÁN 2

FINETUNING LARGE LANGUAGE MODEL

GIẢNG VIÊN HƯỚNG DẪNHUỲNH TUẤN ANH

SINH VIÊN THỰC HIỆNLÝ SÔ LY - 19521136

NGUYỄN THANH TUẤN – 20520846

TP HỒ CHÍ MINH, 2023

Trang 2

LỜI CẢM ƠN

Đầu tiên, nhóm chúng em xin gửi lời cảm ơn chân thành đến tập thể quý ThầyCô Trường Đại học Công nghệ thông tin – Đại học Quốc gia TP.HCM và quý Thầy Côkhoa Công Nghệ Phần Mềm đã giúp cho nhóm chúng em có những kiến thức cơ bảnlàm nền tảng để thực hiện dự án này

Đặc biệt, nhóm chúng em xin gửi lời cảm ơn và lòng biết ơn sâu sắc nhất tớiThầy Huỳnh Tuấn Anh đã giúp nhóm chúng em hoàn thành tốt báo cáo đồ án củamình

Trong thời gian thực hiện đề tài, nhóm chúng em đã vận dụng những kiến thứcnền tảng đã tích lũy đồng thời kết hợp với việc học hỏi và nghiên cứu những kiến thứcmới Từ đó, nhóm chúng em vận dụng tối đa những gì đã thu thập được để hoàn thànhmột báo cáo đồ án tốt nhất Tuy nhiên, trong quá trình thực hiện, nhóm chúng emkhông tránh khỏi những thiếu sót Chính vì vậy, nhóm chúng em rất mong nhận đượcnhững sự góp ý chân thành từ Thầy nhằm hoàn thiện phần kiến thức mà nhóm chúngem đã học tập và là hành trang để nhóm chúng em thực hiện tiếp các đề tài khác trongtương lai.

Nhóm chúng em xin chân thành cảm ơn Thầy!

Trang 3

MỤC LỤC

CHƯƠNG 1 : MỞ ĐẦU 8

1.1 Lý do chọn đề tài 8

1.2 Mục đích 8

1.3 Đối tượng và phạm vi nghiên cứu 8

CHƯƠNG 2: GIỚI THIỆU FINETUNING LARGE LANGUAGE MODEL 10

2.1 Định nghĩa Finetuning 10

2.2 Finetuning làm gì cho model ? 10

2.3 Lợi ích của Finetuning 11

2.4 So sánh Finetuning và Prompting 12

2.5 Giai đoạn tích hợp 13

2.5.1.Giai đoạn pre-training 13

2.5.2.Giai đoạn Finetuning 14

2.6 Instruction Finetuning 15

2.6.1.Định nghĩa 15

2.6.2.Instruction Finetuning-following datasets 16

2.7 Tổng quát về các bước Finetuning 17

2.7.1.Chuẩn bị dữ liệu (Data preparation) 18

2.7.2.Quá trình đào tạo (Training process) 20

2.7.3.Đánh giá và lặp lại (Evaluation and Iteration) 21

CHƯƠNG 3: XÂY DỰNG ỨNG DỤNG MINH HỌA 23

3.1 Giới thiệu ứng dụng 23

3.2 Khảo sát ứng dụng tương tự 23

3.3 Công nghệ sử dụng 24

3.3.1.LlamaIndex 24

Trang 4

3.4 Phân tích, thiết kế ứng dụng 28

3.4.1.Mục tiêu của hệ thống 28

3.4.2.Quá trình Finetuning và đánh giá 28

3.4.3.Tích hợp trí tuệ nhân tạo và mở rộng công nghệ 29

4.2 Đề xuất hướng phát triển 34

CHƯƠNG 5: TÀI LIỆU THAM KHẢO 35

Trang 5

DANH MỤC HÌNH ẢNH

Hình 1: Ví dụ về quá trình Finetuning 10

Hình 2: Ví dụ về khả năng của Finetuning với model 11

Hình 3: Hạn chế của pretrained model 15

Hình 4: Giai đoạn Finetuning sau khi Pretraining 16

Hình 5: Một số nguồn Instruction Finetuning học hỏi 17

Hình 6: Khả năng tự tạo dữ liệu của LLM 18

Hình 7: Tổng quát về các quá trình trong Finetuning 19

Hình 8: Dữ liệu cần chuẩn bị 20

Hình 9: Ví dụ về mã hóa dữ liệu (Tokenize) 21

Hình 10: Những thứ xuất hiện trong giai đoạn đánh giá 22

Hình 11: Ví dụ về phân loại lỗi (Categorize Errors) 23

Hình 12: Hugging Face Transformers 25

Hình 13: LlamaIndex 26

Hình 14: Gradio 28

Hình 15: Quá trình config key từ API 31

Hình 16: Upload file để train 31

Hình 17: List danh sách các file đã train 32

Hình 18: Chọn file muốn truy vấn để tóm tắt 32

Hình 19: Quy trình hỏi đang exac 33

Hình 20: Kết quả trả về khi truy vấn 33

Hình 21: IDE Pycharm 34

Trang 6

DANH MỤC BẢNG

Bảng 1: So sánh Prompting và Finetuning 12

Trang 7

DANH MỤC TỪ VIẾT TẮT, THUẬT NGỮ

Từ viết tắt, thuật ngữÝ nghĩa

1 LLM Large Language Model – mô hình ngôn ngữ lớn2 prompt Một đoạn văn bản ngắn hoặc một câu lệnh mà người

dùng cung cấp để yêu cầu mô hình thực hiện một công việc cụ thể.

3 GPM General purpose model - Mô hình đa nhiệm - một kiểu mô hình máy học hoặc trí tuệ nhân tạo có khả năng thực hiện nhiều nhiệm vụ khác nhau mà khôngcần phải được đào tạo đặc biệt cho từng nhiệm vụ riêng biệt

4 RAG Retrieval-Augmented Generation - là một kỹ thuật nhằm nâng cao độ chính xác và độ tin cậy của các mô hình GenAI với các dữ kiện được lấy từ các nguồn bên ngoài.

5 VPC Virtual private cloud – dịch vụ đám mây ảo riêng6 on-prem (on premise) Được biết đến là những phần cứng hay phần mềm

tại chỗ Một giải pháp công nghệ hỗ trợ lưu trữ dữ liệu tại chỗ

Trang 8

CHƯƠNG 1 : MỞ ĐẦU1.1 Lý do chọn đề tài

Ngày nay, mọi người đều nhận thức được khả năng tuyệt vời của chatGPT và các LLMs phổ biến khác để trả lời lượng lớn câu hỏi trải dài trên nhiều lĩnh vực Nhiều cá nhân hoặc tổ chức muốn sở hữu những công cụ tương tự nhưng với dữ liệu riêngvà độc quyền của họ Một trong những giải pháp là đào tạo LLMs với dữ liệu của riêng họ Việc này tiêu tốn một lượng data, cũng như tài nguyên GPU khổng lồ.Với finetuning, người dùng có thể lấy một LLMs đã có sẵn và đào tạo nó rộng hơn để biến nó thành dữ liệu của riêng mình

Ngoài ra, finetuning giúp việc lấy dữ liệu từ LLMs cân bằng và kiên định hơn so với prompt mà mọi người thường dùng.

Xây dựng ứng dụng minh họa nhằm trực quan hóa kết quả nghiên cứu.

1.3 Đối tượng và phạm vi nghiên cứu

Đối tượng nghiên cứu:

̶{ Những người có quan tâm đến việc tinh chỉnh mô hình ngôn ngữ lớnPhạm vi nghiên cứu:

Trang 9

̶{ Tìm hiểu về Finetuning Large Language Model thông qua các khóa học và các website liên quan trên internet để tìm hiểu khái niệm, tính năng cũng nhưưu nhược điểm

Trang 10

CHƯƠNG 2: GIỚI THIỆU FINETUNING LARGE LANGUAGE MODEL2.1.Định nghĩa Finetuning

Finetuning là quá trình huấn luyện lại một mô hình máy học đã được đào tạo trước đó, thường là một mô hình đã được tiền huấn luyện trên một tập dữ liệu lớn và đa dạng

Mục tiêu của Finetuning là điều chỉnh trọng số của mô hình để nó có thể thích ứng hoặc chuyên sâu vào một nhiệm vụ cụ thể hoặc tập dữ liệu mới

Ví dụ: công ty OpenAI sử dụng mô hình GPT-3.5 hay GPT-4.0 để đào tạo và chuyên hóa thành ChatGPT, hay sử dụng GPT-4.0 để tạo ra Github Copilot (auto-complete code) là quá trình Finetuning (hay Specialized)

Hình 1: Ví dụ về quá trình Finetuning

2.2.Finetuning làm gì cho model ?

Cho phép người dùng đưa nhiều dữ liệu vào model hơn so với promptSử dụng model để học và tìm hiểu dữ liệu, thay vì chỉ truy cập vào chúng

Trang 11

Ví dụ: theo hình dưới, ta viết vài triệu chứng như ngứa, nổi đỏ, kích ứng da vào prompt GPM có thể nói rằng đó chỉ là mụn, trong khi mô hình đã được Finetuning dựa trên dữ liệu về da liễu có thể đưa ra những chẩn đoán chính xác, rõ ràng hơn nhiều.

Hình 2: Ví dụ về khả năng của Finetuning với model

Ngoài ra, Finetuning

̶{ Giúp model hướng tới kết quả đầu ra hoặc hành vi nhất quán hơn̶{ Giảm thiếu thông tin thiếu chính xác

̶{ Tùy chỉnh model cho một số use case cụ thể̶{ Có quá trình tương tự như đào tạo model trước đó

2.3.Lợi ích của Finetuning

Hiệu suất:

̶{ Ngăn chặn việc thông tin thiếu chính xác: Model có thể có nhiều thông tin chuyên môn hơn trong lĩnh vực cụ thể

Trang 12

̶{ Tăng sự nhất quán và đáng tin cậy

̶{ Kiểm duyệt tốt hơn : loại bỏ những thông tin không cần thiếtBảo mật:

̶{ Được triển khai on-prem hoặc VPC̶{ Ngăn chặn rò rỉ hay vi phạm dữ liệuGiá thành:

̶{ Giảm chi phí cho mỗi yêu cầu: bằng cách fine-tuning LLMs nhỏ hơn̶{ Tăng sự minh bạch về chi phí, kiểm soát tốt hơn về chi phí và 1 vài yếu tố

khácĐộ tin cậy:

̶{ Kiểm soát được thời gian hoạt động̶{ Giảm độ trễ

2.4.So sánh Finetuning và Prompting

PromptingFinetuningƯu điểm  Không cần dữ liệu ban

 Học thông tin mới Chỉnh sửa những thông

tin cũ thiếu chính xác Nếu model nhỏ thì chi

phí không quá cao Kết nối dữ liệu thông

qua RAG

Trang 13

Nhược điểm  Nhập được ít dữ liệu vào prompt

 Thông tin có thể thiếu chính xác

 Cần nhiều dữ liệu chuẩn xác, có chất lượng cao Tốn chi phí trả trước Cần kiến thức về công

nghệ, đặc biệt là về dữ liệu

Sử dụng cho các dự án bên lề hoặc dự án chung

Sử dụng cho các doanh nghiệp độc quyền

Bảng 1: So sánh Prompting và Finetuning

2.5.Giai đoạn tích hợp

Quá trình fine-tuning thường được tích hợp vào quy trình máy học ngay sau bước tiền huấn luyện (pre-training)

2.5.1 Giai đoạn pre-training

Giai đoạn cần chuẩn bị 1 lượng lớn và đa dạng dữ liệu Trong ngôn ngữ tự nhiên, dữ liệu thường là văn bản, có thể lấy từ các nguồn sách báo, các nguồn tin và chủ yếu là Internet trải dài trên mọi lĩnh vực

Hạn chế của pretrained model:

̶{ Khả năng hiểu ngữ cảnh hạn chế : Mô hình có thể gặp khó khăn trongviệc hiểu ngữ cảnh cụ thể của một nhiệm vụ nhất định, đặc biệt là khi dữ liệu tiền huấn luyện không đủ đại diện cho ngữ cảnh của nhiệm vụ đó.

̶{ Kích thước và mô hình tài nguyên lớn : Các mô hình tiền huấn luyện thường có kích thước lớn và đòi hỏi tài nguyên tính toán lớn Điều này có thể làm tăng khả năng yêu cầu về phần cứng và chi phí tính toán khi triển khai.

Trang 14

̶{ Khả năng chuyển giao hạn chế : Mặc dù mô hình tiền huấn luyện có thể học được nhiều kiến thức từ dữ liệu đa dạng, khả năng chuyển giao vẫn có thể bị hạn chế đối với các nhiệm vụ cụ thể nếu chúng quá khác biệt với dữ liệu tiền huấn luyện.

Hình 3: Hạn chế của pretrained model

2.5.2 Giai đoạn Finetuning

Finetuning thường được dùng để ám chỉ giai đoạn đào tạo thêm

Trang 15

̶{ Cần ít dữ liệu hơn pre-training̶{ Dữ liệu quản lý rõ ràng hơn

Finetuning cho các tác vụ tổng hợp không được xác định rõ ràng̶{ Cập nhật không chỉ 1 phần mà toàn bộ model

̶{ Mục tiêu đào tạo giống giai đoạn pre-training : dự đoán token tiếp theo̶{ Có nhiều cách nâng cao để giảm số lượng cập nhật cho mô hình

Hình 4: Giai đoạn Finetuning sau khi Pretraining

2.6.Instruction Finetuning2.6.1 Định nghĩa

Instruction Finetuning (hoặc instruction tune hay instruction) là 1 dạng Finetuning có thể train cho model hành xử như một chatbot Instruction là một giao diện người dùng tốt trong việc tương tác với model Đây là phươngpháp đã biến GPT-3 thành ChatGPT, tăng khả năng áp dụng AI đáng kể từ vài nghìn nhà ngiên cứu đến vài triệu người

2.6.2 Instruction Finetuning-following datasets

Trang 16

Bộ dữ liệu mà Instruction Finetuning có thể học hỏi theo đến từ một vài dữ liệu online có sẵn như:

̶{ FAQs

̶{ Những đoạn hội thoại hỗ trợ khách hàng̶{ Tin nhắn Slack

Hình 5: Một số nguồn Instruction Finetuning học hỏi

Ngoài ra, nếu không có dữ liệu sẵn, LLMs có thể tự tạo dữ liệu riêng như chuyển đổi những dữ liệu không phải dạng Q&A thành dạng Q&A

Trang 17

Hình 6: Khả năng tự tạo dữ liệu của LLM

2.7.Tổng quát về các bước Finetuning

Bao gồm : chuẩn bị dữ liệu, đào tạo và đánh giá Bởi vì sau khi đánh giá model, ta cần chuẩn bị dữ liệu lại để tiếp tục cái tiến model, nên đây là một quá trình lặp đi lặp lại để nâng cấp model

Chuẩn bị dữ liệu là bước mang lại nhiều sự khác biệt nhất vì đây là lúc ta có thể thay đổi dữ liệu theo ý mình, điều chỉnh dữ liệu theo kiểu tinh chỉnh cụ thể, cho những nhiệm vụ cụ thể mà ta đang thực hiện

Trang 18

Hình 7: Tổng quát về các quá trình trong Finetuning

2.7.1 Chuẩn bị dữ liệu (Data preparation)2.7.1.1.Cần chuẩn bị dữ liệu thế nào ?

Điều quan trọng cần ưu tiên nhất trong việc chuẩn bị dữ liệu là dữ liệu phải có chất lượng cao Nếu dữ liệu đầu vào có chất lượng kém thì đầu racũng sẽ cho ra kết quả tương tự.

Tiếp theo là sự đa dạng dữ liệu Việc có dữ liệu đa dạng trải dài trên nhiều lĩnh vực có thể giúp ích trong một số use case.

Dữ liệu được chuẩn bị cũng cần phải thực tế và không nên lấy dữ liệu được tạo ra từ các model khác.

Trang 19

Cuối cùng là càng nhiều dữ liệu càng tốt Mặc dù ở giai đoạn training, model đã được đào tạo bằng rất nhiều dữ liệu khác nhau từ nhiều nguồn, nhưng có càng nhiều dữ liệu thì càng giúp ích cho model.

pre-Hình 8: Dữ liệu cần chuẩn bị

2.7.1.2.Các bước chuẩn bị dữ liệu

Thu thập các cặp instruction-responseGhép cặp ( thêm prompt nếu cần)

Mã hóa dữ liệu: padding, truncate(cắt chuỗi)Chia thành đào tạo/kiểm tra

Trang 20

Hình 9: Ví dụ về mã hóa dữ liệu (Tokenize)

2.7.2 Quá trình đào tạo (Training process)2.7.2.1.Quá trình đào tạo

Quá trình đào tạo (training process) có phần giống với mô hình neural networks khác, bao gồm:

̶{ Thêm dữ liệu để train̶{ Tính toán dữ liệu mất mát

̶{ Backpropagation (truyền ngược) thông qua model̶{ Cập nhật weights của model

2.7.2.2.Tinh chỉnh hyperparameters (Siêu tham số)

Hyperparameters Là các tham số không phải là trọng số mô hình và cần được xác định và điều chỉnh bên ngoài quá trình huấn luyện mô hình Các hyperparameters có thể ảnh hưởng đến hiệu suất và khả năng tổng quát hóa của mô hình.

Một số siêu tham số có thể tinh chỉnh: ̶{ Tốc độ học (Learning rate)

̶{ Hệ số động (Learning rate scheduler)

̶{ Tối ưu hóa siêu tham số (Optimizer hyperparameters)

Trang 21

2.7.3 Đánh giá và lặp lại (Evaluation and Iteration)2.7.3.1.Giai đoạn đánh giá

Hình 10: Những thứ xuất hiện trong giai đoạn đánh giá

Giai đoạn đánh giá model được cho là tương đối khó khăn

Mô hình cần được đánh giá bởi các chuyên gia để tăng độ tin cậyDữ liệu thử nghiệm cũng rất quan trọng:

̶{ Chất lượng cao̶{ Chính xác̶{ Khái quát hóa

Việc so sánh elo giữa các model cũng khá phổ biến

2.7.3.2.Phân tích lỗi (Error Analysis)

Cần phải hiểu hành vi của base model trước khi tiến hành FinetuningPhân loại lỗi: lặp lại dữ liệu để khắc phục những vấn đề trong không giandữ liệu (data space)

Trang 22

Hình 11: Ví dụ về phân loại lỗi (Categorize Errors)

Trang 23

CHƯƠNG 3: XÂY DỰNG ỨNG DỤNG MINH HỌA3.1.Giới thiệu ứng dụng

Với sự phát triển mạnh mẽ của công nghệ thông tin và mạng máy tính, lượng tàiliệu văn bản khổng lồ được tạo ra với nhiều mục đích sử dụng khác nhau khiến choviệc đọc hiểu và trích lược các thông tin cần thiết trong khối tri thức đồ sộ này tốnrất nhiều thời gian và chi phí (đặc biệt là chi phí cho hạ tầng và truyền dẫn thôngtin đáp ứng yêu cầu cho một số lượng ngày càng nhiều các thiết bị cầm tay) Đểtăng hiệu quả cũng như dễ dàng hơn trong việc tiếp nhận thông tin của người dùng,nhiều nghiên cứu về khai phá dữ liệu và xử lý ngôn ngữ tự nhiên đã được thựchiện Một trong những nghiên cứu quan trọng đóng vai trò then chốt đó tóm tắt vănbản tự động.

Bài toán tóm tắt văn bản tiếng Việt cũng được nghiên cứu và áp dụng nhiều kỹthuật như đối với tiếng Anh; tuy nhiên, tóm tắt văn bản nói riêng và xử lý ngôn ngữtự nhiên nói chung áp dụng cho tiếng Việt gặp nhiều thách thức hơn Sở dĩ là vìtiếng Việt với đặc trưng là tiếng đơn âm và có thanh điệu nên việc tách từ, tách cácthành phần ngữ nghĩa trong câu tiếng Việt đòi hỏi xử lý phức tạp hơn so với xử lýcâu tiếng Anh, thêm vào đó, không có nhiều kho dữ liệu tiếng Việt được chuẩn hóavà công bố.

3.2.Khảo sát ứng dụng tương tự

Trang 24

Phần lớn các hệ thống ngôn ngữ mô hình lớn (LLMs) không cho phép người dùng finetuning bằng file trực tiếp vì lý do an toàn và bảo mật Tuy nhiên, một số dự án mã nguồn mở, như Hugging Face Transformers, cung cấp khả năng fine-tuning cho mô hình ngôn ngữ của mình.

Hình 12: Hugging Face Transformers

Quy trình finetuning thường bao gồm việc sử dụng dữ liệu mới và "mở khóa" một số lớp cuối cùng của mô hình để đào tạo lại cho mục đích cụ thể Bạn có thể sử dụng các tập dữ liệu của mình và các công cụ như PyTorch hoặc TensorFlow để thực hiện quá trình này.

3.3.Công nghệ sử dụng3.3.1 LlamaIndex

3.3.1.1.Khái niệm

LlamaIndex là một data framework dành cho các ứng dụng dựa trên LLMs để, cấu trúc và truy cập dữ liệu riêng tư hoặc theo miền cụ thể

Hỗ trợ Python và Typescript

Trang 25

Hình 13: LlamaIndex

3.3.1.2.Tại sao lại là LlamaIndex?

LLMs cung cấp giao diện ngôn ngữ tự nhiên giữa con người và dữ liệu Các mô hình có sẵn rộng rãi được đào tạo trước về lượng lớn dữ liệu có sẵn công khai như Wikipedia, danh sách gửi thư, sách giáo khoa, mã nguồn, v.v Tuy nhiên, mặc dù LLMs được đào tạo về rất nhiều dữ liệu nhưng chúng không được đào tạo về dữ liệu của bạn, dữ liệu này có thể riêng tư hoặc cụ thể cho vấn đề bạn đang cố gắng giải quyết Nó nằm đằng sau các API, trong cơ sở dữ liệu SQL hoặc bị mắc kẹt trong các tệp PDF và bản trình chiếu.

LlamaIndex giải quyết vấn đề này bằng cách kết nối với các nguồn dữ liệu này và thêm dữ liệu của bạn vào dữ liệu mà LLMs đã có Điều này thường được gọi là Thế hệ tăng cường truy xuất (RAG) RAG cho phép bạn sử dụngLLMs để truy vấn dữ liệu của mình, chuyển đổi dữ liệu và tạo thông tin chi

Ngày đăng: 15/05/2024, 09:29

Tài liệu cùng người dùng

Tài liệu liên quan