როგორ შევქმნათ მობილური აპლიკაცია LLM მოდელებთან ლოკალური ჩეთისთვის React Native-ის გამოყენებით
ეს სახელმძღვანელო დეტალურად აღწერს, თუ როგორ უნდა შექმნათ მობილური აპლიკაცია React Native-ის გამოყენებით, რომელიც საშუალებას მოგცემთ ლოკალურად ესაუბროთ დიდ ენობრივ მოდელებს (LLM). ის გვიჩვენებს, როგორ გადმოწეროთ LLM-ები Hugging Face ჰაბიდან და გაუშვათ ისინი უშუალოდ თქვენს მოწყობილობაზე, llama.rn-ის მეშვეობით GGUF ფაილების ეფექტურად ჩატვირთვით. სტატია მოიცავს გარემოს მომზადებას, მოდელების შერჩევას, პროექტის დაყენებას და აპლიკაციის თავდაპირველ კოდირებას, უზრუნველყოფს რა კონფიდენციალურობასა და მარტ
ამ სტატიაში წარმოგიდგენთ დეტალურ სახელმძღვანელოს, თუ როგორ შევქმნათ მობილური აპლიკაცია, რომელიც საშუალებას მოგცემთ ადგილობრივად ესაუბროთ ამ მძლავრ დიდ ენობრივ მოდელებს (LLM). აღნიშნული გაკვეთილის სრული კოდი ხელმისაწვდომია ჩვენს EdgeLLM რეპოზიტორიუმში. თუ ოდესმე ღია კოდის პროექტების სირთულემ დაგაბნიათ, ნუ შეშინდებით! Pocket Pal აპლიკაციით შთაგონებულნი, დაგეხმარებით შექმნათ მარტივი React Native აპლიკაცია, რომელიც გადმოწერს LLM-ებს Hugging Face ჰაბიდან, რითაც უზრუნველყოფთ სრულ კონფიდენციალურობას და მათ მოწყობილობაზე ადგილობრივ გაშვებას. ჩვენ გამოვიყენებთ llama.rn-ს, llama.cpp-ის ბაინდინგს, GGUF ფაილების ეფექტურად ჩასატვირთად! ეს გაკვეთილი განკუთვნილია ყველასთვის, ვინც... ამ სახელმძღვანელოს დასრულების შემდეგ, თქვენ გექნებათ სრულად ფუნქციონალური აპლიკაცია, რომელიც საშუალებას მოგცემთ ურთიერთობა გქონდეთ თქვენს საყვარელ მოდელებთან.
სანამ ჩვენი აპლიკაციის შექმნას დავიწყებთ, განვიხილოთ, რომელი მოდელები მუშაობს კარგად მობილურ მოწყობილობებზე და რა უნდა გავითვალისწინოთ მათი არჩევისას. მობილურ მოწყობილობებზე LLM-ების გაშვებისას, ზომას მნიშვნელოვანი დატვირთვა აქვს. GGUF მოდელების ჩამოტვირთვისას, თქვენ შეხვდებით სხვადასხვა კვანტიზაციის ფორმატს. მათი გაგება დაგეხმარებათ მოდელის ზომასა და წარმადობას შორის სწორი ბალანსის არჩევაში. ქვემოთ მოცემულია რამდენიმე მოდელი, რომელიც კარგად მუშაობს მობილურ მოწყობილობებზე. დამატებითი GGUF მოდელების მოსაძებნად Hugging Face-ზე... მოდელის არჩევისას, გაითვალისწინეთ როგორც პარამეტრების რაოდენობა, ასევე კვანტიზაციის დონე. მაგალითად, 7B მოდელი Q2_K კვანტიზაციით შესაძლოა უკეთ მუშაობდეს, ვიდრე 2B მოდელი Q8_0 კვანტიზაციით. ამიტომ, თუ მცირე მოდელი კომფორტულად ეტევა თქვენს მოწყობილობაზე, შეეცადეთ გამოიყენოთ უფრო დიდი, კვანტიზებული მოდელი, რადგან მას შესაძლოა უკეთესი წარმადობა ჰქონდეს.
React Native არის პოპულარული ფრეიმვორკი მობილური აპლიკაციების შესაქმნელად JavaScript-ისა და React-ის გამოყენებით. ის დეველოპერებს საშუალებას აძლევს შექმნან აპლიკაციები, რომლებიც მუშაობს როგორც Android, ასევე iOS პლატფორმებზე, ამასთან ინარჩუნებენ კოდის მნიშვნელოვან ნაწილს საერთოდ, რაც აჩქარებს განვითარების პროცესს და ამცირებს მოვლა-პატრონობის ძალისხმევას.
სანამ React Native-ით კოდირებას დაიწყებთ, საჭიროა სწორად მოამზადოთ თქვენი სამუშაო გარემო. **Node.js**: Node.js არის JavaScript runtime, რომელიც საშუალებას გაძლევთ გაუშვათ JavaScript კოდი. ის აუცილებელია პაკეტებისა და დამოკიდებულებების სამართავად თქვენს React Native პროექტში. მისი გადმოწერა შეგიძლიათ Node.js-ის ოფიციალური ვებგვერდიდან. **react-native-community/cli**: ეს ბრძანება აყენებს React Native-ის ბრძანების ხაზის ინტერფეისს (CLI), რომელიც უზრუნველყოფს ინსტრუმენტებს თქვენი React Native პროექტების შესაქმნელად, ასაწყობად და სამართავად. მის დასაყენებლად გაუშვით შემდეგი ბრძანება:
აპლიკაციის გაშვებისთვის განვითარების ეტაპზე, დაგჭირდებათ ემულატორი ან სიმულატორი. თუ იყენებთ macOS-ს: თუ იყენებთ Windows-ს ან Linux-ს: თუ გაინტერესებთ განსხვავება სიმულატორებსა და ემულატორებს შორის, შეგიძლიათ წაიკითხოთ ეს სტატია: Difference between Emulator and Simulator, თუმცა მარტივად რომ ვთქვათ, ემულატორები იმეორებენ როგორც აპარატურას, ასევე პროგრამულ უზრუნველყოფას, ხოლო სიმულატორები მხოლოდ პროგრამულ უზრუნველყოფას.
Android Studio-ს დასაყენებლად მიჰყევით Expo-ს ამ შესანიშნავ გაკვეთილს: Android Studio Emulator Guide. დავიწყოთ პროექტი! ამ პროექტის სრულ კოდს იპოვით EdgeLLM რეპოზიტორიუმში, სადაც ორი საქაღალდეა: პირველ რიგში, აპლიკაცია უნდა დავიწყოთ @react-native-community/cli-ის გამოყენებით. აპლიკაციის საქაღალდეები ორგანიზებულია შემდეგნაირად: android/ ios/ node_modules/ App.tsx index.js. პროექტის გასაშვებად და იმის სანახავად, თუ როგორ გამოიყურება ის თქვენს ვირტუალურ მოწყობილობაზე, მიჰყევით შემდეგ ნაბიჯებს: **რეპოზიტორიუმის კლონირება:**... **პროექტის დირექტორიაში გადასვლა:**... **დამოკიდებულებების დაყენება:**... **iOS საქაღალდეში გადასვლა და დაყენება:**... **Metro Bundler-ის გაშვება:** პროექტის საქაღალდეში (EdgeLLMPlus ან EdgeLLMBasic) გაუშვით შემდეგი ბრძანება:... **აპლიკაციის გაშვება iOS ან Android სიმულატორზე:** გახსენით კიდევ ერთი ტერმინალი და გაუშვით:
ეს ააწყობს და გაუშვებს აპლიკაციას თქვენს ემულატორზე/სიმულატორზე, რათა შეამოწმოთ პროექტი კოდირების დაწყებამდე. React Native აპლიკაციის გასაშვებად საჭიროა ემულატორი/სიმულატორი ან ფიზიკური მოწყობილობა. ჩვენ ყურადღებას გავამახვილებთ ემულატორის გამოყენებაზე, რადგან ის უზრუნველყოფს უფრო გამარტივებულ განვითარების გამოცდილებას თქვენს კოდის რედაქტორთან და გამართვის ხელსაწყოებთან ერთად. დასაწყისისთვის, უნდა დავრწმუნდეთ, რომ ჩვენი განვითარების გარემო მზადაა. უნდა ვიყოთ პროექტის საქაღალდეში და გავუშვათ შემდეგი ბრძანებები: ახალ ტერმინალში გავუშვებთ აპლიკაციას ჩვენს მიერ არჩეულ პლატფორმაზე: ამან უნდა ააწყოს და გაუშვას აპლიკაცია თქვენს ემულატორზე/სიმულატორზე.
პირველ რიგში, დავაყენოთ საჭირო პაკეტები. ჩვენი მიზანია მოდელების ჩატვირთვა Hugging Face ჰაბიდან და მათი ლოკალურად გაშვება. ამის მისაღწევად, უნდა დავაყენოთ: მოდით, გავუშვათ აპლიკაცია ჩვენს ემულატორზე/სიმულატორზე, როგორც ადრე ვაჩვენეთ, რათა დავიწყოთ განვითარება. დავიწყებთ App.tsx ფაილიდან ყველაფრის წაშლით და ცარიელი კოდის სტრუქტურის შექმნით: App ფუნქციის return სტეიტმენტის შიგნით განვსაზღვრავთ UI-ს, ხოლო გარეთ განვსაზღვრავთ ლოგიკას, თუმცა მთელი კოდი App ფუნქციის შიგნით იქნება. ჩვენ გვექნება ასეთი ეკრანი: ტექსტი „Hello World“ არ ჩანს სწორად, რადგან ვიყენებთ მარტივ View კომპონენტს. ტექსტის სწორად საჩვენებლად გვჭირდება SafeAreaView კომპონენტის გამოყენება, რასაც შემდეგ სექციებში განვიხილავთ. ახლა დავფიქრდეთ, რას უნდა აკონტროლებდეს ჩვენი აპლიკაცია ამ ეტაპზე: ჩეთთან დაკავშირებული: მოდელთან დაკავშირებული:
თეგები:
#ხელოვნური ინტელექტი
#llm
#მობილური აპლიკაცია
#hugging face
#განვითარება
#gguf
#react native
#ლოკალური ჩეთი
#mobile ai
წყარო: huggingface.co
AI-ით გადამუშავებული