Thuật Toán Trong ChatGPT (phần 1)
May 29, 2023
1. Bối cảnh
- Ngày 22 tháng 9 năm 2020, Microsoft đã thông báo rằng họ được cấp phép độc quyền sử dụng GPT-3 cho các sản phẩm và dịch vụ của Microsoft sau khi đã đầu tư hàng tỷ đô la vào trung tâm nghiên cứu và thử nghiệm trí tuệ nhân tạo OpenAI. Các user vẫn có thể gửi các input tới API công khai của GPT-3 để nhận về các output, nhưng chỉ Microsoft mới có quyền truy cập vào source code của GPT-3.
- Ngày 26 tháng 1 năm 2021, Chiến lược quốc gia về nghiên cứu, phát triển và ứng dụng Trí tuệ nhân tạo đến năm 2030 đã đặt mục tiêu đưa Việt Nam trở thành trung tâm đổi mới sáng tạo, phát triển các giải pháp và ứng dụng TTNT trong khu vực ASEAN và trên thế giới.
- Thời điểm cuối tháng 5 này đánh dấu nửa năm đã trôi qua kể từ khi ChatGPT mở ra cho công chúng trải nghiệm kể từ ngày 30 tháng 11 năm 2022. Chúng ta đã cảm nhận được các tính năng vượt trội của ChatGPT so với công cụ tìm kiếm thông tin thông thường như Google Search, Bing Search, Yahoo Search. Mặc dù ChatGPT đã đáp ứng được một phần kỳ vọng là trò chuyện giống như con người, tuy nhiên vẫn còn nhiều hạn chế như đưa ra các câu trả lời sai, không truy vết ra được nguồn thông tin từ đâu đến, và nhiều vấn đề cần được giải quyết như nguy cơ lộ thông tin bảo mật và thông tin cá nhân.
2. Mục đích
- Phân tích thuật toán trong ChatGPT.
3. Phân tích
3.1 Thuật ngữ
- GPT: là viết tắt của từ tiếng Anh “Generative Pre-trained Transformer”, một Mô hình ngôn ngữ tự hồi quy.
- ChatGPT: là một dịch vụ cung cấp thông tin dựa trên mô hình GPT, giúp user sắp xếp lại nội dung văn bản, hoặc tóm tắt nội dung văn bản, hoặc tạo ra các văn bản mới, theo hình thức hội thoại giống như trò chuyện với một con người, bằng cách áp dụng kỹ thuật Học sâu (deep learning).
- Deep Learning: là một kỹ thuật xử lý dữ liệu với số lượng lớn để trích xuất ra các các quy luật của dữ liệu, bằng cách sử dụng phương pháp mạng nơ ron (neural network).
- Neural Network: là một mô hình tính toán mô phỏng mạng lưới các nơ ron thần kinh trong bộ não người, bao gồm một nhóm các nút được nối với nhau, thông tin được xử lý bằng cách truyền theo các kết nối và tính giá trị mới tại các nút. Mỗi nút mô phỏng hoạt động của một nơ ron sinh học, nhận vào các input và tạo ra một output duy nhất, output này có thể được gửi đến các nút khác. Các input có thể là các giá trị của một mẫu dữ liệu bên ngoài, ví dụ như nội dung một câu hỏi, hoặc cũng có thể là một output từ một nút khác gửi đến. Khi xử lý hoàn tất sẽ cho ra output cuối cùng của mạng nơ ron, ví dụ như nội dung trả lời cho một câu hỏi. Mỗi kết nối giống như một điểm tiếp hợp thần kinh (synapse) trong bộ não người kết nối các nơ ron với nhau và dẫn truyền các tín hiệu từ nơ ron này đến nơ ron khác. Mỗi kết nối được gọi là một cạnh. Các nút và các cạnh được gắn các trọng số (weight). Các trọng số này được điều chỉnh trong quá trình học tập. Mỗi trọng số có vai trò tăng hoặc giảm cường độ tín hiệu ở mỗi kết nối. Mỗi nút được gắn một giá trị ngưỡng (threshold), sao cho nút đó chỉ gửi đi một tín hiệu khi giá trị tổng hợp của tín hiệu vượt qua ngưỡng đó. Thông thướng các nút sẽ được nhóm vào thành các lớp (layer), mà mỗi lớp khác nhau sẽ thực hiện các tính toán chuyển đổi khác nhau cho giá trị input. Tín hiệu được truyền từ lớp đầu(input layer) đến lớp cuối (output layer), sau khi đi qua 0 hoặc nhiều lớp ẩn (hidden layer).
- Token: là các chuỗi ký tự phổ biến xuất hiện trong văn bản được xử lý bởi ChatGPT. Ví dụ như câu “Phân tích thuật toán” thì có 20 ký tự, tương ứng với 12 token. Mỗi token tương ứng với một Token Id.
3.2 Thuật toán
- Xử lý đọc hiểu các văn bản hiện có: Một số lượng lớn các văn bản được chuẩn bị sẵn để làm input cho xử lý đọc hiểu, với output là một tập hợp các giá trị xác xuất của mỗi từ có thể xuất hiện trong bối cảnh với các từ khác. Nội dung văn bản sẽ được chuyển đổi ra định dạng dãy token. Xử lý học sâu sẽ tìm ra mối quan hệ thống kê giữa các token đã có. Dựa trên mối quan hệ thống kê đó, mô hình GPT có thể tạo ra các token mới để hình thành nên các câu trả lời.
- Xử lý tiếp nhận câu hỏi: Nội dung câu hỏi dưới dạng văn bản sẽ được chuyển đổi ra định dạng dãy token.
- Xử lý đưa ra câu trả lời: Dãy token trên sẽ là input để cho mô hình GPT tạo ra một dãy các token mới với giá trị xác suất lớn nhất. Sau đó dãy token mới này được chuyển đổi về dạng văn bản để trả về câu trả lời.
Ở đây chúng ta đã phân tích ở cấp độ tổng quan để có một cái nhìn toàn cảnh về luồng xử lý cơ bản của ChatGPT. Các nội dung chi tiết của từng xử lý sẽ được làm rõ vào các bài viết tiếp theo.