1 điểm bởi GN⁺ 2024-10-14 | 1 bình luận | Chia sẻ qua WhatsApp
  • DIAMOND là một cách tiếp cận không nén môi trường Atari thành các token tiềm ẩn rời rạc, mà mô phỏng bằng mô hình thế giới khuếch tán rồi huấn luyện tác nhân học tăng cường bên trong đó
  • Khung hình tiếp theo được tạo có điều kiện theo hành động của tác nhân và các khung hình trước đó; quá trình này được lặp lại để xây dựng một mô hình thế giới có thể chơi được
  • Ở số bước khử nhiễu thấp, DDPM không ổn định, nhưng EDM tạo được quỹ đạo ổn định ngay cả với 1 bước; DIAMOND dùng n=3 để đảm bảo tính nhất quán
  • Trên Atari 100k, đạt điểm trung bình chuẩn hóa theo con người là 1.46, thiết lập mức hiệu năng tốt nhất mới cho tác nhân được huấn luyện bên trong mô hình thế giới với điều kiện 100k khung hình
  • Việc áp dụng cho CS:GO dùng 87 giờ dữ liệu chơi của con người, pipeline 2 giai đoạn gồm dự đoán độ phân giải thấp + upsampling, cùng mô hình 381M tham số; có thể chơi ở khoảng 10 FPS trên RTX 3090

Bài toán mô hình hóa thế giới mà DIAMOND muốn giải quyết

  • Mô hình thế giới là một cách tiếp cận để huấn luyện tác nhân học tăng cường an toàn hơn và hiệu quả mẫu hơn
  • Các mô hình thế giới gần đây chủ yếu mô hình hóa động lực học của môi trường dưới dạng chuỗi biến tiềm ẩn rời rạc
  • Biểu diễn nén như vậy có thể bỏ sót chi tiết thị giác quan trọng đối với học tăng cường
  • DIAMOND áp dụng mô hình khuếch tán, vốn đạt kết quả mạnh trong tạo sinh ảnh, vào mô hình thế giới
  • Tên đầy đủ của DIAMOND là DIffusion As a Model Of eNvironment Dreams

Cách mô hình thế giới khuếch tán hoạt động

  • Mô hình khuếch tán được huấn luyện để dự đoán khung hình tiếp theo của trò chơi
  • Đầu vào bao gồm hành động của tác nhân và các khung hình trước đó
  • Khi tác nhân liên tục cung cấp hành động mới, mô hình khuếch tán sẽ cập nhật trạng thái trò chơi
  • Nhờ quá trình tạo sinh tự hồi quy này, mô hình khuếch tán đóng vai trò như một mô hình thế giới nơi tác nhân có thể học và chơi

Thiết kế khử nhiễu để chạy nhanh

  • Để làm cho mô hình thế giới nhanh, cần giảm số bước khử nhiễu
  • DDPM trở nên không ổn định ở số bước khử nhiễu thấp do lỗi tự hồi quy tích lũy
  • EDM tạo ra quỹ đạo ổn định ngay cả khi khử nhiễu 1 bước
  • Trong môi trường Boxing, khử nhiễu 1 bước nội suy giữa các kết quả khả dĩ, khiến người chơi màu đen khó dự đoán được tạo ra một cách mờ nhòe
  • Nhiều bước khử nhiễu hơn giúp chọn tốt hơn một chế độ cụ thể trong nhiều chế độ chuyển tiếp khả dĩ, tăng tính nhất quán theo thời gian
  • Mô hình thế giới khuếch tán của DIAMOND dùng n=3 bước khử nhiễu
  • Chuyển động của người chơi màu trắng do chính sách điều khiển, và hành động đó được đưa vào mô hình thế giới, nên được dự đoán đúng bất kể số bước khử nhiễu

Hiệu năng Atari 100k

  • DIAMOND mô hình hóa chi tiết thị giác quan trọng tốt hơn IRIS dựa trên token rời rạc
  • Khi huấn luyện tác nhân học tăng cường bên trong mô hình thế giới khuếch tán, DIAMOND đạt điểm trung bình chuẩn hóa theo con người là 1.46 trên Atari 100k
  • Điểm này cao hơn con người 46%
  • Đây là hiệu năng tốt nhất mới trong số các tác nhân được huấn luyện chỉ bên trong mô hình thế giới với điều kiện 100k khung hình

Cách mở rộng sang CS:GO

  • Mô hình thế giới khuếch tán của DIAMOND cũng được áp dụng cho mô phỏng môi trường 3D như Counter-Strike: Global Offensive
  • Phiên bản CS:GO dùng một tập dữ liệu cố định gồm 87 giờ chơi của con người thay vì dữ liệu do tác nhân học tăng cường thu thập
  • Để giảm chi phí huấn luyện, áp dụng pipeline 2 giai đoạn
    • Trước tiên dự đoán động lực học ở độ phân giải thấp
    • Sau đó upsample bằng mô hình thứ hai
  • Kích thước mô hình tăng từ 4.4M tham số cho Atari lên 381M tham số cho CS:GO
    • Trong đó 51M tham số thuộc về bộ upsampler bổ sung
  • Upsampler dùng lấy mẫu xác suất để cải thiện chất lượng tạo sinh hình ảnh
  • Mô hình động lực học không cần lấy mẫu xác suất
  • Mô hình CS:GO được huấn luyện trong 12 ngày trên RTX 4090 và có thể chơi ở khoảng 10 FPS trên RTX 3090

Tự chạy và tài liệu công khai

  • Mã nguồn, tác nhân và các mô hình thế giới có thể chơi được được công bố trong kho GitHub
  • Ví dụ cài đặt dùng các lệnh sau
git clone https://github.com/eloialonso/diamond.git
cd diamond
conda create -n diamond python=3.10
conda activate diamond
pip install -r requirements.txt
  • Chạy mô hình thế giới Atari:
python src/play.py --pretrained
  • Chạy mô hình thế giới CS:GO:
git checkout csgo
python src/play.py
  • Có thể xem thêm chi tiết trong bài báo

Các chế độ lỗi còn lại và giới hạn scaling

  • Mô hình thế giới khuếch tán của DIAMOND vẫn còn nhiều chế độ lỗi
  • Kỳ vọng rằng việc mở rộng dữ liệu và tính toán sẽ cải thiện nhiều khía cạnh
  • Tuy nhiên cũng có những giới hạn không thể giải quyết chỉ bằng scaling, chẳng hạn các vấn đề bắt nguồn từ bộ nhớ mô hình hạn chế
  • Một giới hạn thú vị là mô hình cho phép nhảy liên tiếp
    • Mô hình khái quát hóa tác động của việc nhảy lên hình học của cảnh
    • Vì dữ liệu huấn luyện không xuất hiện nhảy liên tiếp đủ thường xuyên, mô hình không học được rằng nhảy liên tiếp đáng lẽ là không thể

1 bình luận

 
GN⁺ 2024-10-14
Các ý kiến trên Hacker News
  • Video này https://x.com/Sentdex/status/1845146540555243615 trông quá giống giấc mơ của tôi
    Đôi khi trong mơ, nếu tôi cố nhảy thật cao thì nó sẽ chuyển sang một nơi khác đúng kiểu như vậy, và đồ vật cũng cứ thay đổi như thế
    Thật đáng kinh ngạc khi thấy nó gần với trải nghiệm trong mơ thực tế đến mức nào

    • Khi tôi mơ tỉnh, mọi chữ cái đều trông bị vỡ
      Khi các mô hình khuếch tán bắt đầu được chú ý, tôi cũng liên tưởng đến văn bản bị vỡ trong ảnh sinh ra theo cách tương tự
      Có lẽ đó là một manh mối rằng một phần vô thức của con người hoạt động khá giống nguyên lý của mô hình khuếch tán
    • Nếu quan sát kỹ, ngay cả khi tỉnh táo, tâm trí dường như cũng thường làm điều tương tự
      Trong thị giác thì ít nổi bật hơn, nhưng trong sự chú ý và chính suy nghĩ thì dễ thấy hơn
    • Thật thú vị khi giấc mơ khác nhau thế nào giữa mỗi người
      Giấc mơ của tôi thường hoàn toàn nhất quán về mặt hình ảnh, tôi thậm chí từng dùng Google Maps trong mơ; địa lý thì sai, nhưng bên trong nó nhất quán
      Tuy nhiên tôi chưa từng mơ tỉnh trong mơ, nên khác biệt đó có thể có ảnh hưởng
    • Vì vậy tôi kỳ vọng một cách có giới hạn
      Trong trạng thái mơ có thứ gì đó bị ngắt kết nối, và ở đây rõ ràng cũng có một sự đứt đoạn tương tự
      Mô hình này có vẻ thiếu world model kiểu như khả năng suy luận không gian mạnh và kỳ vọng về tính liên tục mà động vật có
      Tất nhiên, có lẽ điều đó cũng sẽ được học
    • Trông quá giống lúc tôi từng dùng DMT-5
  • Đây là mô hình 300 triệu tham số, bằng 1/1300 quy mô của llama-3 lớn, và được huấn luyện trên 5 triệu khung hình trong 12 ngày bằng GTX4090
    Đây là mức công việc mà các công ty công nghệ lớn làm vào năm 2015
    Nếu làm điều tương tự ở quy mô công nghiệp như các mô hình ngôn ngữ lớn thì chắc sẽ thật sự khủng khiếp

    • Chính xác thì nó có lợi ích gì?
      Counter Strike hiện đã chạy mượt hơn nhiều so với thế này, và cũng không lãng phí lượng tính toán khổng lồ
    • Nếu 12 ngày trên RTX4090 là đủ, thì có lẽ chẳng mấy chốc bất kỳ ai trên Internet cũng sẽ bắt đầu huấn luyện mô hình riêng
    • Tôi định vào nói gần như y hệt thì thấy bình luận này
      Tốc độ tiến bộ thật sự đáng kinh ngạc
      Chúng ta đang sống trong một thời đại thật thú vị
    • Thực ra là hai chiếc 4090, nhưng về cơ bản là đúng
  • Đây là một kết quả khá phấn khích
    Có vẻ đã có thể dùng để tạo xấp xỉ vật lý thực tế trong game engine
    Nếu dùng một physics engine nặng hơn và thực tế hơn, hoặc có thể CGI, để tạo nhiều đoạn gameplay, rồi huấn luyện mô hình xấp xỉ vật lý, ta sẽ có một physics engine nhẹ
    Cũng có thể đặt nhiều mô hình chuyên biệt, như cho động lực học của khói, cho vụ nổ
    Dù có hallucination, có lẽ cũng không tệ hơn các lỗi vật lý thường gặp trong game

    • Tôi không chắc liệu “dù có hallucination cũng không tệ hơn các lỗi vật lý thường gặp trong game” có đúng không
      Lỗi vật lý thì phổ biến, nhưng có thể ưu tiên sửa từ những lỗi nghiêm trọng nhất khiến không thể tiếp tục game
      Nếu là mô hình hộp đen thì làm như vậy sẽ khó hơn nhiều
    • Tôi tò mò cơ sở nào khiến bạn nghĩ suy luận bằng mạng nơ-ron sẽ rẻ hơn
      Vật lý Newton vốn đã được hiểu rất rõ và tính toán cũng khá hiệu quả
      Làm sao việc tính vật lý Newton bằng một hàm xấp xỉ có hàng tỷ tham số lại có thể rẻ hơn?
      Trông có vẻ đắt hơn và kém chính xác hơn so với mô phỏng vật lý đúng nghĩa
    • Bạn nghĩ suy luận bằng mạng nơ-ron 13 triệu tham số nhẹ hơn việc chạy một physics engine truyền thống à?
    • Lỗi vật lý là vấn đề nhất quán có thể sửa được
      Với mô hình học máy thì không có bảo đảm như vậy
      Cách này có lẽ chỉ ổn trong bối cảnh những game được cố ý làm cẩu thả
    • Liệu nó có hoạt động trong multiplayer không?
      Nếu chỉ là hiệu ứng hình ảnh thì ổn, nhưng nếu ảnh hưởng đến gameplay thì chẳng phải mỗi người chơi sẽ nhận kết quả khác nhau sao?
  • Tôi tò mò muốn hỏi người đã thật sự thử
    Trong quá trình xử lý, nó có tôn trọng hoặc xây dựng một bản đồ game nào không, hay giống như một cuộc dạo chơi trong giấc mơ ảo giác, nơi không thể quay lại cùng một chỗ hai lần và cả chiều không gian cũng kỳ lạ?
    Bản đồ game có hữu hạn không?

    • Chỉ xem video đầu tiên thôi cũng có đoạn một công trình đột ngột xuất hiện trước mặt người chơi
      Có vẻ nó không tạo bất kỳ bản đồ nào, cũng không có nhận thức có ý nghĩa về thứ giống trạng thái game
      Tương tự RPG dựa trên LLM
      Kiểu như nhặt một thanh kiếm bỏ vào túi trống, rồi đột nhiên lấy ra một ổ bánh mì để ăn
    • Tôi chỉ đọc lướt bài, nhưng có lẽ đó sẽ là trải nghiệm giống mơ, nơi nếu quay 180 độ và đi ngược lại thì cũng không khớp với nơi vừa đi qua
      Trông gần với bản đồ vô hạn hơn
    • Tôi đã thử trực tiếp, và không phải vậy
      Không có bất kỳ dạng nhận thức bản đồ nào
      Nó gần với một AI hồi tưởng/phát lại, nhớ khá chính xác những gì có trong tập dữ liệu huấn luyện; còn nếu làm hành động không có trong dữ liệu như đi thẳng vào tường thì nó sụp hoàn toàn và phun ra nhảm nhí
      Nhảm nhí có vẻ hợp lý, nhưng vẫn là nhảm nhí
  • Đây là công trình mà nhóm Schmidhuber đã làm năm 2018
    https://worldmodels.github.io/
    Tôi muốn chỉ ra điểm này

    • Rõ ràng là đi trước thời đại
      Ở đây dùng từ giấc mơ là chính xác, và cảnh lái xe cũng giống cảm giác lái xe trong mơ
    • Nó đã nằm trong tài liệu tham khảo đầu tiên của bài báo và được ghi nhận xứng đáng, nên có thể xem đây là liên kết cung cấp cho tiện những người không đọc đến phần tài liệu tham khảo
    • Tôi đã chơi thử, khá vui, và nếu sống sót quá lâu thì nó trở nên cực kỳ bất ổn
  • Tôi nghĩ mình đã hiểu đại khái tiền đề cơ bản của Stable Diffusion, tức là tạo ra hình ảnh chân thực bằng cách chạy ngược quá trình khử nhiễu
    Tuy nhiên theo tôi biết thì việc này luôn diễn ra ở cấp độ pixel
    Có nghiên cứu nào thử làm việc này ở cấp độ asset 3D không?
    Kiểu như nhét các asset game engine có vị trí và hướng vào, rồi điều chỉnh cho đến khi một cảnh trông hợp lý được tái dựng
    Nếu làm được, ta có thể “mơ” ra bản đồ thật và vật lý thật, và có thể tránh được đầu ra hơi lộn xộn trong các demo kiểu này chăng?

    • Theo tôi, thứ gần nhất hiện nay là 3D Gaussian Splatting
      Cho đến nay nó được dùng để học một cảnh từ ảnh chụp ở nhiều góc, rồi điều chỉnh mật độ của đám mây điểm để tái dựng theo dạng thể tích
      Nhưng cũng có thể huấn luyện mô hình trên nhiều cảnh khác nhau, rồi thực hiện diffusion trên một đám mây điểm ngẫu nhiên để tạo cảnh mới
      Việc render đám mây điểm theo thời gian thực cũng rất hiệu quả, nên có thể dùng để tạo ra các thế giới game cực kỳ chân thực thay vì hình học đa giác
      Có vẻ đã có người nghĩ đến việc đó: https://ar5iv.labs.arxiv.org/html/2311.11221
    • Mô hình ảnh không khử nhiễu ở cấp độ pixel
      Diffusion diễn ra trong không gian tiềm ẩn, và đó là một trong những đột phá lớn khiến mọi thứ hoạt động tốt
      Có một mô hình để mã hóa/giải mã giữa pixel và không gian tiềm ẩn
      Không gian tiềm ẩn có thể mã hóa các khái niệm cần thiết vào các chiều cần thiết, và thường có số chiều thấp hơn không gian pixel
      Vì vậy ta lấy một không gian tiềm ẩn có nhiễu, dùng mô hình diffusion để khử nhiễu, rồi dùng một mô hình khác là biến phân tự mã hóa để giải mã về không gian pixel
    • Không hẳn là asset 3D, nhưng mô hình diffusion được dùng cho sinh giao thông để đánh giá thuật toán xe tự lái, ví dụ như tạo quỹ đạo xe
      Những chiếc xe này khá thường xuyên va chạm
      Ví dụ: https://github.com/NVlabs/CTG
    • Tôi nghĩ bước tiếp theo là tạo thứ này ở cấp độ pixel
      Cách reverse engineering mà bạn mô tả có thể hấp dẫn vì dễ hiểu
      Dù vậy, tôi nghĩ tập trung vào sinh ở cấp độ pixel mới là hướng tiếp cận đúng
      Đầu ra hơi lộn xộn có lẽ sẽ được cải thiện trong thời gian ngắn
      Vì Doom(https://gamengen.github.io/) và công trình này đã chứng minh điều đó là khả thi, rất có khả năng đã có nhiều nghiên cứu hơn đang diễn ra để tìm kiến trúc phù hợp nhằm mở rộng lên HD với ảo giác tối thiểu
      Điều tương tự cũng đã xảy ra với video, nên có lẽ ta sẽ sớm thấy một đột phá ở mức tương tự
    • Thường thì không thực hiện ở cấp độ pixel, mà ở cấp độ không gian tiềm ẩn của một mô hình như VAE
      Việc tạo ảnh diễn ra trong không gian này, nơi có ít đầu ra hơn số pixel của ảnh cuối, rồi sau đó được chuyển thành pixel thông qua VAE
  • Tôi vẫn không hiểu sao mọi người không nhận ra thứ nhiễu địa ngục trong ảnh và video từ mạng nơ-ron
    Với tôi thì ngay từ đầu nó luôn nhận ra được và thấy đáng sợ

    • Tôi tò mò cụ thể “nhiễu địa ngục” nghĩa là gì
      Tôi cũng cảm thấy ảnh gần như luôn kỳ dị theo cách nào đó, nhưng có thể không nói về cùng một thứ
      Bạn có thể mô tả rõ hơn trải nghiệm đó không?
    • Nếu đó là kiểu tiếng rì rầm, hỗn loạn, bất hòa rất tinh vi nhưng gây bất an, thì tôi nghĩ mình phần nào hiểu ý bạn
    • Trong mắt cũng có rất nhiều nhiễu
  • Tôi vừa kiểm tra nhanh, và nó chạy rất tốt trên card AMD với ROCM PyTorch
    Khi chạy ngắn thì trông khá ổn
    Theo thời gian, chi tiết biến mất khá nhanh, và vũ khí có xu hướng biến thành một đống rác sặc sỡ
    Tôi cũng muốn chỉ ra rằng không có video nào cho thấy chuyện gì xảy ra khi đi thẳng vào tường
    Tình huống đó không được xử lý cho lắm thanh lịch

  • Điểm thật sự thú vị là khi huấn luyện nó trên GTA mới nhất cùng các video thực tế liên quan, rồi dùng để nâng cấp hình ảnh của những game cũ như Vice City theo thời gian thực
    Do thiếu tính nhất quán theo thời gian, nó vẫn sẽ có cảm giác như mơ, nhưng vì nền tảng vốn nhất quán nên tôi nghĩ đó không phải vấn đề lớn, và trông sẽ rất ấn tượng

    • Cách vẽ lại hình ảnh do engine game hiện có render ra là có hoạt động, và cho kết quả đáng kinh ngạc
      Như bạn chỉ ra, tính nhất quán theo thời gian không tốt
      Một pixel xanh lá độ phân giải thấp của ngọn núi ở xa có thể được diễn giải là cây ăn quả ở một khung hình, rồi là cây thông ở khung hình tiếp theo
      Có một demo làm điều tương tự vào năm 2021:
      https://www.youtube.com/watch?v=3rYosbwXm1w
    • Tôi nghĩ các game như GTA có quá nhiều chức năng và quá nhiều nhánh phức tạp nên sẽ khó hoạt động
      Nếu chỉ là lái xe quanh thành phố không mục đích thì có thể, và chỉ vậy thôi cũng đã rất ngầu rồi
    • Tôi không hiểu vì sao lại chỉ tập trung vào việc dùng thứ này cho trò chơi điện tử
      Điểm cốt lõi không phải là nó có thể tái tạo thế giới game, mà là nó có thể mô phỏng thế giới thực
      Người ta dùng video game để huấn luyện chỉ vì dữ liệu cần thiết có thể được tổng hợp rẻ và dễ
      Hệ thống này không biết rằng nó đang mô phỏng một trò chơi
      Nếu cho nó hàng nghìn đến hàng triệu giờ video thế giới thực cùng đầu vào của tác nhân, bạn sẽ có được mô phỏng của thế giới thực
    • Ngoài các ví dụ cũ hơn, còn có một công trình mới làm với GTA
      https://www.reddit.com/r/aivideo/comments/1fx6zdr/gta_iv_wit...
    • Dùng nó để nâng cấp hình ảnh nghe khá hợp lý, vì khá gần với việc DLSS đang làm
  • Càng lúc càng trở nên phi lý
    Nếu đó là một vòng lặp mạnh kiểu khung hình cũ và input → khung hình mới, tôi tò mò chuyện gì sẽ xảy ra nếu bắt đầu bằng một hình ảnh không phải Counter-Strike
    Hoặc nếu đưa vào một bản đồ mà mô hình chưa từng thấy, nó sẽ bám theo, hay quay về các bản đồ Counter-Strike quen thuộc?

    • Nhìn việc mọi “giấc mơ” đều chỉ là bản đồ đó, có vẻ nó chỉ biết Dust 2
      Nhìn mấy thứ như vậy khiến tôi có cảm giác như đang mơ về Dust 2, nên tôi muốn gọi đó là “giấc mơ”