4 điểm bởi GN⁺ 29 ngày trước | 1 bình luận | Chia sẻ qua WhatsApp
  • Hệ thống Autoresearch là một cấu trúc vòng lặp tối ưu hóa có ràng buộc trong đó tác nhân LLM liên tục chỉnh sửa train.py để cải thiện hiệu năng, tự động lặp từ khâu đặt giả thuyết đến đánh giá
  • Thí nghiệm được chạy trong môi trường sandbox dựa trên container để chặn truy cập mạng và thực thi mã tùy ý
  • Sử dụng bộ dữ liệu Ukiyo-eVG để huấn luyện với khoảng 11.000 ảnh tranh khắc gỗ Nhật Bản và thông tin chú thích; mô hình dựa trên CLIP đạt Mean Rank 34.30, R@5 khoảng 53%
  • Các cải thiện chính đến từ việc nới lỏng tham số temperature (-113 Mean Rank)tinh chỉnh siêu tham số (-30 Mean Rank), ghi nhận mức cải thiện hiệu năng 54% qua 13 lần commit trong tổng 42 thí nghiệm trong một ngày
  • Tác nhân LLM hoạt động hiệu quả trong không gian tìm kiếm được xác định rõ ràng, nhưng sau giai đoạn thay đổi cấu trúc thì độ bất ổn tăng lên, cho thấy giới hạn đối với nghiên cứu hoàn toàn tự trị

Ý tưởng cốt lõi

  • Autoresearch là cấu trúc vòng lặp tối ưu hóa có ràng buộc xoay quanh một tác nhân LLM, trong đó tác nhân chỉnh sửa train.py để liên tục cải thiện các chỉ số đánh giá
    • Tác nhân đọc chỉ dẫn trong program.md và dùng scratchpad.md làm ghi chú làm việc để ghi lại quá trình thử nghiệm
  • Quá trình tìm kiếm gồm nhiều giai đoạn (phase); ban đầu bắt đầu từ tinh chỉnh siêu tham số, sau đó đến các thay đổi cấu trúc nhỏ, rồi mở rộng sang tìm kiếm tự do với ít ràng buộc hơn
  • Toàn bộ vòng lặp được thiết kế theo chu trình đặt giả thuyết → chỉnh sửa mã → huấn luyện → đánh giá → commit hoặc hoàn tác → lặp lại
  • Mỗi thí nghiệm bị giới hạn hoàn thành trong khoảng 5 phút để thúc đẩy lặp nhanh và tránh overfitting
  • Tác nhân có thể tự do chỉnh sửa train.py trong giới hạn thời gian cho phép
  • Sandboxing

    • Để ngăn rủi ro thực thi mã tùy ý, vòng lặp huấn luyện được chạy trong môi trường container và bị chặn truy cập mạng
    • run.sh quản lý toàn bộ luồng thí nghiệm, còn Claude Code chỉ có thể sửa train.pyprogram.md
    • Việc chạy Python trực tiếp, cài pip, truy cập mạng, git push, v.v. đều bị hạn chế
    • Phần triển khai liên quan được công khai trong kho GitHub

Bộ dữ liệu

  • Do không thể truy cập bộ dữ liệu X-quang y khoa dùng trong nghiên cứu gốc, nhóm đã dùng bộ dữ liệu Ukiyo-eVG
    • Gồm khoảng 11.000 ảnh tranh khắc gỗ Nhật Bản cùng chú thích cụm từ-hộp bao
    • Các hộp bao được chuyển thành bản đồ nhiệt Gaussian để thêm vào đầu vào mô hình, áp dụng cách làm tương tự cơ chế attention chuyên gia trong bài báo eCLIP gốc
  • Bản đồ nhiệt giúp mô hình tập trung vào các vùng cụ thể

Thiết lập thí nghiệm với Claude Code

  • Claude Code đã nâng cấp mã nghiên cứu hiện có lên môi trường Python mới hơn, đồng thời viết phần tải bộ dữ liệu mới và khung vòng lặp thí nghiệm
  • Thiết lập các tập chia cross-validation, logic đánh giá và các ý tưởng ban đầu trong program.md
  • Chỉ số đánh giá được dùng là Mean Rank, và trong báo cáo cuối cùng có thêm Recall@K
    • Mean Rank được dùng để đánh giá trực quan, nhưng bài viết lưu ý rằng Median Rank có lẽ phù hợp hơn vì ít nhạy với ngoại lệ hơn
  • Cấu hình mô hình: backbone CLIP gồm ViT-Small (22M) + DistilBERT (66M) + HeatmapProcessor, tổng cộng khoảng 90M tham số
    • Huấn luyện: 800 bước (khoảng 3 phút/thí nghiệm, trên RTX 4090)
    • Đánh giá: đo Mean Rank và Recall@K trên tập kiểm tra 1.000 ảnh
    • Hiệu năng cơ sở: Val Mean Rank 344.68, img→txt R@1 17.2%, txt→img R@1 16.5%

Kết quả thí nghiệm

  • Trong một ngày có tổng cộng 42 thí nghiệm, trong đó 13 lần commit và 29 lần hoàn tác
    • Mean Rank giảm từ 344.68 xuống 157.43, tức giảm 54%
  • Khi huấn luyện cuối cùng trên toàn bộ bộ dữ liệu, điểm test lại cao hơn điểm validation
    • Điều này cho thấy các thí nghiệm ngắn 800 bước đang ở trạng thái underfitting
  • Hiệu năng test cuối cùng: Mean Rank 34.30, img→txt R@5 53.0%, txt→img R@5 51.4%

Các điểm cải thiện chính

  • Sửa temperature clamp (-113 Mean Rank)

    • Trong mã, tham số temperature có thể học được đã bị cố định ở 2; tác nhân đã nới lỏng ràng buộc này và hiệu năng tăng đáng kể
    • Đây là yếu tố đơn lẻ có tác động lớn nhất trong toàn bộ quá trình cải thiện
  • Optuna++ (-30 Mean Rank)

    • Các cải thiện sau đó chủ yếu đến từ tinh chỉnh siêu tham số
    • Tăng số chiều chiếu và điều chỉnh lại learning rate giúp cải thiện thêm 30 điểm
    • Tác nhân thực hiện nhanh và có hệ thống hơn các công việc lặp đi lặp lại, nhàm chán mà con người thường phải làm
  • Giai đoạn lợi ích giảm dần

    • Từ giai đoạn 4 (thay đổi cấu trúc) trở đi, tỷ lệ giả thuyết thành công của LLM giảm mạnh
    • Các thay đổi cơ chế attention hay thử nghiệm ý tưởng táo bạo (moonshot) hầu hết đều thất bại
    • Ở nửa sau quá trình tìm kiếm, số lần thử mang tính ngẫu nhiên tăng lên
  • Tầm quan trọng của sandbox

    • Claude Code đôi khi quên quyền hạn và thử gọi bash sai, hoặc làm gián đoạn vòng lặp trong lúc chờ huấn luyện, cho thấy hành vi không ổn định
    • Nghiên cứu hoàn toàn tự trị vẫn còn có giới hạn

Quan sát kết thúc

  • Trong toàn bộ quá trình, 90% đầu diễn ra trơn tru, còn 10% cuối cần nhiều can thiệp
  • Tác nhân LLM có thể thực hiện nghiên cứu ML hiệu quả trong không gian tìm kiếm được xác định rõ ràng
  • Vòng lặp commit-hoàn tác của Autoresearch hữu ích như một chiến lược tìm kiếm có cấu trúc
  • Tuy nhiên, khi mở rộng sang vùng chưa biết, vòng lặp tối ưu hóa trở nên bất ổn hơn
  • Ràng buộc chỉ cho phép một thay đổi mỗi thí nghiệm có thể đã quá nghiêm ngặt đối với việc khám phá các ý tưởng quy mô lớn
    • Trong tương lai, việc thêm bước lập kế hoạch hoặc đưa vào subagent được nêu ra như các hướng cải thiện
  • Sau khi thí nghiệm kết thúc, quá trình cộng tác với Claude Code cũng khép lại và quay về nhịp sống thường ngày

Lời cảm ơn

  • Bộ dữ liệu Ukiyo-eVG: gồm khoảng 11K ảnh tranh khắc gỗ Nhật Bản và chú thích cụm từ-hộp bao
  • Autoresearch: dựa trên ý tưởng gốc của Andrej Karpathy

1 bình luận

 
Ý kiến trên Hacker News
  • Nếu liên kết chính chậm, có người gợi ý thử bản archive.is

  • Tôi thường dùng LLM để khám phá các nghiên cứu hiện có hoặc nghĩ về vấn đề theo cách khác
    90% kết quả không phù hợp với lĩnh vực của tôi, nhưng 10% còn lại khá hữu ích
    Tuy vậy, việc có một agent thực sự thử tất cả những gì LLM đề xuất thì quá tốn kém ($$$)
    Danh sách gợi ý thường có nhiều thư viện ngách không còn được bảo trì
    Mặt khác, các “chuyên gia tư vấn” của công ty cũng hay đưa ra những đề xuất vô lý tương tự, nên thà để agent đi làm việc với họ còn hơn

    • Giá trị của agent nằm ở chỗ có thể tự động lặp lại thí nghiệm trong lúc người dùng nghỉ ngơi
      Nhưng điều này chỉ có ý nghĩa khi một lần kiểm thử diễn ra nhanh. Trong công việc của tôi, một bài test mất nửa ngày nên khó mà chạy qua đêm
    • Tò mò không biết bạn làm trong lĩnh vực nào
    • Tôi thấy LLM hữu ích với các câu ngắn mà mình ngại phải nhớ, hoặc những chỗ sai cũng không sao
      Nhìn những người thiết lập MCP server hay AGENTS.md, tôi lại thấy như đó là bằng chứng rằng LLM không hoạt động đúng như quảng cáo
      Nếu được tinh chỉnh tốt cho một workflow cụ thể thì nó rất tuyệt, nhưng tôi nghi ngờ liệu điều đó có thể scale hay không
      Nếu không có nguồn vốn khổng lồ chống lưng cho huấn luyện và hạ tầng, liệu đây có thể trở thành một mô hình kinh doanh bền vững?
    • Có thể chi phí mới là vấn đề. Tôi dùng Claude Code khá nhẹ, mà ngay cả ở gói Max cũng gần như không hết token
  • Câu “agent hành xử giống như một thuật toán tối ưu siêu tham số” gây ấn tượng với tôi
    Cốt lõi là chỉ với một file prompt hệ thống tên program.md, nó lặp lại quy trình “cải thiện train.py → chạy huấn luyện → đánh giá → ghi lại kết quả”
    Phần còn lại chỉ là một mô hình ML bất kỳ

  • Cách tiếp cận tiêu chuẩn của nhóm chúng tôi là đưa cho LLM đoạn code đang chạy, rồi lặp lại việc sửa bug, đo hiệu năng và đánh giá độ bao phủ kiểm thử
    Dùng một model khác ở mỗi vòng lặp tạo cảm giác có được góc nhìn mới nên tôi thấy khá hay

    • Tôi tò mò liệu cách này có thể áp dụng để huấn luyện LLM cục bộ chuyên biệt cho một ngôn ngữ hay framework cụ thể hay không
  • Tôi từng thắc mắc vì sao “Autoresearch” lại được bàn tán nhiều đến vậy
    Tôi vẫn nghĩ nút thắt của AI/ML luôn là chất lượng dữ liệu hoặc tài nguyên tính toán, nên không rõ cách này có cải thiện được điều đó không

    • Thực ra kiểu thử nghiệm này đã có từ lâu rồi. AutoML là một ví dụ, nhưng trên thực tế nó không thành công lắm
      Đã từng có các cách tiếp cận như tối ưu Bayesian hay Gaussian Process, nhưng rốt cuộc random search lại tốt hơn
      Điểm khác là LLM có thể đọc tài liệu và suy luận theo lẽ thường
      Không hoàn hảo, nhưng có khả năng sẽ tốt hơn các phương pháp trước đây
    • Điểm khác là nó có thể vượt ra ngoài việc chỉ tinh chỉnh siêu tham số để làm cả thay đổi cấu trúc phi tham số
      Không phải ý tưởng hoàn toàn mới, nhưng có vẻ người ta kỳ vọng nó sẽ bớt brute-force hơn
    • Cũng có những kỹ thuật sẵn có như “Swarm optimization”, nhưng LLM khác ở chỗ nó có thể học từ các nghiên cứu trước đây để tập trung vào những trục quan trọng
      Nói cách khác, LLM có thể tận dụng những nghiên cứu mà ai đó đã làm rồi
    • Tôi không đồng ý với ý “dữ liệu hay compute là nút thắt”
      Cốt lõi của ML là tìm một ánh xạ hàm tốt hơn với cùng đầu vào X
      Chỉ tăng compute thôi thì không giải quyết được
    • Rốt cuộc Autoresearch là cách giao cả việc suy nghĩ cho LLM
  • Kết quả cuối cùng là nó đã hoạt động. LLM thực sự tìm ra bug và tối ưu hóa nữa

    • Nhưng trên thực tế, phần lớn cải thiện đến từ sửa bug + tuning bằng Optuna
      Những việc này với Claude Code cũng làm rất nhanh
      Giá trị thực của Autoresearch có lẽ nằm ở khám phá kiến trúc
      Tôi tò mò liệu đã có ai dùng nó cho mô hình hóa khám phá chưa
  • Nhìn vào commit log (liên kết GitHub) thì phần lớn chỉ là tinh chỉnh siêu tham số
    Đến mức đó thì tôi thấy phí token ($$$)

    • Có lẽ sẽ hiệu quả hơn nếu thêm một bước ước tính chi phí và xếp hạng vào Autoresearch, để con người xem xét rồi mới chạy
      Có thể cải thiện theo hướng dùng adapter LoRa để phản hồi chi phí
    • Thực ra với các công cụ mã nguồn mở như Optuna hay skopt thì làm được cả khi không có GPU
  • Bài báo gốc dùng dữ liệu X-ray y tế, nhưng vì không có quyền truy cập nên họ thay bằng Ukiyo-eVG (11K tranh khắc gỗ Nhật Bản)
    Trông như một sự chuyển hướng khá kỳ lạ. Dữ liệu ảnh y tế miễn phí cũng có nhiều trên Cancer Imaging Archive

    • Nói đúng đấy. Chỉ là tôi thấy hơi ngại khi giao dữ liệu y tế cho agent, và cũng muốn thử nghiệm chuyển miền
  • Tôi đã mong có ai đó làm kiểu thử nghiệm này, nên rất vui vì đã có người thực sự làm
    Đoạn “tôi mệt vì chờ huấn luyện xong nên đóng cuộc trò chuyện lại” làm tôi bật cười
    Cảm ơn vì đã chia sẻ kết quả

    • Cảm ơn, tôi cũng để lại lời nhắn rằng mình đã đọc rất thích
  • Cái này giống thử sai có cấu trúc hơn là nghiên cứu tự động hóa
    Rốt cuộc, điều cốt lõi là chất lượng của chỉ số đánh giá. Nếu nó yếu, bạn chỉ đang tối ưu nhanh hơn theo sai hướng mà thôi

    • Việc thiết kế một hàm fitness tốt xưa nay vẫn luôn khó
    • Cũng có ý kiến cho rằng rốt cuộc đó chẳng phải chính là phương pháp khoa học hay sao