Phép thuật AI và Tổng hợp 1 năm 3 tháng làm AI engineer tại công ty XX (phần 1)
một lời tâm sự chia sẻ trải nghiệm và kiến thức mình tích lũy trong 1,25 năm trong công ty XX
Để đọc bài viết này bạn có thể ko cần biết gì về AI, có thể coi đây như 1 lời tâm sự mình với chính bản thân vậy trong quá trình đi thu thập và sáng tạo từ những người đi trước để lại vậy. Biết đâu tạo cảm hứng cho ai đó, chuyển sang ngạch AI để nghiên cứu hoặc làm kỹ sư.
Mình sẽ ko nói mục đích sâu xa, ngầm của những dự án này, khách hàng là ai, nhưng những gì hiện tại nó đã là những ngạch riêng tỏa ra từ học sâu và trí tuệ nhân tạo AI, mình sẽ để đây, vì nó cũng là những ngạch khá công khai, được giới nghiên cứu và kỹ sư biết tới
Mỗi một dự án này đều đem lại những cảm xúc, sáng tạo và những câu chuyện ẩn sau nó
1. Kỷ nguyên AI đã bắt đầu
Mỗi ngạch AI đều hầu hết bắt nguồn từ những thuật toán căn bản trong học sâu (machine learning/ deep learning), những thuật toán tối ưu (optimizer), những hàm mất mát (loss function) quen thuộc với những bạn mới bước chân vào AI.
Từ những thuật toán căn bản của
machine learning (random forest, nearest k means, perceptron) đến những thuật toán của
deep learning (representation learning, CNN, VAE, GAN)
đến những thuật toán cao cấp hơn (temporal convolution, conformer) và đặc biệt những thuật toán đột phá (như attention mechanism, transformer (giải quyết vấn đề cho bài toán dạng chuỗi, diffusion (mình đặt tên là thuật toán quay ngược thời gian, giải quyết cho những bài toán sinh ảnh)
2. AI và phép thuật
Bạn có thể hiểu từng thuật toán AI là những phép thuật trong anime Frieren: Beyond Journey's End vậy, nhặt những phép thuật nhỏ ở từng cuốn sách (grimoire), đôi lúc việc quay về những thuật toán cơ bản hơn và đặt cược vào việc phát triển thêm cho nó có thể đánh bại những thuật toán hiện đại (ví dụ như Zoltraak trong Fieren vậy)
Phép thuật cần mana là nguồn cội thì AI cần toán là nguồn cội nuôi sống
Disclaimer: mình ko phải quí bửu hehe
Sau bài viết này bạn sẽ hiểu cơ bản về sự tồn tại của những phép thuật trong AI
3. Đứng trên vai người khổng lồ
Chúng ta đang sống trong 1 thời đại mà công trình hơn 8 năm, thậm chí cả cuộc đời (lifetime work) của nhiều nhà nghiên cứu, tiến sĩ từ MIT, John Hopkins, Tsinghua, Carnegie, Jiaotong có thể được dùng trong vòng 5 phút bởi 1 kỹ sư AI tầm 1 năm kinh nghiệm. Nghiên cứu rất nặng lý thuyết và đòi hỏi nhiều sự độc lập trong suy nghĩ, nhưng kỹ sư có thể ko cần hiểu rõ từng cấu trúc bên trong mô hình hoạt động thế nào nhưng biết cách hoạt động và đọc báo là đủ. Ví dụ việc ta vẫn dùng xe máy, dùng quạt điện dù ko biết động cơ đốt trong hay định luật Kirchhoff cho dòng điện hay các định luật về điện trường của Gauss là gì vậy.
Cảm hứng viết bài này sau khi nghe hơn 180 phút bài blue của yung kai và xem rất nhiều shorts của anime Fieren: Beyond Journey's End. với bài hát đó làm OST
nghe bài nhạc này, uống 1 tách trà và cảm nhận bài viết
Các dự án mình trải qua và tích lũy
1.Dự án đoán và crack mật khẩu (cracking password + target password guessing)
2.Dự án nhận diện dáng đi người (gait recognition)
3.Dự án nhận diện màu sắc xe (color recognition/classification)
4.Dự án phát hiện tàu (ship recognition + Region of interest + distance estimation)
5.Dự án phát hiện deep fake (deep fake recognition)
6.Dự án nhận diện giọng nói (speech to text)
7.Dự án dịch ngôn ngữ (text to text translation)
8.Dự án đi dịch tiếng nói (speech to speech translation)
1.Dự án đoán và crack mật khẩu (target password guess and crack)
- Đôi nét về dự án
Đây là dự án mình dành nhiều thời gian nhất trong các dự án (tầm 5-8 tháng, ko làm liên tục mà song song với các dự án còn lại)
Dự án này khá mật và có nhiều thứ và deepweb, hack nên mình sẽ ko viết nhiều phần được
Bạn muốn hiểu những gì mình đã làm, mình đã thu thập data bằng 1 cách nào đó (thậm chí ra net viking nhiều lần để down những file có thể nguy hiểm về) và viết từ C++ sang python cả code base của bài báo và nâng cấp hiệu quả giải mã mật khẩu bằng bổ sung cho thuật toán
Người Việt đặt mật khẩu 1 kiểu, người Trung Quốc đặt mật khẩu 1 kiểu, … ở đây mình sẽ nhắm vào cách đặt mật khẩu của người Việt hehe
Bấm Enter là AI của mình sẽ thử hơn 50 triệu khả năng nhất (phù hợp với thông tin đối tượng) để bẻ khóa file đó vậy, kết quả cuối cùng (hi vọng) là mở khóa được (test trên 1 bộ dữ liệu hơn 30 triệu mật khẩu dựa vào trawling password attack được 70% giải mã được hash md5), chưa tính việc dùng target password attack
- Đôi nét khác thú vị về dự án
Dự án này ko được cấp tiền nên mình sẽ bỏ xó nó một chỗ khác chờ ngày được gọi tên hay có thể là phát triển lên 1 start-up
Dự án này là AI? (gọi AI cho sang mồm chứ con này chỉ là dựa vào xác suất xuất hiện 1 thành phần của mật khẩu) - đọc bài báo dưới sẽ rõ hơn (đây là dựa theo mình đoán, vì tính bảo mật và hồi đó thuật toán này rất xuất sắc trong đoán mật khẩu nên tuy bài báo này sinh ra từ năm 2016 nhưng đến 2024 tác giả mới công bố code)
Mình có sáng tạo ra 1 ý tưởng về dictionary semantic chunking (đại loại là chặt 1 mật khẩu thành những từ có nghĩa trong từ điển việt - anh) vậy giả thuyết là 1 mật khẩu được cấu thành từ những từ có nghĩa, nó có thể kết hợp với mô hình Targuess trong bài báo trên. Mình chưa kịp nhét ý tưởng này vào công trình thì đã vứt xó code)
1 chức năng xịn xò nữa của luồng code mình là enter và nó sẽ đi tấn công 1 trang web bất kì (bằng hydra và 1 bộ giải mã captcha chữ viết mình tự chế dùng YOLO và VietOCR) (đương nhiên mình chắc ko làm đâu hehe)
Tip: spiderum khá dễ bị hack bay acc đó, admin nên để thêm captcha hay login throttling threshold mỗi lần có người login
Bài toán mật khẩu chỉ đơn giản hiểu là bài toán đi phá hash của mật khẩu (nên từ đó tác dụng vô vàn: crack được hash từ leak database, pass wifi, ví bitcoin)
- Tham khảo:
Bài báo: 2016 ACM CCS Paper "Targeted Online Password Guessing: An Underestimated Threat"
Code C++ bài báo:
https://github.com/CSSLabNKU/TarGuess-I
Tech stack:
johntheripper, hashcat
Từ khóa:
target password guessing, PCFG, mask/brute-force attack
2. Dự án nhận diện dáng người (gait recognition)
- Đôi nét về bài toán dáng đi
Mỗi người đều có 1 dáng đi riêng biệt (hình như đã được khoa học chứng minh), giống như mặt người, vân tay, võng mạc (face/fingerprint/retina recognition). Làm sao để tạo 1 con AI có thể nhận ra 1 người dựa vào dáng đi họ
Mình có ý tưởng dùng cái này để chấm công thay khuôn mặt được, chỉ cần 1 người đi qua camera, trích xuất dáng đi và điểm danh họ
Nhưng thật sự mục đích sâu xa của dự án này ko phải vậy
Nếu các bạn vẫn muốn biết những gì mình làm
Code mình mượn từ đây: https://github.com/ShiqiYu/OpenGait
Và mình cải tiến để có 3 luồng: phát hiện người -> theo dõi người -> trích xuất dáng đi trên 1 chuỗi frame ảnh (detect -> track -> gait recognition)
Trích xuất là gì? Trích xuất là lưu dáng đi bạn dưới dạng 1 vector toán học, lưu vào 1 database có thể là excel, mysql, rồi về sau có người mới cần nhận diện là ai trong những người từng trích xuất dáng đi thì chỉ việc đi so sánh sự tương đồng giữa vector người vừa trích xuất với hơn 1000 người đã trích xuất trước đó, xem đó có phải cùng 1 người không
Sức mạnh của việc làm lại được sản phẩm trí tuệ người đi trước
Mình có thể nói mượn sức mạnh hay ăn cắp của các doanh nghiệp Trung quốc khá nhiều (hồi còn làm thực tập ở FPT, ở một số mảng, họ chỉ dám mượn sức mạnh của những công nghệ 5 năm trước của Trung Quốc để copy hoặc làm eco partnership, VN thiếu rất nhiều cơ sở vật chất (infrastructure) và nhân tài (talent-density), các bạn tưởng tượng muốn dùng công nghệ A, bạn cần ngành nền tảng (foundation) là ngành công nghệ B và ngành công nghiệp C cần phát triển tương ứng. nên việc đi tắt đón đầu rất nguy hiểm, vì ko áp dụng được công nghệ quá tiên tiến vào việc gì (ví dự ngành logistic mà phát triển chậm, lúc này robot trong nhà máy chỉ để bám bụi). Lúc này bạn sẽ chỉ còn các làm thuê (out-source) cho các công ty, dự án nước ngoài (sing, nhật, …)
Quay lại về bài toán dáng đi
Quay lại việc mình lấy sức mạnh của hơn 8 năm nghiên cứu của các giáo sư làm hơn 15 năm trong mảng dáng đi ở Trung Quốc (tưởng tượng việc 15 năm chỉ nghiên cứu về 1 thứ, thật sự kinh khủng, nhưng độ giàu có từ việc đó là những công ty được funding bởi chính phủ.
Tip:
hãy đi nước ngoài đi nếu bạn muốn làm kỹ sư AI, ở đây lương bèo, sếp dí thì khó sáng tạo (may là sếp mình chill), 1 v 100 thằng khác thông minh hơn hoặc bằng bạn tranh nhau 1 slot cho công việc, mà những dự án về AI thì 1 là đi sau vài năm so với các nước khác, 2 là mấy ông ở trên sẽ nghĩ ra 1 đề bài nó vượt ngoài khả năng nghiên cứu hiện tại.
Bài báo:
OpenGait: Revisiting Gait Recognition Toward Better Practicality
Từ khóa:
gait recognition, temporal convolution

Quan điểm - Tranh luận
/quan-diem-tranh-luan
Bài viết nổi bật khác
- Hot nhất
- Mới nhất
