Meta ra mắt "tạo tác" AI, mô hình mã nguồn mở và mã miễn phí Code Llama so với ChatGPT như thế nào?

Nguồn gốc: Phòng thí nghiệm đổi mới AGI

Nguồn hình ảnh: Được tạo bởi AI‌ không giới hạn

Meta gần đây đã phát hành Code Llama, một mô hình ngôn ngữ quy mô lớn dựa trên Llama 2 để tinh chỉnh, có thể tạo mã bằng cách sử dụng lời nhắc văn bản và là nguồn mở cho nghiên cứu và sử dụng thương mại.

Code Llama là một LLM mở hiện đại dành cho các tác vụ mã hóa có tiềm năng giúp quy trình làm việc của nhà phát triển hiện tại nhanh hơn và hiệu quả hơn, đồng thời hạ thấp rào cản gia nhập đối với những người học viết mã. Code Llama có tiềm năng được sử dụng như một công cụ giáo dục và năng suất để giúp các lập trình viên viết phần mềm mạnh mẽ hơn và được ghi chép đầy đủ hơn.

Code Llama hoạt động như thế nào

Vào tháng 7 năm nay, Meta (trước đây là Facebook) đã phát hành Llama 2, một mô hình nguồn mở miễn phí và có sẵn trên thị trường. Bản phát hành mới nhất, Code Llama, là phiên bản dành riêng của Llama2 dành riêng cho mã hóa, được tạo bằng cách đào tạo thêm Llama 2 về tập dữ liệu dành riêng cho mã của nó, lấy mẫu nhiều dữ liệu hơn từ cùng một tập dữ liệu trong thời gian dài hơn.

Nhìn chung, Code Llama có các tính năng mã hóa nâng cao, được xây dựng dựa trên Llama 2. Nó có thể tạo mã và ngôn ngữ tự nhiên về mã dựa trên mã và các tín hiệu ngôn ngữ tự nhiên (ví dụ: "viết cho tôi một hàm xuất ra chuỗi Fibonacci.") Nó cũng có thể được sử dụng để hoàn thành và gỡ lỗi mã.

Code Llama hỗ trợ nhiều ngôn ngữ phổ biến nhất được sử dụng hiện nay, bao gồm Python, C++, Java, PHP, Typeface (Java), C# và Bash.

Code Llama hiện có 3 phiên bản tham số: 7 tỷ tham số, 13 tỷ tham số, 34 tỷ tham số.

Mỗi phiên bản được đào tạo với mã thông báo mã 500B và dữ liệu liên quan đến mã. Các mô hình hướng dẫn và cơ sở tham số 7 tỷ và 13 tỷ cũng được đào tạo với khả năng Điền trung gian (FIM), cho phép chúng cắm mã vào mã hiện có, nghĩa là chúng có thể hỗ trợ các tác vụ như hoàn thành mã ngay lập tức. hộp.

Ba mô hình này đáp ứng các yêu cầu về dịch vụ và độ trễ khác nhau. Ví dụ: 7 tỷ mô hình có thể chạy trên một GPU. Mô hình 34 tỷ trả lại kết quả tốt nhất và cung cấp hỗ trợ mã hóa tốt hơn, nhưng mô hình 7 tỷ và 13 tỷ nhỏ hơn nhanh hơn và phù hợp hơn cho các tác vụ yêu cầu độ trễ thấp, chẳng hạn như hoàn thành mã theo thời gian thực.

Mô hình Code Llama cung cấp khả năng tạo ổn định với tối đa 100.000 mã thông báo ngữ cảnh. Tất cả các mô hình đều được đào tạo theo chuỗi 16.000 mã thông báo và cho thấy sự cải thiện khi sử dụng đầu vào lên tới 100.000 mã thông báo.

Ngoài việc là điều kiện tiên quyết để tạo các chương trình dài hơn, việc có chuỗi đầu vào dài hơn có thể mở ra các trường hợp sử dụng mới thú vị cho Code LLM. Ví dụ: người dùng có thể cung cấp cho các mô hình nhiều ngữ cảnh hơn từ cơ sở mã của họ để làm cho các thế hệ trở nên phù hợp hơn. Nó cũng giúp gỡ lỗi các tình huống trong các cơ sở mã lớn hơn, nơi các nhà phát triển có thể gặp khó khăn trong việc nắm bắt tất cả mã liên quan đến một vấn đề cụ thể. Khi các nhà phát triển phải đối mặt với việc gỡ lỗi một lượng lớn mã, họ có thể chuyển toàn bộ chiều dài mã vào mô hình.

Meta cũng tinh chỉnh hai phiên bản bổ sung của Code Llama: Code Llama - PythonCode Llama - Instruct.

  • Code Llama - Python là một biến thể dành riêng cho ngôn ngữ của Code Llama, được tinh chỉnh thêm trên mã thông báo 100B của mã Python.
  • Code Llama - Instruct là phiên bản được tinh chỉnh và căn chỉnh của các hướng dẫn của Code Llama. Việc điều chỉnh hướng dẫn tiếp tục quá trình đào tạo nhưng với các mục tiêu khác nhau. Mô hình chấp nhận "hướng dẫn ngôn ngữ tự nhiên" làm đầu vào và đầu ra dự kiến. Điều này cho phép nó hiểu rõ hơn những gì mọi người mong đợi từ lời nhắc. Chúng tôi khuyên bạn nên sử dụng phiên bản Code Llama - Instruct khi sử dụng Code Llama để tạo mã, vì Code Llama - Instruct đã được tinh chỉnh để tạo ra các câu trả lời hữu ích và an toàn bằng ngôn ngữ tự nhiên.

Nhưng không nên sử dụng Code Llama hoặc Code Llama - Python cho các tác vụ ngôn ngữ tự nhiên nói chung vì cả hai mô hình đều không được thiết kế để tuân theo các hướng dẫn ngôn ngữ tự nhiên. Code Llama được thiết kế cho các tác vụ theo mã cụ thể và không phù hợp làm mô hình cơ sở cho các tác vụ khác.

Code Llama hoạt động như thế nào?

Lập trình Python cơ bản và con người (MBPP) là hai tiêu chuẩn thường được sử dụng để đánh giá trình độ mã hóa - Con người kiểm tra khả năng hoàn thành mã từ chuỗi tài liệu của mô hình và MBPP kiểm tra khả năng viết mã từ mô tả của mô hình. Việc kiểm tra Code Llama dựa trên hai điểm chuẩn này cho thấy Code Llama vượt trội hơn Llama mã nguồn mở, dành riêng cho mã và vượt trội hơn chính Llama 2. Ví dụ Code Llama 34B đạt 53,7% trên Human và 56,2% trên MBPP, vượt qua ChatGPT nhưng vẫn thua kém GPT-4 trên Human.

Nguồn biểu đồ: Meta

*Mẫu tinh chỉnh của CodeLlama-34B đã vượt qua GPT-4? *

Mặc dù Code Llama không giành chiến thắng trong bài kiểm tra nhưng đây không phải là tất cả của Code Llama, một điểm nổi bật khác là tinh chỉnh lại. Người dùng có thể tinh chỉnh lại Code Llama mã nguồn mở để xây dựng phiên bản tốt nhất đáp ứng nhu cầu của mình.

Phind gần đây đã tinh chỉnh CodeLlama-34B và CodeLlama-34B-Python dựa trên bộ dữ liệu của riêng mình và các phiên bản tinh chỉnh của nó đạt được 67,6% và 69,5% trên Human, vượt qua GPT-4 do OpenAI công bố vào tháng 3 với 67% Tổng số.

Liên kết liên quan:

So sánh sử dụng thực tế ChatGPT so với Code Llama

Trước hết, phiên bản GPT-3.5 của ChatGPT và Code Llama được nền tảng Perplexity hỗ trợ đã được sử dụng trong so sánh này. Chúng tôi sẽ hỏi 8 câu hỏi để so sánh xem cả hai có tạo mã thành công hay không.

Câu hỏi 1:

"Sử dụng Python. Cho hai chuỗi word1 và word2. Hợp nhất các chuỗi bằng cách thêm các chữ cái theo thứ tự xen kẽ, bắt đầu bằng word1. Nếu một chuỗi dài hơn chuỗi kia, hãy nối thêm các chữ cái vào chuỗi đã hợp nhất. end.

Trả về chuỗi đã hợp nhất.

Ví dụ 1: • Đầu vào: word1="abc", word2="pqr" • Đầu ra: "apbqcr"

🟢 ChatGPT: +1 để thành công 🔵 Mã lửa:成功+1

Câu hỏi 2:

"Sử dụng Python. Cho một chuỗi s, chỉ cần đảo ngược tất cả các nguyên âm trong chuỗi và trả về nó.

Các nguyên âm là "a", "e", "i", "o" và "u", có thể xuất hiện nhiều lần ở cả chữ thường và chữ hoa.

Ví dụ 1:

Đầu vào: s="xin chào" Đầu ra: "Hội trường"

🟢 ChatGPT: +1 để thành công 🔵 Mã Llama: Thất bại +0

Câu hỏi 3:

"Sử dụng Python. Cho một mảng số nguyên, hãy chuyển tất cả các số 0 về cuối mảng đó trong khi vẫn duy trì thứ tự tương đối của các phần tử khác 0. Lưu ý rằng bạn phải thực hiện việc này tại chỗ mà không cần tạo bản sao của mảng.

Ví dụ 1:

Đầu vào: nums = [0,1,0,3,12] Đầu ra: [1,3,12,0,0]"

🟢 ChatGPT: +1 để thành công 🔵 Mã Llama: Thất bại +0

Câu hỏi 4:

"Sử dụng Python. Bạn có một luống hoa dài, trong đó một số ô được trồng và một số thì không. Tuy nhiên, các ô liền kề không thể trồng hoa. Cho một mảng số nguyên 0 và 1 cho một luống hoa, trong đó 0 có nghĩa là trống và 1 có nghĩa là không trống và một số nguyên n, trả về true nếu n bông hoa mới có thể được trồng trên luống hoa mà không vi phạm quy tắc không có hoa liền kề, Ngược lại trả về sai.

Ví dụ 1: Đầu vào: thảm hoa = [1,0,0,0,1], n = 1 Đầu ra: đúng Ví dụ 2: Đầu vào: luống hoa = [1,0,0,0,1], n = 2 đầu ra: sai

🟢 ChatGPT: +1 để thành công 🔵 Mã lửa:成功+1

Câu hỏi 5:

"Sử dụng Python. Cho một chuỗi đầu vào s, hãy đảo ngược thứ tự của các từ.

Một từ được định nghĩa là một chuỗi các ký tự không có khoảng trắng. Các từ trong s sẽ cách nhau ít nhất một dấu cách.

Trả về một chuỗi các từ được nối bằng dấu cách theo thứ tự ngược lại.

Lưu ý rằng s có thể chứa dấu cách ở đầu hoặc cuối hoặc nhiều dấu cách giữa hai từ. Chuỗi trả về chỉ được có một khoảng trắng để phân tách các từ. Không bao gồm bất kỳ khoảng trắng thừa.

Ví dụ 1: Đầu vào: s = "Bầu trời trong xanh" Đầu ra: "Màu xanh là bầu trời""

🟢 ChatGPT: +1 để thành công 🔵 Mã lửa:成功+1

Câu hỏi 6:

"Sử dụng Python. Cho một chuỗi s và một số nguyên k, trả về số nguyên âm tối đa trong bất kỳ chuỗi con nào có độ dài k trong s. Các nguyên âm trong tiếng Anh là “a”, “e”, “i”, “o” và “u”.

Ví dụ 1: Đầu vào: s = "leetcode", k = 3 Đầu ra: 2 Giải thích: “lee”, “eet” và “ode” chứa 2 nguyên âm.

🟢 ChatGPT: +1 để thành công 🔵 Mã lửa:成功+1

Câu hỏi 7:

"Sử dụng Python. Cho một chuỗi s chứa dấu hoa thị *.

Với một thao tác, bạn có thể:

Chọn một ngôi sao trong s.

Xóa ký tự không có dấu hoa thị gần nhất ở bên trái và xóa chính dấu hoa thị đó.

Trả về chuỗi sau khi loại bỏ tất cả các dấu sao.

Ví dụ 1: Đầu vào: s="leet**cod*e" Đầu ra: "lecoe""

🟢 ChatGPT: +1 để thành công 🔵 Mã Llama: Thất bại +0

Câu hỏi 8:

"Sử dụng Python. Cho một mảng nhiệt độ nguyên biểu thị nhiệt độ hàng ngày, trả về một mảng câu trả lời trong đó câu trả lời [i] là số ngày tôi phải đợi nhiệt độ ấm hơn. Nếu không có ngày nào trong tương lai để làm việc này thì hãy giữ câu trả lời [i] == 0。

Ví dụ 1: Đầu vào: Nhiệt độ = [73,74,75,71,69,72,76,73] Đầu ra: [1,1,4,2,1,1,0,0]"

🟢 Trò chuyện GPT: +1 🔵 Mã lạc đà: +1

Kết quả cuối cùng:

🟢 Trò chuyệnGPT: 8/8 🔵 CodeLlama: 8/5

Tóm lại, Code Llama không thể hiện được ưu điểm rõ rệt so với ChatGPT về hiệu quả sử dụng thực tế, tuy nhiên những thử nghiệm trên hoàn toàn không thể lấy làm cơ sở để nhận định. Hơn nữa, Code Llama mã nguồn mở dễ dàng hơn ChatGPT để người dùng tùy chỉnh theo nhu cầu của họ, điều này có thể mang lại nhiều khả năng hơn.

Người giới thiệu:

Xem bản gốc
Trang này có thể chứa nội dung của bên thứ ba, được cung cấp chỉ nhằm mục đích thông tin (không phải là tuyên bố/bảo đảm) và không được coi là sự chứng thực cho quan điểm của Gate hoặc là lời khuyên về tài chính hoặc chuyên môn. Xem Tuyên bố từ chối trách nhiệm để biết chi tiết.
  • Phần thưởng
  • Bình luận
  • Chia sẻ
Bình luận
0/400
Không có bình luận
  • Ghim
Giao dịch tiền điện tử mọi lúc mọi nơi
qrCode
Quét để tải xuống ứng dụng Gate
Cộng đồng
Tiếng Việt
  • 简体中文
  • English
  • Tiếng Việt
  • 繁體中文
  • Español
  • Русский
  • Français (Afrique)
  • Português (Portugal)
  • Bahasa Indonesia
  • 日本語
  • بالعربية
  • Українська
  • Português (Brasil)