Lợi nhuận:
- Khả năng lấy mã SQL và pandas mạnh mẽ, đồng thời đọc và xác minh từng dòng một bằng cách đưa ra lược đồ và mục đích rõ ràng cho trí tuệ nhân tạo
- Khả năng phát hiện các lỗi thầm lặng như số hàng, chức năng khớp và thông lượng sau khi hợp nhất/THAM GIA
- Khả năng giải quyết vấn đề khi gỡ lỗi mà không tắt tiếng và tránh chạy mã mà không kiểm tra mã trong môi trường sản xuất
Khoa học dữ liệu có hai ngôn ngữ chính: SQL (Ngôn ngữ truy vấn có cấu trúc - ngôn ngữ truy vấn dữ liệu từ cơ sở dữ liệu) và Python (cụ thể là thư viện gấu trúc - công cụ tiêu chuẩn để thao tác bảng theo chương trình). Trong phần này, chúng ta sẽ học cách sử dụng AI làm đối tác mã: lấy mã SQL và pandas vững chắc từ nó bằng các câu hỏi phù hợp, đọc và xác thực mã đó, gỡ lỗi và không bao giờ chạy nó một cách mù quáng. AI viết mã lặp đi lặp lại trong vài giây thay vì vài phút; Nhưng công việc của bạn là đảm bảo rằng mã mà nó tạo ra xử lý đúng cột với logic chính xác. Mã làm việc không có nghĩa là mã chính xác.
Tại sao việc sản xuất mã bằng AI lại mạnh mẽ nhưng đầy rủi ro
AI mang lại ba lợi ích lớn trong việc tạo mã: tốc độ (viết thao tác xoay nhóm 30 dòng trong vài giây), lời nhắc (nhắc bạn về chức năng gấu trúc mà bạn đã quên) và giảng dạy (giải thích từng dòng mã). Nhưng nó tiềm ẩn ba rủi ro: lỗi logic im lặng (mã tính tổng sai cột chạy không có lỗi), hàm được trang bị (gợi ý một phương thức không tồn tại) và bẫy lợi nhuận (mã hoạt động trên dữ liệu nhỏ nhưng gặp sự cố ở 10 triệu hàng). Vì vậy, nguyên tắc vàng: Đọc mã của AI như thể bạn tự viết nó. Đừng chạy dòng bạn không hiểu.
SQL: xử lý dữ liệu tại nguồn
SQL cho phép bạn truy xuất dữ liệu từ cơ sở dữ liệu và xử lý dữ liệu tại đó; Bạn có thể tóm tắt hàng triệu dòng mà không cần kéo chúng vào Python. Các khối xây dựng cơ bản: SELECT (cột nào), WHERE (hàng nào), GROUP BY (nhóm và tóm tắt), THAM GIA (nối bảng), HAVING (bộ lọc sau nhóm). AI rất hữu ích trong việc viết các hàm JOIN và cửa sổ phức tạp, nhưng hãy nhớ kiểm tra hai điều: liệu JOIN có thông qua khóa chính xác không (khóa sai sẽ trùng lặp các hàng) và logic của bộ lọc có đúng không (đặc biệt là hành vi NULL và phạm vi ngày).
Thận trọng: Không chạy truy vấn SQL do AI tạo trực tiếp trên cơ sở dữ liệu sản xuất. Trước tiên hãy thử nghiệm với một bản sao nhỏ hoặc LIMIT. Không bao giờ chạy truy vấn CẬP NHẬT/XÓA mà không xác thực điều kiện WHERE; Sai WHERE có thể xóa toàn bộ bảng.
Python/gấu trúc: phân tích linh hoạt
pandas là cách tiêu chuẩn để thao tác các bảng (DataFrame) trong Python. Cách sử dụng AI hiệu quả nhất là cung cấp cho nó một kế hoạch và mục đích rõ ràng. Các thao tác được sử dụng phổ biến nhất: lọc, nhóm, hợp nhất, bảng trụ, áp dụng. AI viết những thứ này một cách nhanh chóng; Điều bạn muốn kiểm tra là logic: việc nhóm có đúng cột không, việc hợp nhất có thay đổi số lượng hàng một cách bất ngờ không (luôn kiểm tra số lượng hàng sau khi hợp nhất), các hoạt động chuỗi có thay đổi ban đầu hay không.
giao dịch
SQL
gấu trúc
trạm kiểm soát
Lọc
Ở ĐÂU
df[df.x > 5]
Hành vi NULL/NaN
phân nhóm
NHÓM THEO
df.groupby()
Đây có phải là cột bên phải không?
hợp nhất
THAM GIA
df.merge()
Thay đổi số hàng
Tóm tắt
AVG(), TỔNG()
.mean(), .sum()
Cột nào đã được thu thập
Sắp xếp theo
ĐẶT HÀNG BỞI
.sort_values()
Hướng (tăng dần/giảm dần)
sự trùng lặp
KHÁC BIỆT
.drop_duplicates()
Ở cột nào?
Gỡ lỗi: với AI
Khi mã bị lỗi, AI là đối tác sửa lỗi tuyệt vời. Cung cấp cho nó thông báo lỗi đầy đủ và đoạn mã có liên quan. Nhưng hãy cẩn thận với hai cái bẫy. Đầu tiên, AI có thể đề xuất một giải pháp “im lặng” lỗi (ví dụ: ẩn cảnh báo) - điều này không khắc phục được lỗi mà nó ẩn nó đi. Thứ hai, AI đôi khi âm thầm thay đổi hành vi khác trong khi “giải quyết” một vấn đề. Quy tắc: hiểu bản sửa lỗi, giải quyết không tắt tiếng và xác minh rằng đầu ra vẫn chính xác sau khi sửa.
Muốn mã có thể giải thích và duy trì được
Khi mua mã từ AI, hãy yêu cầu mã có thể đọc và bảo trì được, không chỉ mã "hoạt động". Khi bạn hoặc đồng nghiệp mở mã đó vài tháng sau đó, họ sẽ có thể hiểu được chức năng của nó. Để làm điều này, hãy tạo thói quen yêu cầu AI bao gồm ba thứ: tên biến có ý nghĩa (orders_temiz, không phải df2), dòng nhận xét ngắn ở các bước quan trọng (giải thích lý do chứ không phải những gì đang được thực hiện) và một hằng số được đặt tên thay vì một con số ma thuật (ACCEPT_ESIGI = 0,85 thay vì 0,85 được chôn trong mã). Đồng thời tránh các chuỗi dài một dòng (kết nối năm hành động trong một dòng); những điều này làm cho việc gỡ lỗi trở nên khó khăn. Theo mặc định, AI thường tạo ra mã ngắn gọn và “thông minh”; Nếu bạn nói rõ ràng "viết có thể đọc được, có thể giải thích được, có thể bảo trì", bạn sẽ nhận được kết quả đầu ra dễ bảo trì hơn nhiều. Đây cũng là cơ sở của khả năng tái tạo (Bài 10): mã không được hiểu là mã không thể chạy lại một cách an toàn.
ba trường hợp nhỏ
Trường hợp 1 - THAM GIA sao chép. Một nhà phân tích đã kết hợp các đơn đặt hàng với bảng sản phẩm và nhận thấy tổng doanh thu cao gấp 3 lần. Nguyên nhân: mỗi sản phẩm có nhiều hàng (màu sắc khác nhau) trong bảng sản phẩm; THAM GIA nhân đôi mỗi đơn hàng. Mã của AI vẫn "hoạt động", nhưng số dòng đã tăng từ 240 nghìn lên 690 nghìn. Bài học: luôn kiểm tra số dòng sau khi merge/JOIN.
Trường hợp 2 - Chức năng lắp. Anh ấy đã đề xuất AI df.groupby('x').summarize() cho một thực tập sinh; Không có phương pháp nào như vậy trong gấu trúc (có .agg()). Mã không hoạt động, thực tập sinh bị mất tích trong 20 phút. Bài học: xác minh một chức năng mà bạn không nhận ra từ tài liệu; AI có thể tạo nên các phương pháp.
Trường hợp 3 - Năng suất sụt giảm. Một mã đang truy vấn cơ sở dữ liệu để áp dụng cho mỗi hàng; Nó chạy trên 5.000 dòng, mất 9 giờ trên 4 triệu dòng và dừng lại. Khi AI đề xuất giải pháp vector hóa (hàng loạt), thời gian giảm xuống còn 40 giây. Bài học: mã hoạt động trên dữ liệu nhỏ có thể bị lỗi trên dữ liệu lớn; Hãy xem xét hiệu quả.
Bốn mẫu có thể sao chép
1) Yêu cầu SQL bằng lược đồ:
Vai trò của bạn: Trợ lý SQL (PostgreSQL). Các bảng: - đơn hàng (id, customer_id, dấu thời gian ngày, số lượng) - khách hàng (id, văn bản thành phố) Nhiệm vụ: Lấy tổng doanh thu và số lượng đơn hàng trên mỗi thành phố vào năm 2024, sắp xếp theo doanh thu theo thứ tự giảm dần. Giải thích cách bạn xử lý các thành phố NULL. Tôi sẽ kiểm tra truy vấn với LIMIT trước; Tạo CẬP NHẬT/XÓA.
2) quy trình gấu trúc với điểm kiểm tra:
Tôi có DataFrames df (đơn đặt hàng) và df_customers (khách hàng). Tính số tiền trung bình cho mỗi thành phố. QUAN TRỌNG: in số hàng trước và sau khi hợp nhất để tôi có thể xem có trùng lặp hay không. Giải thích cột nào bạn đã hợp nhất và tại sao bạn chọn cột bên trong/trái.
3) Giải thích và xác minh mã:
Giải thích từng dòng mã pandas sau: mỗi dòng làm gì, nó đưa ra những giả định gì, trong trường hợp nào nó có thể cho kết quả sai? Hãy cho tôi biết nếu tôi sử dụng chức năng fudge. Mã: [dán]
4) Gỡ lỗi:
Mã này đưa ra lỗi này. Thông báo lỗi đầy đủ: [dán]. Mã: [dán]. Giải thích nguyên nhân ROOT của lỗi và khắc phục. Hãy khắc phục bằng cách thực sự giải quyết vấn đề chứ không phải bằng cách tắt tiếng cảnh báo. Đồng thời cho biết liệu bản sửa lỗi có thay đổi đầu ra hay không.
Dấu nhắc yếu / Dấu nhắc mạnh
Dấu nhắc yếu:
Viết một truy vấn mang lại cho tôi doanh số bán hàng trên mỗi thành phố.
Tên bảng, cột, loại cơ sở dữ liệu, hành vi NULL không rõ ràng. AI là phổ biến, có thể nó sẽ tạo ra một truy vấn không phù hợp với bảng của bạn.
Lời nhắc mạnh mẽ:
Vai trò của bạn: Trợ lý SQL (MySQL 8). Bảng: doanh số bán hàng (id, varchar thành phố, số thập phân, ngày ngày). Nhiệm vụ: Lấy tổng và số lượng, số lượng đơn hàng trung bình mỗi thành phố trong năm 2024; Sắp xếp giảm dần theo tổng số tiền; Chỉ hiển thị các thành phố có hơn 100 đơn hàng (HAVING).NULL loại trừ thành phố. Giải thích truy vấn; Tôi sẽ kiểm tra với LIMIT.
Ở đây cơ sở dữ liệu, lược đồ, bộ lọc, sắp xếp và quy tắc NULL là hiển nhiên.
Những lỗi thường gặp
- Chạy mã mà không đọc nó. Mã làm việc không phải là mã chính xác; Đoạn code thao tác sai cột cũng chạy không có lỗi.
- Không kiểm tra số lượng hàng sau khi hợp nhất/THAM GIA. Phím sai âm thầm sao chép các hàng và tăng tổng số.
- Không xác minh chức năng phù hợp. AI có thể đề xuất những phương pháp không tồn tại; Xác nhận từ tài liệu rằng bạn không nhận ra nó.
- Không nghĩ tới hiệu quả. áp dụng/vòng lặp làm việc trên dữ liệu nhỏ gặp sự cố trên hàng triệu hàng; vectorize.
- Chạy trực tiếp trên cơ sở dữ liệu sản xuất. Đặc biệt là chạy CẬP NHẬT/XÓA mà không có WHERE hoặc kiểm tra là một thảm họa.
Mẹo: Hãy tập thói quen thêm "dòng xác thực" vào mỗi đoạn mã bạn nhận được từ AI: số dòng trước và sau xử lý, một vài dòng mẫu và tổng số quan trọng bằng tay. Ba bước kiểm tra này phát hiện hầu hết các lỗi logic thầm lặng.
Tóm lại
AI là một đối tác mạnh mẽ có thể nhanh chóng tạo ra mã SQL và pandas, nhưng nó không phải là cơ quan có thẩm quyền mù quáng. Hãy cho anh ta kế hoạch và mục đích rõ ràng; Đọc mã nó tạo ra như thể bạn tự viết nó; Kiểm tra số lượng hàng, chức năng khớp và thông lượng sau khi hợp nhất/THAM GIA; Đừng chạy nó mà không kiểm tra nó trên cơ sở dữ liệu sản xuất. Khi gỡ lỗi, hãy nhắm đến việc giải quyết vấn đề chứ không phải làm nó im lặng. Mã hoạt động không phải là mã chính xác; Chỉ có bạn mới có thể đảm bảo tính chính xác.
Nhiệm vụ ứng dụng
Chọn một câu hỏi phân tích (ví dụ: “doanh thu hàng tháng trên mỗi kênh”) và yêu cầu mã từ AI bằng cả SQL và pandas. Đọc cả hai dòng mã, kiểm tra số dòng sau khi hợp nhất/THAM GIA và xác minh thủ công ít nhất một tổng quan trọng. So sánh xem hai mã có tạo ra kết quả giống nhau hay không; Nếu khác nhau, hãy tìm hiểu lý do tại sao.
danh sách kiểm tra
- [ ] Tôi đã đưa ra bảng/sơ đồ và mục đích rõ ràng cho AI chưa?
- [ ] Tôi có đọc và hiểu mã mà nó tạo ra từng dòng một không?
- [ ] Tôi đã kiểm tra số dòng sau khi hợp nhất/THAM GIA chưa?
- [ ] Tôi đã xác minh các chức năng mà tôi không nhận ra trong tài liệu chưa?
- [ ] Tôi đã kiểm tra mã trên dữ liệu an toàn/nhỏ trước chứ không phải trong môi trường sản xuất chưa?