6 điểm bởi GN⁺ 2024-09-06 | 2 bình luận | Chia sẻ qua WhatsApp
  • Yi-Coder là mô hình ngôn ngữ lớn mã nguồn mở dành cho code, mang lại hiệu năng lập trình tiên tiến với chưa đến 1 tỷ tham số
  • Có hai kích thước 1.5B và 9B tham số, với cả phiên bản nền tảng và phiên bản chat được thiết kế cho suy luận hiệu quả và huấn luyện linh hoạt
  • Yi-Coder-9B được xây dựng dựa trên Yi-9B, bổ sung 2.4T token chất lượng cao từ kho ngữ liệu mã ở cấp độ kho lưu trữ trên GitHub và dữ liệu liên quan đến code đã được lọc từ CommonCrawl

Các đặc điểm chính của Yi-Coder

  • Được tiền huấn luyện trên 2.4 nghìn tỷ token chất lượng cao trải rộng trên 52 ngôn ngữ lập trình chính
  • Mô hình hóa ngữ cảnh dài: sử dụng cửa sổ ngữ cảnh tối đa 128K token để hiểu và sinh mã ở cấp độ dự án
  • Nhỏ nhưng mạnh mẽ: Yi-Coder-9B vượt qua các mô hình khác có dưới 10 tỷ tham số như CodeQwen1.5 7B và CodeGeex4 9B, thậm chí đạt hiệu năng tương đương DeepSeek-Coder 33B

Yi-Coder mang lại hiệu năng lập trình ấn tượng

LiveCodeBench

  • LiveCodeBench là nền tảng công khai được thiết kế để cung cấp đánh giá lập trình thi đấu toàn diện và công bằng cho LLM
  • Yi-Coder-9B-Chat đạt tỷ lệ vượt qua ấn tượng 23.4%, và là mô hình duy nhất dưới 10B tham số vượt mốc 20%
  • Hiệu năng này vượt qua DeepSeek-Coder-33B-Instruct (22.3%), CodeGeex4-All-9B (17.8%), CodeLlama-34B-Instruct (13.3%), và CodeQwen1.5-7B-Chat (12%)

HumanEval, MBPP và CRUXEval-O

  • Yi-Coder-9B-Chat đạt tỷ lệ vượt qua 85.4% trên HumanEval và 73.8% trên MBPP, vượt qua các code LLM khác
  • Ngoài ra, Yi-Coder 9B còn là code LLM mã nguồn mở đầu tiên đạt độ chính xác trên 50% trên CRUXEval-O

Yi-Coder nổi trội trong chỉnh sửa và hoàn thiện mã

CodeEditorBench

  • Yi-Coder-9B đạt tỷ lệ thắng trung bình ấn tượng trong số các code LLM mã nguồn mở, liên tục vượt DeepSeek-Coder-33B-Instruct và CodeQwen1.5-7B-Chat ở cả hai tập con primary và plus

CrossCodeEval

  • Yi-Coder vượt qua các mô hình khác cùng quy mô trên cả bộ dữ liệu Python và Java, trong cả kịch bản có truy hồi và không truy hồi
  • Điều này xác nhận rằng việc huấn luyện với độ dài ngữ cảnh lớn hơn trên kho ngữ liệu mã ở cấp độ kho phần mềm giúp Yi-Coder nắm bắt hiệu quả các phụ thuộc dài hạn, từ đó đóng góp vào hiệu năng vượt trội

Yi-Coder có thể mô hình hóa ngữ cảnh dài 128K

Cây kim trong mã

  • Để kiểm tra khả năng mô hình hóa ngữ cảnh dài của Yi-Coder, nhóm phát triển đã tạo một tác vụ tổng hợp có tên là "Cây kim trong mã" sử dụng chuỗi dài 128K
  • Trong tác vụ này, một hàm tùy chỉnh đơn giản được chèn ngẫu nhiên vào một codebase dài, và mô hình được kiểm tra xem có thể tái tạo hàm đó ở cuối codebase hay không
  • Điều này đánh giá khả năng của LLM trong việc trích xuất thông tin cốt lõi từ ngữ cảnh dài, phản ánh năng lực cơ bản để hiểu các chuỗi dài
  • Yi-Coder-9B hoàn thành hoàn hảo tác vụ này trong phạm vi độ dài 128K

Yi-Coder cũng tỏa sáng trong suy luận toán học

Suy luận toán học có hỗ trợ bằng chương trình

  • Yi-Coder được đánh giá trên 7 benchmark suy luận toán học trong thiết lập PAL (Program-aided Language Models)
  • Yi-Coder-9B đạt độ chính xác ấn tượng 70.3%, vượt qua mức 65.8% của DeepSeek-Coder-33B

Kết luận

  • Chúng tôi phát hành mã nguồn mở Yi-Coder 1.5B/9B cho cộng đồng với cả phiên bản nền tảng và phiên bản chat
  • Yi-Coder cho thấy hiệu năng nổi bật trên nhiều tác vụ, bao gồm lập trình cơ bản và lập trình thi đấu, chỉnh sửa mã và hoàn thiện ở cấp độ kho lưu trữ, hiểu ngữ cảnh dài và suy luận toán học
  • Chúng tôi tin rằng Yi-Coder có thể mở rộng giới hạn của các code LLM nhỏ, mở ra những trường hợp sử dụng có thể thúc đẩy và chuyển đổi quá trình phát triển phần mềm

Tóm tắt của GN⁺

  • Ưu điểm của Yi-Coder là cung cấp hiệu năng lập trình hiện đại dù có số lượng tham số ít. Điều này có thể cho phép hỗ trợ lập trình xuất sắc mà không cần lượng tài nguyên tính toán khổng lồ như các LLM lớn kiểu ChatGPT
  • Khả năng mô hình hóa ngữ cảnh dài của Yi-Coder cho phép hiểu mã trên toàn bộ các dự án lớn, điều đặc biệt hữu ích với những tác vụ lập trình phức tạp
  • Mô hình thể hiện hiệu năng vượt trội trong lập trình thi đấu, chỉnh sửa mã, hoàn thiện ở cấp độ repository, hiểu ngữ cảnh dài và suy luận toán học
  • Các công cụ hỗ trợ lập trình dựa trên LLM tiêu biểu hiện nay gồm GitHub Copilot, Amazon CodeWhisperer, v.v. So với chúng, Yi-Coder có lợi thế là mô hình gọn nhẹ hơn, nhưng vẫn còn thiếu các tính năng bổ sung như plugin
  • Những dự án khác có chức năng tương tự gồm DeepSeek-Coder, CodeGeex4 và CodeLLama
  • Năng lực suy luận toán học của Yi-Coder là một điểm đáng chú ý. Cách tiếp cận giải quyết vấn đề thông qua lập trình tạo nên khác biệt so với mô hình ngôn ngữ thuần túy, đồng thời cho thấy tiềm năng ứng dụng của LLM không chỉ trong toán học mà còn ở nhiều lĩnh vực khác

2 bình luận

 
GN⁺ 2024-09-06
Ý kiến trên Hacker News
  • Claude 3.5 Sonnet vẫn cho thấy hiệu năng tốt nhất trong các LLM liên quan đến code

    • Nhưng DeepSeek Coder V2 236B rẻ hơn và hiệu quả hơn
    • Đang dùng DeepSeek Coder V2 trong plugin Aider và Claude Dev
  • Yi-Coder nhận điểm thấp hơn GPT-3.5 trong benchmark chỉnh sửa code của Aider

    • Sonnet: 77%
    • GPT-3.5: 58%
    • Yi-Coder-9b-Chat: 54%
    • Yi-Coder-9b-Chat-q4_0: 45%
  • Kết quả thử nghiệm LLM cho các công việc SRE/DevOps/C#/Golang/C++ cho thấy nhận được các câu trả lời thiếu logic

    • Khi yêu cầu viết một script Python đơn giản thì lại trả lời lạc đề
    • Đưa ra các câu trả lời không liên quan bằng nhiều ngôn ngữ lập trình khác nhau
  • Sự khác biệt trong cách các kỹ sư phần mềm và nghệ sĩ phản ứng với mô hình AI là điều thú vị

  • Đang chờ các mô hình chuyên biệt cho từng ngôn ngữ cụ thể

    • Các mô hình hiện tại xử lý được nhiều ngôn ngữ, nhưng cần những mô hình thật sự thành thạo ở một ngôn ngữ cụ thể
  • Tò mò về cách thiết lập một LLM nhỏ để chạy cục bộ

    • Hỏi liệu tính năng tab completion có hoạt động trong VSCode hay không
    • Xin mẹo về cách thiết lập các mô hình đám mây ngoài GitHub Copilot
  • Hỏi về phần cứng được khuyến nghị để chạy mô hình trên PC desktop cục bộ

  • Muốn xem hiệu năng của SWE-agent và Yi-Coder-9B-Chat

  • Yêu cầu giải thích về benchmark Aider

    • Thắc mắc vì sao mỗi lần lại dùng cùng một bộ 113 bài kiểm tra
    • Đặt câu hỏi về cách đánh giá năng lực tạo và chỉnh sửa code nói chung của mô hình
  • Hỏi vì sao kích thước mô hình lại được biểu diễn bằng số lượng trọng số

    • Muốn biết yêu cầu GPU RAM
    • Thắc mắc số lượng trọng số thực sự quan trọng đến mức nào với người dùng thực tế