మోడల్ను డౌన్లోడ్ చేసిన తర్వాత, రన్టైమ్లో మెమరీ/వీడియో మెమరీ అపర్యాప్తం అనే లోపం రావచ్చు. స్థానిక మోడల్స్ ప్రయత్నించే చాలా మందికి ఇది బహుశా అత్యంత అయిష్టమైన ఫలితం.
ముందుగా పరిచయం చేసినట్లు, మోడల్కు రన్టైమ్లో దాని బరువులను RAM లేదా VRAM లోడ్ చేయాలి, మరియు ప్రతిస్పందనలు రూపొందించడానికి అదనపు స్థానం కూడా అవసరం. మీ పరికరం మోడల్ను నిల్వ చేయలేకపోతే, చిన్న పారామీటర్ల మోడల్కు మారడం కాకుండా, క్వాంటైజ్ చేయబడిన సంస్కరణ అందుబాటులో ఉందా అని కూడా చూడవచ్చు.
మోడల్ బరువులు చాలా సంఖ్యాత్మక విలువలతో రూపొందించబడి ఉంటాయి, మరియు ప్రతి విలువను నిల్వ చేయడానికి ఒక నిర్దిష్ట స్థానం అవసరం. క్వాంటైజేషన్ ఈ సంఖ్యాత్మక విలువల ప్రతినిధి ఖచ్చితత్వాన్ని తగ్గించడం ద్వారా మోడల్ వనరుల వినియోగాన్ని తగ్గిస్తుంది. ఉదాహరణకు, 16-బిట్ ఫ్లోటింగ్ పాయింట్గా సంగ్రహించిన బరువులను ప్రధానంగా 8-బిట్ లేదా 4-బిట్ తక్కువ ఖచ్చితత్వ ప్రతినిధులుగా మార్చవచ్చు. పారామీటర్ల సంఖ్య సాధారణంగా మారదు, కానీ ప్రతి పారామీటర్ ఆక్రమించే స్థానం చిన్నదిగా మారుతుంది.
7 బిలియన్ పారామీటర్ల మోడల్ను ఉదాహరణగా తీసుకుని, క్వాంటైజేషన్ ఓవర్హెడ్ పరిగణించకుండా బరువులను మాత్రమే లెక్కిస్తే, కింది మోటా అంచనాలు పొందవచ్చు:
బరువుల ప్రతినిధి పద్ధతి | సిద్ధాంత బరువుల పరిమాణం |
16 బిట్ | దాదాపు 14 GB |
8 బిట్ | దాదాపు 7 GB |
4 బిట్ | దాదాపు 3.5 GB |
ఇక్కడి GB దశాంశ యూనిట్లలో లెక్కించబడుతుంది. వాస్తవ క్వాంటైజ్ చేయబడిన ఫైళ్ళు స్కేలింగ్ కారకాలు వంటి సమాచారాన్ని కూడా సంగ్రహిస్తాయి మరియు మిశ్రమ ఖచ్చితత్వాలను ఉపయోగించవచ్చు, కాబట్టి వాస్తవ పరిమాణం అంచనా కంటే భిన్నంగా ఉండవచ్చు.
సాధారణ వినియోగదారులకు, క్వాంటైజేషన్ యొక్క అత్యంత ప్రత్యక్ష ప్రయోజనం మోడల్ ఫైళ్ళు చిన్నవిగా మారడం, డౌన్లోడ్ మరియు నిల్వ కోసం స్థానం ఆదా చేయడం, మరియు రన్టైమ్లో బరువుల కోసం తక్కువ RAM లేదా VRAM అవసరం. హార్డ్వేర్ మరియు ఇన్ఫరెన్స్ ఫ్రేమ్వర్క్లు మద్దతు ఇస్తున్నప్పుడు, క్వాంటైజేషన్ ఇన్ఫరెన్స్ వేగాన్ని కూడా మెరుగుపరచగలదు.
అయితే, ఫైల్ను దాని అసలు పరిమాణంలో నాలుగవ వంతుకు తగ్గించడం అంటే ప్రతిస్పందన వేగం నాలుగు రెట్లు పెరుగుతుందని కాదు.
ఖచ్చితత్వం తగ్గించడం ప్రతిస్పందన నాణ్యతను కూడా ప్రభావితం చేయవచ్చు, నిర్దిష్ట ప్రభావం మోడల్, క్వాంటైజేషన్ పద్ధతి మరియు పనిపై ఆధారపడి ఉంటుంది. క్వాంటైజ్ చేయబడిన సంస్కరణను ఎంచుకునేటప్పుడు, అది నడవగలదని నిర్ధారించడం కాకుండా, మీ ప్రశ్నలతో పరీక్షించి, ప్రతిస్పందనలు ఇంకా విశ్వసనీయంగా ఉన్నాయా అని చూడాలి.
ఇప్పటికే డౌన్లోడ్ చేయబడి లేదా ఫైన్-ట్యూన్ చేయబడిన మోడల్స్ కోసం, సాధారణ విధానం పోస్ట్-ట్రెయినింగ్ క్వాంటైజేషన్ (PTQ), ఇది మోడల్ శిక్షణ పూర్తయిన తర్వాత బరువులు మరియు ఇతర సంఖ్యాత్మక విలువలను తక్కువ ఖచ్చితత్వ ప్రతినిధులుగా మారుస్తుంది. కొన్ని పద్ధతులకు క్వాంటైజేషన్ ప్రక్రియను క్యాలిబ్రేట్ చేయడానికి మరియు లోపాన్ని తగ్గించడానికి నమూనా డేటా యొక్క చిన్న బ్యాచ్ అవసరం.
మరొక వర్గం క్వాంటైజేషన్-అవేర్ ట్రెయినింగ్ (QAT), ఇది శిక్షణ సమయంలో క్వాంటైజేషన్ ప్రభావాలను అనుకరిస్తుంది, మోడల్ ముందుగానే తక్కువ ఖచ్చితత్వ ప్రతినిధులకు అనుగుణంగా మారడానికి అనుమతిస్తుంది.
సైన్ ఇన్ చర్చలో చేరండి
Ollama తో మోడల్స్ నడపినప్పుడు, మీరు తరచుగా GGUF, Q4, Q8 వంటి పేర్లు చూస్తారు. ఈ పేర్లు ప్రధానంగా మోడల్ స్టోరేజ్ ఫార్మాట్ మరియు క్వాంటైజేషన్ పద్ధతితో సంబంధం కలిగి ఉంటాయి, మరియు పెద్ద మోడల్స్ వ్యక్తిగత కంప్యూటర్లలో నడవగలగడానికి ఇది ముఖ్యమైన కారణం.
ఆగస్టు 2023 లో, Georgi Gerganov GGUF ఫార్మాట్ను ప్రవేశపెట్టారు. దాని ప్రధాన ప్రయోజనాలలో సింగల్-ఫైల్ డిప్లాయ్మెంట్, స్కేలబిలిటీ, మెమరీ మ్యాపింగ్ మద్దతు, సంపూర్ణ సమాచారం మరియు ఉపయోగంలో సులభత్వం ఉన్నాయి. ఒక GGUF ఫైల్ ఫైల్ హెడర్, మెటాడేటా కీ-విలువ జంటలు మరియు టెన్సార్ సమాచారాన్ని కలిగి ఉంటుంది. ఈ భాగాలు కలిసి మోడల్ నిర్మాణం మరియు ప్రవర్తనను నిర్వచిస్తాయి. క్రింద చూపిన విధంగా, GGUF పెద్ద మోడల్ ఇన్ఫరెన్స్ కోసం ఒక మోడల్ ఫైల్ ఫార్మాట్, ఇది ప్రస్తుతం llama.cpp మరియు Ollama వంటి స్థానిక ఇన్ఫరెన్స్ సాధనాలచే విస్తృతంగా ఉపయోగించబడుతుంది. Ollama GGUF ఫార్మాట్ హ్యాండ్లింగ్, మోడల్ క్వాంటైజేషన్ మరియు మోడల్ లోడింగ్ ప్రక్రియలను ఎన్క్యాప్సులేట్ చేస్తుంది, వినియోగదారులు మోడల్ ఫార్మాట్ను మార్చాల్సిన అవసరం లేదు — వారు ముందే క్వాంటైజ్ చేయబడిన మోడల్స్ను నేరుగా డౌన్లోడ్ చేసి నడపవచ్చు. ఒక GGUF ఫైల్ మోడల్ పారామీటర్లను మాత్రమే కాకుండా, మోడల్ ప్రాథమిక సమాచారం, మోడల్ ఆర్కిటెక్చర్ మరియు టెన్సార్ డేటాను కూడా కలిగి ఉంటుంది. GGUF ఈ సమాచారాన్ని ఏకీకృత ఫైల్ ఫార్మాట్ ద్వారా సంఘటితం చేస్తుంది, llama.cpp వంటి ఇన్ఫరెన్స్ సాధనాలు దీన్ని నేరుగా చదవడానికి మరియు లోడ్ చేయడానికి అనుమతిస్తుంది. దాని ప్రాథమిక నిర్మాణం క్రింది చిత్రంలో చూపబడింది.
ModelScope నిర్మాణాత్మక GGUF ఫైళ్ళను ప్రదర్శించడానికి కూడా మద్దతు ఇస్తుంది, క్రింద చూపిన విధంగా. ఇన్ఫరెన్స్ సాధనాలు GGUF ఫైళ్ళను లోడ్ చేసినప్పుడు, అవి ఈ సమాచారాన్ని నేరుగా చదివి మోడల్ను లోడ్ చేయగలవు, వేర్వేరు మోడల్ కాన్ఫిగరేషన్ ఫైళ్ళను సిద్ధం చేయాల్సిన అవసరం లేదు.
GGUF అనేది కేవలం ఒక మోడల్ ఫైల్ ఫార్మాట్ మాత్రమే మరియు మోడల్ RAM లేదా VRAM వినియోగాన్ని నేరుగా తగ్గించదు. మోడల్ వనరుల వినియోగాన్ని నిజంగా తగ్గించేది క్వాంటైజేషన్.
llama.cpp మరియు GGUF మోడల్స్లో, Q4, Q5, Q8, Q4_K_M విభిన్న క్వాంటైజేషన్ పేర్లను సూచిస్తాయి. ఇక్కడ, Q క్వాంటైజేషన్ కోసం ఉంది, మరియు తర్వాతి సంఖ్య ప్రాథమిక క్వాంటైజేషన్ బిట్ వెడల్పును సూచిస్తుంది. ఉదాహరణకు, Q4 అంటే ప్రధానంగా 4-బిట్ క్వాంటైజేషన్, Q8 అంటే ప్రధానంగా 8-బిట్ క్వాంటైజేషన్.
Q4 అంటే మోడల్లోని అన్ని పారామీటర్లు ఏకరూపంగా 4-బిట్ ప్రతినిధిని ఉపయోగిస్తాయని కాదని గమనించండి. సాధారణ Q4_K_M ను ఉదాహరణగా తీసుకుంటే, ఇది llama.cpp లో K-quant క్వాంటైజేషన్ రకానికి చెందుతుంది. పేరులోని Q4 ప్రధానంగా 4-బిట్ క్వాంటైజేషన్ అని అర్థం, K K-quant క్వాంటైజేషన్ పథకం ఉపయోగాన్ని సూచిస్తుంది, మరియు M ఆ పథకంలోని Medium కాన్ఫిగరేషన్ను సూచిస్తుంది. వాస్తవ మోడల్లో, వివిధ టెన్సార్లు వివిధ క్వాంటైజేషన్ ఖచ్చితత్వాలను ఉపయోగించవచ్చు, అన్ని పారామీటర్లు ఏకరూపంగా 4-బిట్ ప్రతినిధిని ఉపయోగించవు, క్రింది చిత్రంలో చూపిన విధంగా.
GGUF మోడల్ను ఎంచుకునేటప్పుడు, ముందుగా మీ ఇన్ఫరెన్స్ సాధనం ఆ మోడల్ను మద్దతు ఇస్తుందని నిర్ధారించండి, తర్వాత నిర్దిష్ట క్వాంటైజేషన్ సంస్కరణను చూడండి. తక్కువ క్వాంటైజేషన్ ఖచ్చితత్వం సాధారణంగా RAM మరియు VRAM వినియోగాన్ని తగ్గిస్తుంది, సాధారణ పరికరాలలో మోడల్ను నడపడం సులభం చేస్తుంది, కానీ మోడల్ పనితీరులో కొంత భాగాన్ని త్యాగం చేయవచ్చు. ఎక్కువ క్వాంటైజేషన్ ఖచ్చితత్వం సాధారణంగా అసలు మోడల్ సామర్థ్యాలలో ఎక్కువ భాగాన్ని సంరక్షిస్తుంది, కానీ ఎక్కువ హార్డ్వేర్ వనరులు కూడా అవసరం.
ఏదైనా సంస్కరణ ఇప్పటికే మీ పరికరం RAM లేదా VRAM పరిమితులకు దగ్గరగా ఉంటే, సందర్భం మరియు రన్టైమ్ ప్రక్రియల కోసం స్థానం మిగిలించడానికి చిన్న సంస్కరణకు మారాలని పరిగణించండి. వనరులు సరిపోతే, విభిన్న సంస్కరణల ప్రతిస్పందనలను పోల్చడానికి మీరు అదే ప్రశ్నలను ఉపయోగించవచ్చు, సమాచార వెలికితీత, కోడ్ జనరేషన్ లేదా నిర్ణీత ఫార్మాట్ అవుట్పుట్ వంటి మీ లక్ష్య పనులపై ప్రత్యేక శ్రద్ధ వహించండి.
ముందుగా స్థిరమైన ఆపరేషన్ను నిర్ధారించండి, తర్వాత ప్రతిస్పందన నాణ్యతను తనిఖీ చేయండి. ఈ విధంగా, మీరు ఎంచుకున్న క్వాంటైజ్ చేయబడిన సంస్కరణ మీ పరికరం మరియు ఉపయోగానికి ఎక్కువ అనుకూలంగా ఉంటుంది.