Hugging Face-ის ეკოსისტემაში Code Llama-ს ინტეგრაცია გამოცხადდა: პროგრამირების ახალი ეპოქა
Code Llama, Llama 2-ის საფუძველზე შექმნილი კოდზე სპეციალიზებული ხელოვნური ინტელექტის მოდელების ოჯახი, Hugging Face-ის ეკოსისტემაში ინტეგრირდა. ის პროგრამისტების პროდუქტიულობის გაზრდას ისახავს მიზნად კოდის შევსებით, დოკუმენტაციის გენერირებით და ერთეული ტესტების შექმნით. მოდელები ხელმისაწვდომია 7B, 13B და 34B პარამეტრის ვარიანტებში, მათ შორის Python-ის სპეციალისტი და ინსტრუქციებზე მორგებული ვერსიები, და მხარს უჭერენ 100,000-მდე ტოკენის კონტექსტურ ფანჯარას.
Code Llama არის Llama 2-ის უახლესი, ღია წვდომის მოდელების ოჯახი, რომელიც სპეციალიზებულია კოდის ამოცანებზე და მოხარულნი ვართ, რომ მის ინტეგრაციას Hugging Face-ის ეკოსისტემაში ვუშვებთ! Code Llama გამოვიდა იმავე ნებადართული საზოგადოებრივი ლიცენზიით, როგორითაც Llama 2 და ხელმისაწვდომია კომერციული გამოყენებისთვის.
დღეს ჩვენ მოხარულნი ვართ წარმოვადგინოთ: Code LLM-ები პროგრამული ინჟინრებისთვის ამაღელვებელი განვითარებაა, რადგან მათ შეუძლიათ გაზარდონ პროდუქტიულობა IDE-ებში კოდის ავტომატური შევსებით, იზრუნონ განმეორებად ან შემაწუხებელ ამოცანებზე, როგორიცაა docstrings-ის წერა, ან შექმნან ერთეული ტესტები.
Code Llama-ს გამოშვება წარმოადგენს 7, 13 და 34 მილიარდი პარამეტრის მქონე მოდელების ოჯახს. საბაზო მოდელები ინიციალიზებულია Llama 2-დან და შემდეგ გაწვრთნილია 500 მილიარდი კოდის მონაცემის ტოკენზე. Meta-მ დამატებით დახვეწა ეს საბაზო მოდელები ორი სხვადასხვა ვარიანტისთვის: Python-ის სპეციალისტი (დამატებით 100 მილიარდი ტოკენი) და ინსტრუქციებზე დახვეწილი ვერსია, რომელსაც შეუძლია ბუნებრივი ენის ინსტრუქციების გაგება.
მოდელები აჩვენებენ უახლესი დონის შესრულებას Python-ში, C++-ში, Java-ში, PHP-ში, C#-ში, TypeScript-ში და Bash-ში. 7B და 13B საბაზო და ინსტრუქციული ვარიანტები მხარს უჭერენ შევსებას მიმდებარე კონტენტის საფუძველზე, რაც მათ იდეალურს ხდის კოდის ასისტენტებად გამოსაყენებლად. Code Llama გაწვრთნილი იყო 16k კონტექსტურ ფანჯარაზე. გარდა ამისა, მოდელის სამივე ვარიანტს ჩაუტარდა დამატებითი გრძელი კონტექსტის დახვეწა, რაც მათ საშუალებას აძლევს მართონ კონტექსტური ფანჯარა 100,000 ტოკენამდე.
Llama 2-ის 4k კონტექსტური ფანჯრის გაზრდა Code Llama-ს 16k-მდე (რომელსაც შეუძლია 100k-მდე ექსტრაპოლაცია) შესაძლებელი გახდა RoPE-ის სკალირების უახლესი განვითარების წყალობით. საზოგადოებამ აღმოაჩინა, რომ Llama-ს პოზიციური ემბედინგები შეიძლება ინტერპოლირებული იყოს წრფივად ან სიხშირულ დომენში, რაც აადვილებს უფრო დიდ კონტექსტურ ფანჯარაზე გადასვლას დამატებითი დახვეწის გზით. Code Llama-ს შემთხვევაში, სიხშირის დომენის სკალირება ხორციელდება გარკვეული თავისუფლებით: დახვეწის სიგრძე არის მასშტაბირებული წინასწარ გაწვრთნილი სიგრძის ნაწილი, რაც მოდელს ანიჭებს ძლიერ ექსტრაპოლაციის შესაძლებლობებს.
ყველა მოდელი თავდაპირველად გაწვრთნილი იყო 500 მილიარდი ტოკენით საჯაროდ ხელმისაწვდომი კოდის თითქმის დედუპლიცირებულ მონაცემთა ნაკრებზე. მონაცემთა ნაკრები ასევე შეიცავს ბუნებრივი ენის ზოგიერთ მონაცემთა ნაკრებს, როგორიცაა კოდზე დისკუსიები და კოდის ფრაგმენტები. სამწუხაროდ, მონაცემთა ნაკრების შესახებ მეტი ინფორმაცია არ არის ხელმისაწვდომი.
ინსტრუქციული მოდელისთვის მათ გამოიყენეს ორი მონაცემთა ნაკრები: Llama 2 Chat-ისთვის შეგროვებული ინსტრუქციების დასახვეწი მონაცემთა ნაკრები და self-instruct მონაცემთა ნაკრები. self-instruct მონაცემთა ნაკრები შეიქმნა Llama 2-ის გამოყენებით გასაუბრების პროგრამირების კითხვების შესაქმნელად, შემდეგ კი Code Llama-ს გამოყენებით ერთეული ტესტებისა და გადაწყვეტილებების გენერირებისთვის, რომლებიც მოგვიანებით ფასდება ტესტების გაშვებით.
Code Llama ხელმისაწვდომია Hugging Face-ის ეკოსისტემაში, transformers-ის 4.33 ვერსიიდან დაწყებული. შეგიძლიათ მარტივად გამოსცადოთ Code Llama მოდელი (13 მილიარდი პარამეტრი!) ამ Space-ში ან ქვემოთ ჩაშენებულ playground-ში: (ლინკი და ინფორმაცია დემოზე აქ უნდა იყოს, მაგრამ ორიგინალ ტექსტში არ არის მითითებული).
ეს playground იყენებს Hugging Face-ის Text Generation Inference-ს, იმავე ტექნოლოგიას, რომელიც ამუშავებს HuggingChat-ს და ჩვენ მეტ ინფორმაციას მომდევნო სექციებში გაგიზიარებთ. თუ გსურთ უფრო დიდი, ინსტრუქციებზე მორგებული 34B მოდელის გამოცდა, ის ახლა ხელმისაწვდომია HuggingChat-ზე! შეგიძლიათ მისი გამოცდა აქ: hf.co/chat. დარწმუნდით, რომ მიუთითებთ Code Llama მოდელს. ასევე შეგიძლიათ შეამოწმოთ ეს ჩატზე დაფუძნებული დემო და დააკოპიროთ იგი თქვენი გამოყენებისთვის – ის სრულად ავტონომიურია, ასე რომ შეგიძლიათ შეისწავლოთ საწყისი კოდი და მოარგოთ ის თქვენი სურვილისამებრ!
transformers 4.33-დან დაწყებული, შეგიძლიათ გამოიყენოთ Code Llama და ისარგებლოთ HF ეკოსისტემის ყველა ხელსაწყოთი.
Code Llama-ს მსგავსი მოდელების გამოყენებისას მნიშვნელოვანია მოდელების მონაცემთა ტიპების გათვალისწინება. როგორც ზემოთ აღინიშნა, transformers იტვირთება წონებს float32-ის გამოყენებით (მიუხედავად იმისა, თუ რა სიზუსტით ინახება მოდელები), ამიტომ მნიშვნელოვანია სასურველი dtype-ის მითითება მოდელების ჩატვირთვისას. თუ გსურთ Code Llama-ს დახვეწა, რეკომენდებულია bfloat16-ის გამოყენება, რადგან float16-ის გამოყენებამ შეიძლება გამოიწვიოს გადავსება და NaNs. თუ inference-ს აწარმოებთ, გირჩევთ გამოიყენოთ float16, რადგან bfloat16 შეიძლება იყოს ნელი.
7B და 13B მოდელები შეიძლება გამოყენებულ იქნას ტექსტის/კოდის შევსებისთვის ან infilling-ისთვის. შემდეგი კოდის ფრაგმენტი იყენებს pipeline ინტერფეისს ტექსტის შევსების დემონსტრირებისთვის. ის მუშაობს Colab-ის უფასო ვერსიაზე, იმ პირობით, რომ აირჩევთ GPU runtime-ს. ამან შეიძლება გამოიწვიოს შემდეგი სახის გამომავალი: Code Llama სპეციალიზებულია კოდის გაგებაში, მაგრამ ის თავისთავად ენობრივი მოდელია. შეგიძლიათ გამოიყენოთ იგივე გენერაციის სტრატეგია კომენტარების ან ზოგადი ტექსტის ავტომატურად შესავსებად.
ეს არის სპეციალიზებული ამოცანა, რომელიც დამახასიათებელია კოდის მოდელებისთვის. მოდელი გაწვრთნილია იმ კოდის (კომენტარების ჩათვლით) გენერირებისთვის, რომელიც საუკეთესოდ შეესაბამება არსებულ პრეფიქსს და სუფიქსს. ეს არის სტრატეგია, რომელსაც ტიპიურად იყენებენ კოდის ასისტენტები: მათ სთხოვენ შეავსონ მიმდინარე კურსორის პოზიცია, იმ კონტენტის გათვალისწინებით, რომელიც ჩნდება მის წინ და მის შემდეგ. ეს ამოცანა ხელმისაწვდომია 7B და 13B მოდელების საბაზო და ინსტრუქციულ ვარიანტებში. ის არ არის ხელმისაწვდომი 34B მოდელებისთვის ან Python ვერსიებისთვის. ამ ფუნქციის წარმატებით გამოსაყენებლად, თქვენ უნდა მიაქციოთ ყურადღება იმ ფორმატს, რომელიც გამოიყენებოდა მოდელის ამ ამოცანისთვის მოსამზადებლად, რადგან ის იყენებს სპეციალურ გამყოფებს მოთხოვნის სხვადასხვა ნაწილის იდენტიფიცირებისთვის.
თეგები:
#ხელოვნური ინტელექტი
#llm
#meta
#დეველოპმენტი
#პროგრამირება
#hugging face
#llama 2
#code llama
#კოდის ასისტენტი
წყარო: huggingface.co
AI-ით გადამუშავებული