10 điểm bởi GN⁺ 2024-06-21 | 2 bình luận | Chia sẻ qua WhatsApp
  • Octomind sử dụng AI agent để tự động tạo và chỉnh sửa các bài kiểm thử end-to-end trong Playwright.
  • Ban đầu, họ sử dụng framework LangChain, nhưng theo thời gian, mức độ trừu tượng hóa cao của LangChain bắt đầu gây ra vấn đề.

Các vấn đề của LangChain

  • Sự trừu tượng hóa của LangChain ban đầu hữu ích, nhưng khi xuất hiện các yêu cầu phức tạp hơn thì việc hiểu mã và bảo trì trở nên khó khăn.
  • Việc hiểu cấu trúc nội bộ và debug LangChain tốn rất nhiều thời gian.
  • Ví dụ, ngay cả với đoạn mã đơn giản để dịch một từ tiếng Anh sang tiếng Ý, việc dùng LangChain cũng làm tăng độ phức tạp.

Vấn đề về trừu tượng hóa của LangChain

  • LangChain chồng nhiều lớp trừu tượng lên nhau, làm tăng độ phức tạp của mã.
  • Những lớp trừu tượng này khiến việc hiểu mã và debug trở nên khó hơn.
  • Ví dụ, ngay cả với tác vụ đơn giản như lấy dữ liệu JSON từ API, việc dùng LangChain cũng làm tăng độ phức tạp.

Ảnh hưởng tới đội ngũ phát triển

  • Khi cố gắng triển khai kiến trúc agent phức tạp, LangChain trở thành yếu tố cản trở.
  • Sau khi loại bỏ LangChain, họ có thể tự do viết mã theo đúng yêu cầu của mình.

Có cần framework để xây dựng ứng dụng AI không?

  • LangChain ban đầu hữu ích, nhưng về lâu dài, phát triển mà không dùng framework có lẽ sẽ tốt hơn.
  • Phần lớn ứng dụng AI có thể được xây dựng đầy đủ chỉ với mã đơn giản và một vài gói bên ngoài.
  • Nên ưu tiên cách tiếp cận đơn giản cho đến khi các mẫu sử dụng agent được định hình rõ ràng.

Phát triển nhanh và gọn với các khối xây dựng mô-đun

  • Framework áp đặt cấu trúc, trong khi các ứng dụng AI hiện vẫn chưa có những mẫu sử dụng được thiết lập rõ ràng.
  • Cách tiếp cận bằng các khối xây dựng mô-đun ưu tiên mã cấp thấp đơn giản và giúp tăng tốc độ phát triển.
  • Việc sử dụng các thành phần mô-đun như vector database giúp codebase luôn gọn gàng và dễ thích ứng.

Ý kiến của GN⁺

  • Giới hạn của LangChain: Mức độ trừu tượng hóa cao của LangChain ban đầu hữu ích, nhưng khi xuất hiện yêu cầu phức tạp thì ngược lại có thể trở thành rào cản.
  • Ưu điểm của cách tiếp cận mô-đun: Cách tiếp cận bằng các khối xây dựng mô-đun giúp việc hiểu mã và bảo trì dễ dàng hơn, đồng thời tăng tốc độ phát triển.
  • Xem xét lại sự cần thiết của framework: Không phải mọi ứng dụng AI đều cần framework; chỉ với mã đơn giản và các gói bên ngoài cũng có thể triển khai đầy đủ.
  • Tầm quan trọng của tốc độ phát triển: Trong lĩnh vực AI, thử nghiệm nhanh và tạo prototype là rất quan trọng, và framework có thể hạn chế điều đó.
  • Mẫu sử dụng agent trong tương lai: Cho đến khi các mẫu sử dụng agent được thiết lập rõ ràng, nên duy trì cách tiếp cận đơn giản.

2 bình luận

 
yangeok 2024-06-24

Nghe nói đây là một kiến trúc thất bại, giờ lại thấy cả trên GeekNews nữa.

 
GN⁺ 2024-06-21
Ý kiến trên Hacker News
  • Đã xây dựng tác tử LLM thương mại đầu tiên vào khoảng tháng 10/11 năm ngoái: Việc tự xây dựng tác tử từ đầu thay vì dùng LangChain đã giúp đạt được kết quả tốt hơn.

  • Độ phức tạp của framework LLM: Các framework LLM như LangChain có xu hướng mang vào sự phức tạp kiểu Java hoặc Python.

  • So sánh LangChain và ChatGPT: LangChain được tạo ra trước khi ChatGPT xuất hiện, nhưng khi ChatGPT cung cấp mô hình hội thoại tốt hơn thì nhu cầu đối với LangChain giảm đi.

  • Tranh cãi về giá trị của LangChain: LangChain cố gắng đứng giữa lập trình viên và LLM, nhưng trên thực tế không bổ sung được nhiều giá trị và lại đưa vào các lớp trừu tượng không cần thiết.

  • Trừu tượng tốt và trừu tượng xấu: Trừu tượng tốt xử lý logic ứng dụng, còn trừu tượng xấu lại che đi chính những việc cần làm, khiến mất đi hiểu biết sâu về vấn đề.

  • Vấn đề khi dùng tác tử: Với tạo nội dung, dùng prompt tuần tự thường dễ hơn và hiệu quả hơn so với dùng tác tử.

  • Giới thiệu framework Ragged: Bài viết giới thiệu Ragged, một connector gọn nhẹ giúp kết nối dễ dàng với LLM. Nó cung cấp giao diện tích hợp tương tự ORM.

  • LangChain thiếu tính hữu dụng: Cách tiếp cận của LangChain tuy thú vị, nhưng trên thực tế dùng trực tiếp thư viện runtime của LLM thường hiệu quả hơn.

  • Framework tác tử thay đổi quá nhanh: Framework tác tử đang dùng thay đổi rất nhanh, và chỉ một thay đổi phiên bản nhỏ cũng có thể làm hỏng cấu hình hiện tại.

  • Vấn đề về độ phức tạp của LangChain: LangChain quá phức tạp với các use case đơn giản, và lại khó thích nghi với các use case phức tạp. Nhiều trường hợp tự viết mã sẽ tốt hơn.