1 điểm bởi GN⁺ 2023-08-25 | 1 bình luận | Chia sẻ qua WhatsApp
  • Meta đã công bố Code Llama, mô hình chuyên biệt cho mã nguồn dựa trên Llama 2, được cung cấp miễn phí cho mục đích nghiên cứu và thương mại, đồng thời áp dụng cùng giấy phép cộng đồng
  • Code Llama nhận cả prompt mã nguồn lẫn ngôn ngữ tự nhiên để hỗ trợ tạo mã, hoàn thiện mã và gỡ lỗi, đồng thời xử lý Python, C++, Java, PHP, TypeScript, C#, Bash và nhiều ngôn ngữ khác
  • Các kích thước mô hình gồm 7B, 13B, 34B, 70B; các mô hình nhỏ phù hợp hơn với độ trễ thấp, còn 34B và 70B hướng tới hỗ trợ lập trình tốt hơn
  • Có bản mô hình cơ sở, mô hình chuyên cho Python và biến thể Instruct tối ưu cho việc hiểu chỉ dẫn ngôn ngữ tự nhiên; Meta khuyến nghị dùng Instruct cho tác vụ tạo mã thực tế
  • Trong đánh giá nội bộ, Code Llama 34B đạt HumanEval 53.7%MBPP 56.2%; đây là cách tiếp cận nhằm thúc đẩy cộng đồng đánh giá và cải thiện điểm yếu thông qua mô hình mã nguồn mở công khai

Cách phát hành và bản cập nhật 70B

  • Meta đã công bố Code Llama, một mô hình ngôn ngữ lớn có thể tạo mã từ prompt văn bản
  • Code Llama hướng tới hiệu năng hàng đầu trong nhóm LLM cho mã có thể sử dụng công khai, tập trung vào việc giúp quy trình làm việc của lập trình viên nhanh hơn và hiệu quả hơn, đồng thời hạ thấp rào cản tiếp cận cho người học lập trình
  • Mô hình được cung cấp miễn phí cho nghiên cứu và sử dụng thương mại, phát hành theo giấy phép cộng đồng giống Llama 2
  • Trong bản cập nhật ngày 29/1/2024, Meta đã bổ sung Code Llama 70B, phiên bản lớn nhất và có hiệu năng tốt nhất trong họ Code Llama
    • CodeLlama - 70B: mô hình mã cơ sở
    • CodeLlama - 70B - Python: mô hình 70B chuyên cho Python
    • Code Llama - 70B - Instruct: mô hình 70B được tinh chỉnh để hiểu chỉ dẫn ngôn ngữ tự nhiên

Mô hình tối ưu Llama 2 cho tác vụ mã nguồn

  • Code Llama là phiên bản chuyên cho mã của Llama 2, được huấn luyện bổ sung trên tập dữ liệu chuyên về mã
  • Mô hình nhận cả mã và prompt ngôn ngữ tự nhiên làm đầu vào để phục vụ nhiều tác vụ lập trình khác nhau
    • tạo mã
    • sinh ngôn ngữ tự nhiên về mã
    • hoàn thiện mã
    • gỡ lỗi
  • Ví dụ prompt là yêu cầu ngôn ngữ tự nhiên như “hãy viết một hàm in ra dãy Fibonacci”
  • Các ngôn ngữ được hỗ trợ gồm Python, C++, Java, PHP, TypeScript(JavaScript), C#, Bash

Kích thước mô hình, dữ liệu huấn luyện và lựa chọn độ trễ

  • Code Llama có các kích thước tham số 7B, 13B, 34B, 70B
  • Trừ 70B, các mô hình được huấn luyện trên 500B token dữ liệu mã và dữ liệu liên quan đến mã; riêng 70B được huấn luyện trên 1T token
  • Các mô hình cơ sở và Instruct ở bản 7B và 13B được huấn luyện với tính năng fill-in-the-middle(FIM) để có thể chèn mã mới vào giữa đoạn mã hiện có
    • hỗ trợ các tác vụ như hoàn thiện mã tức thì
  • Mỗi kích thước mô hình có đặc điểm khác nhau về chi phí phục vụ và độ trễ
    • mô hình 7B có thể được phục vụ trên một GPU đơn
    • 34B và 70B cho kết quả tốt nhất và hỗ trợ lập trình tốt hơn
    • 7B và 13B nhanh hơn nên phù hợp hơn với các tác vụ cần độ trễ thấp như hoàn thiện mã theo thời gian thực
  • Các mô hình Code Llama cung cấp khả năng sinh ổn định với ngữ cảnh tối đa 100.000 token
    • tất cả các mô hình được huấn luyện với chuỗi 16.000 token
    • cho thấy cải thiện với đầu vào tối đa 100.000 token
  • Chuỗi đầu vào dài không chỉ hữu ích cho việc tạo chương trình dài mà còn giúp truyền nhiều ngữ cảnh hơn của codebase vào mô hình để tăng mức độ liên quan của kết quả sinh
  • Khi gỡ lỗi codebase lớn, có thể khó nắm được toàn bộ phần mã liên quan đến một vấn đề cụ thể, vì vậy lập trình viên có thể đưa cả các khối mã lớn vào mô hình

Ba biến thể: cơ sở, Python và Instruct

  • Dòng Code Llama ngoài mô hình cơ sở còn bao gồm mô hình chuyên cho Pythonbiến thể Instruct
  • Code Llama - Python là mô hình chuyên ngôn ngữ được tinh chỉnh bổ sung trên 100B token mã Python
    • Python là ngôn ngữ được benchmark nhiều nhất trong các tác vụ tạo mã
    • Python và PyTorch giữ vai trò quan trọng trong cộng đồng AI
  • Code Llama - Instruct là biến thể đã trải qua tinh chỉnh theo chỉ dẫn và căn chỉnh
    • tiếp tục được huấn luyện bằng đầu vào chỉ dẫn ngôn ngữ tự nhiên và đầu ra mong đợi
    • được thiết kế để hiểu tốt hơn kết quả mà con người mong đợi từ prompt
  • Meta khuyến nghị dùng Code Llama - Instruct cho việc tạo mã thực tế
    • vì mô hình này được tinh chỉnh để tạo ra câu trả lời hữu ích và an toàn bằng ngôn ngữ tự nhiên
  • Code Llama và Code Llama - Python không được khuyến nghị cho các tác vụ ngôn ngữ tự nhiên thông thường
    • hai mô hình này không được thiết kế để làm theo chỉ dẫn ngôn ngữ tự nhiên
    • Code Llama dành cho các tác vụ chuyên về mã và không phù hợp làm mô hình nền cho các tác vụ khác
  • Người dùng phải tuân theo giấy phép và chính sách sử dụng được phép

Benchmark và đánh giá an toàn

  • Meta sử dụng các benchmark HumanEvalMBPP để đánh giá hiệu năng của Code Llama
    • HumanEval kiểm tra khả năng hoàn thiện mã dựa trên docstring
    • MBPP kiểm tra khả năng viết mã dựa trên mô tả
  • Trong benchmark nội bộ, Code Llama cho hiệu năng tốt hơn các LLM mã nguồn mở chuyên cho mã và cả Llama 2
  • Code Llama 34B đạt HumanEval 53.7%MBPP 56.2%
    • đây là mức điểm cao nhất so với các giải pháp công khai tiên tiến khác
    • được đánh giá ở mức tương đương ChatGPT
  • Trước khi công bố, nhiều biện pháp an toàn đã được áp dụng và trong quá trình red team, Meta đã định lượng rủi ro sinh mã độc
    • tạo các prompt yêu cầu mã độc với chủ đích rõ ràng
    • chấm điểm bằng cách so sánh phản hồi của Code Llama với phản hồi của ChatGPT(GPT3.5 Turbo)
    • kết quả cho thấy Code Llama đưa ra phản hồi an toàn hơn
  • Chi tiết red team từ các chuyên gia trong các lĩnh vực AI có trách nhiệm, kỹ thuật bảo mật tấn công, phát triển mã độc và kỹ thuật phần mềm có thể xem trong bài báo nghiên cứu

Tài liệu công khai và sử dụng có trách nhiệm

  • Các nhà phát triển đã sử dụng LLM cho nhiều tác vụ khác nhau, từ viết phần mềm mới đến gỡ lỗi mã hiện có
  • Code Llama hướng tới việc làm cho quy trình làm việc của lập trình viên hiệu quả hơn để họ có thể tập trung vào những công việc mang tính con người hơn thay vì các tác vụ lặp lại
  • Meta cho rằng LLM cho lập trình có thể hưởng lợi lớn từ cách tiếp cận mở cả về đổi mới lẫn an toàn
  • Mô hình chuyên cho mã được công khai cho phép cộng đồng đánh giá năng lực mô hình, tìm vấn đề và sửa các điểm yếu
  • Công thức huấn luyện của Code Llama được công bố trong kho GitHub
  • Trọng số mô hình được cung cấp trên trang Llama
  • Bài báo nghiên cứu bao gồm chi tiết phát triển, cách thực hiện benchmark, giới hạn, các thách thức đã biết, biện pháp giảm thiểu và các hướng nghiên cứu tiếp theo
  • Responsible Use Guide cũng đã được cập nhật để cung cấp hướng dẫn phát triển các mô hình downstream một cách có trách nhiệm
    • định nghĩa chính sách nội dung và biện pháp giảm thiểu
    • chuẩn bị dữ liệu
    • tinh chỉnh mô hình
    • đánh giá và cải thiện hiệu năng
    • ứng phó rủi ro ở mức đầu vào và đầu ra
    • xây dựng tính minh bạch và cơ chế báo cáo trong tương tác người dùng
  • Nhà phát triển nên đánh giá mô hình bằng các benchmark chuyên cho mã và thực hiện nghiên cứu an toàn cho các trường hợp sử dụng như sinh mã độc, virus máy tính và mã có mục đích xấu
  • Meta cũng khuyến nghị dùng các bộ dữ liệu an toàn cho đánh giá tự động và đánh giá bởi con người, cũng như red team dựa trên prompt đối kháng

Bước tiếp theo và tài liệu tham khảo

  • Code Llama được thiết kế để hỗ trợ các kỹ sư phần mềm ở nhiều lĩnh vực như nghiên cứu, công nghiệp, dự án mã nguồn mở, NGO và doanh nghiệp
  • Vẫn còn nhiều trường hợp sử dụng vượt ra ngoài những gì mô hình cơ sở và mô hình Instruct hiện có thể cung cấp
  • Meta kỳ vọng Code Llama sẽ trở thành động lực để những người khác tận dụng Llama 2 xây dựng các công cụ mới cho nghiên cứu và sản phẩm thương mại
  • Tài liệu liên quan

1 bình luận

 
GN⁺ 2023-08-25
Ý kiến trên Hacker News
  • Có thể chạy gần như ngay lập tức với llama.cpp, nên dễ thử nghiệm cục bộ: https://github.com/ggerganov/llama.cpp/issues/2766
    Thử chạy CodeLlama-7b-Python với lượng tử hóa q4_0, với prompt Python “in ra 10 số nguyên tố đầu tiên”, nó tạo ra đoạn mã khá hợp lý, gồm cả print_primes, is_prime, main
    Sẽ rất thú vị xem các mô hình lớn hơn sẽ cho kết quả ra sao, đặc biệt sau khi được cộng đồng tinh chỉnh và có ngữ cảnh/prompt tốt hơn

    • Một cách đơn giản, ngắn gọn và hiệu quả hơn là dùng hàm generator với sàng Eratosthenes
      Trong primes_upto(limit: int), đánh dấu hợp số bằng mảng boolean, rồi dùng itertools.islice để chỉ in 10 số đầu tiên thì sẽ ra 2 3 5 7 11 13 17 19 23 29
    • Nếu bài toán là in 10 số nguyên tố đầu tiên thì cũng có thể làm trong một dòng: print("1, 2, 3, 5, 7, 11... and so on!
    • Thật buồn cười khi thấy HN bị máy nerd-sniping
    • Tò mò không biết họ lấy quyền truy cập mô hình bằng cách nào
      Llama2 cũng đã ra hơn một tháng trước, nhưng tôi vẫn chờ quyền truy cập suốt mấy tuần nay; mô hình này cũng đi qua cùng một biểu mẫu nên tôi không kỳ vọng lắm
      Không biết họ nhận được bằng cách khác chăng
    • Cũng như các kết quả khác trong luồng này, điểm thú vị là 1 không phải số nguyên tố
      Tất nhiên đây gần như là vấn đề định nghĩa, và có thể có cộng đồng hoặc lĩnh vực xem 1 là số nguyên tố, nhưng khi dùng mô hình ngôn ngữ thì những sắc thái kiểu này lộ ra
      ¹) https://www.google.com/search?q=is+1+a+prime+number
  • Cá nhân tôi thấy điểm cốt lõi là việc cung cấp khả năng sinh ổn định trong ngữ cảnh lên tới 100.000 token
    Tất cả các mô hình đều được huấn luyện với chuỗi 16.000 token, và được nói là có cải thiện ngay cả với đầu vào tối đa 100.000 token
    Tuy nhiên đọc bài báo thì thấy độ chính xác truy xuất thông tin then chốt giảm mạnh sau 16k token, nên vẫn phải chờ xem ngữ cảnh 100k thực sự hữu ích đến mức nào

    • Có vẻ họ không công bố cả một mô hình khá thú vị
      Bài báo có nhắc đến Unnatural Code Llama; ngoại trừ việc thua Code Llama Python một chút ở MBPP pass@100 và thua GPT-4 một chút ở HumanEval pass@1, nó áp đảo các mô hình/tinh chỉnh khác trên mọi benchmark
      Meta chỉ nói rằng sau này họ sẽ không công bố mô hình này mà không giải thích, nên tôi tò mò vì sao họ không tung ra một mô hình trông ấn tượng như vậy
    • Tò mò không biết Meta có đưa RoPE có thể mở rộng vào triển khai chính thức không
    • Tò mò mẹo để đạt ngữ cảnh 100k là gì
      Chắc chắn không thể cứ dùng thẳng các tầng Transformer rộng 100k vì chi phí, vậy họ đã dùng thủ thuật nào?
  • Ngay cả mô hình 7B của Code Llama cũng có vẻ đủ sức cạnh tranh với Codex, mô hình đứng sau Copilot
    https://ai.meta.com/blog/code-llama-large-language-model-cod...

  • Code Llama Python rất thú vị vì được tinh chỉnh riêng cho Python
    Tò mò liệu có thể tạo các LLM chuyên biệt cho từng lĩnh vực, như mô hình giỏi Rust nói chung, mô hình giỏi Linux nói chung, mô hình giỏi genomics nói chung, mô hình giỏi mô phỏng vật lý nói chung, rồi cho chúng trò chuyện với nhau để cùng giải quyết vấn đề hay không
    Có vẻ sẽ là một tương lai khá điên rồ, nơi máy móc thực sự làm việc

    • Cái đó có vẻ được gọi là mixture of experts (hỗn hợp chuyên gia), và nhiều người đoán GPT-4 cũng theo cách đó
      Tuy nhiên nhiều khả năng là dùng vài mô hình lớn hơn là dùng nhiều mô hình nhỏ
    • Nếu có đủ mã ví dụ tốt với giấy phép rộng rãi, có thể fine-tune LLM trên đó
      Vài tháng trước đã có một thử nghiệm tương tự cho script Godot và được cho là khá tốt: https://github.com/minosvasilias/godot-dodo
      Tôi nghĩ lý do chưa có nhiều thử nghiệm hơn là vì Llama gốc không giỏi lập trình lắm so với các điểm mạnh khác, còn những thứ như Starcoder thì tương đối bị lu mờ
    • Cảm giác như vừa thoáng thấy tương lai gần
      Nếu chưa biết, bạn nên tìm thử Society of Mind
    • Tôi muốn bắt đầu từ CodeLlama cho C và bắt đầu đối xử với những hệ thống kiểu này như trình biên dịch ngôn ngữ tự nhiên
      C đủ mức thấp, nhưng vào những khoảnh khắc hiếm hoi vẫn còn đọc được
  • Mô hình tốt nhất, Unnatural Code Llama, đã không được công bố
    Có lẽ khả năng cao là vì nó được huấn luyện bằng dữ liệu dựa trên GPT-4, có thể vi phạm điều khoản sử dụng của OpenAI
    Theo bài báo “Unnatural”[1], dữ liệu “unnatural” được tạo ra với sự trợ giúp của một LLM nào đó, và nếu có thể thì hẳn họ sẽ muốn dùng LLM tốt nhất
    [1] https://arxiv.org/pdf/2212.09689.pdf

    • Nếu nó chỉ được tinh chỉnh bằng 15k chỉ thị, thì thật may là có lẽ sớm thôi cộng đồng sẽ tạo ra một mô hình tương tự
  • TheBloke không đùa được đâu[1]
    Có vẻ các bản lượng tử hóa sẽ xuất hiện trong hôm nay, và tôi rất háo hức được thử mô hình 34B Python lượng tử hóa 4-bit có vẻ sẽ vừa khít trên 3090
    [1] https://huggingface.co/TheBloke/CodeLlama-13B-Python-fp16

    • Ollama đã hỗ trợ: ollama run codellama:7b-instruct
      https://ollama.ai/blog/run-code-llama-locally
      Nhiều mô hình hơn vẫn đang được đưa lên: https://ollama.ai/library/codellama
    • Tôi tò mò lượng tử hóa hay định dạng gguf mới cần mức hiệu năng CPU/GPU đến đâu
    • Nếu không muốn chạy cục bộ, tôi tự hỏi liệu có thể chạy nó ở đâu đó trên Hugging Face không
    • Tôi cũng tò mò liệu có thể lượng tử hóa thêm để chạy cục bộ trên laptop phổ thông của lập trình viên hay không
  • Muốn chạy Code Llama cục bộ thì có thể tải xuống và chạy bản lượng tử hóa 7B tham số bằng công cụ mã nguồn mở Ollama: https://github.com/jmorganca/ollama
    ollama run codellama "write a python function to add two numbers"
    Các mô hình dùng để hoàn thiện mã, mô hình Python và các mô hình với nhiều số lượng tham số khác nhau cũng sẽ sớm được bổ sung

  • Cửa sổ ngữ cảnh 100.000 token không tệ, nhưng tôi tò mò mô hình code tích hợp sẽ chọn ngữ cảnh nào khi xử lý codebase lớn hơn 100K token
    Tôi cũng tự hỏi liệu việc biết các công cụ như vậy sẽ được dùng rộng rãi và ngày càng phụ thuộc nhiều hơn có tạo ra những điểm mới cần cân nhắc khi lập trình hay không
    Liệu nên viết nhiều chú thích hơn hay ít hơn, nên viết mã ngắn hơn và khó đọc hơn để dùng ít token hơn, có cần thay đổi cấu trúc file hay quy ước đặt tên không; rốt cuộc, chúng ta phải thích nghi thế nào để tận dụng tối đa các công cụ này?

    • Điều đó trông hơi ngớ ngẩn
      Có thể làm mã bớt phụ thuộc ngữ cảnh và rút gọn để dùng ít token hơn, nhưng như vậy sẽ khiến cả con người lẫn mô hình ngôn ngữ bối rối hơn
      Ở mức cực đoan, nếu chỉ dùng hàm và biến một ký tự như i, j, k, mô hình sẽ không suy luận được gì và sẽ tạo ra những thứ nhảm nhí ngẫu nhiên
      Cách giải quyết là như ta vẫn làm khi quản lý độ phức tạp: phân rã công việc lớn thành các mô-đun hộp đen và API nhỏ hơn, che giấu phần triển khai tốn nhiều token và khiến nó không liên quan đến việc sử dụng
      Nếu đưa cho LLM chữ ký hàm, mô tả tốt và vài ví dụ sử dụng, nó có thể dùng hàm đó mà không cần biết phần triển khai
      Sự súc tích chỉ làm giảm khả năng xử lý mã của LLM chứ không giải quyết được vấn đề độ dài ngữ cảnh, và ngay cả trong trường hợp tốt nhất cũng không mở rộng được
      100k token là đủ nhiều, nên không cần làm những việc như vậy
    • Công cụ dành cho lập trình viên vốn đã ánh xạ toàn bộ codebase theo những cách hữu ích, như các symbol và cấu trúc lớp có sẵn trong ngữ cảnh hiện tại
      Có thể nén thông tin này theo cách dễ đưa cho LLM xem
      Ví dụ, để sinh phần triển khai của một method trong lớp C++, có thể đưa cho LLM một phiên bản nén của các file header mà trình biên dịch sẽ thấy khi biên dịch lớp đó
      Loại bỏ khoảng trắng và chú thích, rút gọn macro có thể tiết kiệm rất nhiều token
      Các header của thư viện chuẩn có khả năng cao là LLM đã biết rõ trong quá trình tinh chỉnh, nên có thể bỏ qua
      Một file C++ đã tiền xử lý thông thường, dù đã tối ưu ở mức nào đó, vẫn có thể chạm giới hạn 100K, nên chắc chắn cần middleware tinh lọc thêm trước khi chuyển cho LLM
    • LLM lập trình hữu ích hơn nhiều khi có chú thích mã và tên biến/hàm mang tính mô tả
      Mô hình đưa ra suy luận và gợi ý tốt hơn
      Với dữ liệu cũng tương tự: dữ liệu được gắn tag đúng cách và tên trường mang tính mô tả khiến câu trả lời của LLM hữu ích hơn nhiều
      Tôi thầm hy vọng sự phổ biến của các công cụ này cuối cùng sẽ khiến đồng nghiệp lập trình viên chịu chú thích mã và ngừng dùng tên biến ba ký tự
    • Trước đây tôi từng tạo một tiện ích mở rộng VS Code bọc GPT-4 để viết mã trực tiếp trong trình soạn thảo, và hiện vẫn đang dùng
      Cách chọn file đưa vào GPT-4 là dựa trên embedding
      Tôi lấy embedding của từng file và embedding tạo từ chỉ thị, rồi xử lý đơn giản để chọn các file có vẻ liên quan nhất
      Không hoàn hảo, nhưng với codebase cỡ trung thì phần lớn là đủ, còn với codebase rất lớn thì không phù hợp
      Vì triển khai này mà tôi bắt đầu làm file ngắn hơn và chuyển nội dung sang file khác
      Các file hơn 1.000 dòng là gánh nặng lớn vì ăn hết cửa sổ ngữ cảnh; với cửa sổ 100k thì sẽ đỡ hơn, nhưng tôi nghĩ vốn dĩ vẫn nên giữ file ngắn
      Cũng có những cách thông minh hơn như embedding từng hàm/lớp riêng lẻ thay vì cả file rồi chuyển vào, nên chắc sẽ sớm có ai đó làm ra thứ tốt hơn
      Khả năng cao là gần như không cần thay đổi pattern lập trình chỉ để tận dụng AI
    • Việc này có vẻ là phần của middleware
      Trình tiền xử lý cho LLM có thể làm việc gộp mã đã tách thành một file lớn, rút gọn chú thích và loại bỏ khoảng trắng
  • Copilot đến nay hoạt động tốt, nhưng giao diện là một hạn chế
    Nó có vẻ chỉ biết dự đoán đoạn văn bản tiếp theo
    Tôi tò mò không biết ai đang làm một AI viết mã có thể đề xuất refactoring như “những dòng này bị lặp, nên tách ra thành hàm” hay “cấu trúc này nếu đổi như thế này sẽ dễ dùng hơn”

    • Nên thử Cody
      Trên Cody.dev có thể tạo embedding cho toàn bộ repository, nên có thể có ngữ cảnh lớn hơn nhiều về codebase và vấn đề cần giải quyết
      Nhân tiện, tôi đã gia nhập Sourcegraph vài tuần trước
    • SourceGraph Cody và Copilot Chat đang đi theo hướng đó, nhưng vẫn còn ở giai đoạn đầu
      Tôi thấy hiện vẫn chưa có gì thật sự vững chắc
    • Có thể làm tất cả những việc này bằng Continue
      Chỉ cần highlight mã và yêu cầu; nó cũng hỗ trợ dùng Code Llama: https://continue.dev/docs/walkthroughs/codellama
    • Hai việc đó có thể làm được ngay cả khi không có AI
      IntelliJ IDEA đã sẵn sàng đề xuất cả hai ngay trên máy local
      Nó có thể tìm các khối mã trùng lặp lớn và tự động refactor thành hàm, đồng thời cũng có nhiều inspection đề xuất refactoring để làm mã rõ ràng hơn
    • Copilot gọi việc này là Code Brushes: https://githubnext.com/projects/code-brushes/
      Lần cuối tôi nghe thì nó còn ở beta và hoạt động không tốt
      Ngay cả trên trang ví dụ, brush “add types” cũng quá nghiêm ngặt vì ab bị đưa vào diện kiểm tra null, còn “fix simple bug” thì gần như chỉ là sửa lỗi gõ nhầm
  • Với tư cách là người mới hoàn toàn chưa từng tự chạy các mô hình như thế này, tôi tò mò cần phần cứng
    Tôi không tìm thấy rõ trong README
    Ý tưởng có thể dùng các mô hình này mà không phải upload mã nguồn lên một công ty công nghệ lớn thật sự rất hấp dẫn

    • Tôi đã chạy thử mọi biến thể của Llama 2 trên Intel MacBook Pro đời 2020 bằng Ollama, và cực kỳ dễ
      Chỉ cần cài app rồi chạy vài lệnh shell
      Có lẽ mô hình này cũng sẽ sớm được cung cấp, và khi đó có thể dùng cùng extension Continue cho VS Code
      Dù hơi chậm, nhưng swap có vẻ là một phương án thay thế đủ tốt ngay cả khi không có lượng RAM lớn cần thiết
      Ollama nói cần 32GB để chạy mô hình 13B, nhưng tôi đang chạy mô hình llama2:13b trên MBP 16GB
    • 34B nếu dùng lượng tử hóa (5–6 bit) thì có lẽ có thể chạy trên card đồ họa tiêu dùng 24GiB hoặc Mac 32GiB (chip M1/M2)
      7B thì gần như có thể chạy được trên cả một chiếc toaster thông minh
    • Nếu muốn chạy nhanh, 13B cần GPU 12GB (ví dụ 3060), còn 34B cần GPU 24GB (ví dụ 3090)
      Nếu không, suy luận CPU bằng llama.cpp có lẽ sẽ chạy được trên hầu hết máy móc