AI Không Hype: Hướng Dẫn Của Một Kỹ Sư Thực Tế
Giới thiệu thiết thực, hướng dẫn cách sử dụng LLM và công cụ ML trong các dự án thực, không có các từ lóng hay suy nghĩ ma thuật.
Hầu hết nội dung AI trực tuyến rơi vào hai hạng mục: những cảnh báo về siêu trí tuệ nhân tạo, hoặc các tuyên bố phấn khích rằng một chatbot sẽ thay thế công việc của bạn vào thứ ba tuần này. Cả hai đều không giúp bạn hoàn thành bất cứ điều gì. Hướng dẫn này bỏ qua cả hai và hướng dẫn cách sử dụng thực tế thế hệ AI hiện tại trong các dự án thực, với những hạn chế được làm rõ.
LLM thực sự làm gì
Một mô hình ngôn ngữ lớn như GPT-4 hoặc Llama 3 dự đoán token tiếp theo trong một chuỗi, được huấn luyện trên khối lượng lớn văn bản. Đó là tất cả. Không có trình kiểm tra sự kiện nội bộ, không có bộ nhớ liên tục giữa các phiên (trừ khi bạn xây dựng một), và không có sự hiểu biết theo cách con người hiểu. Khi bạn hỏi nó một câu hỏi, nó đang tạo ra một sự tiếp nối có khả năng thống kê của lời nhắc của bạn.
Diều này quan trọng trong thực tế: mô hình sẽ tự tin tạo ra một hàm Python gọi một phương thức thư viện không tồn tại, vì phương thức đó nghe có vẻ như thứ gì đó mà thư viện sẽ có. Luôn chạy mã. Luôn kiểm tra tài liệu API. Coi kết quả mô hình như một bản nháp đầu tiên từ một thực tập sinh nhanh, thông minh nhưng đôi khi nói dối mà không biết điều đó.
Một quy trình thực tế: sử dụng LLM cho mã
Đây là một mô hình hoạt động thay vì chỉ yêu cầu ChatGPT "xây dựng một ứng dụng cho tôi":
- Viết chữ ký hàm và docstring của riêng bạn, chỉ định các kiểu và trường hợp đặc biệt.
- Yêu cầu mô hình triển khai nó cho chính xác đó, đặc tả.
- Viết các bài kiểm tra của riêng bạn riêng biệt — đừng yêu cầu mô hình viết bài kiểm tra cho mã nó vừa viết, nó sẽ có xu hướng viết các bài kiểm tra vượt qua một cách tầm thường.
- Chạy các bài kiểm tra. Đưa các lỗi trở lại dưới dạng các lời nhắc mới, không phải các câu mơ hồ "nó không hoạt động".
def parse_duration(text: str) -> int:
"""
Parse strings like '1h30m', '45s', '2d' into total seconds.
Raise ValueError on invalid input.
"""
Cung cấp mô hình hợp đồng chính xác này tạo ra kết quả tốt hơn nhiều so với một mô tả lỏng lẻo, và nó cung cấp cho bạn thứ gì đó cụ thể để kiểm tra.
Retrieval-augmented generation, theo cách đơn giản
RAG bị quảng bá như một từ lóng nhưng cơ chế rất đơn giản: thay vì dựa vào những gì mô hình ghi nhớ trong quá trình huấn luyện, bạn lấy những tài liệu có liên quan tại thời điểm truy vấn và nhét chúng vào lời nhắc.
Một thiết lập cơ bản:
- Chia tài liệu của bạn thành các phần (500-1000 token mỗi phần là một điểm bắt đầu phổ biến).
- Nhúng mỗi phần bằng một mô hình như
text-embedding-3-smallhoặc một mô hình mở nhưbge-small-en. - Lưu trữ các vectơ trong một thứ gì đó như Postgres với
pgvector, hoặc một kho lưu trữ chuyên dụng như Qdrant. - Tại thời điểm truy vấn, nhúng câu hỏi của người dùng, chạy tìm kiếm tương tự (khoảng cách cosine là tiêu chuẩn), và lấy các phần hàng đầu vào lời nhắc cùng với câu hỏi.
SELECT content FROM docs
ORDER BY embedding <=> '[0.012, -0.045, ...]'
LIMIT 5;
Đây là lý do tại sao một chatbot được huấn luyện trên dữ liệu cho đến một ngày cụt có thể vẫn trả lời các câu hỏi về wiki nội bộ của bạn từ tuần trước. Nó không suy luận về công ty của bạn — nó đang đọc tài liệu của bạn và tóm tắt chúng.
Nơi ML cổ điển vẫn thắng
Không phải mọi vấn đề đều cần một transformer. Nếu bạn đang dự đoán churn từ dữ liệu bảng tính hóa — tuổi tài khoản, tần suất sử dụng, các vé hỗ trợ — một mô hình cây boosted theo gradient như XGBoost hoặc LightGBM thường sẽ vượt trội hơn một cách tiếp cận dựa trên LLM, đào tạo trong vài phút thay vì hàng giờ, và chi phí một phần để chạy. Sử dụng RandomForestClassifier của scikit-learn hoặc XGBoost trước khi gọi API, đặc biệt là khi dữ liệu của bạn vừa với một bảng tính và biến mục tiêu của bạn là một số hoặc danh mục sạch sẽ.
Chi phí và độ trễ là các ràng buộc thiết kế, không phải suy nghĩ sau cùng
Một cuộc gọi lớp GPT-4 có chi phí thực tế trên mỗi token và mất thời gian thực sự để trả lại. Nếu bạn đang xây dựng một tính năng chạy trên mỗi tải trang cho mỗi người dùng, điều đó cộng lại nhanh chóng và độ trễ sẽ hiển thị. Lưu trữ tích cực, sử dụng một mô hình nhỏ hơn như GPT-4o-mini hoặc một Llama 3 8B cục bộ cho bất cứ điều gì không cần lý luận hạng nhất, và dành các lệnh gọi mô hình tốn kém cho các phần của đường ống nơi chất lượng thực sự quan trọng.
Chế độ lỗi mà không ai cảnh báo bạn
Mô hình ảo tưởng nhiều hơn, không phải ít hơn, khi bạn yêu cầu chúng những thứ hơi nằm ngoài phân phối huấn luyện của họ — các phiên bản thư viện tối nghĩa, từ ngữ công ty nội bộ, các số CVE gần đây. Nếu câu trả lời cần phải hoàn toàn chính xác (một cảnh báo bảo mật, một trích dẫn pháp lý, một liều y tế), đừng tin vào tạo ra một mình. Xác minh lại một nguồn chính mỗi lần, và xây dựng bước xác minh đó vào đường ống của bạn thay vì tin tưởng nó vào xem xét của con người sau đó.
Công cụ AI thực sự hữu ích khi bạn ngừng mong đợi nó suy nghĩ và bắt đầu coi nó như một trình khớp mẫu nhanh mà bạn phải kiểm tra. Xây dựng bước xác minh từ ngày đầu tiên và bạn sẽ nhận được giá trị thực sự từ nó thay vì một luồng những điều vô lý tự tin.
Nếu bạn muốn đi xa hơn, hãy xem các bài theo dõi Python và Data Science của Korra Studio để hiểu những điều cơ bản làm cho việc làm việc với các công cụ này thực sự hiệu quả.
Viết với hỗ trợ của AI, được xem xét và đăng bởi Michal Pilch (CISSP), Korra Studio.
Đây là một ghi chép từ cơ sở kiến thức Korra Studio — nền tảng kết hợp mỗi chủ đề với phiên hỗ trợ 1-kèm-1.
Bắt đầu miễn phíarrow_forward