ახალი მეთოდი სტატიკური ემბედინგის მოდელების საწვრთნელად: 100-400-ჯერ უფრო სწრაფი CPU-ზე
ეს ბლოგპოსტი წარმოგიდგენთ მეთოდს სტატიკური ემბედინგის მოდელების საწვრთნელად, რომლებიც CPU-ზე 100-400-ჯერ უფრო სწრაფად მუშაობენ, ვიდრე უახლესი მოდელები, ხარისხის უმეტესი ნაწილის შენარჩუნებით. ეს ხსნის უამრავ საინტერესო გამოყენების შესაძლებლობას, მათ შორის მოწყობილობაზე და ბრაუზერში გაშვებას, Edge Computing-ს, დაბალენერგეტიკულ და ჩაშენებულ აპლიკაციებს. ჩვენ გამოვიყენეთ ეს მიდგომა ორი უკიდურესად ეფექტური ემბედინგის მოდელის მოსამზადებლად: sentence-transformers/static-retrieval-mrl-en-v1 ინგლისური ინ
ეს ბლოგპოსტი წარმოგიდგენთ მეთოდს სტატიკური ემბედინგის მოდელების საწვრთნელად, რომლებიც CPU-ზე 100-დან 400-ჯერ უფრო სწრაფად მუშაობენ, ვიდრე უახლესი ემბედინგის მოდელები, ამასთან ინარჩუნებენ ხარისხის უმეტეს ნაწილს. ეს ხსნის უამრავ საინტერესო გამოყენების შესაძლებლობას, მათ შორის მოწყობილობაზე და ბრაუზერში გაშვებას, Edge Computing-ს, დაბალენერგეტიკულ და ჩაშენებულ აპლიკაციებს. ჩვენ გამოვიყენეთ ეს მიდგომა ორი უკიდურესად ეფექტური ემბედინგის მოდელის მოსამზადებლად: sentence-transformers/static-retrieval-mrl-en-v1 ინგლისური ინფორმაციის მოსაძიებლად (English Retrieval) და sentence-transformers/static-similarity-mrl-multilingual-v1 მრავალენოვანი მსგავსების ამოცანებისთვის (Multilingual Similarity). ეს მოდელები 100-დან 400-ჯერ უფრო სწრაფია CPU-ზე, ვიდრე მათი გავრცელებული ანალოგები, როგორიცაა all-mpnet-base-v2 და multilingual-e5-small, ამასთან აღწევენ მათი მუშაობის მინიმუმ 85%-ს სხვადასხვა ბენჩმარკებზე. დღეს ჩვენ ვუშვებთ: ჩვენ ასევე განვიხილავთ პოტენციურ გაუმჯობესებებს და მოვუწოდებთ საზოგადოებას, გამოიკვლიოს ისინი და განავითაროს ეს ნაშრომი! ამ მოდელების გამოყენება ძალიან მარტივია, ნორმალური Sentence Transformers-ის მუშაობის იდენტურია: ინგლისური ინფორმაციის მოძიება, მრავალენოვანი მსგავსება. ემბედინგები არის ბუნებრივი ენის დამუშავების ერთ-ერთი ყველაზე მრავალმხრივი ინსტრუმენტი, რომელიც პრაქტიკოსებს საშუალებას აძლევს, გადაჭრან მრავალი სახის ამოცანა.
არსებითად, ემბედინგი არის უფრო რთული ობიექტის რიცხვითი წარმოდგენა, როგორიცაა ტექსტი, სურათები, აუდიო და ა.შ. ემბედინგის მოდელი ყოველთვის აწარმოებს ერთი და იგივე ფიქსირებული ზომის ემბედინგებს. შემდეგ შეგიძლიათ გამოთვალოთ რთული ობიექტების მსგავსება შესაბამისი ემბედინგების მსგავსების გამოთვლით. ამას აქვს უამრავი გამოყენების შემთხვევა და წარმოადგენს ხერხემალს რეკომენდაციის სისტემებისთვის, ინფორმაციის მოძიებისთვის, ანომალიების აღმოჩენისთვის, One-shot ან Few-shot სწავლისთვის, მსგავსების ძიებისთვის, კლასტერიზაციისთვის, პარაფრაზის აღმოჩენისთვის, კლასიფიკაციისთვის და მრავალი სხვა ამოცანისთვის.
დღევანდელი მრავალი ემბედინგის მოდელი შედგება რამდენიმე კონვერტაციის ეტაპისგან. ამ ეტაპების მიყოლას „ინფერენცია“ (inference) ეწოდება. Tokenizer და Pooler პასუხისმგებელნი არიან Encoder-ისთვის წინასწარ და შემდგომ დამუშავებაზე, შესაბამისად. პირველი ტექსტებს ყოფს ტოკენებად (ანუ სიტყვებად ან ქვე-სიტყვებად), რომლებიც Encoder-ს შეუძლია გაიგოს, ხოლო მეორე აერთიანებს ყველა ტოკენის ემბედინგს ერთ ემბედინგად მთლიანი ტექსტისთვის. ამ მიმდინარეობის ფარგლებში, Encoder ხშირად არის ენის მოდელი ყურადღების (attention) ფენებით, რაც საშუალებას აძლევს თითოეულ ტოკენს გამოითვალოს სხვა ტოკენების კონტექსტში. მაგალითად, „bank“ შეიძლება იყოს ტოკენი, მაგრამ ამ ტოკენის ემბედინგი სავარაუდოდ განსხვავებული იქნება, თუ ტექსტი ეხება „მდინარის ნაპირს“ (river bank) ან ფინანსურ ინსტიტუტს. დიდი Encoder მოდელები მრავალი ყურადღების ფენით ეფექტური იქნება კონტექსტის გამოყენებაში სასარგებლო ემბედინგების შესაქმნელად, მაგრამ ისინი ამას აკეთებენ ნელი ინფერენციის მაღალი ფასად. აღსანიშნავია, რომ მიმდინარეობაში Encoder-ის ეტაპი ზოგადად პასუხისმგებელია გამოთვლითი დროის თითქმის მთელ ნაწილზე.
სტატიკური ემბედინგები (Static Embeddings) ეხება Encoder მოდელების ჯგუფს, რომლებიც არ იყენებენ დიდ და ნელ ყურადღებაზე დაფუძნებულ მოდელებს, არამედ ეყრდნობიან წინასწარ გამოთვლილ ტოკენის ემბედინგებს. სტატიკური ემბედინგები გამოიყენებოდა ტრანსფორმატორის არქიტექტურის შემუშავებამდე წლებით ადრე. გავრცელებული მაგალითები მოიცავს GLoVe-სა და word2vec-ს. ბოლო დროს, Model2Vec გამოიყენება წინასწარ გაწვრთნილი ემბედინგის მოდელების სტატიკურ ემბედინგის მოდელებად გადასაყვანად. სტატიკური ემბედინგებისთვის, Encoder-ის ეტაპი ისეთივე მარტივია, როგორც ლექსიკონის ძიება: მოცემული ტოკენისთვის, დააბრუნეთ წინასწარ გამოთვლილი ტოკენის ემბედინგი. შესაბამისად, ინფერენცია მოულოდნელად აღარ არის შეფერხებული Encoder-ის ფაზით, რაც იწვევს სიჩქარის რამდენიმე რიგით გაუმჯობესებას. ეს ბლოგპოსტი აჩვენებს, რომ ხარისხზე გავლენა შეიძლება საკმაოდ მცირე იყოს!
ჩვენ მიზნად დავისახეთ სტატიკური ემბედინგის მოდელების ხელახლა განხილვა, მათი საწვრთნელად თანამედროვე ტექნიკის გამოყენებით. ჩვენი მოგების უმეტესი ნაწილი მოდის კონტრასტული სწავლის (Contrastive Learning) დანაკარგის ფუნქციის გამოყენებით, რასაც მალე ავხსნით. სურვილისამებრ, შეგვიძლია მივიღოთ დამატებითი სიჩქარის გაუმჯობესება მატრიოშკას წარმოდგენის სწავლის (Matryoshka Representation Learning) გამოყენებით, რაც შესაძლებელს ხდის ემბედინგის ვექტორების შემოკლებული ვერსიების გამოყენებას. ჩვენ გამოვიყენებთ Sentence Transformers ბიბლიოთეკას საწვრთნელად. ამ ბიბლიოთეკის ემბედინგის მოდელების საწვრთნელად გამოყენების უფრო ზოგადი მიმოხილვისთვის, გაითვალისწინეთ ბლოგპოსტის „Training and Finetuning Embedding Models with Sentence Transformers v3“ ან Sentence Transformers Training Overview დოკუმენტაციის წაკითხვა.
ამ ხელახლა წარმოდგენილი სტატიკური ემბედინგების მიზანია ექსპერიმენტების ჩატარება თანამედროვე ემბედინგის მოდელის დახვეწის ტექნიკებით ამ მაღალეფექტურ ემბედინგის მოდელებზე. კერძოდ, GLoVe-სა და word2vec-ისგან განსხვავებით, ჩვენ გამოვიყენებთ: კონტრასტულ სწავლებას (Contrastive Learning): მანქანური სწავლის უმეტესი ნაწილის დროს, თქვენ იღებთ შეყვანას $X$ და ელოდებით გამოსავალს $Y$, შემდეგ კი წვრთნით მოდელს ისე, რომ $X$-ის მოდელში გატარებისას მივიღოთ $Y$-თან ახლოს მყოფი რამ. ემბედინგის მოდელებისთვის ჩვენ არ გვაქვს $Y$: წინასწარ არ ვიცით, როგორი იქნებოდა კარგი ემბედინგი. ამის ნაცვლად, კონტრასტული სწავლებისას, ჩვენ გვაქვს მრავალი შეყვანა $X_1$ და $X_2$ და მსგავსება. ჩვენ ვატარებთ ორივე შეყვანას მოდელში, რის შემდეგაც შეგვიძლია შევადაროთ ორი ემბედინგი, რის შედეგადაც მივიღებთ პროგნოზირებულ მსგავსებას. შემდეგ შეგვიძლია ემბედინგები უფრო დავაშოროთ ერთმანეთს, თუ ჭეშმარიტი მსგავსება დაბალია, ან დავაახლოოთ ემბედინგები ერთმანეთთან, თუ...
თეგები:
#ხელოვნური ინტელექტი
#მანქანური სწავლება
#ბუნებრივი ენის დამუშავება
#sentence transformers
#ინფერენცია
#კონტრასტული სწავლება
#სტატიკური ემბედინგები
#cpu სიჩქარე
#edge computing
#ჩაშენებული აპლიკაციები
წყარო: huggingface.co
AI-ით გადამუშავებული
მსგავსი სტატიები
ხელოვნური ინტელექტი
Anthropic-ის Claude-ის აღზევება Apple App Store-ის რეიტინგებში პენტაგონთან მოლაპარაკებების ფონზე
ხელოვნური ინტელექტი
ტრამპის ადმინისტრაცია Anthropic-ს სანქციებს უწესებს ხელოვნური ინტელექტის გამოყენებაზე უარის გამო: ექსპერტი ინდუსტრიის უსაფრთხოების ხარვეზებზე საუბრობს
ხელოვნური ინტელექტი