Phỏng vấn
Giáo sư Eran Yahav, Đồng sáng lập và Đồng CEO của Tabnine – Loạt phỏng vấn

Giáo sư Eran Yahav, Đồng sáng lập và Đồng CEO của Tabnine là một giáo sư khoa học máy tính tại Technion – Viện Công nghệ Israel, nghiên cứu của ông tập trung vào ngôn ngữ lập trình, học máy và kỹ thuật phần mềm, đặc biệt là tổng hợp chương trình và phân tích mã lớn. Bên cạnh công việc học thuật, ông đồng sáng lập Tabnine (ban đầu là Codota) để áp dụng nhiều năm nghiên cứu vào các công cụ phát triển thực tế, giúp tiên phong trong việc hoàn thành mã và tự động hóa bằng trí tuệ nhân tạo. Công việc của ông kết nối giữa học thuật và ngành công nghiệp, với mục tiêu làm cho mã được tạo ra bởi trí tuệ nhân tạo trở nên đáng tin cậy, an toàn và nhận thức được ngữ cảnh hơn cho môi trường doanh nghiệp thực tế.
Tabnine là một nền tảng mã hóa được hỗ trợ bởi trí tuệ nhân tạo, được thiết kế để hỗ trợ nhà phát triển trong suốt toàn bộ chu kỳ phát triển phần mềm, từ viết và gỡ lỗi mã đến tạo thử nghiệm và tài liệu. Ban đầu được ra mắt như một công cụ hoàn thành mã, nó đã phát triển thành một nền tảng doanh nghiệp rộng lớn hơn, tích hợp trí tuệ nhân tạo tạo ra và các quy trình dựa trên tác nhân, cho phép các đội tự động hóa các nhiệm vụ phát triển phức tạp trong khi vẫn duy trì kiểm soát mạnh mẽ về quyền riêng tư, bảo mật và tuân thủ. Với hỗ trợ cho hàng chục ngôn ngữ lập trình và tích hợp trên các IDE chính, Tabnine nhằm cải thiện năng suất của nhà phát triển trong khi đảm bảo rằng mã được tạo ra bởi trí tuệ nhân tạo vẫn đáng tin cậy và phù hợp với tiêu chuẩn của tổ chức.
Bạn đã dành nhiều năm nghiên cứu phân tích và tổng hợp chương trình tại Technion và trước đó đã làm việc tại IBM Research. Vấn đề nào trong phát triển phần mềm đã thuyết phục bạn đồng sáng lập Tabnine, và làm thế nào nghiên cứu học thuật của bạn đã định hình tầm nhìn ban đầu của công ty?
Công việc học thuật của tôi tập trung vào phân tích và tổng hợp chương trình, về cơ bản là dạy máy móc hiểu và tạo ra mã. Tôi đã làm luận án tiến sĩ về Phân tích Chương trình, và đây cũng là nơi tôi đã dành vài năm đầu tiên làm việc nghiên cứu ứng dụng. Xử lý các vấn đề chất lượng phần mềm bằng phân tích chương trình đã làm rõ rằng một số vấn đề rất khó giải quyết một khi chương trình đã được viết không chính xác. Một ounce phòng ngừa đáng giá một pound chữa bệnh, nếu bạn có thể. Điều này đã thuyết phục tôi rằng cách đúng đắn để giải quyết vấn đề chất lượng phần mềm là thông qua Tổng hợp Chương trình, nơi tôi đã dành phần lớn thời gian và năng lượng nghiên cứu của mình.
Tôi ban đầu làm việc về Tổng hợp Chương trình cho các chương trình đồng thời, cố gắng tự động hóa việc tạo ra các chương trình đồng thời từ các chương trình tuần tự. Sau đó, tôi chuyển sang tổng hợp chương trình sử dụng học máy một cách tổng quát hơn.
Tổng hợp chương trình sử dụng học máy cũng là ý tưởng cơ bản cho Tabnine. Ý tưởng, bây giờ dường như rõ ràng, là các mô hình có thể học các mẫu mã hóa trực tiếp từ các tập đoàn mã lớn và hỗ trợ nhà phát triển trong thời gian thực. Ý tưởng tổng quát này có thể áp dụng trong tất cả các giai đoạn của chu kỳ phát triển phần mềm – từ tạo mã đến xem xét mã, triển khai và hơn thế nữa.
Tầm nhìn luôn là tăng cường nhà phát triển con người bằng cách cung cấp cho họ các công cụ giúp tăng tốc quá trình phát triển và loại bỏ ma sát. Phát triển phần mềm là một kỷ luật sáng tạo và giải quyết vấn đề, và mục tiêu là để trí tuệ nhân tạo loại bỏ ma sát khỏi quá trình bằng cách xử lý các nhiệm vụ thường xuyên và giúp nhà phát triển duy trì trạng thái tập trung. Tầm nhìn đó vẫn hướng dẫn chúng tôi ngày nay, mặc dù công nghệ đã phát triển đáng kể kể từ những ngày đầu tiên.
Tabnine đã tiên phong trong các trợ lý mã hóa bằng trí tuệ nhân tạo nhiều năm trước khi trí tuệ nhân tạo tạo ra trở nên phổ biến với các công cụ như mô hình của OpenAI. Nhìn lại, vai trò của trí tuệ nhân tạo trong phát triển phần mềm đã thay đổi như thế nào kể từ những ngày đầu tiên, và ngành công nghiệp đã học được những bài học gì từ làn sóng đầu tiên của các phi công mã hóa?
Thế hệ trợ lý mã hóa trí tuệ nhân tạo đầu tiên tập trung chủ yếu vào dự đoán. Chúng về cơ bản là các hệ thống tự động hoàn thành tiên tiến giúp nhà phát triển viết mã nhanh hơn bằng cách dự đoán dòng hoặc hàm tiếp theo.
Điều gì đã thay đổi với các vòng lặp tác nhân là trí tuệ nhân tạo hiện có thể xử lý các nhiệm vụ với sự tự chủ lớn hơn, đến mức chúng ta có thể coi các tác nhân (với hướng dẫn phù hợp) là các nhà phát triển trẻ.
Tuy nhiên, điều này cũng đã dạy cho ngành công nghiệp một bài học quan trọng. Khả năng mô hình thô không đủ cho phát triển phần mềm doanh nghiệp. Các mô hình được đào tạo trên dữ liệu công khai có thể tạo ra đầu ra ấn tượng, nhưng chúng thường thiếu nhận thức về kiến trúc, phụ thuộc và quy ước của một tổ chức.
Đó là lý do tại sao giai đoạn tiến hóa tiếp theo không chỉ là về các mô hình lớn hơn hoặc cửa sổ ngữ cảnh lớn hơn, mà về việc kết nối các mô hình đó với ngữ cảnh thực mà phần mềm được xây dựng.
Nhiều doanh nghiệp đang phát hiện ra rằng việc mở rộng các tác nhân trí tuệ nhân tạo đòi hỏi hơn là các mô hình lớn hơn – nó đòi hỏi phải có ngữ cảnh tổ chức sâu sắc hơn. Tại sao bạn tin rằng ngữ cảnh đang trở thành biên giới thực sự cho phát triển đáng tin cậy được thúc đẩy bởi trí tuệ nhân tạo?
Hệ thống phần mềm là các mạng lưới quan hệ phức tạp. Một thay đổi duy nhất có thể ảnh hưởng đến nhiều dịch vụ, API hoặc thành phần hạ lưu.
Các mô hình trí tuệ nhân tạo ngày nay rất tốt trong việc tạo ra mã có thể xảy ra, nhưng chúng thường hoạt động mà không có sự hiểu biết cấu trúc về những quan hệ đó. Không có sự hiểu biết đó, trí tuệ nhân tạo không thể lý luận đáng tin cậy về hậu quả của một thay đổi.
Điều mà các doanh nghiệp đang phát hiện ra là độ tin cậy của các hệ thống trí tuệ nhân tạo phụ thuộc vào chất lượng của ngữ cảnh mà chúng hoạt động. Nếu một hệ thống trí tuệ nhân tạo hiểu được kiến trúc của hệ thống, các phụ thuộc giữa dịch vụ và các tiêu chuẩn mã hóa của tổ chức, nó có thể tạo ra mã phù hợp nhiều hơn với cách hệ thống thực sự hoạt động.
Trong ý nghĩa đó, ngữ cảnh đang trở thành biên giới tiếp theo cho phát triển trí tuệ nhân tạo doanh nghiệp.
Động cơ Context Engine Doanh nghiệp mới của bạn nhằm cung cấp cho các tác nhân trí tuệ nhân tạo một sự hiểu biết cấu trúc về kiến trúc, phụ thuộc và thực tiễn kỹ thuật của một tổ chức. Cách tiếp cận này khác với các phương pháp phổ biến như tạo ra tăng cường bằng cách thu hồi như nhiều công ty hiện đang dựa vào?
Tạo ra tăng cường bằng cách thu hồi là một kỹ thuật hữu ích. Nó cho phép các mô hình kéo các tài liệu hoặc đoạn mã liên quan khi tạo ra một câu trả lời.
Tuy nhiên, thu hồi alone không tạo ra sự hiểu biết. Nó cung cấp quyền truy cập vào thông tin, không phải cấu trúc.
Động cơ Context Engine Doanh nghiệp được thiết kế để đi xa hơn bằng cách xây dựng một biểu diễn cấu trúc của môi trường phần mềm. Nó phân tích các kho lưu trữ, dịch vụ, phụ thuộc, API và mối quan hệ kiến trúc và tổ chức chúng thành một mô hình về cách hệ thống thực sự hoạt động.
Điều này cho phép các hệ thống trí tuệ nhân tạo lý luận về các mối quan hệ giữa các thành phần thay vì chỉ thu hồi các đoạn văn bản. Đối với các môi trường doanh nghiệp phức tạp, sự khác biệt đó trở nên rất quan trọng.
Các công cụ mã hóa trí tuệ nhân tạo đang phát triển từ các gợi ý tự động hoàn thành đến các tác nhân tự chủ có khả năng thực hiện các quy trình công việc nhiều bước. Bạn nhìn thấy sự cân bằng giữa các nhà phát triển con người và các hệ thống tác nhân thay đổi như thế nào trong năm năm tới?
Các tác nhân trí tuệ nhân tạo sẽ ngày càng thực hiện các nhiệm vụ phát triển thường xuyên. Chúng đã có khả năng triển khai các tính năng từ đầu đến cuối, bao gồm cả thử nghiệm và tài liệu. Mỗi nhà phát triển sẽ trở thành trưởng nhóm của các nhà phát triển trí tuệ nhân tạo. Thách thức chính sẽ là truyền đạt các yêu cầu cho nhóm này và xác minh rằng các artifact được tạo ra phù hợp với các yêu cầu được phác thảo.
Tuy nhiên, phát triển phần mềm về cơ bản là về giải quyết vấn đề và thiết kế. Các nhà phát triển con người sẽ tiếp tục định nghĩa kiến trúc, đưa ra các quyết định trade-off và định hướng tổng thể của các hệ thống.
Điều gì sẽ thay đổi là mức độ trừu tượng mà các nhà phát triển làm việc. Thay vì tập trung vào mã, các nhà phát triển sẽ ngày càng dàn xếp các quy trình công việc cấp cao hơn và cộng tác với các hệ thống trí tuệ nhân tạo thực hiện các phần của các quy trình công việc đó.
Ngược lại, vai trò của nhà phát triển trở nên chiến lược hơn khi trí tuệ nhân tạo xử lý nhiều công việc cơ học hơn.
Tabnine đã chỉ ra rằng người dùng doanh nghiệp có thể thấy tỷ lệ chấp nhận mã được tạo ra bởi trí tuệ nhân tạo đạt tới khoảng 80% trong một số môi trường. Các chỉ số nào mà các tổ chức nên sử dụng để xác định xem các công cụ mã hóa trí tuệ nhân tạo có thực sự cải thiện năng suất của nhà phát triển hay không, thay vì chỉ tạo ra nhiều mã hơn?
Câu hỏi chính không phải là trí tuệ nhân tạo tạo ra bao nhiêu mã, mà là bao nhiêu công việc hữu ích nó thực sự tạo ra.
Có một số chỉ số mà các tổ chức nên theo dõi. Một là tỷ lệ chấp nhận lần đầu, đo lường bao nhiêu lần mã được tạo ra bởi trí tuệ nhân tạo có thể được sử dụng mà không cần sửa đổi. Một chỉ số khác là thời gian chu kỳ xem xét – bao nhiêu lần lặp lại được yêu cầu trước khi một yêu cầu kéo có thể được hợp nhất.
Các tổ chức cũng nên xem xét thời gian nhà phát triển dành cho việc làm lại, cũng như thời gian dẫn đầu cho các thay đổi từ phát triển đến sản xuất.
Nếu các công cụ trí tuệ nhân tạo thực sự cải thiện năng suất, bạn nên thấy sự cải thiện trên các chỉ số đó. Các nhà phát triển dành ít thời gian hơn để sửa mã được tạo ra và nhiều thời gian hơn để làm việc trên các nhiệm vụ có giá trị cao hơn.
Các doanh nghiệp vẫn còn thận trọng khi暴露 mã độc quyền cho các mô hình bên ngoài. Làm thế nào khái niệm “Mã hóa Trí tuệ nhân tạo Tin cậy” giải quyết các vấn đề quản lý, quyền riêng tư và tuân thủ mà đã làm chậm việc áp dụng các công cụ phát triển trí tuệ nhân tạo của doanh nghiệp?
Tin cậy là một trong những yếu tố quan trọng nhất trong việc áp dụng trí tuệ nhân tạo doanh nghiệp.
Tin cậy là thách thức cuối cùng để hiện thực hóa kỹ sư trí tuệ nhân tạo. Làm thế nào chúng ta tin tưởng kỹ sư trí tuệ nhân tạo để hoạt động tự chủ và hoàn thành các nhiệm vụ kỹ thuật phần mềm quan trọng? Làm thế nào chúng ta đảm bảo rằng hành động của nó phù hợp với kỳ vọng của chúng ta về chất lượng, bảo mật và tuân thủ các chính sách của chúng ta? Nếu kỹ sư trí tuệ nhân tạo là một thành viên được chấp nhận của các đội kỹ thuật của chúng ta, nó phải được tin cậy như các thành viên trong đội của chúng ta được kiểm chứng và được đưa vào đúng quy trình.
Giải quyết thách thức này dựa trên hai trụ cột quan trọng:
- Personalization: Trang bị cho kỹ sư trí tuệ nhân tạo một sự hiểu biết sâu sắc về tổ chức, cơ sở mã và các phương pháp hay nhất của bạn.
- Control: Thực hiện các hệ thống mạnh mẽ để đảm bảo tất cả mã – cả mã được tạo ra bởi trí tuệ nhân tạo và mã được viết bởi con người – đáp ứng các tiêu chuẩn chất lượng, bảo mật, hiệu suất và độ tin cậy của tổ chức của bạn.
Thêm vào đó, Mã hóa Trí tuệ nhân tạo Tin cậy có nghĩa là cung cấp cho các tổ chức quyền kiểm soát cách trí tuệ nhân tạo được triển khai và đảm bảo quản lý và kiểm soát tập trung.
Bạn đã gợi ý rằng ngữ cảnh tổ chức có thể trở thành một lớp cơ sở trong ngăn xếp trí tuệ nhân tạo doanh nghiệp – tương tự như cơ sở dữ liệu hoặc cơ sở hạ tầng đám mây trong các kỷ nguyên máy tính trước. Kiến trúc tương lai trông như thế nào?
Nếu bạn nhìn vào cách công nghệ doanh nghiệp phát triển, chúng ta thường thấy các lớp hạ tầng mới xuất hiện.
Cơ sở dữ liệu trở thành nền tảng để quản lý dữ liệu. Các nền tảng đám mây trở thành nền tảng để chạy ứng dụng quy mô lớn.
Trong kỷ nguyên trí tuệ nhân tạo, các tổ chức sẽ cần hạ tầng cho phép các hệ thống trí tuệ nhân tạo hiểu được cấu trúc nội bộ của doanh nghiệp – hệ thống, mối quan hệ và các ràng buộc hoạt động của nó.
Hạ tầng lớp đó sẽ cung cấp ngữ cảnh cấu trúc mà nhiều hệ thống trí tuệ nhân tạo có thể sử dụng, cho dù chúng là trợ lý mã hóa, đại lý hỗ trợ, hay công cụ tự động hóa hoạt động.
Trong ý nghĩa đó, ngữ cảnh trở thành một nền tảng chia sẻ cho trí tuệ nhân tạo doanh nghiệp.
Nhiều công ty đang xây dựng các trợ lý mã hóa được gắn chặt với một mô hình nền tảng duy nhất. Tabnine thay vào đó cho phép các doanh nghiệp kết nối các mô hình khác nhau tùy thuộc vào nhu cầu của họ. Tại sao tính linh hoạt của mô hình lại quan trọng cho sự tiến hóa lâu dài của các công cụ phát triển trí tuệ nhân tạo doanh nghiệp?
Động thái sinh thái trí tuệ nhân tạo đang phát triển rất nhanh. Các mô hình mới được phát hành thường xuyên, và các mô hình khác nhau thường có điểm mạnh trong các lĩnh vực khác nhau.
Các doanh nghiệp không nên phải thiết kế lại các quy trình phát triển của họ mỗi khi cảnh quan mô hình thay đổi. Bằng cách cho phép các tổ chức chọn và chuyển đổi giữa các mô hình, chúng tôi cung cấp tính linh hoạt giúp bảo vệ chiến lược trí tuệ nhân tạo của họ trong tương lai.
Tính linh hoạt của mô hình cũng cho phép các tổ chức cân bằng hiệu suất, chi phí, yêu cầu quyền riêng tư và các ràng buộc triển khai.
Trong dài hạn, các doanh nghiệp sẽ có khả năng hoạt động trong một môi trường đa mô hình, và các nền tảng phát triển nên được thiết kế với thực tế đó trong tâm trí.
Đối với các CTO và lãnh đạo kỹ thuật đang đánh giá các nền tảng phát triển trí tuệ nhân tạo ngày nay, những sai lầm lớn nhất mà các tổ chức mắc phải khi triển khai các công cụ mã hóa trí tuệ nhân tạo là gì, và làm thế nào họ có thể tránh chúng?
Một sai lầm phổ biến là tập trung chỉ vào khả năng của mô hình. Các mô hình lớn hơn chắc chắn là một thành phần quan trọng, nhưng độ tin cậy trong các môi trường thực tế phụ thuộc vào cách trí tuệ nhân tạo hiểu hệ thống nó hoạt động trong.
Sai lầm khác là triển khai các công cụ trí tuệ nhân tạo mà không xem xét các yêu cầu quản lý và bảo mật. Các doanh nghiệp cần có các chính sách rõ ràng về cách mã được truy cập, cách mô hình được triển khai và cách đầu ra được xác thực.
Cuối cùng, các tổ chức đôi khi mong đợi trí tuệ nhân tạo mang lại lợi ích về năng suất ngay lập tức mà không thích nghi các quy trình làm việc hoặc cung cấp đủ ngữ cảnh. Các triển khai thành công thường liên quan đến việc tích hợp trí tuệ nhân tạo vào các quy trình phát triển hiện có và kết nối nó với mã và kiến trúc của tổ chức.
Khi những yếu tố đó kết hợp lại, trí tuệ nhân tạo có thể trở thành một công cụ tăng tốc mạnh mẽ cho phát triển phần mềm thay vì chỉ là một công cụ khác.
Cảm ơn vì cuộc phỏng vấn tuyệt vời, độc giả muốn tìm hiểu thêm nên truy cập Tabnine.












