Nội dung

Tại sao cần đọc bản báo cáo này

Trí tuệ Nhân tạo (AI) đã quay trở lại, và mối quan tâm của giới công nghệ đang lớn hơn bao giờ hết. AI sẽ có một có một tác động quan trọng đến việc thiết kế và sáng tạo ra phần mềm. Những chuyên gia “phát triển và phân phối phần mềm (AD&D)” cần phải hiểu những lợi ích tiềm năng mà AI sẽ mang lại, không phải chỉ để cho việc xây dựng phần mềm mà còn cho chính bản chất của ứng dụng đó. Song song với đó, những chuyên gia về AD&D không nên bỏ qua những thách thức và rủi ro đi kèm với AI. Bản báo cáo này bản đầu tiên trong một chuỗi bài phân tích ảnh hưởng của AI đối với phát triển phần mềm và loại bỏ những lời đồn đại.

Những điểm chính

AI sẽ cải tiến, tăng tốc, và làm gián đoạn chu trình phát triển phần mềm

Sự kết hợp của những công nghệ AI như advanced machine learning (máy học học máy nâng cao), deep learning (học sâu), natural language processing (xử lý ngôn ngữ tự nhiên), và những quy tắc nghiệp vụ sẽ có ảnh hưởng đến tất cả các bước trong chu trình phát triển phần mềm. Chúng giúp cho lập trình viên xây dựng phần mềm tốt hơn và nhanh hơn. AI sẽ làm thay đổi cách lập trình viên xây dựng ứng dụng và bản chất những ứng dụng mà họ xây dựng.

AI sẽ giúp lập trình viên xây dựng ứng dụng có thể học như con người

Machine learning và deep learning sẽ là cốt lõi của công nghệ AI mà lập trình viên nên làm quen để xây dựng ứng dụng có thể tự học. Lập trình viên sẽ tập trung ít hơn vào việc dùng những quy tắc ép cứng để lập trình ứng dụng trở nên thông minh, thay vào đó họ sẽ lập trình những thuật toán hay cấu hình để chúng tự học. Lập trình viên sẽ tích hợp thuật toán, biên soạn và tìm những tệp dữ liệu lớn để luyện tập cũng như kiểm thử những ứng dụng như vậy.

Hãy chuẩn bị cho những thách thức và rủi ro

Những hệ thống có nền tảng là AI sẽ luôn đi song hành với những phần mềm được lập trình bằng cách truyền thống trong một thời gian dài nữa. Tích hợp những cái mới với cũ – hay thậm chí cái mới với cái mới – sẽ phức tạp hơn. Những kỳ vọng không thực tế của các kỹ thuật AI sẽ củng cố hơn niềm tin của những kẻ hoài nghi. Kế hoạch cho những kỹ năng tích hợp, tìm đúng những loại vấn đề để giải quyết, và đặt những kỳ vọng thực tế để tránh viễn tưởng không thể đạt được.

Lập trình viên: Đề phòng trước sự phá vỡ của những phần mềm với nền tảng AI

Trong nhiều thập kỷ, những nhà khoa học máy tính đã cố gắng thử sử dụng kỹ thuật lập trình AI và thuật toán để truyền tải tri thức ở mức con người, những quy tắc và chính sách nghiệp vụ, và cách ra quyết định cho máy tính. Tuy nghe hào nhoáng hơn lập trình theo cách truyền thống, nhưng những kỹ thuật AI phần lớn được dùng để nâng cấp thủ công nền tảng tri thức của hệ thống – là một thứ luôn luôn bị giới hạn. Sự giới hạn tri thức trong các lĩnh vực đã minh chứng một sự thay thế nghèo nàn cho những chuyên gia là con người; Hệ thống AI chỉ tốt bằng được sự “thông minh” được lập trình bởi chính con người.

Cách tiếp cận với AI mới là sẽ xây dựng hệ thống có thể tự học, trở nên chuyên gia có thể mô phỏng và lấy được những quy tắc từ dữ liệu chúng được tiếp nhận. Những hệ thống như vậy sẽ xử lý được sự phức tạp cùng với sự chính xác phải tăng dần, thích nghi với những điều chưa biết, và mở rộng khả năng của chúng vượt ngoài ra khỏi những chương trình ban đầu. Những kỹ thuật của bộ xử lý ngôn ngữ tự nhiên(NLP) truyền thống, lý lẽ dựa trên quy tắc, và biểu diễn tri thức giờ đang được tăng cường với machine learning – đặc biệt là deep machine learning – để củng cố vững chắc dần dần AI. Với những kết quả ban đầu đầy hứa hẹn: Những ứng dụng nghiệp vụ mới đang xuất hiện ở nhiều lĩnh vực. Sự mở rộng lớn mạnh từ những gì AI mang lại sẽ thay đổi công việc của lập trình viên – vậy nên những chuyên gia AD&D cần tìm cách để tận dụng lợi thế này.

AI giúp cho lập trình viên thông minh hơn

Vùng đất công nghệ AI đang đầy rẫy những công nghệ cũ (yếu) và mới (mạnh hơn) (xem Hình 1). Deep machine learning và hệ thống neural networks (mạng lưới nơ-ron) đang là nền tảng cơ bản giúp cho AI mạnh hơn; áp dụng và kết hợp chúng với những kỹ thuật AI yếu hiện nay như knowledge representation (biểu diễn tri thức), NLP (xử lý ngôn ngữ tự nhiên), reasoning engines (công cụ lý luận), công nghệ giọng nói và tầm nhìn sẽ củng cố AI hơn. Những lập trình viên đầu tiên phải hiểu những công nghệ này là gì và họ có thể làm gì khác hơn và trở nên tốt hơn với chúng, cả ở trong SDLC (chu kỳ phát triển phần mềm) và ở trong những kiểu ứng dụng mới. Chúng tôi đã khảo sát và nói chuyện với 30 chuyên gia để khám phá những ý tưởng trong phòng thí nghiệm của họ, những sản phẩm và dịch vụ mới, và những trải nghiệm của họ với khách hàng. Hãy tưởng tượng rằng AI sẽ giúp những lập trình viên có thể:

  • Nhanh chóng biến những ý tưởng thành mã. Biến ý tưởng kinh doanh thành mã nguồn vẫn đang là vấn đề chính, thậm chí cả khi Agile, DevOps, và những phương pháp định nghĩa yêu cầu người dùng mới nhất đã cải thiện quy trình. Sẽ như thế nào nếu một đội phát triển có thể chỉ cần viết ý tưởng ở dạng ngôn ngữ tự nhiên và hệ thống sẽ hiểu yêu cầu và biến nó trở thành mã mà máy có thể thực thi được? Mặc dù điều đó vẫn đang là một thực tế xa vời, nhưng việc NLP và những chuyên gia hệ thống đề xuất những thay đổi hợp lý và nơi có thể áp dụng chúng vào trong dự án là những điều hoàn toàn làm được. AI sẽ giúp làm phong phú các mô hình được yêu cầu cùng với những ca kiểm thử (test case) với nhận dạng văn bản tinh vi hơn, cho phép tạo mã tốt hơn.
  • Ước tính yêu cầu và khung thời gian chính xác hơn. Để ước tính thời gian một cách chính xác để lập trình từ những yêu cầu là khá khó – nếu không muốn nói là không thể. Để có được một ước tính đáng tin cậy, những chuyên gia cần phải nắm rõ về sản phẩm, cùng với một đội ngũ cùng sử dụng công nghệ đã nắm rõ. Nhưng một giải pháp dựa trên khả năng dự đoán của machine learning và những quy tắc nghiệp vụ sẽ giúp cho những nhà quản trị dự án có thể dùng lượng nội dung khổng lồ được thu thập qua thời gian từ nhiều dự án – như các mô tả câu chuyện người dùng, các hoạt động đã được phân tích liên quan đến với yêu cầu, thời gian ước tính và thực tế của nhóm trong quá khứ – sử dụng sự tương quan và thống kê để cho ra một ước tính chính xác về khung thời gian cũng như nỗ lực cần có.
  • Nhanh chóng và tự tin chỉ ra những lỗi của sản phẩm và đưa ra biện pháp khắc phục. DevOps dành một lượng thời gian khổng lồ để cố gắng tìm ra nơi xảy ra lỗi và tại sao lại xảy ra lỗi, đồng thời tìm người có thể sửa chúng một cách nhanh chóng. AI sẽ cho phép họ sử dụng dữ liệu của người đã viết những dòng lệnh và những kỹ năng họ có, giúp họ tìm kiếm một cách thông minh những lập trình viên với khả năng tương tự, đã từng làm những dự án tương tự và có thể tiếp nhận dự án. Ngược lại, một nhóm có thể sử dụng dữ liệu được tạo ra trong các vòng đời dự án trong quá khứ để dự đoán những lỗi có thể xảy ra trong dự án hiện tại trong lúc đang phát triển và có những hướng đi để né những vấn đề đó.
  • Tự động hóa việc ra quyết định về những gì sẽ xây dựng và kiểm thử tiếp theo. Những dòng lệnh thực thi những yêu cầu không đúng hoặc không cần thiết gây ra rất nhiều những bước kiểm thử  hồi quy không cần thiết. Điều đó đồng nghĩa với việc tiêu tốn thời gian vào việc kiểm thử bằng tay và xây dựng tự động hóa cho những tính năng mà không ai dùng – cũng như tốn kém thời gian và tiền bạc cho đội ngũ vận hành. Một giải pháp dựa vào machine learning cùng với những quy tắc nghiệp vụ có thể tận dụng dữ liệu từ sản phẩm để cho ta thấy ứng dụng được dùng thế nào và phân tích tình cảm của xã hội quanh nó. Data intelligence (Trí thông minh dữ liệu) sẽ giúp lập trình viên và kiểm thử viên ưu tiên nỗ lực của họ dựa trên rủi ro của doanh nghiệp. AI sẽ không chỉ giúp nhận diện những nơi có rủi ro cao mà còn tự động hóa những kiểm thử cần thiết để thực thi trong quá trình phân phối sản phẩm liên tục tự động.

AI sẽ cải tiến, tăng tốc, và làm gián đoạn chu trình phát triển phần mềm

Sự kết hợp của những công nghệ AI như advanced machine learning (máy học học máy nâng cao), deep learning (học sâu), natural language processing (xử lý ngôn ngữ tự nhiên), và những quy tắc nghiệp vụ sẽ có ảnh hưởng đến tất cả các bước trong chu trình phát triển phần mềm. Chúng giúp cho lập trình viên xây dựng phần mềm tốt hơn và nhanh hơn. AI sẽ làm thay đổi cách lập trình viên xây dựng ứng dụng và bản chất những ứng dụng mà họ xây dựng.

AI sẽ giúp lập trình viên xây dựng ứng dụng có thể học như con người

Machine learning và deep learning sẽ là cốt lõi của công nghệ AI mà lập trình viên nên làm quen để xây dựng ứng dụng có thể tự học. Lập trình viên sẽ tập trung ít hơn vào việc dùng những quy tắc ép cứng để lập trình ứng dụng trở nên thông minh, thay vào đó họ sẽ lập trình những thuật toán hay cấu hình để chúng tự học. Lập trình viên sẽ tích hợp thuật toán, biên soạn và tìm những tệp dữ liệu lớn để luyện tập cũng như kiểm thử những ứng dụng như vậy.

Hãy chuẩn bị cho những thách thức và rủi ro

Những hệ thống có nền tảng là AI sẽ luôn đi song hành với những phần mềm được lập trình bằng cách truyền thống trong một thời gian dài nữa. Tích hợp những cái mới với cũ – hay thậm chí cái mới với cái mới – sẽ phức tạp hơn. Những kỳ vọng không thực tế của các kỹ thuật AI sẽ củng cố hơn niềm tin của những kẻ hoài nghi. Kế hoạch cho những kỹ năng tích hợp, tìm đúng những loại vấn đề để giải quyết, và đặt những kỳ vọng thực tế để tránh viễn tưởng không thể đạt được.

Lập trình viên: Đề phòng trước sự phá vỡ của những phần mềm với nền tảng AI

Trong nhiều thập kỷ, những nhà khoa học máy tính đã cố gắng thử sử dụng kỹ thuật lập trình AI và thuật toán để truyền tải tri thức ở mức con người, những quy tắc và chính sách nghiệp vụ, và cách ra quyết định cho máy tính. Tuy nghe hào nhoáng hơn lập trình theo cách truyền thống, nhưng những kỹ thuật AI phần lớn được dùng để nâng cấp thủ công nền tảng tri thức của hệ thống – là một thứ luôn luôn bị giới hạn. Sự giới hạn tri thức trong các lĩnh vực đã minh chứng một sự thay thế nghèo nàn cho những chuyên gia là con người; Hệ thống AI chỉ tốt bằng được sự “thông minh” được lập trình bởi chính con người.

Cách tiếp cận với AI mới là sẽ xây dựng hệ thống có thể tự học, trở nên chuyên gia có thể mô phỏng và lấy được những quy tắc từ dữ liệu chúng được tiếp nhận. Những hệ thống như vậy sẽ xử lý được sự phức tạp cùng với sự chính xác phải tăng dần, thích nghi với những điều chưa biết, và mở rộng khả năng của chúng vượt ngoài ra khỏi những chương trình ban đầu. Những kỹ thuật của bộ xử lý ngôn ngữ tự nhiên(NLP) truyền thống, lý lẽ dựa trên quy tắc, và biểu diễn tri thức giờ đang được tăng cường với machine learning – đặc biệt là deep machine learning – để củng cố vững chắc dần dần AI. Với những kết quả ban đầu đầy hứa hẹn: Những ứng dụng nghiệp vụ mới đang xuất hiện ở nhiều lĩnh vực. Sự mở rộng lớn mạnh từ những gì AI mang lại sẽ thay đổi công việc của lập trình viên – vậy nên những chuyên gia AD&D cần tìm cách để tận dụng lợi thế này.

AI giúp cho lập trình viên thông minh hơn

Vùng đất công nghệ AI đang đầy rẫy những công nghệ cũ (yếu) và mới (mạnh hơn) (xem Hình 1). Deep machine learning và hệ thống neural networks (mạng lưới nơ-ron) đang là nền tảng cơ bản giúp cho AI mạnh hơn; áp dụng và kết hợp chúng với những kỹ thuật AI yếu hiện nay như knowledge representation (biểu diễn tri thức), NLP (xử lý ngôn ngữ tự nhiên), reasoning engines (công cụ lý luận), công nghệ giọng nói và tầm nhìn sẽ củng cố AI hơn. Những lập trình viên đầu tiên phải hiểu những công nghệ này là gì và họ có thể làm gì khác hơn và trở nên tốt hơn với chúng, cả ở trong SDLC (chu kỳ phát triển phần mềm) và ở trong những kiểu ứng dụng mới. Chúng tôi đã khảo sát và nói chuyện với 30 chuyên gia để khám phá những ý tưởng trong phòng thí nghiệm của họ, những sản phẩm và dịch vụ mới, và những trải nghiệm của họ với khách hàng. Hãy tưởng tượng rằng AI sẽ giúp những lập trình viên có thể:

  • Nhanh chóng biến những ý tưởng thành mã. Biến ý tưởng kinh doanh thành mã nguồn vẫn đang là vấn đề chính, thậm chí cả khi Agile, DevOps, và những phương pháp định nghĩa yêu cầu người dùng mới nhất đã cải thiện quy trình. Sẽ như thế nào nếu một đội phát triển có thể chỉ cần viết ý tưởng ở dạng ngôn ngữ tự nhiên và hệ thống sẽ hiểu yêu cầu và biến nó trở thành mã mà máy có thể thực thi được? Mặc dù điều đó vẫn đang là một thực tế xa vời, nhưng việc NLP và những chuyên gia hệ thống đề xuất những thay đổi hợp lý và nơi có thể áp dụng chúng vào trong dự án là những điều hoàn toàn làm được. AI sẽ giúp làm phong phú các mô hình được yêu cầu cùng với những ca kiểm thử (test case) với nhận dạng văn bản tinh vi hơn, cho phép tạo mã tốt hơn.
  • Ước tính yêu cầu và khung thời gian chính xác hơn. Để ước tính thời gian một cách chính xác để lập trình từ những yêu cầu là khá khó – nếu không muốn nói là không thể. Để có được một ước tính đáng tin cậy, những chuyên gia cần phải nắm rõ về sản phẩm, cùng với một đội ngũ cùng sử dụng công nghệ đã nắm rõ. Nhưng một giải pháp dựa trên khả năng dự đoán của machine learning và những quy tắc nghiệp vụ sẽ giúp cho những nhà quản trị dự án có thể dùng lượng nội dung khổng lồ được thu thập qua thời gian từ nhiều dự án – như các mô tả câu chuyện người dùng, các hoạt động đã được phân tích liên quan đến với yêu cầu, thời gian ước tính và thực tế của nhóm trong quá khứ – sử dụng sự tương quan và thống kê để cho ra một ước tính chính xác về khung thời gian cũng như nỗ lực cần có.
  • Nhanh chóng và tự tin chỉ ra những lỗi của sản phẩm và đưa ra biện pháp khắc phục. DevOps dành một lượng thời gian khổng lồ để cố gắng tìm ra nơi xảy ra lỗi và tại sao lại xảy ra lỗi, đồng thời tìm người có thể sửa chúng một cách nhanh chóng. AI sẽ cho phép họ sử dụng dữ liệu của người đã viết những dòng lệnh và những kỹ năng họ có, giúp họ tìm kiếm một cách thông minh những lập trình viên với khả năng tương tự, đã từng làm những dự án tương tự và có thể tiếp nhận dự án. Ngược lại, một nhóm có thể sử dụng dữ liệu được tạo ra trong các vòng đời dự án trong quá khứ để dự đoán những lỗi có thể xảy ra trong dự án hiện tại trong lúc đang phát triển và có những hướng đi để né những vấn đề đó.
  • Tự động hóa việc ra quyết định về những gì sẽ xây dựng và kiểm thử tiếp theo. Những dòng lệnh thực thi những yêu cầu không đúng hoặc không cần thiết gây ra rất nhiều những bước kiểm thử  hồi quy không cần thiết. Điều đó đồng nghĩa với việc tiêu tốn thời gian vào việc kiểm thử bằng tay và xây dựng tự động hóa cho những tính năng mà không ai dùng – cũng như tốn kém thời gian và tiền bạc cho đội ngũ vận hành. Một giải pháp dựa vào machine learning cùng với những quy tắc nghiệp vụ có thể tận dụng dữ liệu từ sản phẩm để cho ta thấy ứng dụng được dùng thế nào và phân tích tình cảm của xã hội quanh nó. Data intelligence (Trí thông minh dữ liệu) sẽ giúp lập trình viên và kiểm thử viên ưu tiên nỗ lực của họ dựa trên rủi ro của doanh nghiệp. AI sẽ không chỉ giúp nhận diện những nơi có rủi ro cao mà còn tự động hóa những kiểm thử cần thiết để thực thi trong quá trình phân phối sản phẩm liên tục tự động.
AI

Deep learning giúp những AI khác mạnh hơn.

AI giúp cho ứng dụng thông minh hơn

Thế hệ những phần mềm mới có thể nói, nghe, cảm nhận, tư duy, nghĩ, hành động và thực thi đang thâm nhập vào hệ thống điện thoại cầm tay và máy tính để bàn của chúng ta. Danh sách những công ty đang thúc đẩy những sản phẩm, giải pháp và công nghệ đến từ AI cho phép những ứng dụng này đang nhiều lên một cách chóng mặt. Giải pháp của việc này là khả năng nhúng, giải pháp chỉ điểm, các nền tảng và dịch vụ deep learning (mạng lưới thần kinh). AI cũng sẽ cho phép lập trình viên xây dựng ứng cũng có thể:

  • Tương tác trực tiếp với con người. Chúng ta đã tạo ra những cách thức không tự nhiên cho người tương tác với máy tính. Lập trình viên dành thời gian xây dựng ứng dụng với những cửa sổ, biểu mẫu nhập dữ liệu, trình đơn kéo xuống, đồ họa, bảng điều khiển và những tạo phẩm đồ họa khác để giúp con người tương tác với máy “dễ dàng và hiệu quả”. AI sẽ mang đến những lựa chọn mới và tốt hơn, cho phép ứng dụng cho thể nhìn thấy người dùng chúng, viết cho người dùng bằng ngôn ngữ tự nhiên, nghe và hiểu những gì họ nói, và trả lời họ thông qua giọng nói. Những con bot như Siri và Alexa đang là giai đoạn đầu của việc này. (xem chú thích 1)
  • Tương tác với con người ở mức chuyên gia. Thật khó khăn và tốt kém để lập trình những chính sách và quy tắc nghiệp vụ với những ngôn ngữ lập trình truyền thống như JavaScript, Ruby, Python và C#. Những con AI kém có thể đưa ra những lựa chọn mẫu về chính sách và quy tắc nghiệp vụ để xây dựng những hệ thống chuyên gia nhằm tập trung và một lĩnh vực doanh nghiệp hay nơi có vấn đề cụ thể, hỗ trợ những người mới trong công việc thường ngày của họ hay giúp những nhà quản lý đưa ra những quyết định tốt hơn cho doanh nghiệp. Tuy rằng chúng vẫn đang có hạn chế, chúng vẫn phải làm việc với những vấn đề đơn giản, hạn chế. Nhưng với cách lý luận dựa trên quy tắc, tăng cường thêm với dữ liệu và machine learning, sẽ thúc đẩy những dịch vụ như vậy đi xa hơn, mở ra thêm nhiều cơ hội cho những chuyên gia tư vấn.
  • Tận dụng khả năng “hiển nhiên” của con người. CI&T, một công ty về công nghệ và là đối tác dịch vụ với Google, đang thử nghiệm với khách hàng cách lập trình thông minh, tập trung vào ứng dụng doanh nghiệp tận dụng công nghệ AI. Ví dụ, họ cho thấy công nghệ nhận dạng tầm nhìn đã giúp một công ty khai thác Brazil tìm cách tự động hóa hàng tồn kho của mình đơn giản hóa quy trình bằng cách đọc số nhận dạng xe đường tàu thay vì trang bị số lượng lớn xe bằng thẻ RFID. Nhận dạng ký tự quang học đang sử dụng machine learning và mạng lưới thần kinh ngày càng nhiều hơn và cung cấp nhiều cơ hội để sử dụng thị giác máy chính xác hơn nhiều. CI&T cung cấp công nghệ Google Cloud Vision API để giúp các nhà phát triển xây dựng các loại ứng dụng mới này.
  • Phần mềm tự học. Trong khi AI truyền thống (yếu) vẫn “hiệu quả” được, nó vẫn bị hạn chế, vì các nhà phát triển vẫn phải lập trình phần lớn. Phần mềm học một cách tự chủ để trừu tượng hóa các quy tắc và chính sách mới từ các bộ dữ liệu rất lớn sẽ cho phép các nhà phát triển không phải mã hóa các quy tắc và chính sách. AI yếu, sử dụng lập trình thay vì học, chưa bao giờ đủ để bao quát hết những thí nghiệm và suy nghiệm cần thiết của chuyên gia để điều hành trong một doanh nghiệp thực tế . Machine learning với big data (dữ liệu lớn) thông qua các mạng thần kinh là công nghệ AI hứa hẹn nhất sẽ thay đổi cách các lập trình viên xây dựng ứng dụng. Câu hỏi sẽ sớm trở thành: Ứng dụng sẽ phát triển như thế nào nếu như deep learning không giám sát có thể được phát triển thành công?

Danh sách những sản phẩm và dịch vụ dựa trên AI đang được triển khai:

Danh mụcVí dụ về sản phẩm và công tyNhững trường hợp sử dụng điển hình
AI được nhúng

Chuyên gia trợ lý tận dụng công nghệ AI được nhúng và trong nền tảng và giải pháp

– Amazon: Alexa

– Apple: Siri

– Facebook: Messenger

– Google: Google Asistant (và hơn nữa )

– Microsoft: Cortana

– Saleforce: MetaMind (mua lại)

– Trợ lý cá nhân để tìm kiếm, tra cứu đơn giản, và phát triển để trở thành trợ lý chuyên gia (giải quyết vấn đề, không chỉ tìm kiếm)

– Có sẵn trên các nền tảng, thiết bị di động, mạng lưới thiết bị kết nối internet (internet of things).

Giọng nói, nhận diện hình ảnh, nhiều tầng lớp NLP phức tạp

Robots, đại diện

Giải pháp chỉ AI (AI point solutions)

Giải pháp chỉ cung cấp khả năng chuyên biệt cho NLP, tầm nhìn, bài diễn thuyết và khả năng lý lẽ.

– 24[7]: 24[7]

– Admantx: Admantx

– Affectiva: Affdex

– Assist: AssistDigital

– Automated Insights: Wordsmith

– Beyond Verbal: Beyond Verbal

– Expert System: Cogito

– HPE: Haven OnDemand

– IBM: Watson Analytics, Explorer, Advisor

– Narrative Science: Quill

– Nuance: Dragon

– Salesforce: MetaMind (mua lại)

– Wise.io: Wise Support

– Văn bản ngữ nghĩa, nhận dạng khuôn mặt/hình ảnh, ngữ điệu giọng nói, tường thuật thông minh.

– Nhiều cấp độ khác nhau của NLP từ tin nhắn văn bản ngắn gọn, tin nhắn trò chuyện phiếm/hội thoại, hiểu văn bản phức tạp một cách  đầy đủ.

– Machine learning, phân tích dự đoán, phân tích/ khai thác văn bản.

– Quản lý kiến thức và tìm kiếm

– Cố vấn chuyên gia, công cụ lý luận

– Dịch vụ khách hàng, hỗ trợ

apis

Nền tảng AI

Các nền tảng cung cấp công nghệ AI khác nhau, bao gồm cả (deep) machine learning , sử dụng như các công cụ, APIs hoặc dịch vụ để xây dựng các giải pháp.

– CognitiveScale: Engage, Amplify

– Digital Reasoning: Synthesys

– Google: Google Cloud Machine Learning

– IBM: Watson Developers, Watson Knowledge Studio

– Intel: Saffron Natural Intelligence

– IPsoft: Amelia, Apollo, IP Center

– Microsoft: Cortana Intelligence Suite

– Nuance: 360 platform

Salesforce: Einstein

– Wipro: Holmes

– APIs, dịch vụ điện toán đám mây, ứng dụng tại chỗ để các nhà phát triển xây dựng giải pháp AI

– Xây dựng insights/lời khuyên

– Lý luận dựa trên quy tắc

– Cố vấn nhiều lĩnh vực nhỏ (ví dụ: phát hiện gian lận trong ngân hàng, cố vấn tài chính, chăm sóc sức khỏe)

– Dịch vụ nhận thức và robot

Deep learning

Nền tảng, dự án nâng cao, và những thuật toán cho deep learning

– Amazon: FireFly

– Google: TensorFlow/DeepMind

– LoopAI Labs: LoopAI

– Vicarious: Vicarious

– Hệ thống thần kinh deep learning để phân loại, phân cụm, tìm kiếm, nhận diện hình ảnh, NLP và hơn nữa.

– Nhận diện địa điểm khuôn mẫu

– Giả lập não bộ mới

AI sẽ có ảnh hưởng rộng lớn đến lập trình phần mềm

Forrester kỳ vọng rằng AI sẽ ảnh hưởng theo nhiều cách khác nhau đến lập trình phần mềm – nhưng cùng lúc đó cũng ảnh hưởng đến cách lập trình viên và đối tác doanh nghiệp của họ nghĩ về ứng dụng và những giải pháp mới họ có khả năng xây dựng với AI. AI sẽ tăng mức độ thuần thục của các nhóm AD&D bằng cách biến đổi SDLC (chu kỳ phát triển phần mềm) bằng cách cải thiện những cách làm và công cụ phát triển hiện có cũng như bổ sung những thứ mới. Và AI sẽ không chỉ cải thiện các ứng dụng như chúng ta biết ngày nay – nó cũng sẽ cho phép lập trình viên bắt đầu vượt qua ranh giới những ứng dụng để mang đến những trải nghiệm ứng dụng của tương lai.

AI sẽ tăng sự làm chủ của đội ngũ AD&D

Cũng giống như bất kỳ lĩnh vực hoặc quy trình kinh doanh nào, việc phát triển, kiểm thử và phân phối phần mềm đều sẽ được hưởng lợi từ AI, giúp các lập trình viên và nhóm phát triển lập kế hoạch, xây dựng, kiểm thử và triển khai phần mềm thông minh hơn nhiều. Gần đây chúng tôi đã nói chuyện với 25 nhóm AD&D và thấy họ nghĩ rằng AI có thể thúc đẩy phát triển và phân phối phần mềm theo nhiều cách, và các giai đoạn chín muồi nhất để cải thiện AI trong tương lai là lập kế hoạch, phát triển và đặc biệt là kiểm thử (xem Hình 3 và xem Hình 4 ). Các lập trình viên sẽ thay đổi quy trình và bản chất của các ứng dụng của họ bằng cách (xem Hình 5):

  • Cải thiện SDLC tổng thể. Có quá nhiều sự thiếu hiệu quả và lãng phí trong phát triển phần mềm ngày nay. Agile và DevOps kết hợp với quản lý dòng giá trị giúp loại bỏ sự lãng phí và tập trung vào giá trị nghiệp vụ. Đồng thời, kiến ​​trúc ứng dụng với khớp nối lỏng lẻo và các micro-services (dịch vụ siêu nhỏ) sẽ chỉ tăng số lượng bộ phận thay đổi cần quản lý. (xem chú thích 2) Sự phức tạp sẽ vượt xa những gì con người có thể quản lý và diễn giải. Các AI, bots và các khả năng nhúng trong các công cụ sẽ là đối tác chính cho các nhóm phát triển để giải quyết vấn đề này.
  • Những người trả lời khảo sát của chúng tôi mong đợi AI – đặc biệt là machine learning và predive và deep learning – sẽ thâm nhập vào vòng đời tổng thể. Họ thấy AI tối ưu hóa quy trình theo bốn cách. Đầu tiên, AI sẽ tổng hợp một lượng lớn dữ liệu để dự đoán hoặc ngăn chặn các thất bại trong việc phân phối dự án. Nó cũng sẽ tạo ra các mốc thời gian phân phối dự án và chương trình chính xác hơn, đặc biệt là cho các dự án phát triển theo cách truyền thống. AI sẽ sử dụng các phần mềm thông minh để cung cấp các cập nhật trạng thái dự án bằng ngôn ngữ tự nhiên. Cuối cùng, nó sẽ giúp cho ta có thêm các cải tiến phức tạp hơn, như tự động chẩn đoán các vấn đề với các thí nghiệm phát triển phần mềm.
  • Tăng tốc thời gian phân phối bằng cách áp dụng AI bằng các bước SDLC cụ thể. Việc sử dụng AI chuyên sâu hơn sẽ nhúng được thêm nhiều khả năng thông minh vào các bước cụ thể của vòng đời để mang lại sự tự động hóa chưa từng có và chất lượng trong thời gian ngắn. Trong lúc đó tất cả các bước SDLC đều được hưởng lợi từ việc tăng tốc công việc bằng cách sử dụng tự động hóa và insights dựa trên việc phân tích dữ liệu, ý tưởng và lập kế hoạch, kiểm thử và các giai đoạn triển khai (bao gồm DevOps) sẽ thấy nhiều lợi ích trước mắt hơn. Những người trả lời khảo sát của chúng tôi đang ưu tiên các giai đoạn này và thấy cụ thể giai đoạn kiểm thử là giai đoạn sẽ gặt hái những lợi ích lớn sớm hơn.
  • AI có thể tăng khả năng kiểm thử theo nhiều cách. Nó có thể giúp đề xuất một chiến lược tốt hơn, tự động hóa các thiết kế kiểm thử, dự đoán chất lượng kết quả dựa trên loại và độ bao phủ kiểm thử, tăng độ bao phủ trong khi giảm thời gian thiết kế và thực thi kiểm thử, và tự động hóa kiểm thử UI trực quan để cải thiện việc phát hiện vấn đề thông qua nhận dạng đối tượng tốt hơn. Điểm cuối cùng nhưng không kém phần quan trọng, AI cũng có thể giảm thời gian sửa lỗi trong khâu sản xuất bằng cách hỗ trợ phân tích nguyên nhân gốc rễ (xem Hình 6).
  • Phân chia các SDLC để xây dựng các ứng dụng không còn là những ứng dụng trước nữa. Kể từ khi phần mềm được phát minh, các lập trình viên đã lập trình những ứng dụng cần làm thành những chi tiết rất nhỏ. Ngay cả những AI yếu cũng đã làm theo cách tiếp cận này, mặc dù làm được điều đó dễ dàng hơn bằng nhiều phương pháp lập trình khác nhau (xem chú thích 3). Điều đó sẽ sớm chấm dứt. Mã và thuật toán sẽ không thao túng và biến đổi dữ liệu như trong quá khứ; (big) data sẽ chuyển đổi hành vi của ứng dụng sang suy nghĩ và học tập tự chủ. Việc machine learning được sử dụng phổ biến hơn nói chung và deep learning nói riêng sẽ phá vỡ vĩnh viễn SDLC.
  • Trong khi một số lập trình viên sẽ làm việc để chọn loại mạng thần kinh hay các thuật toán khác sẽ sử dụng, thì hầu hết mọi người sẽ đào tạo các mạng lưới nơ-ron (điều chỉnh mô hình) và kiểm thử chúng. Trước tiên, các lập trình viên sẽ tạo hoặc thu thập big data cần thiết và dán nhãn cho chúng và huấn luyện nó theo cách “được giám sát”, vì sẽ rất lâu trước khi đào tạo không giám sát có thể xảy ra. Sau đó, họ sẽ tách nhỏ thành cách tập dữ liệu con vào phần dữ liệu huấn luyện và dữ liệu kiểm thử. Đây sẽ là những nhiệm vụ mới cho các nhóm phân phối. Các nhà phân tích dữ liệu sẽ hợp tác chặt chẽ hơn với các lập trình viên, trong khi cần ít lập trình viên hơn để phát triển và cải thiện các thuật toán deep learning. Việc sử dụng những deep learning có độ tập trung và đúng nhu cầu cao đã đang là một thực tế, nhưng còn một chặng đường dài để đi trước khi sự phân chia trở nên đáng kể và phổ biến. (xem chú thích 4).
AI

AI sẽ cải thiện chu kỳ phát triển phần mềm, bắt đầu với kiểm thử

Ý tưởng/phân tích/lên kế hoạch:

  • Nhận diện khuôn mẫu xuyên suốt dự án
  • Tìm ra những dependency (phụ thuộc)
  • Nhiều cơ hội đưa ra gợi ý tái sử dụng
  • Yêu cầu chính xác hơn

Thiết kế/lập trình/xây dựng:

  • Tự động hóa việc tạo ra mã
  • Chủ động gợi ý cho lập trình viên những dòng lệnh
  • Cải thiện năng suất lập trình viên

Kiểm thử:

  • Phân tích mã kỹ thuật
  • Tự động hóa việc tạo ra trường hợp kiểm thử; gợi ý chiến lược kiểm thử
  • Nhận diện lỗi/tập trung kiểm thử vào khu vực có khả năng tạo ra khuyết điểm nhất
  • Nhận diện hình ảnh/giao diện người dùng
  • Dự đoán kết quả của kiểm thử tương lai qua machine learning
  • Tăng độ phủ của kiểm thử và giảm rủi ro doanh nghiệp

Phát hành:

  • Tự động hóa phần triển khai
  • Giảm khuyết điểm, lỗi
  • Làm việc với phân tích nhật ký để tối ưu hóa luồng thực thi.

Phát triển phần mềm được cải tiến mang đến lợi ích trực tiếp cho doanh nghiệp

Cách AI cải tiến ngành phát triển phần mềm Lợi ích cho doanh nghiệp
Tăng sự tự động hóaMang đến phần mềm cải tiến nhanh hơn
Dùng ngôn ngữ mang tính tương tác tự nhiên vào giao diệnTăng trải nghiệm người dùng
Dự đoán sự thay đổi của khách hàngGiữ được khách hàng, bảo vệ doanh thu
Quản lý lượng dữ liệu khổng lồ xuyên suốt vòng đờiThu thập những insights tốt để cải tiến việc phát triển và phân phối.
Tối ưu phân bổ nguồn lựcGiảm tải chi phí
Tự động hóa những quyết địnhQuy mô hóa việc ra quyết định cho con người
Cải thiện việc phân tích và chẩn đoánCải tiến chất lượng phần mềm
Gia tăng năng suất lập trình viênGiảm tải chi phí, gia tăng giá trị
AI

AI sẽ thay đổi cách lập trình viên xây dựng ứng dụng

Chi tiết về những cải tiến của AI trong việc kiểm thử phần mềm

Trường hợp sử dụngMô tảKết quả
Cải tiến chiến lược kiểm thửSử dụng dữ liệu từ xã hội và khâu sản xuất để theo dõi các tính năng tốt nhất và kém nhất được sử dụng (hoặc không được sử dụng) để ưu tiên những gì cần kiểm thử, những gì cần tự động hóa và thậm chí những gì cần xây dựng– Giảm thiểu chi phí kiểm thử đồng thời tăng chất lượng

– Hiện nay machine learning đã đủ độ chín để có thể cho phép sử dụng trường hợp này; một số công ty đã đang thử nghiệm với nó.

Tối ưu và tự động hóa trường hợp thiết kế kiểm thửViệc tổng hợp tất cả những trường hợp có thể kiểm thử tạo ra một lượng dữ liệu khổng lồ; AI có thể tiêu hóa chúng trong một khung thời gian chấp nhận được và đề xuất một bộ kiểm thử tối thiểu. Tạo các trường hợp kiểm thử trực tiếp từ các yêu cầu doanh nghiệp bằng cách hiểu sâu hơn về hệ thống đang được thử nghiệm– Giảm chi phí kiểm thử; tập trung vào kiểm thử những gì cần, thay vì kiểm thử nhiều hơn.

– Cải thiện khả năng truy xuất nguồn gốc từ yêu cầu đến những trường hợp kiểm thử đến tự động hóa.

– Giảm thiểu chu kỳ kiểm thử tổng thể

– Tận dụng NLP và khả năng quy tắc nghiệp vụ

Tự động hóa và dự đoán chất lượng ban đầuSử dụng phần mô tả của các thí nghiệm và khuôn mẫu chất lượng để xác định được ở đâu hiệu quả, ở đâu không và những cải thiện có thể áp dụng cho hoạt động của đội nhóm. Ở trong một số trường hợp, gợi ý cho họ; ở những trường hợp khác, làm một cách tự động.– Tránh chất lượng kém ngay từ ban đầu

– Chuyển việc kiểm thử sang phía bên trái

– Cái thiện tự động hóa liên tục

Quy định chất lượng tự động hóaHỗ trợ hay thậm trí thay thế con người trong việc kiểm thử tự động hóa UI qua việc tự học nhận dạng khuôn mẫu hình ảnh.

Nhận diện và gợi ý những cập nhật các điều khiến trên UI

– Cải thiện chất lượng và hoàn toàn tự động hóa việc kiểm thử UI bằng việc thay thế con người trong những công việc kiểm thử bằng tay tẻ nhạt, lặp đi lặp lại.

– Hệ thống kiểm thử hình ảnh AI cho nhận dạng quang học hình ảnh và ký tự.

Loại bỏ lãng phí và tối ưu công việc kiểm thửGiúp tester theo dõi các trường hợp kiểm thử không được thực thi trong khung thời gian được giao, các trường hợp kiểm thử không liên quan với các yêu cầu hay các yêu cầu chưa được kiểm thử, các kiểm thử không cần thiết và/hoặc kiểm thử tương tự (trùng lặp)– Tối ưu chi phí kiểm thử và cải thiện chất lượng

– Liên tục cải thiện công việc kiểm thử

– Cải thiện khả năng bảo trì và mức độ phù hợp của tài sản kiểm thử.

Ra những quyết định kiểm thử khó khănHệ thống thử nghiệm trong đó một “thất bại” không phải là chỉ có thành công hay không. Nhu cầu này đang tăng lên với IoT (Internet of Things), trong đó việc giao tiếp với thế giới vật lý khiến việc quyết định một kiểm thử có nên thất bại hay không (ví dụ: xe tự lái, máy điều nhiệt, máy sản xuất) trở nên phức tạp hơn.– Xử lý với sự phức tạp của việc kiểm thử trong IoT

– Hỗ trợ của con người khi có quá nhiều dữ liệu để phân tích trong một khung thời gian ngắn.

AI sẽ giúp những lập trình viên tạo nên những ứng dụng tốt hơn – và tiến ra ngoài phạm vi những ứng dụng

Các tổ chức bị ám ảnh bởi khách hàng cung cấp trải nghiệm giành chiến thắng, phục vụ và giữ chân khách hàng. AI sẽ dần dần có thể cung cấp các loại ứng dụng chưa từng có cho những khách hàng đó. Các doanh nghiệp sẽ cần trí tưởng tượng và kinh nghiệm để phát triển các ứng dụng với sự hỗ trợ của AI; họ cũng sẽ cần thích nghi với một thế giới mới, nơi các nhà phát triển không còn tạo ra một ứng dụng cho một kết quả cụ thể mà có thể xây dựng phần mềm có thể xử lý một loạt các kết quả và các bước tiếp theo. Thận trọng sẽ là điều cần phải chú ý đến vào lúc này; nhiều người trả lời khảo sát trực tuyến về AI cầu quý 2 năm 2016 của Forrester không thấy những ví dụ doanh nghiệp cụ thể cho đầu tư AI (42%) và không rõ về cách doanh nghiệp của họ có thể sử dụng AI (39%). (xem chú thích 5) AI rõ ràng đòi hỏi cần phải tiếp cận qua cách thử nghiệm và học hỏi, phù hợp với cách mà hầu hết các công ty đang giải quyết sự gián đoạn kỹ thuật số. 56% những người tiên phong mong muốn AI sẽ giúp tự động hóa các quy trình thủ công lặp đi lặp lại trong doanh nghiệp. (xem chú thích 6) Các doanh nghiệp cần áp dụng AI theo các bước nhỏ bằng cách đưa doanh nghiệp, nhà khoa học dữ liệu và lập trình viên có chuyên môn về AI để thử nghiệm sớm nhất theo cách thức Agile (xem Hình 7). Chúng tôi hy vọng các thí nghiệm như vậy sẽ mở ra trong ba giai đoạn chồng chéo sau:

  • Biến những ứng dụng hiện nay có khả năng giao tiếp tốt hơn và ngày càng trôi chảy trong tương lai. Các lập trình viên thêm một số tính năng thú vị vào các ứng dụng với phạm vi hạn chế và trong một số lĩnh vực nhất định như lặp ngôn ngữ hoặc các lệnh hữu hạn để cải thiện tương tác với khách hàng.
  • Cải thiện khả năng lý lẽ, ra quyết định, phát biểu và hiểu. Một sự kết hợp thông minh với khả năng lý lẽ, luận bản thể, và dữ liệu phong phú bởi thuật toán của machine learning sẽ giúp ứng dụng có khả năng để lý lẽ và suy diễn thông tin bằng cách so sánh.
  • Lập trình những ứng dụng không còn là ứng dụng nữa. Bots và những chương trình thông minh sẽ nhanh chóng chiếm lấy ánh hào quang trong ngành lập trình; lập trình viên sẽ không còn lập trình chúng mà thay vào đó là dạy chúng.
AI

AI sẽ cho phép lập trình viên xây những loại ứng dụng mới – những thứ không còn gọi là ứng dụng nữa.

Những chuyên gia AD&D phải đối mặt với những thử rủi ro, thử thách và chi phí

AI có một lịch sử đầy biến cố. Với sự cường điệu của giới truyền thông cũng như từ những viễn tưởng hoàn hảo khiến những doanh nghiệp lo lắng khi suy nghĩ về đầu tư cho AI. Nhưng không đồng nghĩa với việc AI sẽ tiến gần với việc thay thế trí thông minh của con người trong thế kỷ này. Thay vào đó, các nhà nghiên cứu và các lĩnh vực công nghiệp nên tập trung vào việc kiểm soát sự phát triển của AI, đồng thời hoạt động theo hướng phát triển một công nghệ giúp và hỗ trợ con người thay vì thay thế hay “tiếp quản” họ. Những thách thức và rủi ro chính mà các công ty phải đối mặt là:

  • Kỳ vọng quá lớn. AI có thể hỗ trợ trung tâm hỗ trợ khách hàng với robots, NLP và cố vấn AI bằng cách gợi ý những chiến thuật tương tác với khách hàng. Các công ty dịch vụ tài chính đang thí điểm các dự án sử dụng AI để mở rộng quy mô và cải thiện chất lượng của các trung tâm liên lạc của họ. Công nghệ AI đã xuất hiện, nhưng nó chưa hoàn hảo. Ví dụ, dịch giọng nói đã tiến gần đến với sự hoàn hảo – Baidu là nơi đi đầu trong việc hiểu giọng nói chính xác, với tỷ lệ sai số dưới 5% – nhưng chưa hiểu ý nghĩa, tiếng lóng, phương ngữ hoặc dấu trọng âm. Hãy nhận biết những hạn chế đó và tìm đúng loại vấn đề cần giải quyết trong một lĩnh vực hạn chế, đã được xác định rõ. Đặt kỳ vọng thực tế để tránh thất vọng.
  • Chi phí tích hợp bị đánh giá thấp. Bất kỳ doanh nghiệp nào áp dụng AI sẽ đảm nhận các thách thức về kiến ​​trúc và tích hợp để thúc đẩy các dịch vụ AI trong bối cảnh phần mềm hiện có. Hãy nhớ rằng: việc tích hợp sẽ không dễ dàng hơn, sẽ không giảm đi và nó sẽ không trở nên rẻ hơn. Mã liên kết cần được thiết kế, lập trình và bảo trì để liên kết các nền tảng bot hoặc các thuật toán machine và deep learning với hệ thống sẵn có (xem chú thích 8). Luồng dữ liệu từ thuật toán này sang thuật toán khác cần được lập trình và quản lý. Các giải pháp cho những vấn đề mới này sẽ đến, nhưng trong thời điểm sớm như hiện nay, các kỹ năng tích hợp được mài giũa cẩn thận là cần thiết để đối phó với các nỗ lực tích hợp AI.
  • Thiếu dữ liệu lớn hay sức tính của máy tính. Thuật toán deep learning đang dần xuất hiện trong những viễn cảnh đơn giản; chúng ta đào tạo chúng trên các bộ vi xử lý đồ họa (GPU) cho máy tính để bàn và chạy chúng trên các thiết bị di động của chúng ta. Nhưng đào tạo các thuật toán deep learning lớn và nhiều tầng lớp, đặc biệt cho các vấn đề phức tạp, đòi hỏi các tập dữ liệu khổng lồ và sức tính đáng kể. Đầu tư vào ngày càng nhiều dữ liệu sẽ là một mục mới trong danh sách kiểm tra của các CTO. Giáo sư Stanford, Andrew Ng, cũng là nhà khoa học trưởng của Baidu, nói rằng ông cho phép các nhà nghiên cứu truy cập vào siêu máy tính để đào tạo mạng lưới thần kinh. Google cũng làm như vậy. Công ty của bạn có sẵn sàng đầu tư từng đó tiền đó vào phần cứng hoặc để chạy các loại dự án này thông qua các dịch vụ điện toán đám mây của bên thứ ba?
  • Thời đại kiểm thử AI không chắc chắn. Mặc dù AI sẽ giúp cải thiện việc kiểm thử các ứng dụng hiện có, các thách thức vẫn là về việc thử thử chính AI. Làm thế nào để chúng ta biết rằng ứng dụng AI đang đưa ra khuyến nghị đúng đắn? Làm thế nào chúng ta sẽ biết rằng mạng lưới thần kinh đang học đúng thứ hoặc khi nào nó đã học nó? (xem chú thích 9) Một số nhà cung cấp đang cố gắng biện minh các mô đun có thể chỉ ra một hệ thống lý luận sẽ cho ra một số những kết luận nhất định, nhưng một mạng lưới thần kinh thường hoạt động như một hộp đen; ngay cả lập trình viên của nó cũng không chắc chắn chính xác làm thế nào nó đi đến kết luận. Phát triển những thí nghiệm kiểm thử và công nghệ để giải quyết các vấn đề này sẽ được ưu tiên trong các công việc của các lập trình viên AI. Và cho đến khi những thách thức như vậy được giải quyết, các công ty sẽ phải một lần nữa tiết chế việc sử dụng AI của họ, đảm bảo rằng họ giảm thiểu rủi ro.

Giới thiệu

Phần mềm hỗ trợ AI sẽ vẫn cần các nhà phát triển

Ngay cả khi nhiều chuyên gia AD&D và các cửa hàng phát triển của họ áp dụng các kỹ thuật AI trong những năm tới, họ vẫn sẽ cần nhiều công việc mã hóa và tích hợp truyền thống. Đặc biệt là việc tích hợp sẽ vẫn là một kỹ năng cần thiết, ngay cả khi AI biến đổi chu kỳ phát triển phần mềm. Tạo các ứng dụng dựa trên AI và sử dụng AI để cải thiện các quy trình lập trình sẽ đòi hỏi nhiều kỹ năng mới và các lựa chọn công nghệ mạnh mẽ. Các đội ngũ lập trình nếu muốn dẫn đầu trong cuộc đua AI sẽ cần phải:

  • Kết hợp các kỹ năng của nhà khoa học dữ liệu với các kỹ năng công nghệ AI. Những hệ thống AI không chỉ cần những big data mà còn cần đến những big data rất lớn để trở nên hữu ích và chính xác hơn và đảm nhận các công việc quan trọng hơn. Các tổ chức cần thiết lập một chiến lược dữ liệu để thu thập nhiều dữ liệu doanh nghiệp hơn bao giờ hết để cung cấp cho các hệ thống AI của họ. Một vài nhà phát triển được chọn sẽ cần nền tảng toán học mạnh mẽ để nắm bắt sự khác biệt giữa các thuật toán để giảm thời gian đào tạo và để chúng kết hợp nhanh hơn để giải quyết vấn đề. Sự hợp tác của hai vai trò này trong các nhóm phát triển sẽ là chìa khóa quan trọng.
  • Áp dụng dữ liệu và thấu hiểu quy trình phát triển.  Bạn sẽ cần dữ liệu để củng cố việc ra quyết định dựa vào insight trong suốt quá trình phân phối sản phẩm, dựa trên dữ liệu lịch sử, hiện tại và tương lai để cung cấp phân tích theo cách thường gặp và dự đoán thông qua machine learning. Với khả năng như vậy, các lập trình viên sẽ có một bộ ba xây dựng để điều tra và chẩn đoán các phiên bản thất bại, xác định các điểm lỗi và cung cấp phân tích tân tiến về nguyên nhân gốc rễ. Kiểm thử sẽ tự động hóa hoàn toàn hầu hết các nhiệm vụ lặp đi lặp lại, với sự can thiệp cần thiết của con người trong các tình huống đặc biệt.
  • Kết hợp AI yếu và mạnh. Kết quả đầu ra của AI là tốt nhất khi nó sử dụng kết hợp cả công nghệ yếu và mạnh. Mạng lưới thần kinh có thể đẩy nhanh việc quản lý dữ liệu để cung cấp cho hệ thống lý luận hoặc cải thiện độ chính xác của việc nhận diện giọng nói hay văn bản ngôn ngữ tự nhiên. AI yếu giúp cải thiện, giải quyết và tự động hóa các nhiệm vụ dễ dàng, lặp đi lặp lại; AI mạnh mẽ tạo ra sự khác biệt trong việc giải quyết các vấn đề khó hơn ở quy mô lớn. AI đang trở nên mạnh mẽ hơn, nhưng vẫn còn một chặng đường dài phía trước; sức mạnh của nó phụ thuộc vào việc deep learning sẽ cải thiện nhanh thế nào và số lượng AI yếu được tăng cường. Hãy để ý đến các nhà cung cấp và nền tảng đang gia tăng các sản phẩm AI yếu với mạng lưới thần kinh mạnh hơn.

Tài liệu bổ sung

Phương thức khảo sát

Khảo sát trực tuyến về AI toàn cầu quý 2 năm 2016 của Forrester đã được thực hiện vào tháng 5 và tháng 6 năm 2016. Cuộc khảo sát trực tuyến này bao gồm 612 người khảo sát toàn cầu. Để đảm bảo chất lượng, chúng tôi sàng lọc người khảo sát để đảm bảo rằng họ đáp ứng các tiêu chuẩn nhất định về trách nhiệm công việc và quy mô tổ chức của họ. Cuộc khảo sát định nghĩa trí thông minh nhân tạo cho người trả lời như một “hệ thống tự học có khả năng tương tác với con người một cách tự nhiên, hiểu môi trường, giải quyết vấn đề và thực hiện các nhiệm vụ thường đòi hỏi trí tuệ, phẩm chất và khả năng của con người mà không cần mã hóa các hướng dẫn và quy tắc . “

Chú thích

  1. Nghiên cứu tại các công ty GoogleMany đang đặt cược vào bot, phần mềm dựa trên nền tảng trò chuyện được xây dựng để mô phỏng cuộc trò chuyện của con người và giúp người tiêu dùng hoàn thành nhiệm vụ. Nhưng trong khi các bot và các công nghệ cho phép chúng phát triển nhanh chóng, thì trải nghiệm của khách hàng mà chúng cung cấp ngày nay thường kém hoặc không đồng đều. Xem báo cáo của Forrester “Bots chưa sẵn sàng trở thành nhân viên ngân hàng“.
  2. Với tần suất ngày càng tăng, các microservice xuất hiện trong nỗ lực của các doanh nghiệp nhằm đạt được kiến ​​trúc phần mềm tốt hơn, đặc biệt là trong số các dịch vụ hoạt động ở quy mô lớn như eBay, Google, Netflix và Walmart. “Tốt hơn” trong những nỗ lực này thay vào đó có nghĩa là phân phối phần mềm nhanh hơn, khả năng phục hồi và khả năng mở rộng hoạt động tốt hơn, khả năng duy trì giải pháp tốt hơn hoặc tất cả các điều trên. Đối với các chuyên gia AD&D, câu hỏi đặt ra là làm thế nào và ở đâu microservice có thể giúp cải thiện kiến ​​trúc phần mềm. Xem báo cáo của Forrester “Microservice có vai trò quan trọng trong tương lai của giải pháp kiến ​​trúc“.
  3. Các công cụ quy tắc nghiệp vụ cho phép một người biểu diễn các quy tắc dưới dạng các câu lệnh khai báo như “nếu X, thì Y, nếu không thì Z” hoặc bằng ngôn ngữ logic mở đầu hoặc lập trình chức năng LISP.
  4. Đến năm 2021, AI trong các chương trình thông minh sẽ phát triển vượt trội so với machine learning và NLP tương đối đơn giản ngày nay. Các ứng dụng mới nổi sẽ có tính năng tự học được cải thiện và ở các tình huống phức tạp hơn. Khi các chương trình cơ bản được người dùng tiếp nhận, AI thế hệ tiếp theo sẽ không cung cấp năng lượng cho các chương trình thông minh cho đến năm 2020 hoặc xa hơn. Xem báo cáo “Công nghệ mới nổi hàng đầu để theo dõi từ năm 2017 đến 2021” Forrester.
  5. Nguồn: Khảo sát trực tuyến về trí tuệ nhân tạo toàn cầu quý 2/2016 của Forrester.
  6. Nguồn: Khảo sát trực tuyến về trí tuệ nhân tạo toàn cầu quý 2/2016 của Forrester.
  7. Các hệ thống nhận thức đang len lỏi và thương mại bắt đầu với các ứng dụng tương tác với khách hàng cao cấp trong các dịch vụ tài chính, chăm sóc sức khỏe và bán lẻ và sẽ trở nên phổ biến trong các viễn cảnh thường gặp và internet of things trong vòng năm năm. Xem báo cáo của Forrester “Tương tác nhận thức: Một lực lượng sáng tạo hủy diệt mới“.
  8. Nguồn: D. Sculley, Gary Holt, Daniel Golovin, Eugene Davydov, Todd Phillips, Dietmar Ebner, Vinay Chaudhary và Michael Young, “Machine Learning: Thẻ tín dụng lãi suất cao về nợ kỹ thuật,” Nghiên cứu tại Google, 2014 (http: //research.google.com/pub/pub43146.html).
  9. Có hai giai đoạn khác nhau trong việc xây dựng một ứng dụng dựa trên mạng lưới thần kinh. Giai đoạn đầu tiên là đào tạo, trong đó các lập trình viên xác định một tập hợp con của dữ liệu lớn và sử dụng nó cho mục đích đào tạo. Khi thuật toán bắt đầu mang lại kết quả mong đợi, các lập trình viên tiến hành giai đoạn thứ hai, đó là giai đoạn kiểm thử. Giai đoạn này sử dụng một bộ dữ liệu lớn riêng để kiểm thử. Tuy nhiên, đối với các hệ thống AI phức tạp hơn sử dụng nhiều thành phần hoặc nhiều mạng lưới thần kinh, việc cung cấp tư vấn thông qua lý luận sẽ khó kiểm thử hơn nhiều; trong một số trường hợp, không ai biết cách kiểm thử nó. Có thể kiểm thử tốt hơn thông qua các mạng nơ ron giải mã (deconvolutional neural networks), một phương pháp mới cho phép các lập trình viên hình dung ra những gì mạng lưới thần kinh đang học ở mỗi lớp nơ-ron và những tính năng mà nó đang trích xuất.

Hãy tham gia nhóm Học lập trình để thảo luận thêm về các vấn đề cùng quan tâm.