Sự nghiệp giáo dục của tôi
Câu chuyện giáo dục thì bắt đầu từ hôm nọ catch up với đứa junior ngày xưa. Junior của mình từ mấy năm về trước, giờ đang làm việc bên Úc, nhưng ngoài việc đi làm trên công ty thì nó còn đi dạy trên lớp ở uni. Kể chuyện là đi làm và đi dạy và bận điên lên được, nhưng mà cảm thấy rất là satisfied, vì được nghe những lời rất ấm lòng từ học sinh của mình, “I’m glad I took this unit this semester”.
Mình nghe thì mình cũng mừng cho cu em; ai mà đã có junior, đã từng đi mentor hoặc đi coach cho người khác chắc đều rất mong nghe được những câu này. Nó như là một minh chứng, một chứng nhận cho việc mình đã dạy và giúp người khác trở nên tốt đẹp hơn chút. Nó còn bảo là nó dạy môn Cloud (“môn mà em nhờ anh chỉ đó” - huhu thực sự là còn ko nhớ luôn, rõ ràng là mình làm data engineering cơ mà). Tự nhiên mình được vui lây một chút, không những đệ tử của mình cũng đạt được những thành công của nó, mà mình tự nhiên lên chức thái sư phụ =))). Chỉ chờ đến ngày blog này thành hit và viral, mình trở nên nổi tiếng thì mình sẽ khai tông lập phái (chắc cũng nhanh thôi).
Bản thân mình thì luôn đánh giá cao về sức mạnh của teaching, mentoring, coaching. Một dạy mười, mười dạy một trăm; kiến thức và kinh nghiệm có thể được lan truyền một cách mạnh mẽ, và nếu làm một cách tử tế, đó sẽ là cách để nâng tầm cả một xã hội. Nhưng đi cùng với sư lan toả của nó, cũng là một trách nhiệm vô cùng to lớn; khi bạn là một người có tầm ảnh hưởng, chỉ cần bạn lan truyền một nội dung không đúng thì nó cũng có thể được phát tán rộng rãi và có thể mang lại hậu quả lớn hơn tưởng tượng.
Thế machine learning thì có liên quan gì
Với cơn sốt của cả thế giới về AI, về large language model, thì machine learning(máy học) có một sự nhảy vọt về sự nhận diện. Bắt đầu từ việc tìm hiểu mày mò sử dụng các công nghệ liên quan đến AI, một làn sóng tìm hiểu và học hỏi thêm về các công cụ AI, cấu trúc và lý thuyết đứng đằng sau AI nổi lên. Các thuật ngữ, các kỹ thuật và phương pháp đằng sau các AI system đã trở thành một thứ được nhiều người đặc biệt là các bạn trẻ quan tâm nhiều hơn. Machine Learning là một phần không thể thiếu, gần như là gốc rễ của các hệ thống Data Science. Từ một thứ dường như là “too nerdy”, thường gắn liền với các nghiên cứu khoa học, tự nhiên machine learning được trở thành một thứ gần gũi và bình dị hơn với xã hội hơn bao giờ hết.
Machine Learning, là các biện pháp giải thuật sử dụng kiến thức về statistics lên các dữ liệu đã vốn có, để áp dụng lên những dữ liệu mới. Với sức mạnh tính toán của các vi xử lý hiện đại, máy móc có thể thực hiện hàng triệu phép tính mỗi giây, mang lại một khả năng mới cho con người trong việc xử lý và phân tích dữ liệu. Machine Learning dựa vào rất nhiều các thuật toán phức tạp, tuy nhiên ở môi trường hiện đại, các giải thuật đã được đóng gói lại thành các library để mọi người có thể dễ dàng sử dụng và trải nghiệm. Với một máy tính cài đặt Python (hoặc là thậm chí với các online notebook), bạn có thể trải nghiệm ngay sức mạnh của các thuật toán từ các thư viện ML, như scikit-learn, xgboost hay là tensorflow. Một thứ tưởng như vô cùng phức tạp, bây giờ có thể dễ dàng được pick up bởi một bạn sinh viên có chút hiểu biết về khoa học máy tính.
Tuy nhiên, hầu hết các bàn luận đều nhắc đến machine learning, mà một thứ được ít nhắc đến hơn hẳn, là phía ngược lại của bài toán, “machine teaching”. Khi bạn đang lập trình một hệ thống ML, thực tế là bạn đang trở thành một thầy giáo bất đắc dĩ (or not) của cái máy tính đó. Xây dựng một hệ thống Machine Learning hoàn chỉnh, lại mang những nét tương đồng với cấu trúc của một hệ thống giáo dục. Hiểu biết thêm về những tư duy của việc dạy học, nó lại mang đến hiệu quả cho việc xây dựng những hệ thống machine learning, một cách không ngờ.
Dạy máy học như dạy người
Với việc nhà nước đều đã có phổ cập giáo dục, ai đọc được bài viết này chắc đều hơn chục năm mài mông trên ghế nhà trường. Nhìn lại quá trình chúng ta học tập, trải qua các bài giảng, bài thi, mình có thể đúc kết ra được những cách để áp dụng nó vào việc xây dựng một hệ thống Machine Learning thật tốt.
Garbage in, garbage out: Câu nói cửa miệng của các anh em làm Data. Đầu vào mà chất lượng thấp thì đầu ra không thể khá lên được; và đây là lý do đầu tiên cho tất cả các quá trình làm việc với dữ liệu, nhiều dữ liệu và rất nhiều dữ liệu. Tuy nhiên, mình muốn bổ sung thêm 1 ý nữa: Garbage process, garbage out. Nó như một quá trình dạy học vậy, cùng 1 bộ sách giáo khoa, nhưng mà quá trình dạy và học không được phát triển một cách chuẩn chỉnh, thì bạn cũng không thể đào tạo được 1 học sinh giỏi. Bạn đi học ở một giáo viên “hợp” với bạn thì bạn sẽ học nhanh gấp 5-10 lần khi học ở một chỗ bạn không “hợp”. Machine learning cũng vậy, hiểu kỹ về điểm mạnh điểm yếu của “học sinh” máy tính, bạn có thể xây dựng quy trình để train hệ thống nhanh hơn nhiều lần so với việc train 1 cách mù quáng, ném số và ném hyperparam vào hy vọng nó trúng đích.
Staged development: Như một học sinh chẳng hạn, phải đi thi qua từng năm và lên lớp; đó là bởi vì những kiến thức đi trước nó sẽ làm nền cho kiến thức đi sau. Phải biết số nguyên thì mới học đến số thực, phải biết giải phương trình thì mới hiểu đến được đạo hàm tích phân. Quá trình phát triển của một hệ thống machine learning trong một organization nó phải được xây dựng một cách tuần tự, của những thứ đi trước nó hỗ trợ cho những thứ đi sau. Bạn phải có một hệ thống cơ sở dữ liệu internal và external, có đủ domain understanding để làm những bước data sanitization, lập ra các hypothesis và develop training data and method. Sau cùng, phải có 1 quy chuẩn để lưu trữ, so sánh và tích hợp kết quả của các Machine Learning process vào trong daily business. Đây là cả 1 quá trình rất dài, và thực sự thì mọi thứ nên được xây dựng một cách tuần tự, theo quá trình phát triển và nhu cầu của org, chứ không phải là ở đâu bạn cũng chỉ cần cắm machine learning vào là nó sẽ giải quyết hết vấn đề cho bạn. Cũng như học phải có mẫu giáo, rồi tiểu học rồi trung học, chứ không có nhảy loạn xạ lên được.
Handling unpredictability: hai con người, có thể trải qua trải nghiệm học tập gần như tương đồng, nhưng đôi khi kết quả lại cách xa nhau. Học tập và machine learning đều có 1 chút yếu tố ngẫu nhiên ở trong đó, ảnh hưởng từ sự ngẫu nhiên hay các biến động nhỏ từ môi trường. Khi đối diện với những vấn đề đời thực, cách giải quyết cũng sẽ có sự khác biệt giữa người và người. Kết quả của 1 hệ thống machine learning cũng thế, cũng sẽ luôn có 1 chút ngẫu nhiên và hơi khó đoán trước; và đây là một phần không thể nào loại bỏ của ML. Khi áp dụng ML vào thực tế, unpredictability là một thứ mà bạn sẽ luôn phải tính đến, và có giải pháp để xử lý nó. Trong môi trường học tập, học sinh mà bị yếu một số môn thì có thể sẽ phải đi học thêm lớp phụ đạo, hoặc là được giao thêm bài tập về nhà, để củng cố lại kiến thức. Ở phương diện nhìn về ML, khi một model được phát triển và sử dụng thực tế, sẽ luôn đi kèm với việc theo dõi sát sao(monitoring + evaluation), kiểm tra đột xuất (random sampling), và xem điểm mạnh yếu của model dựa trên nhu cầu thực tế (pass được standardized tests) để liên tục cải thiện và bổ sung những gì còn thiếu. Xây dựng một model sẽ không bao giờ dừng lại ở việc xây “xong” cái model đầu tiên, mà nó sẽ là tiếp tục cải thiện và tối ưu theo nhu cầu và mục đích sử dụng. Có khác gì sự nghiệp học, học nữa, học mãi đâu =)
Kết
Mình thì cũng hơi hơi có passion với việc dạy dỗ mentoring các kiểu, thế nên các domain liên quan đến learning cũng là một thứ mình hay nghiền ngẫm. Machine learning, đúng như tên gọi của nó, liên quan mật thiết đến tư duy về learning, làm sao để một agent có thể học được thêm một khả năng, một kỹ năng gì đó mới. Áp dụng những gì mình biết được về learning vào trong machine learning, mình nghĩ đó là một cách thú vị để xây dựng được một hiểu biết sâu sắc hơn về ngành học này.
sư phụuu
Hay và có tâm quá thầy Híu ơi