Thẻ mô hình CodeGemma

Trang mô hình: CodeGemma

Tài nguyên và tài liệu kỹ thuật:

Điều khoản sử dụng: Điều khoản

Tác giả: Google

Thông tin mẫu

Thông tin tóm tắt về mô hình

Mô tả

CodeGemma là một dòng mô hình mã mở gọn nhẹ, được xây dựng dựa trên Gemma. Mô hình CodeGemma là mô hình chỉ có bộ giải mã chuyển văn bản thành văn bản và chuyển văn bản sang mã có sẵn dưới dạng 7 tỷ biến thể được huấn luyện trước chuyên về hoàn thành mã và tác vụ tạo mã, một biến thể hướng dẫn gồm 7 tỷ tham số được tinh chỉnh cho trò chuyện và hướng dẫn lập trình sau đó và một biến thể được huấn luyện trước gồm 2 tỷ tham số để hoàn thành mã nhanh chóng.

Đầu vào và đầu ra

  • Đầu vào: Đối với các biến thể mô hình được huấn luyện trước: tiền tố mã và hậu tố (không bắt buộc) để hoàn thành mã và các trường hợp tạo mã hoặc văn bản/lời nhắc bằng ngôn ngữ tự nhiên. Đối với biến thể của mô hình được điều chỉnh theo hướng dẫn: văn bản hoặc câu lệnh bằng ngôn ngữ tự nhiên.

  • Đầu ra: Đối với các biến thể của mô hình đã huấn luyện trước: mã điền vào giữa mã hoàn thành, mã và ngôn ngữ tự nhiên. Đối với biến thể của mô hình được điều chỉnh theo hướng dẫn: mã và ngôn ngữ tự nhiên.

Trích dẫn

@article{codegemma_2024,
    title={CodeGemma: Open Code Models Based on Gemma},
    url={https://goo.gle/codegemma},
    author={ {CodeGemma Team} and Hartman, Ale Jakse and Hu, Andrea and Choquette-Choo, Christopher A. and Zhao, Heri and Fine, Jane and Hui,
    Jeffrey and Shen, Jingyue and Kelley, Joe and Howland, Joshua and Bansal, Kshitij and Vilnis, Luke and Wirth, Mateo and Nguyen, Nam, and Michel, Paul and Choy, Peter and Joshi, Pratik and Kumar, Ravin and Hashmi, Sarmad and Agrawal, Shubham and Zuo, Siqi and Warkentin, Tris and Gong, Zhitao et al.},
    year={2024}
}

Dữ liệu về mô hình

Tập dữ liệu huấn luyện

Sử dụng Gemma làm mô hình cơ sở, các biến thể được huấn luyện trước của CodeGemma 2B và 7B là được đào tạo thêm bằng cách đào tạo thêm 500 đến 1000 tỷ token chủ yếu là tiếng Anh dữ liệu ngôn ngữ từ các tập dữ liệu toán học nguồn mở và được tạo theo cách tổng hợp .

Xử lý dữ liệu huấn luyện

Các kỹ thuật tiền xử lý dữ liệu sau đây đã được áp dụng để huấn luyện CodeGemma:

  • FIM – Các mô hình CodeGemma được huấn luyện trước tập trung vào các tác vụ lấp đầy khoảng giữa (FIM). Các mô hình này được huấn luyện để hoạt động với cả chế độ PSM và SPM. Chế độ cài đặt FIM của chúng tôi Tỷ lệ FIM 80% đến 90% với 50-50 PSM/SPM.
  • Kỹ thuật đóng gói dựa trên biểu đồ phần phụ thuộc và kỹ thuật đóng gói từ vựng dựa trên kiểm thử đơn vị: Để cải thiện mức độ phù hợp của mô hình với các ứng dụng thực tế, chúng tôi đã tổ chức chương trình đào tạo các ví dụ ở cấp dự án/kho lưu trữ để sắp xếp lại nguồn phù hợp nhất trong mỗi kho lưu trữ. Cụ thể, chúng tôi sử dụng hai phương pháp phỏng đoán kỹ thuật: đóng gói dựa trên đồ thị phụ thuộc và đóng gói từ vựng dựa trên kiểm thử đơn vị.
  • Chúng tôi đã phát triển một kỹ thuật mới để chia tài liệu thành tiền tố, giữa và hậu tố để làm cho hậu tố bắt đầu theo cú pháp tự nhiên hơn thay vì chỉ phân phối ngẫu nhiên.
  • An toàn: Tương tự như Gemma, chúng tôi đã triển khai chế độ lọc an toàn nghiêm ngặt bao gồm lọc dữ liệu cá nhân, lọc nội dung xâm hại tình dục trẻ em và lọc theo cách khác dựa trên nội dung đảm bảo chất lượng và an toàn phù hợp với chính sách của chúng tôi.

Thông tin triển khai

Phần cứng và khung sử dụng trong quá trình đào tạo

Như Gemma, CodeGemma được đào tạo về thế hệ mới nhất Bộ xử lý cảm biến (TPU) phần cứng (TPUv5e), dùng JAXML Lộ trình.

Thông tin đánh giá

Kết quả đo điểm chuẩn

Phương pháp đánh giá

Kết quả đo điểm chuẩn lập trình

Benchmark (Điểm chuẩn) 2 TỶ 2 T (1,1) 7 TỶ 7 TỶ ĐÔ LA MỸ 7B-IT (1.1)
HumanEval 31,1 37,8 44,5 56,1 60,4
MBPP 43,6 49,2 56,2 54,2 55,6
Dòng đơn HumanEval 78,4 79,3 76,1 68,3 77,4
Nhiều dòng HumanEval 51,4 51,0 58,4 20,1 23,7
BC HE C++ 24,2 19,9 32,9 42,2 46,6
BC HE C# 10.6 26,1 22,4 26,7 54,7
BC HE Go 20,5 18.0 21,7 28,6 34,2
BC HE Java 29,2 29,8 41,0 48,4 50,3
JavaScript BC HE 21,7 28,0 39,8 46,0 48,4
Kotlin BC HE 28,0 32,3 39,8 51,6 47,8
BC HE Python 21,7 36,6 42,2 48,4 54,0
BC HE Rust 26,7 24,2 34,1 36,0 37,3
BC MBPP C++ 47,1 38,9 53,8 56,7 63,5
BC MBPP C# 28,7 45,3 32,5 41,2 62,0
BC MBPP Go 45,6 38,9 43,3 46,2 53,2
BC MBPP Java 41,8 49,7 50,3 57,3 62,9
JavaScript BC MBPP 45,3 45,0 58.2 61,4 61,4
Kotlin MBPP BC 46,8 49,7 54,7 59,9 62,6
Python BC MBPP 38,6 52,9 59,1 62,0 60.2
Rust BC MBPP 45,3 47,4 52,9 53,5 52,3

Điểm chuẩn ngôn ngữ tự nhiên (trên các mô hình 7 tỷ)

Biểu đồ thanh so sánh Gemma, CodeGemma PT và CodeGemma IT qua nhiều chỉ số về chức năng của ngôn ngữ. Cả 3 mô hình này đều gần như tương đương nhau, trong đó CodeGemma có khả năng hiểu ngôn ngữ tự nhiên rất tốt.

Đạo đức và an toàn

Đánh giá về đạo đức và sự an toàn

Phương pháp đánh giá

Các phương pháp đánh giá của chúng tôi bao gồm đánh giá có cấu trúc và phương pháp nhóm đỏ nội bộ thử nghiệm các chính sách nội dung có liên quan. Quá trình lập đội Đỏ được thực hiện bởi một số nhóm khác nhau, mỗi nhóm có mục tiêu và chỉ số đánh giá khác nhau. Các mô hình này được đánh giá theo một số danh mục khác nhau có liên quan đến đạo đức và an toàn, bao gồm:

  • Đánh giá thủ công đối với các câu lệnh liên quan đến sự an toàn của nội dung và tính đại diện mối nguy hại. Xem Thẻ mô hình Gemma để biết thêm chi tiết về phương pháp đánh giá.

  • Hoạt động kiểm thử cụ thể về khả năng tấn công mạng, tập trung vào việc kiểm thử độc lập khả năng xâm nhập và đảm bảo hạn chế tác hại tiềm ẩn.

Kết quả đánh giá

Kết quả đánh giá về đạo đức và tính an toàn đều nằm trong ngưỡng chấp nhận được để họp chính sách nội bộ cho các danh mục như sự an toàn cho trẻ em, sự an toàn của nội dung, hành vi gây hại mang tính biểu thị, ghi nhớ, gây hại trên quy mô lớn. Xem Thẻ mô hình Gemma để biết thêm chi tiết.

Mức sử dụng và giới hạn của mô hình

Các hạn chế đã biết

Các mô hình ngôn ngữ lớn (LLM) có những hạn chế dựa trên dữ liệu huấn luyện và những hạn chế vốn có của công nghệ. Xem Thẻ mô hình Gemma để biết thêm chi tiết về những hạn chế của các mô hình ngôn ngữ lớn (LLM).

Cân nhắc và rủi ro về đạo đức

Sự phát triển của các mô hình ngôn ngữ lớn (LLM) đặt ra một số mối lo ngại về đạo đức. Chúng tôi đã xem xét kỹ lưỡng trên nhiều khía cạnh trong quá trình phát triển của người mẫu.

Vui lòng tham khảo cùng một cuộc thảo luận trong thẻ mô hình Gemma để biết thông tin chi tiết về mô hình.

Mục đích sử dụng

Ứng dụng

Các mô hình Code Gemma có phạm vi ứng dụng đa dạng, khác nhau giữa công nghệ thông tin và Mô hình PT. Danh sách các trường hợp sử dụng tiềm năng sau đây chưa đầy đủ. Chiến lược phát hành đĩa đơn mục đích của danh sách này là cung cấp thông tin theo bối cảnh về các trường hợp sử dụng mà người tạo mô hình xem xét như một phần của quá trình huấn luyện mô hình và phát triển ứng dụng.

  • Hoàn tất mã: Bạn có thể sử dụng các mô hình PT để hoàn tất mã bằng một tiện ích IDE
  • Tạo mã: Mô hình CNTT có thể được dùng để tạo mã có hoặc không có IDE tiện ích
  • Cuộc trò chuyện lập trình: Mô hình CNTT có thể hỗ trợ giao diện trò chuyện thảo luận mã
  • Giáo dục lập trình: Mô hình CNTT hỗ trợ các công cụ hỗ trợ, trải nghiệm học mã tương tác sửa cú pháp hoặc cung cấp phương pháp thực hành lập trình

Lợi ích

Vào thời điểm phát hành, dòng mô hình này cung cấp những phiên bản mở có hiệu suất cao Các hoạt động triển khai mô hình ngôn ngữ lớn tập trung vào mã, được thiết kế từ đầu để phát triển AI có trách nhiệm so với các mô hình có quy mô tương tự.

Bằng cách sử dụng các chỉ số đánh giá điểm chuẩn lập trình được mô tả trong tài liệu này, các mô hình khác nhau đã cho thấy hiệu suất vượt trội so với các mô hình khác có quy mô tương đương mở các giải pháp thay thế trong mô hình.