GitHub đã mở ra những bước phát triển trong việc sử dụng máy học để tìm kiếm và phân tích mã

GitHub giới thiệu dự án MãTìm KiếmNet, đã chuẩn bị các mô hình học máy và bộ dữ liệu cần thiết để phân tích, phân loại và phân tích mã bằng nhiều ngôn ngữ lập trình khác nhau. CodeSearchNet, tương tự như IMAGEnet, bao gồm một tập hợp lớn các đoạn mã có chú thích chính thức hóa chức năng của mã. Các thành phần cho mô hình đào tạo và ví dụ về cách sử dụng CodeSearchNet được viết bằng Python sử dụng khung Tensorflow và phân phối bởi theo giấy phép MIT.

Khi tạo CodeSearchNet, các công nghệ phân tích văn bản ngôn ngữ tự nhiên đã được sử dụng, cho phép hệ thống máy học không chỉ tính đến các tính năng cú pháp mà còn cả ý nghĩa của các hành động do mã thực hiện. Hệ thống GitHub đã áp dụng trong các thí nghiệm về tổ chức tìm kiếm mã ngữ nghĩa bằng cách sử dụng truy vấn trên ngôn ngữ tự nhiên (ví dụ: khi yêu cầu “sắp xếp danh sách các chuỗi”, mã thực hiện các thuật toán tương ứng sẽ được hiển thị).

Tập dữ liệu được đề xuất bao gồm hơn 2 triệu liên kết nhận xét mã, được chuẩn bị dựa trên các văn bản nguồn của các thư viện mở hiện có. Mã bao gồm văn bản nguồn hoàn chỉnh của các hàm hoặc phương thức riêng lẻ và nhận xét mô tả các hành động được thực hiện bởi hàm (tài liệu chi tiết được cung cấp). Hiện tại, các bộ dữ liệu được chuẩn bị cho Python, JavaScript, Ruby, Go, Java và PHP. Các ví dụ được cung cấp về việc sử dụng các bộ dữ liệu được đề xuất để huấn luyện các loại mạng thần kinh khác nhau, bao gồm Túi thần kinh-từ-từ, RNN, tự chú ý (BERT) và Kết hợp 1D-CNN+Tự chú ý.

Để phát triển cơ chế tìm kiếm ngôn ngữ tự nhiên, một bộ CodeSearchNet Challenge đã được chuẩn bị bổ sung, bao gồm
99 điển hình các truy vấn với khoảng 4 nghìn chú thích của chuyên gia mô tả các liên kết mã có khả năng xảy ra nhất trong tập dữ liệu CodeSearchNet Corpus, bao gồm khoảng 6 triệu phương thức và hàm (đặt kích thước khoảng 20GB). Thử thách CodeSearchNet có thể đóng vai trò là điểm chuẩn để đánh giá tính hiệu quả của một số phương pháp tìm kiếm mã ngôn ngữ tự nhiên. Sử dụng công cụ KubeFlow chuẩn bị
Ví dụ công cụ tìm kiếm mã.

Nguồn: opennet.ru

Thêm một lời nhận xét