Đồng bộ drone với đám mây bằng world model giúp cắt giảm 94% lưu lượng dữ liệu

Khám phá kỹ thuật đồng bộ drone với đám mây bằng world model trong PyTorch, giúp duy trì trạng thái chính xác và cắt giảm…

Hai bản sao của cùng một mô hình AI thu nhỏ có thể duy trì sự đồng bộ hoàn hảo giữa một thiết bị từ xa và hệ thống đám mây mà không cần truyền phát dữ liệu liên tục. Dưới đây là hướng dẫn triển khai world model bằng thư viện PyTorch.

Tại sao các thiết bị kết nối mạng lại lãng phí nhiều băng thông?

Hãy hình dung một người bạn đang đi xe buýt về nhà. Cứ mỗi giây, người đó lại gọi điện thông báo: “Vẫn đang trên xe.” Cúp máy. Chuông reo: “Vẫn đang trên xe.” Chuông reo: “Vẫn đang trên xe.” Bạn chắc chắn sẽ chặn số điện thoại đó. Nhưng ngay sau đó bạn phải mở chặn, vì điều gì sẽ xảy ra nếu chiếc xe buýt thực sự gặp sự cố hoặc xảy ra biến cố bất ngờ?

Đó chính là phương thức mà phần lớn các thiết bị từ xa đang giao tiếp với đám mây hiện nay. Một máy bay không người lái (drone) giao hàng, một robot kho vận hay một tua-bin gió: tất cả đều truyền tải liên tục luồng dữ liệu cảm biến về trạm gốc nhiều lần trong một giây. Hầu hết các bản tin đó đều mang cùng một thông điệp: không có gì mới, mọi thứ đang diễn ra đúng như dự kiến. Băng thông mạng phải chịu chi phí tối đa cho con số không về mặt thông tin mới.

Thực nghiệm này sử dụng môi trường mô phỏng CartPole — một con xe trượt mang một thanh cân bằng phía trên, và dữ liệu truyền đi chỉ gồm vài tham số định lượng thay vì luồng video. Mô hình bài toán drone đóng vai trò mục tiêu ứng dụng thực tế, nhưng bản chất toán học và thuật toán trong mô phỏng không hề thay đổi.

Giải pháp thiết kế ở đây tập trung vào cơ chế chỉ truyền tải các biến động bất thường. Bài viết sẽ làm rõ:

Nội dung lộ trình kỹ thuật chi tiết:

  • Bản chất kỹ thuật của một world model;
  • Cơ chế hai bản sao của cùng một world model duy trì tính đồng bộ giữa thiết bị biên và đám mây;
  • Cách xây dựng mô hình trong PyTorch chạy trực tiếp trên máy tính cá nhân;
  • Hiệu quả cắt giảm lưu lượng dữ liệu thực tế khi so sánh với các phương pháp cơ sở.

Bản chất kỹ thuật của một world model,

Cơ chế hai bản sao của cùng một world model duy trì tính đồng bộ giữa thiết bị biên và đám mây,

Cách xây dựng mô hình trong PyTorch chạy trực tiếp trên máy tính cá nhân,

Hiệu quả cắt giảm lưu lượng dữ liệu thực tế khi so sánh với các phương pháp cơ sở.

Toàn bộ thuật toán được diễn giải tường minh từ các khái niệm nền tảng mà không yêu cầu kiến thức chuyên sâu phức tạp từ trước.

World model là gì?

Về bản chất, world model là một chương trình có khả năng dự đoán trạng thái kế tiếp của hệ thống. Nó tiếp nhận hai tham số đầu vào: trạng thái hiện tại và hành động tác động. Đầu ra là trạng thái dự kiến của hệ thống ở bước thời gian tiếp theo. Mô hình không suy diễn từ định luật vật lý giải tích thông thường, mà học thông qua dữ liệu quan sát thực nghiệm.

Điểm mấu chốt là khả năng suy luận tiếp diễn: bạn có thể đưa chính kết quả dự đoán của mô hình quay trở lại làm đầu vào cho bước tiếp theo, lặp đi lặp lại liên tục. Mô hình sẽ mô phỏng bước tiến của tương lai mà không cần sự can thiệp từ phần cứng thực tế. Quá trình này được gọi là suy tưởng (imagining).

Trong thiết kế này, mô hình bị giới hạn quan sát: nó chỉ tiếp nhận hai giá trị là vị trí xe trượt và góc nghiêng của thanh cân bằng, hoàn toàn không được cung cấp vận tốc tức thời. Thiết kế này mô phỏng dữ liệu thị giác máy tính thực tế, vốn chỉ cung cấp vị trí không gian tại từng khung hình. Để ước tính vận tốc, mô hình phải ghi nhớ trạng thái liền trước. Do đó, mạng nơ-ron tích hợp một bộ nhớ ẩn gồm 64 trạng thái (sử dụng kiến trúc GRU) được cập nhật liên tục qua từng bước thời gian.

Môi trường thực nghiệm: Xe trượt, thanh cân bằng và gió nhiễu

Bài toán CartPole chuẩn được tùy biến với hai yếu tố nhằm tương đồng với vận hành drone thực tế. Thứ nhất, hệ thống không chỉ đứng yên cân bằng mà phải bám theo một quỹ đạo xác định: chuyển động qua lại dọc theo thanh trượt với tần số điều khiển 50 Hz. Thứ hai, xuất hiện gió nhiễu ngẫu nhiên tác động ngoại lực lên thanh cân bằng. Hệ thống đám mây hoàn toàn không cảm nhận được các luồng gió này.

Cả thiết bị thực thi và đám mây đều dùng chung một bộ quy tắc điều khiển: đẩy xe theo hướng thanh cân bằng đang ngã, đồng thời kéo nhẹ hệ thống về quỹ đạo mục tiêu. Quy tắc này chỉ dựa trên hai chỉ số quan sát được cùng với sai phân vị trí giữa hai bước liên tiếp (đóng vai trò đại diện cho vận tốc).

Bên trái: môi trường thực nghiệm gồm xe trượt, thanh cân bằng và gió nhiễu. Bên phải: kiến trúc ý tưởng tổng thể. Cả hai phía đều nắm giữ cùng một bộ quy tắc điều khiển. Ảnh của tác giả.
Bên trái: môi trường thực nghiệm gồm xe trượt, thanh cân bằng và gió nhiễu. Bên phải: kiến trúc ý tưởng tổng thể. Cả hai phía đều nắm giữ cùng một bộ quy tắc điều khiển. Ảnh của tác giả.

Phương pháp tối ưu băng thông

Chiến lược ở đây là: cung cấp cho cả drone và đám mây cùng một world model, cùng lộ trình di chuyển và cùng bộ quy tắc điều khiển.

Khi đó, đám mây không cần drone liên tục báo cáo vị trí. Bản sao mô hình trên đám mây tự chạy độc lập để mô phỏng vị trí lý thuyết của drone tại thời điểm thực. Trong môi trường lý tưởng không có nhiễu, trạng thái mô phỏng sẽ khớp với thực tế, và lượng dữ liệu truyền tải sẽ giảm về mức gần như bằng không.

Tuy nhiên, các hệ thống vật lý thực tế luôn gặp phải hiện tượng sai lệch tích lũy.

Nguyên nhân gây ra hiện tượng sai lệch mô phỏng

Có hai nguyên nhân chính. Thứ nhất là nhiễu ngoại cảnh: khi một cơn gió đẩy lệch thanh cân bằng thực tế, đám mây không cảm nhận được xung lực này và vẫn mô phỏng drone bay ổn định theo quỹ đạo lý tưởng.

Thứ hai là sai số tích lũy (error accumulation) nội tại của chính mô hình. Bất kỳ mạng nơ-ron nào cũng có sai số nhỏ ở từng bước dự đoán. Bước tiếp theo lại lấy đầu vào từ bước có sai số trước đó. Sai số này sẽ tăng theo cấp số nhân khiến tương lai mô phỏng nhanh chóng phân kỳ khỏi thực tế.

Do đó, drone buộc phải gửi tín hiệu hiệu chỉnh. Nhưng nếu drone chỉ gửi giá trị tọa độ tuyệt đối, đám mây sẽ cộng dồn giá trị đó vào một trạng thái vốn đã sai lệch, khiến lỗi suy diễn vẫn tiếp tục tồn tại ở các bước kế tiếp.

Thông tin drone cần gửi không phải là tọa độ của nó, mà là độ lệch của đám mây so với thực tế. Để làm được điều này, thiết bị biên phải biết chính xác đám mây đang suy diễn trạng thái nào.

Kỹ thuật theo dõi bóng (Shadow tracking)

Mô phỏng của đám mây không phải là một hộp đen bí ẩn. Đó là một thuật toán xác định chạy trên cùng trọng số mô hình và nhận cùng dữ liệu đầu vào. Do đó, thiết bị biên chạy một bản sao thứ hai của thuật toán đám mây ngay trên phần cứng của mình. Thực thể này được gọi là bản sao bóng (shadow).

Bản sao bóng phản ánh chính xác trạng thái nội tại của đám mây nhờ tính chất tiền định: cùng mô hình, cùng điểm xuất phát, cùng dữ liệu cập nhật sẽ cho ra kết quả đồng nhất 100%.

Tại mỗi bước thời gian, drone duy trì hai luồng trạng thái:

  1. Thực tế (Reality): Vị trí thực đo đạc từ cảm biến phần cứng.
  2. Bản sao bóng (Shadow): Vị trí mà đám mây đang tính toán rằng drone đang ở đó.

Thực tế (Reality): Vị trí thực đo đạc từ cảm biến phần cứng.

Bản sao bóng (Shadow): Vị trí mà đám mây đang tính toán rằng drone đang ở đó.

Thuật toán so sánh độ lệch tuyệt đối:

gap = | reality − shadow |, và tín hiệu hiệu chỉnh chỉ được kích hoạt khi sai số này vượt qua một ngưỡng dung sai (threshold) định trước.

Nếu độ lệch nằm trong ngưỡng, drone giữ im lặng hoàn toàn. Khi vượt ngưỡng, drone chỉ gửi đúng giá trị chênh lệch (delta gồm hai số thực: vị trí xe và góc nghiêng). Cả đám mây và bản sao bóng lập tức áp dụng giá trị bù này cùng lúc để khôi phục trạng thái đồng bộ.

Tổng quan kiến trúc: truyền phát liên tục gây lãng phí dữ liệu, suy tưởng độc lập gây trôi sai số, và kỹ thuật theo dõi bóng giải quyết triệt để sự sai lệch bằng các xung hiệu chỉnh tối thiểu.
Tổng quan kiến trúc: truyền phát liên tục gây lãng phí dữ liệu, suy tưởng độc lập gây trôi sai số, và kỹ thuật theo dõi bóng giải quyết triệt để sự sai lệch bằng các xung hiệu chỉnh tối thiểu.

Đoạn mã cốt lõi xử lý điều kiện truyền dữ liệu:

gap = np.abs(obs - shadow.belief)                      # how wrong is the cloud right now?if gap[0] > limit[0] or gap[1] > limit[1]:             # too wrong on position or angle?    delta = obs - shadow.belief                        # the difference, nothing more    shadow.receive(delta, step)                        # fix the drone's copy of the cloud...    cloud.receive(delta, step)                         # ...and the real cloud, identically

Nhờ cơ chế kiểm soát ngưỡng này, đám mây không bao giờ bị sai lệch vượt quá giới hạn thiết lập. Kiểm tra thực nghiệm khẳng định trạng thái của bản sao bóng và đám mây luôn trùng khớp tuyệt đối:

assert np.array_equal(shadow.belief, cloud.belief)

Phép kiểm tra trên đạt tỷ lệ chính xác tuyệt đối qua hơn hai triệu chu kỳ đánh giá.

Xây dựng World Model bằng PyTorch

Mã nguồn hoàn chỉnh được lưu trữ tại thư mục 02_silent_edge trên GitHub. Dưới đây là các kỹ thuật then chốt giúp tối ưu hóa mô hình từ phiên bản ban đầu.

Phiên bản 1: Thất bại trước phương pháp ngoại suy tuyến tính

Mô hình đầu tiên dự đoán toàn bộ trạng thái tiếp theo từ đầu mà không kế thừa động học cơ bản. Kết quả thử nghiệm được đối chiếu với hai phương pháp cơ sở (baselines):

  • Đóng băng trạng thái (Liên hệ: 0981.243.678ze): Đám mây giả định thiết bị đứng yên kể từ bản tin cuối.
  • Ngoại suy tuyến tính (Straight line): Đám mây giả định thiết bị tiếp tục chuyển động với vận tốc đo được ở hai bản tin gần nhất.

Đóng băng trạng thái (Liên hệ: 0981.243.678ze): Đám mây giả định thiết bị đứng yên kể từ bản tin cuối.

Ngoại suy tuyến tính (Straight line): Đám mây giả định thiết bị tiếp tục chuyển động với vận tốc đo được ở hai bản tin gần nhất.

Kết quả cho thấy mạng nơ-ron ban đầu hoạt động kém hơn cả phép ngoại suy đường thẳng đơn giản. Ba cải tiến dưới đây đã khắc phục hoàn toàn vấn đề này.

Cải tiến 1: Truyền trực tiếp tín hiệu điều khiển hành động

Trong phiên bản đầu, đám mây tự suy diễn hướng tác động lực thông qua bộ quy tắc dựa trên hình ảnh mô phỏng nội tại. Do thuật toán điều khiển đổi hướng liên tục giữa đẩy trái và đẩy phải ở tần số 50 Hz, chỉ một sai số nhỏ trong mô phỏng khiến đám mây đoán sai hành động từ 15% đến 45% thời gian, dẫn đến sai lệch nghiêm trọng.

Giải pháp: thiết bị biên gửi trực tiếp 1 bit biểu thị hướng tác động ở mỗi bước (tương đương 50 bps). Chi phí băng thông này rất nhỏ nhưng loại bỏ hoàn toàn việc suy diễn sai lệch hành vi điều khiển.

Cải tiến 2: Học phần dư thay vì học lại quy luật vật lý tuyến tính

Thay vì bắt mạng nơ-ron xấp xỉ lại toàn bộ phương trình chuyển động quán tính, mô hình áp dụng nguyên lý học phần dư (residual learning):

Nếu một công thức giải tích đơn giản đã mô tả được phần lớn hành vi, mạng nơ-ron chỉ cần học phần sai số mà công thức đó chưa xử lý được.

Mô hình lấy ước lượng tuyến tính làm gốc, và mạng nơ-ron chỉ tính toán giá trị hiệu chỉnh bổ sung:

vị trí tiếp theo = vị trí hiện tại + sai phân bước trước + giá trị hiệu chỉnh từ mạng nơ-ron

step_change = obs_norm - prev_obs_norm                              # how much things moved last stepcorrection = self.correction_head(hidden) * self.correction_std     # the learned "bend" in the pathnext_obs_norm = obs_norm + step_change + correction                 # straight line + correction

Trọng số đầu ra của nhánh hiệu chỉnh được khởi tạo bằng 0, đảm bảo mô hình khi chưa huấn luyện vẫn hoạt động tương đương thuật toán ngoại suy tuyến tính.

Cải tiến 3: Huấn luyện mô phỏng chuỗi đa bước (Multi-step rollout)

Mô hình có thể dự đoán tốt ở một bước đơn lẻ nhưng nhanh chóng phân kỳ khi mô phỏng liên tiếp 30 bước. Do đó, trong quá trình huấn luyện, sau 8 bước khởi động trạng thái ẩn (warm-up), mô hình bắt buộc phải tự suy tưởng liên tiếp 32 bước tiếp theo và tính toán hàm mất mát trên toàn bộ chuỗi này:

dream_next, hidden_dream = model.step(dream_now, dream_prev, actions[:, j], hidden_dream)dream_prev, dream_now = dream_now, dream_next   # its own guess becomes the next input

Kết quả sau 32 bước suy tưởng độc lập trên tập kiểm thử: phương pháp tuyến tính lệch 22 cm, trong khi mô hình có nhánh hiệu chỉnh học máy chỉ lệch khoảng 4 mm. Toàn bộ mạng nơ-ron chỉ chứa 13.954 tham số và hoàn tất huấn luyện trong 13 phút.

Xử lý xung đột trạng thái ẩn khi nhận tín hiệu bù sai số

Khi đám mây nhận một xung hiệu chỉnh tọa độ, sự nhảy cóc vị trí tức thời khiến bộ nhớ GRU hiểu nhầm rằng vật thể vừa tăng tốc đột ngột, dẫn đến ước tính vận tốc sai lệch.

Để khắc phục mà không phát sinh dữ liệu mạng, cả hai đầu biên và đám mây sử dụng thuật toán hồi quy nội suy sai số phân bổ đều về các bước trước đó kể từ lần hiệu chỉnh gần nhất, sau đó chạy tái tạo lại trạng thái ẩn từ chuỗi lịch sử đã làm mịn.

Kết quả thực nghiệm: Mức độ tiết kiệm băng thông

Thực nghiệm đánh giá 100 phiên mô phỏng độc lập cho từng tổ hợp tham số, kiểm tra ở 3 ngưỡng sai số dung sai: Chặt (Tight – 2 cm / 0.01 rad), Trung bình (Medium – 5 cm / 0.02 rad) và Rộng (Loose – 10 cm / 0.03 rad).

Lưu lượng bit truyền mỗi giây để duy trì trạng thái đám mây trong ngưỡng sai số, dưới điều kiện gió vừa. Càng thấp càng tối ưu. Cột của world model đã bao gồm 1 bit/bước của tín hiệu điều khiển.
Lưu lượng bit truyền mỗi giây để duy trì trạng thái đám mây trong ngưỡng sai số, dưới điều kiện gió vừa. Càng thấp càng tối ưu. Cột của world model đã bao gồm 1 bit/bước của tín hiệu điều khiển.

Error limit

Streaming

No AI

Straight line

World model

Tight (2 cm / 0.01 rad)

3,200

1,326

1,501

Medium (5 cm / 0.02 rad)

3,200

Loose (10 cm / 0.03 rad)

3,200

Mô hình world model ghi nhận mức tiêu thụ băng thông thấp nhất trên mọi kịch bản kiểm thử.

Tỷ lệ cắt giảm băng thông so với truyền phát liên tục được tính bằng công thức:

saving = 1 − (bits sent ÷ bits needed to stream everything)

Mức tiết kiệm đạt 87% ở ngưỡng khắt khe (2 cm), 93% ở ngưỡng trung bình (5 cm) và lên tới 94,5% ở ngưỡng nới lỏng (10 cm).

Đối chiếu với các giải thuật cơ sở không dùng AI, mô hình world model kết hợp kỹ thuật theo dõi bóng tối ưu vượt trội nhờ năng lực dự báo chính xác động học phi tuyến tính trong môi trường có nhiễu động.

Nguồn: Towards Data Science

Top two plots: one gust, and the snap-back. Bottom three: how the number of corrections changes as the wind gets stronger.
Top two plots: one gust, and the snap-back. Bottom three: how the number of corrections changes as the wind gets stronger.
Chính sách hỗ trợ doanh nghiệp
LIÊN HỆ TƯ VẤN CÁC DỊCH VỤ AI
Hỗ trợ tư vấn, đào tạo và chuyển giao AI cho cá nhân, doanh nghiệp và tổ chức.
Chat Zalo Chat Zalo
Gọi ngay Chat