Việc làm

12/09 · Hồ Chí Minh · Tại văn phòng

AI Appllication Engineer (Python/Intergration)

Simple Tech Investment · AI / Machine Learning Engineer

Xem mô tả & ứng tuyển trên ITviecMô tả công việc, lương và ứng tuyển nằm ở ITviec.

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, SQL & Database, Python). 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.

  1. 01Khi nào bạn chọn prompt engineering, RAG hay fine-tuning?AI / Machine Learning

    Gợi ý trả lời

    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.

    Ôn thêm câu hỏi AI / Machine Learning →
  2. 02Hallucination 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

    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.

    Ôn thêm câu hỏi AI / Machine Learning →
  3. 03Bạn triển khai một mô hình ML lên production và theo dõi nó thế nào?AI / Machine Learning

    Gợi ý trả lời

    Mô hình lên production là một phần mềm cần đóng gói, phiên bản hoá, giám sát và cập nhật như mọi dịch vụ khác.

    • Đóng gói: lưu mô hình kèm phiên bản dữ liệu, code, siêu tham số (model registry).
    • Phục vụ: API online hoặc chạy batch tuỳ yêu cầu độ trễ; dùng chung code tính đặc trưng giữa train và serve để tránh lệch.
    • Triển khai an toàn: shadow hoặc canary, so sánh với mô hình cũ.
    • Giám sát: độ trễ, lỗi; data drift (phân phối đầu vào thay đổi); chất lượng dự đoán khi có nhãn thật.
    • Cập nhật: train lại định kỳ hoặc khi drift vượt ngưỡng, có rollback.

    Hay sai: training-serving skew, xử lý đặc trưng ở hai nơi bằng hai đoạn code khác nhau.

    Ôn thêm câu hỏi AI / Machine Learning →
  4. 04Một API chạy chậm, nghi do query. Bạn điều tra và tối ưu thế nào?SQL & Database

    Gợi ý trả lời

    Đo trước rồi mới sửa: tìm đúng query chậm, đọc execution plan, rồi chỉnh index hoặc cách viết query.

    1. Bật slow query log (MySQL) hoặc pg_stat_statements (PostgreSQL) để biết query nào tốn thời gian nhất.
    2. Chạy EXPLAIN (PostgreSQL nên dùng EXPLAIN (ANALYZE, BUFFERS)) xem có full scan, ước lượng số dòng lệch nhiều so với thực tế, sort trên đĩa không.
    3. Sửa theo nguyên nhân: thêm hoặc đổi composite index, bỏ hàm bọc cột, chỉ SELECT cột cần, phân trang bằng keyset thay cho OFFSET lớn.
    4. Kiểm tra phía ứng dụng: lỗi N+1 query, thiếu connection pool, lock chờ lâu.
    5. Cập nhật thống kê (ANALYZE) nếu planner ước lượng sai.

    Người phỏng vấn muốn nghe: quy trình có số liệu trước/sau, không phải đoán rồi thêm index bừa.

    Ôn thêm câu hỏi SQL & Database →
  5. 05Chuẩn hoá (normalization) là gì? Khi nào nên denormalize?SQL & Database

    Gợi ý trả lời

    Chuẩn hoá là tách dữ liệu để mỗi thông tin chỉ lưu ở một chỗ, tránh dư thừa và sai lệch khi cập nhật.

    • 1NF: mỗi ô một giá trị nguyên tử, không lưu danh sách trong một cột.
    • 2NF: cột không khoá phụ thuộc vào toàn bộ khoá chính, không chỉ một phần.
    • 3NF: cột không khoá không phụ thuộc bắc cầu qua cột không khoá khác.

    Denormalize khi đọc nhiều hơn ghi rất nhiều và JOIN trở thành điểm nghẽn: lưu sẵn comment_count trong bảng bài viết, chép customer_name vào đơn hàng để giữ đúng tên tại thời điểm đặt, hoặc dựng bảng báo cáo riêng.

    Hay sai: denormalize mà không có cơ chế đồng bộ (trigger, job, event) nên số liệu lệch dần. Hãy nói rõ cái giá phải trả là logic ghi phức tạp hơn.

    Ôn thêm câu hỏi SQL & Database →
  6. 06Context manager (with) là gì? Làm sao tự viết một context manager?Python

    Gợi ý trả lời

    Context manager đảm bảo việc "mở" và "dọn dẹp" luôn đi cùng nhau, kể cả khi có exception: đóng file, trả connection, nhả lock, rollback transaction.

    Cách nhanh nhất là dùng contextlib.contextmanager:

    from contextlib import contextmanager
    
    @contextmanager
    def db_transaction(conn):
        try:
            yield conn
            conn.commit()
        except Exception:
            conn.rollback()
            raise
    
    • Cách đầy đủ: viết class có __enter__ và __exit__(self, exc_type, exc, tb). Nếu __exit__ trả về True thì exception bị nuốt.
    • Bản async: async with, __aenter__/__aexit__ hoặc asynccontextmanager.

    Hay sai: quên raise lại exception trong khối except, khiến lỗi bị che mất và code phía sau tưởng mọi thứ đã thành công.

    Ôn thêm câu hỏi Python →
  7. 07Bạn đánh giá chất lượng một ứng dụng LLM (chatbot, RAG) thế nào trước khi ra mắt và mỗi lần thay đổi prompt?AI / Machine Learning · Senior

    Gợi ý trả lời

    Xây một bộ đánh giá (eval set) đại diện cho câu hỏi thật, chạy tự động như test hồi quy mỗi khi đổi prompt, mô hình hay cách truy xuất.

    • Dữ liệu: câu hỏi thật đã ẩn danh, trường hợp khó, câu hỏi ngoài phạm vi, câu cố tình phá.
    • Đánh giá truy xuất: tài liệu đúng có nằm trong top-k không (recall@k).
    • Đánh giá câu trả lời: đúng sự thật, bám nguồn, đầy đủ, đúng định dạng; dùng kiểm tra bằng code khi được, LLM-as-judge có rubric rõ, và người chấm mẫu để hiệu chỉnh.
    • Sau ra mắt: thu phản hồi người dùng, log và soi các ca thất bại để bổ sung bộ eval.

    Hay sai: chỉ thử vài câu bằng tay rồi kết luận "ổn".

    Ôn thêm câu hỏi AI / Machine Learning →
  8. 08Chi phí và độ trễ của ứng dụng LLM quá cao. Bạn tối ưu thế nào?AI / Machine Learning · Senior

    Gợi ý trả lời

    Đo trước: chi phí và độ trễ đến từ số token vào/ra, kích thước mô hình, số lần gọi trong một yêu cầu.

    • Chọn mô hình: định tuyến, việc dễ cho mô hình nhỏ, việc khó mới gọi mô hình lớn.
    • Giảm token: prompt gọn, truy xuất ít đoạn nhưng chính xác hơn (rerank), giới hạn độ dài đầu ra.
    • Prompt caching cho phần prompt cố định lặp lại; cache câu trả lời cho câu hỏi trùng.
    • Streaming để người dùng thấy chữ sớm, cải thiện độ trễ cảm nhận.
    • Gộp việc không gấp thành batch.
    • Tự host: quantization, batching động, engine suy luận tối ưu.

    Người phỏng vấn muốn nghe: mọi tối ưu đều kiểm tra lại bằng bộ eval để chắc chất lượng không giảm.

    Ôn thêm câu hỏi AI / Machine Learning →
  9. 09Chatbot RAG trả lời sai dù tài liệu có thông tin đúng. Bạn debug thế nào?AI / Machine Learning · Senior

    Gợi ý trả lời

    Tách lỗi theo từng khâu của pipeline, kiểm tra từ dưới lên.

    1. Dữ liệu: tài liệu đã được nạp chưa, trích xuất từ PDF/bảng có bị vỡ không, có phiên bản cũ mâu thuẫn không.
    2. Chunking: thông tin cần thiết có bị cắt đôi giữa hai chunk không.
    3. Truy xuất: log các chunk lấy về cho câu hỏi đó; đúng chunk có nằm trong top-k không. Thử hybrid search, rerank, viết lại câu hỏi.
    4. Sinh: chunk đúng đã có trong prompt mà vẫn sai thì xem prompt, thứ tự đặt ngữ cảnh, quá nhiều ngữ cảnh nhiễu.
    5. Thêm ca này vào bộ eval để tránh tái diễn.

    Người phỏng vấn muốn nghe: có tracing để xem từng bước, không đoán mò.

    Ôn thêm câu hỏi AI / Machine Learning →
  10. 10Kể về một lần bạn bất đồng với đồng nghiệp hoặc trưởng nhóm. Bạn xử lý thế nào?Câu hỏi hành vi & văn hoá

    Gợi ý trả lời

    Dùng STAR: Situation (bối cảnh), Task (nhiệm vụ), Action (bạn làm gì), Result (kết quả). Phần Action nên chiếm nhiều nhất.

    Câu mẫu:

    • S: "Lead muốn dùng một thư viện mới cho module báo cáo, em thấy thư viện đó còn ít người dùng và lo về bảo trì."
    • T: "Em cần nêu rủi ro mà không làm chậm tiến độ."
    • A: "Em gặp riêng anh, đưa so sánh hai phương án và đề xuất làm thử một bản nhỏ trong hai ngày để đánh giá."
    • R: "Kết quả thử cho thấy thư viện cũ đáp ứng đủ, anh đồng ý giữ lại. Từ đó team có thói quen làm bản thử trước khi đổi công nghệ."

    Người phỏng vấn muốn nghe: bạn tranh luận bằng dữ liệu, tôn trọng người khác, và chấp nhận quyết định cuối cùng kể cả khi không theo ý mình.

    Ôn thêm câu hỏi Câu hỏi hành vi & văn hoá →

Bạn đã phỏng vấn ở Simple Tech Investment?

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