**Dungeons & Dragons phiên bản AI
**Người chơi sẽ tự thiết kế tình huống và nhập vai trong một thế giới giả tưởng.
Có ba chế độ: Bạn có thể cho nhân vật "Nói" , "Làm", hoặc có thể viết thẳng câu chuyện ra. AI sẽ nối tiếp với một tình huống hợp lý.
Mình có chơi qua thử và thấy AI phản ứng cũng ổn và tự nhiên trong một vài tình huống. Có cả chế độ multiplayer .
Link: [https://play.aidungeon.io/](https://play.aidungeon.io/)
#j2team_share #j2team_ai
(Hình minh hoạ: Những dòng bắt đầu bằng ">" là mình viết, còn lại là A.I. viết.)
Làm teamlead có gì vui?
Hôm này vào lệnh hơi ngu nên để tránh tình trạng fomo mà bay hết tài sản rồi để tan hoang cửa nhà thì tôi lại lên đây tâm sự với anh em về chuyện công việc.
Chả là dạo này code ra nhiều bug quá nên sếp giao cho tôi nhiệm vụ phát triển công việc ngành Quản trị dữ liệu trong công ty. Chắc các bạn nghe tên ngành Quản trị dữ liệu thì thấy nó vừa lạ vừa quen. Nói ra thì nói dài dòng nhưng các bạn hiểu đơn giản thì nó là AI - Big Data còn thực ra thì nó còn vài nhánh nữa.
À đấy hiện tại team Big Data của tớ tại Viettel Media đang rất cần các bạn Data Engineer với chế độ đãi ngộ cực kỳ hấp dẫn, lương upto 1k5$. Anh em nào có hứng thú thì inbox thẳng cho tớ nha. Bên cạnh đấy thì bên tới cũng đang tuyển nhiều vị trí như Java, Android, Ios, teser nữa nha.
Thôi quay lại chủ đề chính
Điều đầu tiên làm tôi phấn khích nhất là ăn chửi nhiều.
Trước đây, tôi đảm nhiệm các công việc về AI, do team ít người mà đặc thù công việc là nghiên cứu nhiều nên cũng ít phải tiếp xúc hay phải phối hợp công việc với ai, deadline thì cũng có nhưng không áp lực nhiều như các anh em bên đội khác.
Vậy nên, việc điều phối, sắp xếp công việc của tôi lúc ban đầu rất là tệ, mọi việc cứ rối lên. Tôi có mới ra hỏi sếp là mình làm sai ở đâu. Sếp mới cho tôi lời khuyên:
"Mỗi ngày em bỏ ra 30 phút để xem ai làm gì rồi vướng ở đâu sắp xếp lại cho phù hợp lúc đó việc tự chạy."
Sau hôm đó, tôi suy nghĩ lại hết tất cả những công việc đang làm, giao cho ai, mỗi ngày đều gọi anh em ra "tâm sự" với nhau tầm 5-10 phút để nắm bắt tình hình. Tùy vào mức độ quan trọng mà có nên hỏi sâu hỏi kĩ hay không. Tôi không biết các bạn hay họp giải trình công việc với team như nào nhưng tôi thường hỏi các công việc có gì khó khăn không nếu có thì cùng nhau giải quyết, tôi thì thích nghe phương án của các bạn trong team hơn là tôi nói vì tôi muốn các bạn tự giải quyết vấn đề của mình mà biết đâu các bạn có phương án hay hơn của tôi thì tôi lại học được nhiều cái hay :D Còn đối với các công việc đang triển khai thì tôi hay hỏi logic như nào code thì thi thoảng tôi mới vào review chỉ có những bạn intern hay mới join vào thì tôi mới review kỹ còn không thì cứ đúng pattern và coding convention là được rồi. À mà thực ra thì cứ chạy được đã rồi tính tiếp =))
Khối lượng công việc nhiều hơn
Nhiều bạn nghĩ làm lead thì chỉ có chỉ đạo nhưng thực tế thì nó không như thế :))
"Team lead là một thành viên trong nhóm và vẫn phải làm các công việc bình thường đôi khi là đảm nhận các công việc mà không thành viên nào trong nhóm muốn làm" - Trích dẫn Sách Quản lý dự án lớn và nhỏ.
Đôi khi việc bạn lên danh sách công việc, nắm bắt các công việc, đầu mối tiếp nhận yêu cầu và điều phối công việc đã ngốn 50% thời gian làm việc của bạn rồi mà các công việc chuyên môn của bạn, bạn vẫn không được bỏ qua. Chưa kể với team nhỏ thì bạn lại phải kiêm nhiệm nhiều nhiệm vụ nữa. Và tôi là một trong những trường hợp đó :))
Học được nhiều thứ hơn
Bên cạnh các kiến thức chuyên môn bạn còn phải học về cách quản lý thời gian, quản lý con người, quan lý công việc, quản lý rủi ro. Vì để điều phối mọi việc trơn tru bạn phải cần biết tất cả những thứ ở trên.
Nhiều khi công việc đến dồn dập cùng một lúc làm tôi khó chịu với tất cả mọi thứ đến mức phát cáu lên. Nhưng sau nhiều lần như vậy, tôi mới nghiệm ra một điều là Cáu lên cũng không giải quyết được việc gì, cứ bình tĩnh, lắng nghe, tiếp nhận và xử lý thì rồi mọi thứ sẽ ổn thỏa.
Nói tóm lại thì làm team lead không vui gì đâu các bạn ạ? Việc nhiều, trách nhiệm nhiều mà lương thì chưa chắc đã hơn anh em còn lại. Tự dưng nhắc đến tiền tôi lại phải vào xem nên vào lệnh nào để sớm mà về bờ thôi chứ mì tôm ngán quá rồi :((
Xin phép anh em quảng cáo cái blog của tớ, anh em nào không thích thì quên nó đi nha :*
https://ducthang1996.wordpress.com/2021/04/19/lam-teamlead-co-gi-vui/
#j2team_share #j2team_ai #j2team_bigdata
Phân loại người dùng spam rất là dễ ?
Hôm nay cả công ty đi nghỉ mát còn tôi ở lại trực và làm việc. Công việc thì đã hòm hòm nên khá rảnh, mà rảnh rỗi sinh nông nổi nên viết một vài chữ để tâm sự công việc
Khoảng 1 năm trước tôi nhận được một bài toán Nhận diện người dùng spam. Khi mới nhận trong đầu mỉm cười nghĩ "cái này thì đơn giản thôi". Nhưng khi tôi lao vào làm rồi thì tôi mới thấy mình nhầm thực sự nhầm.
## ***[#NHỮNG](https://www.facebook.com/hashtag/nh%E1%BB%AFng?__eep__=6&__cft__[0]=AZWq6MzyA0zAUaHraJQ8uz1Qs1TY09DAr0uDWqqnUdTm0MXzWz1gbxNEQtLxq1SJQVh_m9R5EiCJSw9ayRJpjauypMPlqIb_Jmtmfr3H0Kko6vczTi0CfpQxWso5c0aKiAnm1iBmk0o4IDXmIc8TcCirDBErD6rpBWf1KqsKDpZmrpnPe3gIw8mOcOjJZSa6nhiAJ7LFLl0smbhulOx1HG2d&__tn__=*N-U-UK-R) CÁI KHÓ***
## ***KHÓ 1: ĐỊNH NGHĨA VỀ SPAM***
Cái định nghĩa được thường dùng nhất là:
> Spam là những hành vi gửi những tin nhắn không có ý nghĩa và gây phiền toái cho người nhận
Đó, vậy những tin như nào thì là không có ý nghĩa và như nào thì gây phiền toái cho người nhận. Người nhận không phải là một người mà là rất nhiều người. Ví dụ, có người A nhắn tin đòi chat sex với người B và người C. Người B thấy đó là sự phiền toái và xúc phạm nhưng người C thì lại đồng ý và thích thú. Vậy đây có phải spam hay không ?!
## ***KHÓ 2: DỮ LIỆU***
Khi xây dựng một mô hình Machine Learning thì việc tốn thời gian nhất và quan trọng nhất đó là xử lý dữ liệu. Xử lý dữ liệu ở đây là gì ? Xử lý là phân tích dữ liệu để đưa ra các thuộc tính, sau đó gán nhãn dữ liệu. Để các bạn dễ hình dung thì tôi có một tập dữ liệu gồm 10 triệu bản ghi hay 10 triệu dòng về hành vi của người dùng, việc của tôi là phân tích dữ liệu để tìm ra những hành vi để phân biệt người dùng spam và người dùng không spam mà không có chút gợi ý nào cả. Đấy công việc của một Data Analyst đấy
Đấy công việc của một Data Analyst đấy
Tìm ra các thuộc tính rồi thì là việc "tay to" gán nhãn. Gán nhãn giống như công việc bạn dạy đứa trẻ (đứa trẻ ở đây là máy tính) làm sao để nó biết quả cam khác quả táo như thế nào. Nói vậy để biết được việc gán nhãn quan trọng và quyết định tới sự thành công của mô hình như nào. Nếu ta cứ bảo với một đứa trẻ quả táo là quả cam và ngược lại thì lúc nó lớn lên khi cầm quả táo nó sẽ bảo đó là quả cam. Mà uốn cây từ thuở còn non, lớn rồi thì không dậy được nữa, dạy lại thì rất khó cách dạy lại dễ nhất là "reset" :-<
Mà gán nhãn muốn chính xác nhất là phải tay to tức là tự làm bằng tay đấy ạ. Trong khi đó để giải quyết bài toán spam chỉ có mình tôi làm từ A->Z từ phân tích dữ liệu đến thiết kế và phát triển hệ thống. Mà một mình việc gán nhãn 10.000.000 bản ghi là điều không thể nên t chỉ làm được khoảng 3000 nhãn.
Mình tôi với việc gán nhãn
## ***KHÓ 3: CHÍNH SÁCH BẢO VỆ SỰ RIÊNG TƯ CỦA NGƯỜI DÙNG***
Để bảo vệ người dùng tất cả dữ liệu về người dùng như số điện thoại, tên tài khoản đều dược mã hóa và thay vào đó để định danh người dùng tôi chỉ được tiếp cận với id của người dùng đó mà id đó không phải là một số nguyên tự tăng mà đó là một chuỗi string sau mã hóa mà tôi cũng không biết nó được mã hóa hay được sinh như nào. Điều này thì hoàn toàn dễ hiểu và cũng không làm cản trở đến việc xây dựng hệ thống của tôi.
**Nhưng **người ta thường nhận diện spam dựa trên nội dung ví dụ như email hay sms. Còn đây tôi không được làm thế. Nội dung tin nhắn tôi không được xem mà cũng không có mà xem. Câu hỏi đặt ra là như vậy thì ***có nhận diện được người dùng spam không ? ***Câu trả lời là Có, nhưng tỉ lệ sẽ không được chính xác như việc kết hợp cả hành vi và nội dung người dùng.
Giả sử, nếu nhận diện spam dựa trên nội dung thì sao ? Thì cũng rất khó khăn. Nếu như nhận diện spam email hay trên một hệ thống có văn phong chuẩn như spiderum thì việc xử lý NLP lại dễ dàng. Còn với các hệ thống SMS như Mocha, Zalo thì là một ác mộng vì người dùng hay dùng chữ viết tắt, teen code, hay một kiểu ngôn ngữ nào đó mà chỉ có...người mới hiểu còn để biểu đạt cho máy hiểu thì bạn lại phải phân tích, gán nhãn, xây dựng mô hình. Hay nói cách khác là bạn làm lại NLP Core cho từng code hay ngôn ngữ đó.
## ***KHÓ 4: XỬ LÝ DỮ LIỆU LỚN TRONG THỜI GIAN GẦN THỰC***
Hồi tôi mới làm tôi chưa có kinh nghiệm xử lý dữ liệu lớn bằng việc xử dụng Hadoop, Spark,... tôi chỉ dùng python thuần và các thư việc phụ trợ như pandas, sklearn. Lúc đầu để tôi detect hành vi spam bắt đầu từ việc tách thuộc tính đến việc detect mất 2h cho khoảng 200.000 user/10.000.000 bản ghi/ngày. Sau đó, tôi sử dụng queue và chiến lược chia để trị + xử lý song song và phân tán (tất cả đều tự code mà không dùng bất kỳ 1 framework xử lý dữ liệu lớn nào) thì chỉ mất khoảng 20 phút để xử lý xong.
Một cái củ chuối nữa là phải nhận diện ra user có hành vi spam trong thời gian ngắn nhất hay có thể hiểu là nhận diện user spam dựa trên hành vi trong thời gian thưc ?!
Hành vi trong thời gian thực ?!
Đúng rồi đó ?! Các bạn không nghe nhầm đâu. Hành vi là thứ phải được tích luy trong 1 khoảng thời gian nhất định nhưng phải nhận diện trong thời gian thực ? =(((((((
Trong cái khó nó ló ra cái khôn. Tôi xử lý bằng cách liên tục cho quét các hành vi của người dùng trong thời gian delta t rất nhỏ ví dụ 1 phút/lần. Như vậy ở thời gian t0 user đó chưa spam nhưng thời gian t1 user đó đã có đủ hành vi spam và được nhận diện. Bởi vì, thời gian quét hay delta t là rất nhỏ nên có thể coi là real time . Như vậy là đáp ứng được yêu cầu phát hiện được hành vi spam của user trong thời gian sớm nhất có thể rồi
## ***KHÓ 5: TÌM RA THUỘC TÍNH CỦA CÁC USER SPAM***
Quay lại với cái khó khi phân tích dữ liệu người dùng. Để tìm được các thuộc tính phân biệt được người dùng spam và người dùng bình thường quả như đãi cát tìm vàng.
Việc đầu tiên là đặt ra các câu hỏi User spam thì thường làm những cái gì ? Mong muốn của spam là gì ? Từ đó tìm ra các thuộc tính.
Nhưng mà cuộc sống nó lại không như cuộc đời mới cay. Những thằng spam nó lại có hành vi giống với những thằng bình thường. Ví dụ thời gian gửi tin nhắn giữa các lần gửi tin của những ông spam lại giống với những ông nhắn tin bình thường,...
Vậy làm sao để tìm ra các thuộc tính ? Câu trả lời là tiếp tục suy nghĩ, query dữ liệu, visualize thành các biểu đồ, số liệu để so sánh giữa người dùng spam và người dùng bình thường =)))
Chăm chỉ đào bới dữ liệu để ra các thuộc tính
## ***KHÓ 6: ĐÁNH GIÁ***
Thông thường khi để đánh giá một mô hình phân lớp người ta thường dùng Accurancy hoặc True/False Positive/Negative. Nhưng đấy là khi ta đã có một bộ dữ liệu đã gán nhãn sẵn dùng cho khi nghiên cứu. Nhưng khi áp vào thực tế thì dữ liệu ta có hoàn toàn là dữ liệu không được gán nhãn. Do vậy, làm sao để đánh giá được mô hình khi ta phải gán nhãn cho khoảng 10.000.000 bản ghi trên ngày đây =(((((( Chỉ có cách là thuê cả 1 đội về gán nhãn mới biết chính xác được
Nhưng nhà nghèo không chơi như thế được thì ta chỉ có các thống kê, đánh giá dựa trên kết quả mô hình trả về. Ví dụ, mô hình chúng ta nhận diện được 100 user spam/ngày trong đó 90 user đúng là spam thì ta có thể tạm coi là nó đúng 90%. Cộng thêm tỉ lệ người dùng spam mà ta thống kê được trước đó để so sánh xem có đúng thực tế không. Nếu tỉ lệ thống kê trước đây so với tỉ lệ mô hình đoán ra chênh nhau không quá 10% thì tỉ lệ rất cao là mô hình của bạn đã đúng
## **[#CÁI](https://www.facebook.com/hashtag/c%C3%A1i?__eep__=6&__cft__[0]=AZWq6MzyA0zAUaHraJQ8uz1Qs1TY09DAr0uDWqqnUdTm0MXzWz1gbxNEQtLxq1SJQVh_m9R5EiCJSw9ayRJpjauypMPlqIb_Jmtmfr3H0Kko6vczTi0CfpQxWso5c0aKiAnm1iBmk0o4IDXmIc8TcCirDBErD6rpBWf1KqsKDpZmrpnPe3gIw8mOcOjJZSa6nhiAJ7LFLl0smbhulOx1HG2d&__tn__=*N-UK-R) KẾT**
Sau khoảng 2 tháng cuối cùng tôi đã build được mô hình và tỉ lệ đạt được cũng khá ổn trong mức 96% - con số này chỉ đánh giá dựa trên các thông báo nhận diện spam mà mô hình trả về. Thôi thì cũng tạm hài lòng. Nhưng vẫn còn rất nhiều việc để làm và để tối ưu vì người dùng luôn luôn tìm tòi và vượt qua được mô hình AI mà.
#j2team_share #j2team_ai #j2team_data_science
#j2team_share #j2team_ebook #j2team_AI
share cho anh em tài liệu về trí tuệ nhân tạo của Đại học sư phạm hà nội. Anh em nào đang muốn tìm hiểu về AI có thể vào xem tham khảo nhé.
link : https://goo.gl/u2nj3K
pass: j2team
#protect@64w2x2x223@
#j2team_news #j2team_AI
Facebook giới thiệu Rosetta, quét hàng tỉ ảnh được up lên mỗi ngày xem có câu chữ vi phạm hay không
Facebook cho biết họ phát triển một hệ thống máy học tên là Rosetta ứng dụng trí thông minh nhân tạo để quét hàng tỉ tấm ảnh được up lên mạng xã hội này mỗi ngày, cụ thể là Rosetta sẽ quét chữ viết được chèn lên trên ảnh, nhằm lọc xem nội dung chữ viết đó có mang tính xấu, xúc phạm người khác, tuyên truyền sai sự thật v.v... trái với điều khoản sử dụng của Facebook hay không.
https://goo.gl/CEdvyR | #protect@84t203z2w2@
Pass: rosetta
Group mình có ai đam mê AI không nhỉ :3
Tìm đồng đội ở HCM biết code đam mê AI cà phê vọc vạch cùng nhau nè :3
Tiện xin ít ý tưởng code AI với anh em :v
https://www.youtube.com/watch?v=hRYkGzgAvEc
#j2team_share #j2team_AI
#j2team_share #j2team_ebook #j2team_AI
share cho anh em tài liệu về trí tuệ nhân tạo của Đại học sư phạm hà nội. Anh em nào đang muốn tìm hiểu về AI có thể vào xem tham khảo nhé.
link : https://goo.gl/u2nj3K
pass: j2team
#protect@64w2x2x223@