.png)
Bài đăng này mô tả bốn dự án có chung chủ đề là tăng cường hoặc sử dụng các mô hình sinh, một nhánh của các kỹ thuật học không giám sát trong học máy. Ngoài việc mô tả công việc của chúng tôi, bài đăng này sẽ cho bạn biết thêm một chút về các mô hình sinh: chúng là gì, tại sao chúng quan trọng và chúng có thể đi đến đâu.
Một trong những nguyện vọng cốt lõi của chúng tôi tại OpenAI là phát triển các thuật toán và kỹ thuật giúp máy tính có khả năng hiểu được thế giới của chúng ta.
Xem thêm: mua tài khoản ChatGPT Plus chính hãng giá rẻ
Thật dễ quên mất bạn biết bao nhiêu về thế giới: bạn hiểu rằng thế giới được tạo thành từ các môi trường 3D, các vật thể chuyển động, va chạm, tương tác; con người đi bộ, nói chuyện và suy nghĩ; động vật gặm cỏ, bay, chạy hoặc sủa; màn hình hiển thị thông tin được mã hóa bằng ngôn ngữ về thời tiết, đội nào thắng trận bóng rổ hoặc những gì đã xảy ra vào năm 1970.
Lượng thông tin khổng lồ này nằm ngoài kia và phần lớn có thể dễ dàng truy cập—hoặc trong thế giới vật lý của các nguyên tử hoặc thế giới kỹ thuật số của các bit. Phần khó khăn duy nhất là phát triển các mô hình và thuật toán có thể phân tích và hiểu được kho tàng dữ liệu này.
Mô hình sinh là một trong những cách tiếp cận đầy hứa hẹn nhất hướng tới mục tiêu này . Để đào tạo một mô hình sinh, trước tiên chúng ta thu thập một lượng lớn dữ liệu trong một số miền (ví dụ, hãy nghĩ đến hàng triệu hình ảnh, câu hoặc âm thanh, v.v.) và sau đó đào tạo một mô hình để tạo ra dữ liệu như vậy. Trực giác đằng sau cách tiếp cận này tuân theo một câu trích dẫn nổi tiếng của Richard Feynman:
Bí quyết là các mạng nơ-ron mà chúng ta sử dụng làm mô hình sinh có một số tham số nhỏ hơn đáng kể so với lượng dữ liệu mà chúng ta dùng để đào tạo chúng, do đó các mô hình buộc phải khám phá và tiếp thu hiệu quả bản chất của dữ liệu để tạo ra dữ liệu đó.
Các mô hình tạo sinh có nhiều ứng dụng ngắn hạn. Nhưng về lâu dài, chúng có tiềm năng tự động học các đặc điểm tự nhiên của một tập dữ liệu, cho dù là danh mục hay chiều hay bất kỳ thứ gì khác hoàn toàn.
Tạo hình ảnh
Hãy làm cho điều này cụ thể hơn bằng một ví dụ. Giả sử chúng ta có một số bộ sưu tập hình ảnh lớn, chẳng hạn như 1,2 triệu hình ảnh trong ImageNet tập dữ liệu (nhưng hãy nhớ rằng cuối cùng đây có thể là một bộ sưu tập lớn các hình ảnh hoặc video từ internet hoặc rô-bốt). Nếu chúng ta thay đổi kích thước mỗi hình ảnh để có chiều rộng và chiều cao là 256 (như thường làm), tập dữ liệu của chúng ta là một 1,200,000x256x256x3khối pixel lớn (khoảng 200 GB). Sau đây là một số hình ảnh ví dụ từ tập dữ liệu này:
.png)
Những hình ảnh này là ví dụ về thế giới thị giác của chúng ta trông như thế nào và chúng tôi gọi chúng là "mẫu từ phân phối dữ liệu thực". Bây giờ chúng tôi xây dựng mô hình sinh sản mà chúng tôi muốn đào tạo để tạo ra những hình ảnh như thế này từ đầu. Cụ thể, một mô hình sinh sản trong trường hợp này có thể là một mạng nơ-ron lớn tạo ra hình ảnh và chúng tôi gọi chúng là "mẫu từ mô hình".
DCGAN
Một trong những mô hình gần đây như vậy là mạng DCGAN từ Radford et al. (hiển thị bên dưới). Mạng này lấy 100 số ngẫu nhiên được rút ra từ một phân phối đồng đều làm đầu vào (chúng tôi gọi những thứ này là mã hoặc biến tiềm ẩn , màu đỏ) và đưa ra hình ảnh (trong trường hợp này là hình ảnh 64x64x3 ở bên phải, màu xanh lá cây). Khi mã được thay đổi theo từng bước, hình ảnh được tạo ra cũng vậy—điều này cho thấy mô hình đã học được các tính năng để mô tả thế giới trông như thế nào, thay vì chỉ ghi nhớ một số ví dụ.
Mạng (màu vàng) được tạo thành từ mạng nơ-ron tích chập chuẩn các thành phần, chẳng hạn như =các lớp giải tích (ngược lại với các lớp tích chập), các lớp được kết nối đầy đủ, vân vân:
.png)
DCGAN được khởi tạo với trọng số ngẫu nhiên, do đó, một mã ngẫu nhiên được đưa vào mạng sẽ tạo ra một hình ảnh hoàn toàn ngẫu nhiên. Tuy nhiên, như bạn có thể tưởng tượng, mạng có hàng triệu tham số mà chúng ta có thể điều chỉnh và mục tiêu là tìm ra một thiết lập của các tham số này khiến các mẫu được tạo ra từ các mã ngẫu nhiên trông giống như dữ liệu đào tạo. Hay nói cách khác, chúng ta muốn phân phối mô hình khớp với phân phối dữ liệu thực trong không gian hình ảnh.
Đào tạo mô hình sinh sản
Giả sử chúng ta sử dụng một mạng mới khởi tạo để tạo ra 200 hình ảnh, mỗi lần bắt đầu bằng một mã ngẫu nhiên khác nhau. Câu hỏi đặt ra là: chúng ta nên điều chỉnh các tham số của mạng như thế nào để khuyến khích nó tạo ra các mẫu đáng tin cậy hơn một chút trong tương lai? Lưu ý rằng chúng ta không ở trong một thiết lập giám sát đơn giản và không có bất kỳ mục tiêu mong muốn rõ ràng nào cho 200 hình ảnh được tạo ra của mình; chúng ta chỉ muốn chúng trông thật. Một cách tiếp cận thông minh để giải quyết vấn đề này là tuân theo Mạng đối nghịch tạo sinh (GAN) cách tiếp cận. Ở đây chúng tôi giới thiệu một mạng phân biệt thứ hai (thường là mạng nơ-ron tích chập chuẩn) cố gắng phân loại xem hình ảnh đầu vào là thật hay được tạo ra. Ví dụ, chúng ta có thể đưa 200 hình ảnh được tạo ra và 200 hình ảnh thực vào bộ phân biệt và huấn luyện nó như một bộ phân loại chuẩn để phân biệt giữa hai nguồn. Nhưng ngoài ra—và đây là mẹo—chúng ta cũng có thể truyền ngược thông qua cả bộ phân biệt và bộ tạo để tìm cách thay đổi các tham số của bộ tạo để làm cho 200 mẫu của nó trở nên khó hiểu hơn một chút đối với bộ phân biệt. Do đó, hai mạng này bị khóa trong một trận chiến: bộ phân biệt đang cố gắng phân biệt hình ảnh thật với hình ảnh giả và bộ tạo đang cố gắng tạo ra hình ảnh khiến bộ phân biệt nghĩ rằng chúng là thật. Cuối cùng, mạng bộ tạo đang đưa ra hình ảnh không thể phân biệt được với hình ảnh thật cho bộ phân biệt.
Có một số cách tiếp cận khác để khớp các phân phối này mà chúng ta sẽ thảo luận ngắn gọn bên dưới. Nhưng trước khi đi sâu vào vấn đề đó, dưới đây là hai hình ảnh động hiển thị các mẫu từ mô hình tạo ra để cung cấp cho bạn cảm giác trực quan về quá trình đào tạo. Trong cả hai trường hợp, các mẫu từ trình tạo ban đầu có nhiễu và hỗn loạn, và theo thời gian hội tụ để có số liệu thống kê hình ảnh hợp lý hơn.
Điều này thật thú vị—các mạng nơ-ron này đang học thế giới trực quan trông như thế nào! Các mô hình này thường chỉ có khoảng 100 triệu tham số, vì vậy một mạng được đào tạo trên ImageNet phải nén (mất dữ liệu) 200GB dữ liệu pixel thành 100MB trọng số. Điều này khuyến khích nó khám phá các tính năng nổi bật nhất của dữ liệu: ví dụ, nó có thể học được rằng các pixel gần đó có thể có cùng màu hoặc thế giới được tạo thành từ các cạnh ngang hoặc dọc hoặc các đốm màu khác nhau. Cuối cùng, mô hình có thể khám phá ra nhiều quy luật phức tạp hơn: có một số loại nền, đối tượng, kết cấu nhất định, chúng xuất hiện theo một số cách sắp xếp có khả năng nhất định hoặc chúng biến đổi theo một số cách nhất định theo thời gian trong video, v.v.
Công thức tổng quát hơn
Về mặt toán học, chúng ta nghĩ về một tập dữ liệu các ví dụ x1,…,xNx1,…,xNnhư các mẫu từ một phân phối dữ liệu thực P(x) p ( x ). Trong hình ảnh ví dụ bên dưới, vùng màu xanh lam cho thấy phần không gian hình ảnh có xác suất cao (trên một ngưỡng nào đó) chứa hình ảnh thực và các chấm đen biểu thị các điểm dữ liệu của chúng tôi (mỗi điểm là một hình ảnh trong tập dữ liệu của chúng tôi). Bây giờ, mô hình của chúng tôi cũng mô tả một phân phối P^Tôi(x)P^Tôi( x )(màu xanh lá cây) được xác định ngầm định bằng cách lấy điểm từ phân phối Gaussian đơn vị (màu đỏ) và lập bản đồ chúng thông qua mạng nơ-ron (xác định)—mô hình sinh sản của chúng tôi (màu vàng). Mạng của chúng tôi là một hàm có tham số TôiTôivà việc điều chỉnh các thông số này sẽ điều chỉnh sự phân phối hình ảnh được tạo ra. Mục tiêu của chúng ta sau đó là tìm các thông số TôiTôitạo ra một phân phối gần giống với phân phối dữ liệu thực (ví dụ, bằng cách có một sự phân kỳ KL nhỏ sự mất mát). Do đó, bạn có thể tưởng tượng phân phối màu xanh lá cây bắt đầu ngẫu nhiên và sau đó quá trình đào tạo thay đổi các tham số theo từng bước lặp lại TôiTôiđể kéo giãn và bóp nó sao cho phù hợp hơn với sự phân bố màu xanh.
Ba cách tiếp cận mô hình sinh sản
Hầu hết các mô hình sinh đều có thiết lập cơ bản này, nhưng khác nhau về chi tiết. Sau đây là ba ví dụ phổ biến về các phương pháp tiếp cận mô hình sinh để giúp bạn hiểu rõ hơn về sự thay đổi:
+ Mạng đối nghịch tạo sinh (GAN), mà chúng ta đã thảo luận ở trên, đưa ra quá trình đào tạo như một trò chơi giữa hai mạng riêng biệt: một mạng tạo (như đã thấy ở trên) và một mạng phân biệt thứ hai cố gắng phân loại các mẫu thành một trong hai loại đến từ phân phối thực P(x) p ( x )hoặc phân phối mô hình P^(x)P^( x ). Mỗi khi bộ phân biệt nhận thấy sự khác biệt giữa hai phân phối, bộ tạo sẽ điều chỉnh các tham số một chút để loại bỏ sự khác biệt đó, cho đến khi cuối cùng (theo lý thuyết), bộ tạo sẽ tái tạo chính xác phân phối dữ liệu thực và bộ phân biệt sẽ đoán ngẫu nhiên, không thể tìm ra sự khác biệt.
+ Bộ mã hóa tự động biến thiên (VAE) cho phép chúng ta chính thức hóa vấn đề này trong khuôn khổ của các mô hình đồ họa xác suất nơi chúng ta đang tối đa hóa một giới hạn dưới trên logarit có khả năng xảy ra của dữ liệu.
+ Các mô hình hồi quy tự động như PixelRNN thay vào đó hãy đào tạo một mạng lưới mô hình hóa phân phối có điều kiện của từng pixel riêng lẻ dựa trên các pixel trước đó (bên trái và trên cùng). Điều này tương tự như việc cắm các pixel của hình ảnh vào char -rnn, nhưng RNN chạy theo cả chiều ngang và chiều dọc trên hình ảnh thay vì chỉ chạy trên chuỗi ký tự 1D.
Tất cả các cách tiếp cận này đều có ưu và nhược điểm. Ví dụ, Variableal Autoencoders cho phép chúng ta thực hiện cả học tập và suy luận Bayesian hiệu quả trong các mô hình đồ họa xác suất phức tạp với các biến tiềm ẩn (ví dụ: xem DRAW, hoặc Tham dự Suy ra Lặp lại để biết gợi ý về các mô hình tương đối phức tạp gần đây). Tuy nhiên, các mẫu được tạo ra của chúng có xu hướng hơi mờ. Hiện tại, GAN tạo ra hình ảnh sắc nét nhất nhưng chúng khó tối ưu hóa hơn do động lực đào tạo không ổn định. PixelRNN có quy trình đào tạo rất đơn giản và ổn định ( mất softmax) và hiện tại cung cấp khả năng logarit tốt nhất (tức là tính hợp lý của dữ liệu được tạo ra). Tuy nhiên, chúng tương đối kém hiệu quả trong quá trình lấy mẫu và không dễ dàng cung cấp mã chiều thấp đơn giản cho hình ảnh. Tất cả các mô hình này đều là các lĩnh vực nghiên cứu đang hoạt động và chúng tôi rất mong muốn xem chúng phát triển như thế nào trong tương lai!
Những đóng góp gần đây của chúng tôi
Chúng tôi khá hào hứng về các mô hình tạo sinh tại OpenAI và vừa mới phát hành bốn dự án thúc đẩy trình độ nghệ thuật. Đối với mỗi đóng góp này, chúng tôi cũng phát hành một báo cáo kỹ thuật và mã nguồn.
Cải thiện GAN ( mã số). Đầu tiên, như đã đề cập ở trên, GAN là một họ mô hình sinh rất triển vọng vì không giống như các phương pháp khác, chúng tạo ra hình ảnh rất sạch và sắc nét và học các mã chứa thông tin có giá trị về các kết cấu này. Tuy nhiên, GAN được xây dựng như một trò chơi giữa hai mạng và điều quan trọng (và khó!) là giữ chúng cân bằng: ví dụ, chúng có thể dao động giữa các giải pháp hoặc máy phát có xu hướng sụp đổ. Trong công trình này, Tim Salimans, Ian Goodfellow, Wojciech Zaremba và các đồng nghiệp đã giới thiệu một số kỹ thuật mới để làm cho quá trình đào tạo GAN ổn định hơn. Các kỹ thuật này cho phép chúng tôi mở rộng quy mô GAN và thu được 128x128 các mẫu ImageNet đẹp
- Tài khoản ChatGTP 4 với vô vàn ưu đãi đặc biệt trong ngày hôm nay!
CIFAR-10 của chúng tôi các mẫu cũng trông rất sắc nét - nhân viên Amazon Mechanical Turk có thể phân biệt các mẫu của chúng tôi với dữ liệu thực với tỷ lệ lỗi là 21,3% (50% là đoán ngẫu nhiên):
Ngoài việc tạo ra những bức ảnh đẹp, chúng tôi giới thiệu một phương pháp học bán giám sát với GAN liên quan đến bộ phân biệt tạo ra đầu ra bổ sung chỉ ra nhãn của đầu vào. Cách tiếp cận này cho phép chúng tôi có được kết quả tiên tiến trên MNIST, SVHN và CIFAR-10 trong các cài đặt có rất ít ví dụ được gắn nhãn. Ví dụ, trên MNIST, chúng tôi đạt được độ chính xác 99,14% chỉ với 10 ví dụ được gắn nhãn cho mỗi lớp với mạng nơ-ron được kết nối đầy đủ—một kết quả rất gần với kết quả được biết đến nhiều nhất với các phương pháp tiếp cận được giám sát đầy đủ sử dụng tất cả 60.000 ví dụ được gắn nhãn. Điều này rất hứa hẹn vì các ví dụ được gắn nhãn có thể khá tốn kém để có được trong thực tế.
Mạng đối nghịch tạo sinh là một mô hình tương đối mới (chỉ mới được giới thiệu cách đây hai năm) và chúng tôi hy vọng sẽ thấy tiến triển nhanh hơn nữa trong việc cải thiện tính ổn định của các mô hình này trong quá trình đào tạo.
Cải thiện UAE ( mã số). Trong tác phẩm này, Durk Kingma và Tim Salimans giới thiệu một phương pháp linh hoạt và có khả năng mở rộng tính toán để cải thiện độ chính xác của suy luận biến thiên. Đặc biệt, hầu hết các VAE cho đến nay đều được đào tạo bằng cách sử dụng các hậu nghiệm thô sơ, trong đó mọi biến tiềm ẩn đều độc lập. Các phần mở rộng gần đây đã giải quyết vấn đề này bằng cách điều kiện hóa từng biến tiềm ẩn trên các biến khác trước nó trong một chuỗi, nhưng điều này không hiệu quả về mặt tính toán do các phụ thuộc tuần tự được đưa vào. Đóng góp cốt lõi của công trình này, được gọi là luồng tự hồi quy ngược (IAF), là một phương pháp tiếp cận mới, không giống như công trình trước đây, cho phép chúng ta song song hóa việc tính toán các hậu nghiệm gần đúng giàu và làm cho chúng linh hoạt gần như tùy ý.
Chúng tôi trình bày một số ví dụ mẫu hình ảnh 32x32 từ mô hình trong hình ảnh bên dưới, bên phải. Bên trái là các mẫu trước đó từ DRAW mô hình để so sánh (các mẫu VAE vani sẽ trông tệ hơn và mờ hơn). Mô hình DRAW chỉ mới được công bố cách đây một năm, một lần nữa nhấn mạnh sự tiến bộ nhanh chóng đang được thực hiện trong việc đào tạo các mô hình tạo sinh.
Thông tinGAN (mã số). Peter Chen và các đồng nghiệp giới thiệu InfoGAN—một phần mở rộng của GAN học các biểu diễn không bị rối và có thể diễn giải được cho hình ảnh. Một GAN thông thường đạt được mục tiêu tái tạo phân phối dữ liệu trong mô hình, nhưng bố cục và tổ chức của không gian mã không được chỉ định rõ ràng —có nhiều giải pháp khả thi để ánh xạ đơn vị Gaussian vào hình ảnh và giải pháp mà chúng tôi đưa ra có thể phức tạp và rất rối rắm. InfoGAN áp đặt thêm cấu trúc vào không gian này bằng cách thêm các mục tiêu mới liên quan đến việc tối đa hóa thông tin lẫn nhau giữa các tập hợp con nhỏ của các biến biểu diễn và quan sát. Cách tiếp cận này cung cấp kết quả khá đáng chú ý. Ví dụ, trong hình ảnh khuôn mặt 3D bên dưới, chúng tôi thay đổi một chiều liên tục của mã, giữ nguyên tất cả các chiều khác. Rõ ràng từ năm ví dụ được cung cấp (dọc theo mỗi hàng) rằng các chiều kết quả trong mã nắm bắt các chiều có thể diễn giải được và mô hình có lẽ đã hiểu rằng có các góc máy ảnh, các biến thể khuôn mặt, v.v., mà không được thông báo rằng các tính năng này tồn tại và quan trọng:
Chúng tôi cũng lưu ý rằng các biểu diễn đẹp, không bị rối đã đạt được trước đây (chẳng hạn như với DC-IGN bởi Kulkarni và cộng sự), nhưng các cách tiếp cận này dựa vào sự giám sát bổ sung, trong khi cách tiếp cận của chúng tôi hoàn toàn không có sự giám sát.
Hai dự án gần đây tiếp theo đang trong quá trình học tăng cường (Thiết lập (RL) (một lĩnh vực trọng tâm khác tại OpenAI), nhưng cả hai đều bao gồm thành phần mô hình tạo sinh.
Khám phá thúc đẩy bởi sự tò mò trong học tăng cường sâu thông qua mạng nơ-ron Bayesian (mã số). Việc khám phá hiệu quả trong không gian liên tục và có chiều cao hiện là một thách thức chưa được giải quyết trong học tăng cường. Nếu không có các phương pháp khám phá hiệu quả, các tác nhân của chúng ta sẽ vật lộn cho đến khi chúng tình cờ gặp phải những tình huống có thưởng. Điều này đủ trong nhiều nhiệm vụ đồ chơi đơn giản nhưng không đủ nếu chúng ta muốn áp dụng các thuật toán này vào các thiết lập phức tạp với không gian hành động có chiều cao, như thường thấy trong robot. Trong bài báo này, Rein Houthooft và các đồng nghiệp đề xuất VIME, một cách tiếp cận thực tế để khám phá bằng cách sử dụng sự không chắc chắn trên các mô hình tạo sinh. VIME khiến tác nhân tự thúc đẩy; nó chủ động tìm kiếm các hành động trạng thái đáng ngạc nhiên. Chúng tôi chỉ ra rằng VIME có thể cải thiện một loạt tìm kiếm chính sách phương pháp và đạt được tiến bộ đáng kể trong các nhiệm vụ thực tế hơn với phần thưởng ít (ví dụ các tình huống trong đó tác nhân phải học các nguyên lý chuyển động mà không có bất kỳ hướng dẫn nào).
Cuối cùng, chúng tôi muốn đưa thêm một dự án thưởng thứ năm: Học tập bắt chước đối nghịch tạo sinh (mã số), trong đó Jonathan Ho và các đồng nghiệp trình bày một cách tiếp cận mới cho việc học bắt chước. Jonathan Ho đang tham gia cùng chúng tôi tại OpenAI với tư cách là thực tập sinh mùa hè. Anh ấy đã thực hiện hầu hết công việc này tại Stanford nhưng chúng tôi đưa nó vào đây như một ứng dụng liên quan và cực kỳ sáng tạo của GAN vào RL. Thiết lập học tăng cường tiêu chuẩn thường yêu cầu người ta thiết kế một hàm phần thưởng mô tả hành vi mong muốn của tác nhân. Tuy nhiên, trên thực tế, điều này đôi khi có thể liên quan đến quá trình thử và sai tốn kém để có được các chi tiết đúng. Ngược lại, trong học bắt chước, tác nhân học từ các ví dụ minh họa (ví dụ như được cung cấp bởi điều khiển từ xa trong robot), loại bỏ nhu cầu thiết kế hàm phần thưởng.
Các phương pháp mô phỏng phổ biến liên quan đến một đường ống hai giai đoạn: đầu tiên là học một hàm phần thưởng, sau đó chạy RL trên phần thưởng đó. Một đường ống như vậy có thể chậm và vì nó gián tiếp nên khó có thể đảm bảo rằng chính sách kết quả hoạt động tốt. Công trình này cho thấy cách người ta có thể trích xuất trực tiếp các chính sách từ dữ liệu thông qua kết nối với GAN. Do đó, phương pháp này có thể được sử dụng để học các chính sách từ các cuộc trình diễn của chuyên gia (không có phần thưởng) trên OpenAI Gym khó môi trường, chẳng hạn như Ant và Humanoid.
Tiến về phía trước
Các mô hình sinh sản là một lĩnh vực nghiên cứu đang phát triển nhanh chóng. Khi chúng ta tiếp tục phát triển các mô hình này và mở rộng quy mô đào tạo và các tập dữ liệu, chúng ta có thể mong đợi cuối cùng sẽ tạo ra các mẫu mô tả hình ảnh hoặc video hoàn toàn hợp lý. Bản thân điều này có thể được sử dụng trong nhiều ứng dụng, chẳng hạn như nghệ thuật tạo theo yêu cầu hoặc các lệnh Photoshop++ như "làm cho nụ cười của tôi rộng hơn". Các ứng dụng hiện được biết đến khác bao gồm khử nhiễu hình ảnh, sơn trong, siêu phân giải, dự đoán có cấu trúc, khám phá trong việc học tăng cường và đào tạo trước mạng nơ-ron trong trường hợp dữ liệu được gắn nhãn tốn kém.
Tuy nhiên, lời hứa sâu xa hơn của công trình này là trong quá trình đào tạo các mô hình sinh sản, chúng ta sẽ cung cấp cho máy tính khả năng hiểu biết về thế giới và những gì tạo nên thế giới.

Cách đổi Mật khẩu Chat GPT - Hướng dẫn đổi Pass Chat GPT 100% Thành công
Hướng dẫn Cách đăng nhập Chat GPT Nhanh nhất | Có hỗ trợ Miễn phí qua Teamview-Ultraview
Chat GPT Plus là gì? So sánh Chat GPT Plus với Chat GPT Miễn phí
Chat GPT bị giới hạn giải thích vì sao và cách khắc phục
Chat GPT là gì ? Cách đăng Ký Chat GPT Miễn Phí tại Việt Nam