И тъй като не съм пускал никакви "уроци" пък имам такава категория, то прецених, че е време и за такъв тип публикация.
От сега искам да поясня, че не съм експерт в областта, но тъй като темата ми е доста интересна и понаучих това-онова, прецених, че бих могъл да помогна на някой новобранец.
Какво е локален Голям езиков модел
Сега, надали вече има човек, който да не се е сблъскал или поне чувал за ChatGPT.
ChatGPT е точно това - Large Language Model (LLM).
За да комуникирате с него трябва да посетите уеб-сайта на OpenAI предназначен за тази цел (https://chatgpt.com/).
Всичко каквото напишете там се обработва от сървърите и моделите на OpenAI и се складира в тяхна база данни.
Локалните LLM са много подобни на ChatGPT и се базират на същата технология.
Разликата е в това, че вместо да ги използвате чрез услуга предоставена Ви от трета страна, то ги сваляте на личния си компютър и ги използвате офлайн (без необходимост от интернет връзка).
Какви са плюсовете и минусите на локалните модели
На първо четене изглеждаше страхотно - сваляте си модела и си го ползвате когато и колкото искате без ограничение, нали? :)
Е, за съжаление нещата никога не са толкова прости.
Ще изброя част от положителните и отрицателните страни на това да използвате Local LLM пред ChatGPT, Claude и т.н.
Позитиви:
- Можете да го използвате напълно офлайн без никакви ограничения
- Не зависите от това сървърите на OpenAI да работят, за да можете да го ползвате
- Кореспонденциите са наистина лични и никой освен Вас няма достъп до тях
- Съществуват нецензурирани модели, с които можете да си пишете за абсолютно всичко
Негативи:
- Излиза скъпо. Използването на локален голям езиков модел с повече параметри изисква мощен хардуер, като цената му може да възлезе на няколко десетки хиляди лева
- Повечето модели с по-малко параметри са доста по-"глупави" дори от безплатните такива на OpenAI
Какво представляват тези параметри
Няколко пъти споменах думата "параметри", нали?
Разнообразието при локалните големи езикови модели е голямо.
Част от най-популярните в момента такива са:
- Llama, който се разработва от Meta
- Qwen (Alibaba)
- Gemma (Google)
- Phi (Microsoft)
- Mistral
Всеки един от тези модели си има и най-различни разновидности.
Една версия на даден модел може да идва в различни варианти по брой параметри.
Нека вземем за пример Llama 3. Моделът може да бъде изтеглен с 1B, 3B, 8B, 70B, 405B параметри, като "B" е Billion (милиард).
Или с други думи - 3B означава, че сваляте версия на модела, който е трениран с 3 милиарда параметъра. Може би вече сами се досещате, че с колкото повече параметри е трениран даден модел, толкова по–"умен" е той.
По-добре ви разбира, по-адекватни и смислени отговори бихте получавали от него, толкова по-добра работа би ви свършил като цяло.
Тук обаче има едно голямо НО. Колкото по-голям модел свалите, с толкова по-сериозен хардуер трябва да разполагате.
Аз примерно притежавам видео карта RTX 3070 8GB. С нея комфортно мога да използвам модели с до около 10 милиарда параметри. Модели с повече параметри или работят доста бавно, или изобщо не работят.
Какво е Quantization
Има още нещо, което ще забележите ако започнете да разглеждате различните модели, а именно така наречената Quantization.
LLM моделите в своята същина са изградени от множество вектори. Представете си го много числа, числа с плаваща запетая.
Всяка една дума, сричка, буква, знак и т.н. е представена като такова число. Когато моделът трябва да избере някой от тях, то той се води по тези числа.
Всяко от тези числа има много цифри след плаващата запетая. Quantization съкращава тези числа (изрязва част от цифрите след плаващата запетая), като прави модела по-малък.
Колкото по-ниска е quantization, толкова повече цифри са изрязани. Най-често те се делят на Q2, Q3, Q4, Q5, Q6, Q8 и т.н. Можете да ги намерите в различни разновидности.
При Q2 например, дадения модел е силно "олекотен" или по-скоро "орязан". С други думи изисква много по-малко ресурси, за да може да работи.
Имайте в предвид обаче, че колкото по-ниска е quantization, толкова по-"глупав" става модела. Не се препоръчва да се използва quantization под 4, тъй като качеството на модела пада драстично.
Аз лично ако ползвам модел с по-малко параметри, за който знам, че компютъра ми е достатъчно силен, че да няма проблем с него го свалям с Q6 или повече, ако пък съм на ръба слизам до Q4.
Ако дори при Q4 не успявам да го подкарам с достатъчна производителност, то просто търся друг модел или се насочвам към по-малко параметри.
Каква е разликата между различните локални LLM
Вече ви изброих, че имаме множество локални големи езикови модели. Разликата между тях е, че се разработват от различни компании.
Различните модели имат различни сили и слабости, някои от тях се справят по-добре творчески задачи, други с точни науки.
Нови версии на тези модели излизат почти ежедневно. Като производителността им постоянно се променя, така че е невъзможно да се каже - "моделът X е най-добър".
Прави ми впечатление, че разработчиците са се фокусирали в момента да правят моделите с по-малко параметри, но по-умни.
Примерно модели, които са излезли преди месеци с 70B и нагоре параметри, днес модели с около 30 милиарда успяват да преборят.
Един от най-популярните уеб-сайтове, където можете да разгледате различни модели е huggingface.co.
Там ще намерите модели, които имат различно предназначение: някои могат да възпроизведат глас, други да генерират изображения, трети да създадат текст на база изображение и т.н.
Какъв всъщност хардуер ви трябва
Малко по-нагоре ви споменах с каква видео карта съм в момента, защото що се касае до AI, то със сигурност видео картата е пред предпочитане пред процесора, като Nvidia в момента са лидери в това отношение със своята CUDA технология.
Като RAM-та или по-скоро VRAM са изключително важни. Колкото повече, толкова по-добре. Точно за това и обмислям да upgrade-на на RTX 3090, тъй като идва с 3 пъти повече VRAM от сегашната ми.
Цялата идея е да можете да заредите целия модел във вашата VRAM, като по този начин скоростта на работа е най-оптимална. В момента, в който VRAM не ви е достатъчен и се наложи част от модела да бъде зареден на RAM то производителността драстично пада.
В момента локални модели, които биха могли да се сравняват до някъде с качеството на ChatGPT са такива с поне 72B параметъра и висока quantization. За да можете да използвате комфортно такъв модел, то по мое скромно изчисление ще са ви необходими поне около 3x3090, като разбира се това са доста общи и повърхностни сметки.
Какви други локални модели съществуват
Разновидността на локални модели е голяма. Вече споменах част от тях - някои генерират реч по текст, създават изображения от текст и т.н.
Наскоро излезе новата версия Stable Diffusion 3.5. Това е модел, който генерира изображения по предоставен от вас текст, подобно на Midjourney, като качеството им е доста сходно. Изображенията генерирани с негова помощ можете да използвате за каквото пожелаете и то напълно безплатно.
Има модели за гласово разпознаване като Whisper.
Откъде да започна
Стига да разполагате с необходим хардуер, то нататък е сравнително лесно.
Аз лично използвам Ollama. Изключително лесна е за инсталиране. Влизате в официалният сайт на Ollama - ollama.com и я сваляте.
От там насетне през едно CMD (ако сте под Windows) или през терминала си сваляте избрания от вас модел.
Тях можете да намерите отново в сайта на ollama - https://ollama.com/library.
Нека приемем, че желаете да свалите Llama 3.2 3B версия. То чисто и просто в CMD/терминала пишете: ollama run llama3.2:3b
От там насетне ollama ще свали въпросния модел за вас и след това ще ви предостави възможност за чат с него.
Ollama като цяло е по-скоро API. Тя предоставя лесен начин да свързвате други интерфейси към нея. На този адрес можете да разгледате някои популярни такива: https://itsfoss.com/ollama-web-ui-tools
За какво бихте могли да ползвате локалните LLM
Горе-долу за каквото използвате и ChatGPT.
Много хора просто чатят с тях. Други влизат в ролеви игри.
Много разпространен е и така наречения RAG (Retrieval-Augmented Generation). Предоставяте на модела ваши данни, било то документи или друго, което желаете да обработите. В следствие можете да накарате модела да ви върне дадена информация на база тях.
Аз лично преди време си написах собствена галерия. Тъй като не ми беше много комфортно да качвам лични снимки в клауда (Google Photos примерно), то си направих мини уеб-сайт, на който да ги ъплоадвам.
Хоствам го на мой личен сървър. След като снимката е качена, минава през модел, който "вижда" какво има на нея и връща описание. Това описание пък се предоставя на друг модел (Embedding модел), който го превръща във вектори. Идеята е да мога да търся в това описание. В момента вече имам галерия, в която ако напиша в търсачката да ми покаже снимки, на които има водопад, то ще ми покаже такива снимки. :)
Еми, това беше от този "урок". Със сигурност има още доста неща, които трябва да научите, но главната идея беше да ви дам лек тласък.
Да запозная част от вас, че не съществува само ChatGPT.
Ето и две допълнителни връзки, които със сигурност ще Ви бъдат полезни в случай, че темата ви се стори интересна и започнете да дълбаете:
• https://www.reddit.com/r/LocalLLaMA - Най-големият Редит свързан с локални AI модели. Голяма част от нещата научих там, така че смятам, че и на Вас би ви била полезна.
• [https://lmarena.ai - Тук можете да чатите с доста модели без да се налага да ги сваляте. Има и класация, от която можете да придобиете представа кой модел как се представя. Данните са по-скоро ориентировъчни.
ai
llm
model
модел
изкуствен интелект
artificial intelligence

Коментари
Остави коментар