10 câu hỏi có thể gặp khi phỏng vấn
Chọn theo kỹ năng và cấp của tin (AI / Machine Learning, Python, C/C++ & Embedded). Gợi ý trả lời do Drama Công Ty biên soạn để bạn ôn nhanh, không phải đề của công ty.
01Vì sao phải chia train/validation/test? Data leakage là gì?AI / Machine Learning · Junior
Gợi ý trả lời
Ôn thêm câu hỏi AI / Machine Learning →Train để học tham số, validation để chọn mô hình và siêu tham số, test để ước lượng hiệu năng thật lúc cuối và chỉ dùng một lần.
Data leakage là khi thông tin không có ở thời điểm dự đoán lọt vào lúc train, khiến kết quả offline đẹp nhưng chạy thật thì kém.
Ví dụ hay gặp:
- Chuẩn hoá hoặc chọn đặc trưng trên toàn bộ dữ liệu trước khi chia tập.
- Dữ liệu chuỗi thời gian chia ngẫu nhiên thay vì theo thời gian.
- Đặc trưng chứa thông tin từ tương lai hoặc từ chính nhãn (như "ngày huỷ hợp đồng" khi dự đoán khách rời bỏ).
- Cùng một người dùng xuất hiện ở cả train và test.
Hay sai: tinh chỉnh nhiều lần dựa trên tập test, biến nó thành validation.
02Precision, recall và F1 là gì? Với dữ liệu mất cân bằng, vì sao accuracy dễ đánh lừa?AI / Machine Learning · Junior
Gợi ý trả lời
Ôn thêm câu hỏi AI / Machine Learning →Precision là trong các ca mô hình báo dương, bao nhiêu ca đúng; recall là trong các ca dương thật, mô hình bắt được bao nhiêu; F1 là trung bình điều hoà của hai chỉ số.
Ví dụ phát hiện gian lận với 1% giao dịch gian lận: mô hình đoán "không gian lận" cho mọi giao dịch đạt accuracy 99% nhưng recall bằng 0.
- Ưu tiên recall khi bỏ sót đắt (bệnh, gian lận); ưu tiên precision khi báo nhầm đắt (chặn nhầm giao dịch).
- Dùng PR-AUC thay vì chỉ ROC-AUC khi lớp dương rất hiếm.
- Chọn ngưỡng quyết định theo chi phí nghiệp vụ, không mặc định 0.5.
Người phỏng vấn muốn nghe: gắn metric với hậu quả kinh doanh.
03Giải thích ngắn gọn cơ chế attention và vì sao Transformer thay thế RNN trong NLP.AI / Machine Learning · Junior
Gợi ý trả lời
Ôn thêm câu hỏi AI / Machine Learning →Attention cho mỗi token "nhìn" tất cả token khác và tính trọng số mức liên quan, nhờ đó nắm được phụ thuộc xa trong câu. Mỗi token tạo ra query, key, value; trọng số là softmax của tích query với key (chia cho căn bậc hai số chiều), rồi lấy tổng có trọng số của value.
Transformer thắng RNN vì:
- Xử lý song song cả chuỗi khi train, tận dụng GPU tốt; RNN phải đi tuần tự.
- Ít gặp vấn đề mất thông tin ở chuỗi dài.
- Mở rộng quy mô tốt, là nền của các LLM hiện nay.
Đánh đổi: chi phí attention tăng theo bình phương độ dài chuỗi, nên ngữ cảnh dài tốn bộ nhớ và tính toán.
04Shallow copy và deep copy khác nhau thế nào? Phép gán
b = acó tạo bản sao không?Python · JuniorGợi ý trả lời
Ôn thêm câu hỏi Python →b = akhông sao chép gì: hai tên cùng trỏ đến một object. Sửa quabthìacũng đổi.- Shallow copy (
a.copy(),list(a),a[:],copy.copy(a)): tạo container mới nhưng các phần tử bên trong vẫn là object cũ. - Deep copy (
copy.deepcopy(a)): sao chép đệ quy toàn bộ cấu trúc.
a = [[1, 2], [3]] b = a.copy() b[0].append(99) # a cũng thành [[1, 2, 99], [3]]Hay sai: tạo ma trận bằng
[[0] * 3] * 3. Ba hàng là cùng một list, sửa một ô thì cả cột đổi theo. Viết đúng:[[0] * 3 for _ in range(3)].- Shallow copy (
05Generator và
yieldlà gì? Khác gì với list comprehension?Python · JuniorGợi ý trả lời
Ôn thêm câu hỏi Python →Generator sinh giá trị lười (lazy): mỗi lần được hỏi mới tính phần tử tiếp theo, rồi tạm dừng tại
yield. Nhờ vậy nó không phải giữ toàn bộ dữ liệu trong bộ nhớ.def read_lines(path): with open(path) as f: for line in f: yield line.rstrip() total = sum(len(l) for l in read_lines("big.log"))- List comprehension
[x * 2 for x in data]tạo cả list ngay. Generator expression(x * 2 for x in data)thì không. - Hợp với file lớn, dữ liệu stream, phân trang API, pipeline xử lý nhiều bước.
Hay sai: duyệt một generator hai lần. Lần thứ hai không có gì vì nó đã cạn; cần duyệt lại thì tạo generator mới hoặc chuyển thành list.
- List comprehension
06Giải thích 4 tính chất OOP và virtual function / vtable trong C++.C/C++ & Embedded · Junior
Gợi ý trả lời
Ôn thêm câu hỏi C/C++ & Embedded →Bốn tính chất: đóng gói (ẩn dữ liệu sau interface), kế thừa, đa hình (gọi cùng interface, hành vi theo kiểu thật) và trừu tượng (chỉ lộ cái cần thiết).
Đa hình lúc chạy trong C++ dùng
virtual: mỗi class có hàm ảo có một bảng vtable chứa địa chỉ hàm, mỗi object giữ một con trỏ vptr tới bảng đó. Gọi qua con trỏ hoặc tham chiếu lớp cha sẽ tra vtable để gọi hàm của lớp con.struct Sensor { virtual ~Sensor() = default; virtual int read() = 0; }; struct TempSensor : Sensor { int read() override { return 25; } };Hay sai: quên destructor ảo ở lớp cha, khi
deletequa con trỏ lớp cha sẽ không gọi destructor lớp con. Trên nhúng cũng nên nhắc chi phí: thêm vptr cho mỗi object và một lần gọi gián tiếp.07RAG là gì? Mô tả các bước xây dựng một hệ thống hỏi đáp trên tài liệu nội bộ.AI / Machine Learning
Gợi ý trả lời
Ôn thêm câu hỏi AI / Machine Learning →RAG (Retrieval-Augmented Generation) tìm các đoạn tài liệu liên quan rồi đưa vào prompt để LLM trả lời dựa trên đó, giúp dùng dữ liệu riêng, cập nhật mà không cần train lại.
Các bước:
- Nạp và làm sạch tài liệu (PDF, wiki), giữ metadata và quyền truy cập.
- Chunking theo cấu trúc (tiêu đề, đoạn), có chồng lấp hợp lý.
- Embedding và lưu vào vector DB.
- Truy xuất: kết hợp tìm vector và từ khoá (hybrid), rồi rerank.
- Sinh câu trả lời với prompt yêu cầu bám nguồn và trích dẫn, trả lời "không biết" khi thiếu thông tin.
Hay sai: bỏ qua phân quyền, để người dùng nhận được nội dung từ tài liệu họ không được xem.
08Khi nào bạn chọn prompt engineering, RAG hay fine-tuning?AI / Machine Learning
Gợi ý trả lời
Ôn thêm câu hỏi AI / Machine Learning →Bắt đầu từ cách rẻ và nhanh nhất, chỉ nâng cấp khi đo được là chưa đủ.
- Prompting: thử đầu tiên; chỉ dẫn rõ, ví dụ mẫu (few-shot), định dạng đầu ra có cấu trúc.
- RAG: khi mô hình thiếu kiến thức (tài liệu nội bộ, dữ liệu thay đổi thường xuyên), cần trích dẫn nguồn.
- Fine-tuning: khi cần đổi hành vi ổn định (văn phong, định dạng, tác vụ hẹp lặp lại), hoặc muốn dùng mô hình nhỏ rẻ hơn thay mô hình lớn. Kỹ thuật như LoRA giảm chi phí.
Fine-tuning không phải cách tốt để nhồi kiến thức mới hay thay đổi liên tục; RAG hợp hơn.
Người phỏng vấn muốn nghe: có bộ đánh giá trước để so sánh các phương án bằng số liệu.
09Hallucination của LLM là gì? Bạn giảm thiểu nó trong sản phẩm thế nào?AI / Machine Learning
Gợi ý trả lời
Ôn thêm câu hỏi AI / Machine Learning →Hallucination là khi mô hình sinh ra nội dung nghe hợp lý nhưng sai hoặc không có căn cứ. Không loại bỏ hoàn toàn được, chỉ giảm và kiểm soát.
- Cung cấp ngữ cảnh đúng qua RAG, yêu cầu chỉ trả lời dựa trên nguồn và trích dẫn.
- Cho phép và khuyến khích trả lời "không đủ thông tin".
- Dùng đầu ra có cấu trúc (JSON schema) và kiểm tra hợp lệ bằng code.
- Với số liệu, tra cứu hoặc tính toán qua tool/API thay vì để mô hình tự nhớ.
- Kiểm tra sau sinh: đối chiếu câu trả lời với nguồn.
- Thiết kế UX hiển thị nguồn; tác vụ rủi ro cao có người duyệt.
Người phỏng vấn muốn nghe: đo tỷ lệ hallucination bằng bộ đánh giá, không chỉ dựa vào cảm giác.
10Mức lương mong muốn của bạn là bao nhiêu?Câu hỏi hành vi & văn hoá
Gợi ý trả lời
Ôn thêm câu hỏi Câu hỏi hành vi & văn hoá →Tìm hiểu trước mặt bằng lương cho vị trí và số năm kinh nghiệm (dữ liệu lương trên Drama Công Ty, bạn bè cùng ngành), rồi đưa ra một khoảng có căn cứ.
- Nói rõ gross hay net. Gross là lương trước khi trừ bảo hiểm bắt buộc và thuế thu nhập cá nhân; net là số thực nhận.
- Hỏi tổng thu nhập: lương tháng 13 (không bắt buộc theo luật), thưởng, chu kỳ review lương, bảo hiểm sức khoẻ.
- Lương thử việc theo luật tối thiểu bằng 85% lương chính thức; nhiều công ty trả 100%, cứ hỏi rõ.
Câu mẫu: "Dựa trên kinh nghiệm và mặt bằng thị trường, em mong muốn khoảng X đến Y triệu gross. Em cũng muốn hiểu thêm về thưởng và review lương bên mình."
Hay sai: nói "tuỳ công ty" (dễ bị trả thấp), hoặc khai khống lương hiện tại.
Bạn đã phỏng vấn ở MB Bank?
Kể lại các vòng và câu hỏi đã gặp (ẩn danh) để người sau ôn đúng trọng tâm.
Chia sẻ kinh nghiệm phỏng vấn