Tìm hiểu Quantum Computing lần thứ N
Chỉ để hiểu ra là có những cái mình có đọc đến N lần thì cũng không hiểu được
Một ngày bình thường như bao ngày bình thường khác, mọi thứ vẫn hoạt động bình thường như chưa có gì xảy ra. Hai công ty trên thế giới vui vẻ làm 2 cái announcements nho nhỏ:
OpenAI mở Sora, hệ thống Video Generation bằng GenAI ra public
Google thông báo về quantum chip mới ra lò Willow, với việc thực hiện tính toán trong 5 phút thì bằng fastest supercomputer hiện nay chạy trong vòng 10^25 năm.
Sora thì mình cũng đọc qua và có biết về sự tồn tại rồi, nói chung cũng mang lại cho mình ít suy tư. Không hiểu sao đọc về cái này lại làm mình nhớ đến lớp Information Theory, lossy/lossless compression, rồi lại liên tưởng đến các thứ tưởng chừng đã quên rồi như là Kolmogorov Complexity… Chắc hôm nào mình nghĩ rõ ràng hơn thì mình sẽ viết thử về vấn đề này.
Hôm nay, chắc mình thử viết về cái chip mới của Google và thử xem nó có gì là hay ho.
Quantum Computing là cái quái gì
Cứ mấy năm thì lại có một thông báo mới về các bước phát triển của Quantum Computing, về việc nó đã phát triển đến thế nào, và tính toán nhanh được đến đâu. Mỗi lần thấy chủ đề này nổi lên thì mình lại quay lại đọc lại một chút, vì thực sự cái này là mình chưa được học hành một cách chuyên môn, và để xem mình có thể nắm bắt những cái kiến thức này như thế nào.
Hôm nay mình cũng có đọc kỹ hơn một chút và cũng nói chuyện với các bạn bè của mình, nên chắc thử tổng hợp lại xem mình biết được những cái gì.
Bắt đầu từ Wikipedia, quantum computer thì là một máy tính nhưng sử dụng các nguyên lý và hiện tượng của quantum mechanics. Bắt đầu từ kiến thức của classical mechanics, tất cả các vật thể đều có thể được đo lường, được định lượng một cách nhất định. Tuy nhiên, ở các tầm của các vật chất nhỏ nhất cấu thành nên thế giới(atomic và subatomic level), việc đo lường các hạt vật chất này là không thể đạt đến kết quả chính xác mà sẽ luôn có những sai số nhất định (do việc đo lường sẽ ảnh hưởng đến kết quả thực tế - cái này thì là Heisenberg’s uncertainty). Chính vì thế, ở cấp độ này, các vật thể không được đo đạc và diễn tả 1 cách cụ thể, mà sẽ được diễn tả dưới dạng probabilistic function: vật chất này đang có thể mang nhiều state cùng 1 lúc nhưng với probability nhất định (Note: đoạn này là mình giải thích theo hiểu biết của mình, có thể chưa chính xác lắm, nếu mọi người thấy chưa đúng thì có thể bổ sung và giải thích thêm). Với một cách hiểu hoàn toàn khác về vật chất, các nhà khoa học đã thiết lập ra một hệ thống riêng để nghiên cứu, phân tích, và tính toán ở trong khuôn khổ của quantum mechanics. Khi vật chất là không xác định (discrete) mà là probabilistic, bạn sẽ xây dựng một hệ thống tính toán riêng để giải quyết cho những bài toán này.
Đây là nguồn gốc cho đơn vị dữ liệu căn bản của quantum computing: qubit. Các dữ liệu của một hệ thống máy tính (digital data) được thể hiện qua một chuỗi các bits (0 hoặc là 1). Một chuỗi bitstring với độ dài N, ví dụ 01010101, chỉ thể hiện 1 giá trị nhất định. So với bit, 1 qubit có thể vừa là 0 vừa là 1 cùng một lúc (something something quantum superposition, giá trị chỉ thể hiện là 0 hoặc 1 lúc mà nó được measure). Một qubit string với độ dài N sẽ cùng một lúc thể hiện được 2^N trạng thái cùng một lúc, chỉ là nó nằm theo một probabilistic function.
Các máy tính bình thường, với bộ xử lý như CPU/GPU, xử lý digital bit bằng digital logic gates (như kiểu AND, OR, NOT, XOR các thứ), và vì data được thể hiện dưới dạng digital bit với length N, bộ xử lý sẽ xử lý các phép tính toán 2^N lần. Tuy nhiên, Quantum Computer, vì xử lý Qubit, nên sẽ được xử lý bởi các Quantum circuit, được cấu thành từ các quantum logic gate, xây dựng với các toán tử riêng dành cho qubit; nhờ việc xử lý Qubit nên các Quantum Computer có thể xử lý 2^N trạng thái cùng một lúc. Với số lượng Qubits sử dụng càng lớn, thì tốc độ xử lý của Quantum computing càng nhanh, và đạt được tốc độ xử lý nhanh hơn rất rất nhiều lần so với các bộ xử lý bình thường.
Tuy nhiên, không phải muốn nhanh là nhanh được, bởi vì
bạn phải biến bài toán gốc muốn xử lý thành một bài toán dưới dạng Quantum
Bạn phải encode được dữ liệu đầu ra đầu vào để nó phù hợp với mô hình dữ liệu Qubit
Bạn phải viết được Quantum Algo để giải bài toán Quantum problems
Tình trạng của các Qubit rất là không ổn định và rất dễ bị sai lệch khi có bất cứ ảnh hưởng từ phía bên ngoài vào, thế nên để xây dựng một hệ thống Quantum còn cần rất nhiều bước để giảm thiểu sai số.
Nói một cách nôm na, Quantum Computing là xây dựng hệ thống xử lý Quantum Circuit dựa vào Quantum Logic gates, xử lý dữ liệu Quantum data(qubits) dựa trên thuật toán Quantum Algorithms, tất cả dựa vào Quantum mechanics và các quantum phenomena….
Announcement của Google
Announcement của Google về cái chip mới Willow thì bao gồm có 2 phần đáng chú ý:
Reduce errors exponentially as it scale up more qubits
Thực hiện một cái benchmark với tốc độ khủng khiếp (5phút của Willow = 10^25 năm của siêu máy tính xịn nhất hiện giờ)
Cái này thì lại phải chia ra thành 2 ý để phân tích
Giảm thiểu sai sót trong tính toán khi scale số qubit lên - được mô tả kỹ hơn trong bài báo trên Nature. Với mình thì đây mới là cái bước tiến quan trọng hơn, tuy nhiên bài nghiên cứu có vẻ vẫn đang được paywall và mình chưa có thời gian ngồi đọc. Giảm thiểu độ sai sót là vô cùng quan trọng và có lẽ mới là đột phá quan trọng hơn của nghiên cứu này. Với độ mỏng manh và nhỏ bé của tất cả các thứ quantum, sai sót gần như là điều rất khó tránh khỏi, và nếu có một khả năng quantum error correction thì sẽ là một bước tiến khá quan trọng.
Thực hiện cái benchmark nhanh hơn trước rất nhiều: Đây là phần được các bài báo giật tít nhiều hơn, nhưng mình lại thấy nó cũng không quan trọng bằng phần thứ nhất.
(1) nó là logic của quantum computing, bạn tăng được nhiều Qubit lên thì nó nhanh lên, nếu họ sửa được phần error correction và tăng số lượng Qubit lên thì đây là một điều có thể hiểu được. Họ tăng lên đến 105 qubits thì việc hiệu quả tăng lên là có thể hiểu được
(2) bởi vì đây chỉ là benchmark, và họ vẫn chỉ giải một bài toán vô cùng là đơn giản. RCS(Random Circuit Sampling), được giới thiệu làm benchmark từ 2019 (bài báo). Vẫn là một bài toán được lặp lại, nên là mình cũng không quan tâm lắm, mình sẽ quan tâm hơn khi nó giải được các bài toán thực tế hơn.
All in all, mình nghĩ đây cũng sẽ là một bước tiến mới trong Quantum Computing, mặc dù hiện giờ domain này có vẻ vẫn còn rất là theoretical và cũng còn khó có thể áp dụng được nhiều.
Thế tại sao nên quan tâm đến Quantum Computing
Quantum Computing bây giờ có vẻ vẫn là mối quan tâm của các phòng nghiên cứu nhiều hơn là khả năng dân dụng. Tuy nhiên Quantum Computing lại có ảnh hưởng rất lớn đến các vấn đề dân dụng, bởi vì một trong những thuật toán đầu tiên mọi người nghĩ đến với Quantum Computing đó là phá mã hoá.
Thuật toán mọi người nhắc nhiều nhất với Quantum Computing chắc là Shor’s Algorithm, đó là thuật toán quantum để tìm prime factors của một số nhất định (hình như tiếng Việt là phân tích nhân tử thì phải.. lâu không dùng đến từ này). Nghe thì cũng kỳ, nhưng mà thực ra là cả thế giới của chúng ta đang dựa vào việc có 2 số nguyên tố thật lớn để mã hoá tất cả các thông tin của chúng ta. Các thuật toán liên quan đến việc trao đổi thông tin qua mạng, về asymmetric cryptographic implementaion, đều là dựa vào việc phân tích 1 số thật lớn thành tích của các số nguyên tố nhỏ hơn là một việc KHÓ. Tất cả các việc như là mã hoá tài khoản, mã hoá thông tin trên mạng, gửi end-to-end chat giữa các thiết bị với nhau đều dựa trên lý thuyết này. Việc có một thuật toán có thể giải quyết bài toán này một cách dễ dàng khi Quantum computing trở nên dễ dàng sử dụng đồng nghĩa với việc là tất cả các thứ bảo mật chúng ta có từ trước đến giờ sẽ tiêu tan đi hết.
Quantum Computing, tự nhiên lại thành thứ mà có thể các nhà nước hoặc các tổ chức lớn trên thế giới muốn nghiên cứu và nắm giữ, và ai gỡ bỏ được vướng mắc này thì sẽ làm đảo lộn hoàn toàn Internet mà chúng ta đã từng biết.
Kết
Mình cũng chỉ là một người đọc báo, và đọc được đến đâu thì cố hiểu đến đó. Cũng cố viết lại được những cái giải thích của mình xem mọi thứ nó có trở nên dễ đọc hơn hay không. Nếu ai thấy kiến thức của mình sai, hoặc là có thêm điều muốn discuss thì mình luôn sẵn sàng nhé!