# Sửa đổi mã cục bộ bằng mô hình sinh

Canonical HTML: https://aogavrilov.com/vi/research-notes/localized-code-modification-generative-models/

Document language: vi

GHI CHÚ NGHIÊN CỨU

Cách tránh viết lại toàn bộ hàm khi không cần thiết, đồng thời duy trì đủ mức tự do để mô hình sinh thực hiện thay đổi mã được yêu cầu.

Đã công bố Ngày 30 tháng 7 năm 2026 [Alexey Gavrilov](https://aogavrilov.com/about/)

TRẢ LỜI TRỰC TIẾP

## Làm thế nào mô hình sinh có thể sửa đổi mã mà không viết lại toàn bộ hàm?

Trước khi sinh, hãy xác định vùng được bảo vệ và vùng có thể chỉnh sửa; tái sử dụng hoặc ràng buộc biểu diễn được bảo vệ, chỉ sinh các thay đổi ứng viên và loại bỏ đầu ra làm thay đổi mã được bảo vệ hoặc không đạt kiểm tra riêng của tác vụ. Tính cục bộ và mức hoàn thành tác vụ phải được đo lường đồng thời.

## Vì sao sự phân biệt này quan trọng

Phương pháp và bảo đảm được tuyên bố phải dựa trên cùng một ranh giới có thể quan sát.

Sửa đổi mã cục bộ là một bài toán chỉnh sửa, không đơn thuần là một lời nhắc sinh mã ngắn hơn. Đầu vào đã chứa một sản phẩm đáng được bảo toàn, vì vậy phương pháp cần một ranh giới bảo toàn tường minh giữa vùng được phép thay đổi và các thuộc tính phải duy trì ổn định.

Ranh giới có thể là một đoạn mã nguồn, nút cú pháp, chữ ký API, hành vi kiểm thử, hợp đồng phụ thuộc hoặc vị trí ẩn đã học. Các lựa chọn này không thể thay thế lẫn nhau: mỗi lựa chọn bảo vệ một thuộc tính có thể quan sát khác nhau và đòi hỏi bước kiểm chứng tương ứng.

## Quy trình thực hiện

1. Xác lập hợp đồng bảo toàn Xác định vùng có thể chỉnh sửa cùng phần văn bản, cấu trúc, giao diện hoặc hành vi cụ thể phải được giữ nguyên.
2. Chọn giao diện điều khiển hẹp nhất nhưng vẫn hữu dụng Tái sử dụng các đoạn mã nguồn không thay đổi, dùng kỹ thuật điền khuyết hoặc giải mã hướng chỉnh sửa, áp dụng ràng buộc hình thức, hoặc khóa các vị trí tiềm ẩn đã chọn theo thuộc tính cần bảo đảm.
3. Chỉ sinh tại những vị trí được phép thay đổi Duy trì đủ mức tự do trong vùng có thể chỉnh sửa để giải quyết nhiệm vụ; sao chép toàn bộ đầu vào tuy có tính cục bộ nhưng không tạo ra tiến triển.
4. Xác minh đồng thời tính cục bộ và mức độ thành công Loại bỏ các phương án làm thay đổi vùng được bảo vệ, không thể phân tích cú pháp hoặc biên dịch, vi phạm các bất biến cấu trúc, hoặc không đáp ứng thay đổi được yêu cầu.

## Bằng chứng cần có

Độ vững của một khẳng định chỉ tương xứng với thuộc tính được đo sau khi sinh hoặc giải mã.

- Phần sai khác ngoài vùng hoặc một phép đo trực tiếp khác về độ ổn định của vùng được bảo vệ.
- Mức hoàn thành tác vụ trong vùng có thể chỉnh sửa.
- Tùy trường hợp, sử dụng phân tích cú pháp, biên dịch, kiểm thử, kiểm tra tĩnh hoặc các bất biến đặc thù của tác vụ.
- Tỷ lệ thay đổi trong vùng có thể chỉnh sửa, nhằm tránh nhầm lẫn hành vi sao chép với khả năng điều khiển.
- Độ duy nhất của ứng viên và mức biến thiên qua các lần chạy lặp, nhằm tránh nhầm lẫn tính cục bộ với hiện tượng sụp đổ mode.

### Kết quả được báo cáo trong nghiên cứu liên kết

- Thí nghiệm được liên kết nén các hàm Python dài 64 token thành những vị trí rời rạc phân cấp và sinh lại các vị trí ẩn được chọn dưới những ràng buộc bộ phận.
- Việc khóa bốn mã cấp cao nhất nâng tỷ lệ phân tích cú pháp từ 0.453 lên 0.591, trong khi các vị trí không bị khóa thay đổi với tỷ lệ 0.936 và tỷ lệ mẫu có điều kiện là duy nhất vẫn đạt 0.998.
- Các phép đo đó cho thấy sự đánh đổi giữa tính ổn định và độ tự do ở tầng trên token; chúng không chứng minh khả năng bảo toàn chính xác đoạn mã nguồn, AST, ngữ nghĩa hay hành vi.

[Đọc tổng quan công bố](https://aogavrilov.com/vi/publications/inspectable-control/) [Tìm kiếm trong toàn văn bài báo](https://aogavrilov.com/publications/inspectable-control/full-text/)

## Giới hạn phạm vi

- Mã tiềm ẩn bị khóa không mặc nhiên là một nút AST, một đoạn mã nguồn được bảo vệ hay một bất biến hình thức.
- Tỷ lệ phân tích cú pháp xác nhận tính hợp lệ về cú pháp, chứ không xác nhận tính đúng đắn chức năng hay việc sửa lỗi thành công.
- Bằng chứng được báo cáo đến từ các hàm Python ngắn đã tiền xử lý và không xác lập hành vi ở quy mô kho mã.

## Nguồn chính và các nguồn liên quan trực tiếp

Hãy tham khảo các bài báo được liên kết để biết phương pháp gốc, phép đo và những hạn chế đã nêu.

1. [Inspectable Control for Structure-Preserving Software Regeneration](https://aogavrilov.com/vi/publications/inspectable-control/) Bài báo chính và thí nghiệm có giới hạn trên không gian tiềm ẩn phân cấp.
2. [EfficientEdit: Accelerating Code Editing via Edit-Oriented Speculative Decoding](https://arxiv.org/abs/2506.02780) Giải mã hướng chỉnh sửa, tái sử dụng những vùng nguồn không thay đổi.
3. [PAFT: Preservation Aware Fine-Tuning for Minimal-Edit Program Repair](https://arxiv.org/abs/2604.03113) Biểu đạt tường minh yêu cầu bảo toàn và thay đổi tối thiểu trong huấn luyện sửa chữa chương trình.

Được duy trì bởi Alexey Gavrilov . Trang này tổng hợp bằng chứng hiện có và không bổ sung kết quả thực nghiệm nào ngoài các nguồn được trích dẫn.
