15 điểm bởi GN⁺ 2025-02-28 | 1 bình luận | Chia sẻ qua WhatsApp
  • Triển khai một tác nhân nghiên cứu theo kiểu Deep Research bằng cách tận dụng các mô hình và công cụ mã nguồn mở (Milvus, LangChain, v.v.)
  • Các ví dụ triển khai cấu trúc tác nhân có khả năng tự động nghiên cứu chuyên sâu về một chủ đề hoặc câu hỏi thông qua tìm kiếm web và tài liệu, đồng thời lựa chọn hành động (tìm kiếm, sắp xếp, v.v.) ở từng bước trung gian đang ngày càng nhiều hơn
  • Bài viết giới thiệu dự án mã nguồn mở DeepSearcher, mở rộng các ý tưởng này. Nội dung đề cập đến định tuyến truy vấn, luồng thực thi có điều kiện, sử dụng công cụ thu thập web và nhiều nội dung khác
  • DeepSearcher được cung cấp dưới dạng thư viện Python và CLI, cho phép đưa vào nhiều tài liệu nguồn và dễ dàng điều chỉnh mô hình embedding cùng cấu hình vector DB bằng tệp cấu hình
  • Dù đơn giản, đây là một ví dụ trình diễn RAG dựa trên tác nhân, có thể đóng vai trò bàn đạp để đi đến phát triển ứng dụng AI thực tế
  • Đặc biệt, bài viết nhấn mạnh vấn đề tốc độ và hiệu quả của mô hình suy luận: quá trình truy vấn và tìm kiếm cần sinh ra rất nhiều token, khiến tài nguyên suy luận trở thành nút thắt cổ chai
  • Khi dùng DeepSeek-R1 reasoning model chạy trên phần cứng tùy biến của SambaNova, tốc độ sinh token mỗi giây nhanh hơn các dịch vụ cạnh tranh
  • Thông qua các dịch vụ suy luận đám mây như vậy, việc suy luận hiệu quả cho nhiều mô hình khác nhau như Llama 3.x, Qwen2.5, QwQ cũng trở nên khả thi

Xác định và phân rã câu hỏi

  • Truy vấn ban đầu của người dùng được phân rã thành các truy vấn con chi tiết
  • Tương tự bài viết trước, một truy vấn như "How has The Simpsons changed over time?" sẽ được chia thành nhiều truy vấn con như dưới đây
    • Ví dụ: ảnh hưởng văn hóa và xã hội của tác phẩm, thay đổi về nhân vật, hài hước và cách kể chuyện theo từng mùa, thay đổi trong hoạt hình và kỹ thuật sản xuất, thay đổi trong phản ứng của khán giả, v.v.
  • Ở các bước sau, nếu cần, hệ thống cũng có thể định nghĩa lại câu hỏi hoặc mở rộng thêm

Nghiên cứu và phân tích

  • Dựa trên các truy vấn con, hệ thống đi qua các bước định tuyến truy vấn, tìm kiếm vector, reflection, và lặp có điều kiện
  • Định tuyến truy vấn
    • Prompt được thiết kế để LLM quyết định nên sử dụng collection nào trong nhiều collection cơ sở dữ liệu
    • Hệ thống nhận phản hồi ở dạng JSON và tạo truy vấn tìm kiếm cho từng collection
  • Tìm kiếm vector
    • Thực hiện tìm kiếm tương đồng bằng cách sử dụng embedding được lưu trong Milvus
    • Tương tự bài viết trước, dữ liệu nguồn được chia nhỏ và vector hóa từ trước
  • Reflection
    • Dựa trên truy vấn và câu trả lời từ bước trước, LLM kiểm tra xem có cần thêm thông tin hay không
    • Nếu còn thiếu, hệ thống tạo truy vấn con mới và thử tìm kiếm lại
  • Lặp có điều kiện
    • Nếu kết quả reflection cho thấy cần truy vấn bổ sung, hệ thống lặp lại quy trình trên
    • Nếu xác định không cần thu thập thêm thông tin nữa, hệ thống chuyển sang bước tạo báo cáo cuối cùng

Tạo báo cáo cuối cùng

  • Tổng hợp tất cả truy vấn con và kết quả tìm kiếm để tạo báo cáo bằng một prompt duy nhất
  • Nhờ đó, báo cáo thu được có tính nhất quán và độ gắn kết cao hơn so với bản trình diễn trước
  • Ví dụ, báo cáo cuối cùng cho câu hỏi “How has The Simpsons changed over time?” sẽ cung cấp nội dung chi tiết với cấu trúc như sau
      1. Ảnh hưởng văn hóa và mức độ liên quan xã hội
      1. Sự tiến hóa của nhân vật, yếu tố hài hước và tuyến truyện
      1. Những thay đổi về hoạt hình và công nghệ
      1. Thay đổi về nhóm khán giả, phản ứng và tỷ suất người xem
    • Kết luận: quá trình tác phẩm chuyển mình từ một tác phẩm châm biếm nổi loạn thời kỳ đầu thành một biểu tượng đại chúng, v.v.
  • Có thể so sánh báo cáo được tạo bằng mô hình DeepSeek-R1 với phiên bản tạo bằng mô hình GPT-4o mini

Hướng phát triển tiếp theo

  • DeepSearcher hiện vẫn còn ở mức đơn giản, nhưng có thể tiếp tục phát triển thêm thông qua cấu trúc tác nhân bổ sung, tổ chức báo cáo, mở rộng lặp có điều kiện và các cải tiến khác
  • Các mô hình suy luận quy mô lớn đòi hỏi khối lượng tính toán rất nặng, vì vậy tốc độ suy luậnchi phí trở thành vấn đề cốt lõi của dịch vụ
  • Với mô hình DeepSeek-R1 của SambaNova, bài viết cho biết đã sử dụng 65 lần gọi suy luận, khoảng 25k token đầu vào và 22k token đầu ra, và vẫn nhận được phản hồi đủ nhanh với chi phí khoảng 0,30 USD
  • Có thể tự trải nghiệm dự án tại kho mã DeepSearcher, và nhóm dự định sẽ tiếp tục chia sẻ thêm tính năng cũng như các ví dụ trong tương lai

1 bình luận

 
GN⁺ 2025-02-28
Ý kiến trên Hacker News
  • Hệ thống này không sử dụng LLM cục bộ, nên không phải là một hệ thống cục bộ thực sự

    • Tò mò không biết có công cụ tìm kiếm chuyên sâu nào có thể dùng LLM cục bộ do Ollama và LM Studio lưu trữ hay không
  • Tò mò muốn so sánh với phiên bản mã nguồn mở của HuggingFace

    • Phiên bản HF sử dụng LLM suy luận để duyệt web, thu thập kết quả, sau đó đánh giá và tổng hợp thành kết quả cuối cùng
    • Có vẻ phiên bản này hiển thị kho vector của các tài liệu được tạo ra từ việc thu thập dữ liệu web
  • Điều kỳ diệu trong cách Grok triển khai là họ đã lưu cache phần lớn website nên cảm giác rất nhanh

    • Tìm kiếm Bing/Brave có vẻ không cung cấp chức năng đó
    • Tò mò không biết có dịch vụ nào như vậy tồn tại không
  • Thích các cách tiếp cận đa dạng đối với Deep Research

    • Đang thử các workflow mới bằng Flow
  • Có hai bài đăng blog liên quan

    • Chia sẻ trải nghiệm xây dựng Deep Research bằng mã nguồn mở
  • Vì các công ty AI lớn đều đã tạo ra cùng một kiểu sản phẩm Deep Research, nên có lẽ sẽ hợp lý hơn nếu tập trung vào một nền tảng mã nguồn mở dùng chung

  • Tò mò ý nghĩa thực tế của việc tích hợp web crawling là gì

    • Về mặt lý thuyết, tự hỏi liệu có thể dùng nó để đọc bài báo từ Sci-Hub và tạo ra nghiên cứu cấp cao học hợp lệ hay không
    • Có thể hữu ích để so sánh các báo cáo được viết bằng DeepSeek R1, GPT-4o và các mô hình lớn khác
    • Mã nguồn mở có thể giúp bộc lộ giới hạn của nhiều LLM nhanh hơn và hỗ trợ phát triển các vòng lặp suy luận tốt hơn cho những nhu cầu cụ thể
  • Đã tìm một công cụ Deep Research có thể kết nối với ghi chú cá nhân (Obsidian) và web

    • Có vẻ công cụ này có chức năng đó
    • Giờ chỉ còn việc tìm cách xuất kết quả Deep Research sang Obsidian
  • Đã thực sự dùng thử và gặp một vài vấn đề nên phải thay thế text embedding của openAI bằng MilvusEmbedding

    • Phản hồi của QuickStart khá tốt
  • Viên đạn bạc thực sự là tìm kiếm trên lib-gen và sci-hub