Một cái nhìn sâu sắc vào Bộ công nghệ đã đưa ra sức mạnh cho Ứng dụng Web AI ấn tượng nhất hiện nay.
Tác giả: Assaf Elovic
Đây là thời đại của những người khởi nghiệp tự lập. Chưa bao giờ việc xây dựng ứng dụng hoàn chỉnh được động viên bởi những tiến bộ mới nhất trong lĩnh vực Trí tuệ Nhân tạo và các framework thân thiện với nhà phát triển. Những gì trước đây là một lĩnh vực phức tạp, chủ yếu do các chuyên gia khoa học dữ liệu có kinh nghiệm dẫn đầu, giờ đây đã được dân chủ hóa và trở nên đơn giản như việc gọi một API (và chỉ sẽ trở nên tốt hơn và dễ dàng hơn theo thời gian). Tuy nhiên, với tất cả tiếng ồn, sự hứng thú và sự tiến bộ liên tục trong lĩnh vực này, không dễ dàng để biết nên tập trung vào đâu và sử dụng bộ công nghệ nào.
Tháng 7 năm 2022, tôi phát hành Cowriter, một trình soạn thảo văn bản được trang bị trí tuệ nhân tạo nhắm đến cộng đồng viết. Sản phẩm nhanh chóng trở nên phổ biến và phát triển đến hơn 500.000 người dùng trên toàn thế giới chỉ trong vài tháng. Trong quá trình đó, tôi đã học được những thách thức và lợi ích của việc sử dụng các bộ công nghệ khác nhau ở quy mô lớn. Việc xây dựng những bản demo Trí tuệ Nhân tạo ấn tượng là một điều, nhưng việc mở rộng ứng dụng Trí tuệ Nhân tạo lên hàng triệu người dùng khác nhau là một vấn đề khác, và là nơi mà hầu hết các framework hiện tại gặp khó khăn.
Trong bài viết này, tôi sẽ chia sẻ với bạn toàn bộ bộ công nghệ được sử dụng để xây dựng ứng dụng web Trí tuệ Nhân tạo của tôi đã lan truyền mạnh mẽ. Bạn có thể đã quen thuộc với một số phần của bộ công nghệ này, nên mục tiêu của tôi không chỉ là giới thiệu chúng cho bạn, mà còn giúp bạn có sự hiểu biết về tại sao chúng là lựa chọn tối ưu cho nhu cầu của tôi. Hãy bắt đầu ngay!
OpenAI API
Điều này ít hiển nhiên hơn so với bạn có thể nghĩ. Trong tất cả các dịch vụ Trí tuệ Nhân tạo hiện có, dịch vụ nào là tốt nhất? Điều gì định nghĩa sự xuất sắc? Đối với tôi, sự xuất sắc liên quan đến chất lượng, đáng tin cậy, bảo mật, hiệu suất và giá cả.
Trong những năm gần đây, tôi đã nghiên cứu nhiều dịch vụ Trí tuệ Nhân tạo, bao gồm OpenAI, AI21, Anthropic, Bloom, GPT-J và nhiều dịch vụ khác. Gần đây, có một tăng đáng kể trong các mô hình mã nguồn mở, một số trong số đó được cho là vượt trội so với các mô hình hàng đầu, như Falcon, Alpaca, Vicuna và Llama. Tuy nhiên, những mô hình này hiện tại đòi hỏi kinh nghiệm “LLM/ML OPs”, cũng như đầu tư vào việc tự lưu trữ và giám sát của riêng bạn. Là một nhà khởi nghiệp tự lập, quyết định tập trung vào những phần nào của doanh nghiệp để đặt nỗ lực là điều cần thiết.
Những kết luận và nghiên cứu về những mô hình này xứng đáng có một bài viết riêng. Tuy nhiên, nếu bạn chỉ muốn xem nhanh, thì điều quan trọng là mô hình GPT của OpenAI vượt trội về hiệu suất và độ tin cậy so với các đối thủ của nó. Mặc dù OpenAI nằm ở mức giá cao hơn, bạn vẫn có thể xây dựng các công cụ Trí tuệ Nhân tạo mạnh mẽ bằng cách sử dụng chatgpt-3.5-turbo với giá chỉ $0.002 cho khoảng ~750 từ. Khi bạn tính toán, bạn sẽ thấy nó rất rẻ.
Ngoài ra, OpenAI cung cấp một API fine-tuning, rất dễ sử dụng. Tôi đã tận dụng việc fine-tuning để tạo ra một mô hình để tạo nội dung được tối ưu hóa cho SEO và tiếp thị.
Replicate
Khi xây dựng một Trình soạn thảo cho các nhà văn blog, việc tận dụng việc tạo ra hình ảnh cũng rất quan trọng. Mặc dù Dalle là một API rõ ràng, nhưng tôi thất vọng vì thiếu lựa chọn kích thước (như 1024×768) mà là lựa chọn tối ưu cho các blog, và Dalle cũng khá đắt đỏ. Ngoài ra, Dalle chỉ lưu trữ hình ảnh của bạn trong một giờ, nên bạn cũng cần tích hợp với các dịch vụ lưu trữ như AWS S3 để giữ các hình ảnh được tạo ra trong thời gian dài. Cuối cùng, tôi quyết định tìm kiếm một lựa chọn thay thế có chất lượng gần giống với Midjourney. Đó là khi tôi phát hiện đến Replicate.
Replicate giúp việc triển khai và lưu trữ mô hình học máy trở nên dễ dàng, và chạy mô hình chỉ với một vài dòng mã, mà không cần hiểu rõ về cách học máy hoạt động. Một mô hình cụ thể, mạnh mẽ và phổ biến được lưu trữ trên Replicate đã được huấn luyện trên các hình ảnh của Midjourney, đem lại những kết quả ấn tượng! Hơn nữa, mô hình này cho phép bạn xác định nhiều chiều rộng và chiều cao cũng như số lượng đầu ra. Tuy nhiên, giá của nó khá rẻ, rẻ hơn nhiều so với Dalle, và bạn chỉ “trả tiền theo sử dụng”, dựa trên thời gian tính toán suy luận.
LangChain
LangChain là một framework được thiết kế để phát triển ứng dụng sử dụng các mô hình ngôn ngữ lớn (LLMs). Đây là một thư viện mã nguồn mở cung cấp cho các nhà phát triển các công cụ để xây dựng ứng dụng bằng cách sử dụng LLMs, như OpenAI hoặc các mô hình tương tự khác. LangChain giúp đơn giản hóa quá trình tạo ra những ứng dụng này và kết nối với các mô hình Trí tuệ Nhân tạo bạn muốn làm việc.
Không có nghi ngờ gì, LangChain là một công cụ thiết yếu cho tất cả các nhà phát triển và là đội trưởng không chính thức cho các framework Trí tuệ Nhân tạo dành cho nhà phát triển. Không chỉ LangChain có cộng đồng đóng góp và hỗ trợ lớn nhất, mà nó còn được xây dựng bởi các nhà phát triển dành cho các nhà phát triển. Có nhiều ví dụ và đoạn mã mẫu trực tuyến chỉ ra “cách xây dựng một chatpdf với 10 dòng mã”. Và đúng, việc xây dựng chuỗi và ứng dụng LLM đơn giản đến vậy.
LangChain cung cấp nhiều giải pháp khác nhau để xây dựng các AI agent. Thậm chí, nó hỗ trợ các giải pháp autonomous agent mới nhất như BabyAGI và AutoGPT. Một tính năng rất mạnh mẽ và phổ biến của LangChain được gọi là ReAct, mục tiêu là tận dụng LLMs với quy luật và thực hiện các hành động chỉ khi cần thiết, giống như các công cụ đã được cung cấp. Để biết thêm về ReAct và cách sử dụng nó với LangChain, bạn có thể xem tại đây.
Pinecone
Cơ sở dữ liệu vector đang là xu hướng nóng nhất hiện nay. Với đầu tư vượt quá 1 tỷ đô la trong năm qua, quan trọng là phải hiểu tại sao các Vector DB, như Pinecone, nên được tích hợp vào gần như mọi ứng dụng Trí tuệ Nhân tạo.
Cơ sở dữ liệu vector là các cơ sở dữ liệu chuyên biệt được thiết kế để lưu trữ và quản lý dữ liệu có chiều cao cao được biểu diễn dưới dạng vectors. Những cơ sở dữ liệu này rất hiệu quả trong việc xử lý dữ liệu phức tạp và cho phép tìm kiếm nhanh chóng các mục tương tự dựa trên các tiêu chí cụ thể. Điều này đặc biệt quan trọng khi làm việc với các LLMs như GPT, vì chúng có khả năng vượt qua vấn đề giới hạn của token.
Tuy nhiên, quan trọng là không nên bị lừa bởi ý tưởng “nếu không có giới hạn token thì sao?”. Khi làm việc với các mô hình và dịch vụ Trí tuệ Nhân tạo, bạn trả tiền cho mỗi suy luận, hay nói cách khác, bạn trả tiền cho mỗi yêu cầu dựa trên số lượng token được gửi đến mô hình. Gửi hơn 100,000 từ cho mỗi yêu cầu sẽ làm cho cả quá trình trở nên chậm và tốn kém. Cơ sở dữ liệu vector giúp dễ dàng truy xuất chỉ dữ liệu liên quan đến ngữ cảnh người dùng và tương đồng văn bản, từ đó tối ưu hóa sự liên quan của dữ liệu và chi phí.
Ngoài ra, do tính chất của cơ sở dữ liệu vector, chúng có thể phục vụ như bộ nhớ dài hạn cho các AI agent, bằng cách truy xuất “ký ức” liên quan từ các tương tác trước đây liên quan đến ngữ cảnh cuộc trò chuyện.
Việc chọn cơ sở dữ liệu phù hợp đổi mới tùy thuộc lớn vào nhiều yếu tố. Các lựa chọn hàng đầu để xem xét bao gồm Pinecone, Chroma, Milvus, Weaviate, Vespa và Elastic Search. Một số là mã nguồn mở, trong khi một số khác không; một số cung cấp tính linh hoạt trong tùy chỉnh trong khi một số hướng đến sự đơn giản.
Tôi quyết định chọn Pinecone vì sự đơn giản của việc sử dụng dịch vụ được lưu trữ, nó đã giải quyết một số vấn đề lớn cho tôi. Ngoài ra, Pinecone có cộng đồng rất lớn, được đầu tư mạnh mẽ, có khả năng mở rộng cao và đã tồn tại đủ lâu (từ năm 2019).
FastAPI
FastAPI là một framework web hiện đại dành cho việc xây dựng RESTful APIs trong Python. Nó được phát hành lần đầu vào năm 2018 và nhanh chóng trở nên phổ biến với các nhà phát triển do tính dễ sử dụng, tốc độ và tính mạnh mẽ của nó. Một lựa chọn tốt khác cho FastAPI là Flask, như thấy trong ví dụ này.
Nó mang lại một ưu thế lớn khi xây dựng hệ thống back-end của bạn bằng ngôn ngữ Python. Do sự phát triển mạnh mẽ của cộng đồng Python, cùng với sự gia tăng mạnh mẽ của phát triển Trí tuệ Nhân tạo, nhiều nguồn mở quan trọng được xây dựng độc quyền chỉ bằng Python. Những nguồn mở độc quyền này đa dạng từ các framework ứng dụng và cơ sở hạ tầng, đến các LLMs và cơ sở dữ liệu vector.
Các framework phổ biến khác như Node.js đang đứng sau với một cộng đồng mã nguồn mở nhỏ hơn xây dựng các công cụ liên quan đến Trí tuệ Nhân tạo. Với sự phát triển nhanh chóng của Trí tuệ Nhân tạo, việc duy trì sự tiến bộ là quan trọng cho doanh nghiệp.
ReactJS
Có nhiều cuộc thảo luận xoay quanh việc Trí tuệ Nhân tạo không còn là một chiến lợi thế cho các startup công nghệ, vì nó đã trở nên mạnh mẽ và dễ tích hợp. Nhưng tôi thực sự tin rằng việc xây dựng sản phẩm xuất sắc, nhắm đến các phân khúc thị trường cụ thể và tối ưu hóa trải nghiệm người dùng, tạo ra một lợi thế đáng kể trong một thị trường cạnh tranh. Đó là lý do tại sao UX/UI vẫn là quan trọng và ngày càng trở nên quan trọng hơn khi xây dựng ứng dụng Trí tuệ Nhân tạo của bạn.
Bạn có thể đã nghe về Streamlit hoặc Gradio, đó là các framework Python để xây dựng ứng dụng giao diện web dựa trên dữ liệu. Có rất nhiều đám đông xoay quanh các framework như vậy để dễ dàng xây dựng ứng dụng web trên mã nguồn backend chạy một số chức năng Trí tuệ Nhân tạo. Tuy nhiên, những framework này thường chỉ đến mức là các bản demo tuyệt vời, nhưng không mở rộng được. Chúng không mở rộng cả về mặt UX/UI bạn thực sự có thể xây dựng và về mặt hiệu suất.
Với tư cách là một nhà phát triển full stack, không có gì vượt qua được React, hoặc các framework tiến tiến hơn như Next.js và Vue.js. Bằng cách tận dụng cộng đồng React, bạn có thể xây dựng trải nghiệm người dùng cực kỳ mạnh mẽ, điều quan trọng để tối ưu hóa Trí tuệ Nhân tạo được tùy chỉnh cho nhu cầu của người dùng.
Slate
Như đã đề cập trước đó, Cowriter là một trình soạn thảo văn bản phong phú, vì vậy tôi phải tìm ra framework React tốt nhất để xây dựng trình soạn thảo. Điều này có lẽ là cuộc nghiên cứu kéo dài nhất, vì không có một người chiến thắng xác định. Nghiên cứu bao gồm việc thử nghiệm thực tế và thử nghiệm với nhiều framework cho đến khi tìm ra lựa chọn phù hợp nhất. Mỗi trình soạn thảo được tối ưu hóa cho các mục tiêu kinh doanh khác nhau. Tôi đã nghiên cứu Draft.js, Editor.js, Slate.js, Plate.js, Quill và nhiều cái khác.
Ví dụ, nếu bạn đang tìm kiếm tính ổn định của một tổ chức lớn đứng sau dự án của bạn và một sự áp dụng khá rộng, thì Draft.js từ Facebook là sự lựa chọn. Tuy nhiên, các tính năng như lồng và chỉnh sửa cộng tác có thể khó đạt được. Ngược lại, Editor.js cung cấp một loạt các tính năng ngay từ đầu và là một lựa chọn tuyệt vời nếu bạn muốn bắt đầu nhanh chóng. Nếu sự kiểm soát tuyệt đối và sự hỗ trợ là những gì bạn đang tìm kiếm, và khả năng cộng tác cũng là điều mong muốn, thì Slate.js là lựa chọn, nhưng hãy chuẩn bị cho việc làm một số công việc thêm để thiết lập. Cuối cùng, Plate.js được xây dựng trên nền Slate.js và cung cấp một loạt các plugin cho các tính năng mạnh mẽ, nhưng có thể không phải là lựa chọn tốt nhất nếu bạn muốn tạo ra trải nghiệm Trí tuệ Nhân tạo có thể tùy chỉnh.
Cuối cùng, Slate.js là sự lựa chọn tốt nhất cho tôi, vì nó có cộng đồng tốt và hoàn toàn có thể tùy chỉnh để xây dựng các trình soạn thảo mạnh mẽ. Với các trình soạn thảo được trang bị Trí tuệ Nhân tạo, việc tạo ra trải nghiệm như việc viết tự động, cử chỉ đầy màu sắc, hộp công cụ lựa chọn, hỗ trợ markdown, manipulation DOM, thêm các phần tử như hình ảnh, v.v. là quan trọng.
Netlify
Netlify là một nền tảng điện toán đám mây tự động hóa việc triển khai các dự án web. Nó cho phép nhà phát triển xây dựng, triển khai và quản lý trang web và ứng dụng web hiện đại một cách dễ dàng và hiệu quả hơn. Netlify cũng cung cấp các tính năng khác như tích hợp và triển khai liên tục (CI/CD), các chức năng serverless cho nội dung động, xử lý biểu mẫu và nhiều tính năng khác.
Nhìn chung, Netlify giúp đơn giản hóa quá trình phát triển và lưu trữ web, làm cho nó trở nên dễ tiếp cận và hiệu quả hơn cho các nhà phát triển và doanh nghiệp.
Gần đây, tôi đã khám phá các tùy chọn triển khai khác nhau, và tôi đã bất ngờ thú vị khi phát hiện ra làm thế nào việc làm việc với Netlify lại dễ dàng và hiệu quả. Không chỉ vậy, tôi kinh ngạc khi thấy hiệu suất không giảm đi so với các lựa chọn khác mà tôi đã sử dụng, như triển khai trực tiếp trên AWS. Và điều tuyệt vời nhất? Hoàn toàn miễn phí cho các dự án đơn lẻ!
Stripe
Stripe là một nền tảng xử lý thanh toán trực tuyến cho phép chấp nhận thanh toán trên internet. Nó cung cấp một bộ API và công cụ phần mềm giúp doanh nghiệp chấp nhận và quản lý thanh toán trực tuyến một cách an toàn. Stripe cũng cung cấp các tính năng bổ sung như trang thanh toán có thể tùy chỉnh, phát hiện gian lận, lập hóa đơn đăng ký và nhiều tính năng khác.
Tôi đang tìm kiếm thời gian nhanh nhất để tích hợp thanh toán, và tôi phát hiện ra tính năng Checkout tuyệt vời của Stripe. Checkout là một trang thanh toán đã được xây sẵn và lưu trữ có thể được cấu hình mà không cần mã nguồn trong chỉ vài phút. Tôi có thể chuyển từ không có thu nhập sang một luồng thanh toán tuyệt vời trong ít hơn một ngày làm việc.
Thay lời kết
Còn rất nhiều framework khác để xem xét trong bộ công cụ kỹ thuật của bạn như HuggingFace, Supabase, LLamaIndex và nhiều hơn nữa. Tất cả phụ thuộc vào sản phẩm, phân khúc thị trường, thời gian đưa sản phẩm ra thị trường, tài nguyên và quy mô mà bạn đang nhắm đến. Đối với tôi, quan trọng là chọn một bộ công cụ giúp tôi thành công như một nhà phát triển độc lập, trong khi tập trung chủ yếu vào việc xây dựng một sản phẩm tuyệt vời và hỗ trợ khách hàng, mà không phải lo lắng về cơ sở hạ tầng, quy mô, hiệu suất, các tài sản không chiến lược, v.v. Càng có nhiều tài nguyên và nguồn lực tài chính, bạn càng có thể sáng tạo hơn khi chọn bộ công cụ tốt nhất cho mình.
Hãy thoải mái để lại một bình luận bên dưới nếu bạn có bất kỳ câu hỏi nào, hoặc nếu bạn đang tự hỏi đâu là bộ công cụ tốt nhất cho bạn.