यह ओलामा और उन चीजों के बारे में गहराई से जानने का पहला भाग है जो मैंने स्थानीय एलएलएम के बारे में सीखी हैं और आप उन्हें अनुमान-आधारित अनुप्रयोगों के लिए कैसे उपयोग कर सकते हैं। इस पोस्ट में आप जानेंगे - ओलामा का उपयोग कैसे करें ओलामा में अपना खुद का मॉडल कैसे बनाएं चैटबॉट बनाने के लिए ओलामा का उपयोग करना एलएलएम (स्थानीय एलएलएम सहित) की मूल बातें समझने के लिए, आप इस विषय पर मेरी पिछली पोस्ट देख सकते हैं। यहां सबसे पहले, कुछ पृष्ठभूमि स्थानीय एलएलएम के क्षेत्र में, मैं पहली बार एलएमस्टूडियो में गया। जबकि ऐप का उपयोग करना स्वयं आसान है, मुझे ओलामा द्वारा प्रदान की जाने वाली सरलता और गतिशीलता पसंद आई। ओलामा के बारे में अधिक जानने के लिए आप जा सकते हैं। यहां टीएल;डॉ: ओलामा उन मॉडलों की अपनी स्वयं की क्यूरेटेड सूची होस्ट करता है जिन तक आपकी पहुंच है। आप इन मॉडलों को अपनी स्थानीय मशीन पर डाउनलोड कर सकते हैं, और फिर कमांड लाइन प्रॉम्प्ट के माध्यम से उन मॉडलों के साथ बातचीत कर सकते हैं। वैकल्पिक रूप से, जब आप मॉडल चलाते हैं, तो ओलामा पोर्ट 11434 (डिफ़ॉल्ट रूप से) पर होस्ट किया गया एक अनुमान सर्वर भी चलाता है, जिसके साथ आप एपीआई और लैंगचैन जैसी अन्य लाइब्रेरी के माध्यम से बातचीत कर सकते हैं। इस पोस्ट के अनुसार, ओलामा के पास 74 मॉडल हैं, जिनमें एम्बेडिंग मॉडल जैसी श्रेणियां भी शामिल हैं। ओलामा का उपयोग कैसे करें अपनी पसंद के ओएस के लिए ओलामा । एक बार जब आप ऐसा कर लेते हैं, तो यह पुष्टि करने के लिए कि यह काम कर रहा है, आप कमांड चलाते हैं। इसे आपको सहायता मेनू दिखाना चाहिए - डाउनलोड करें ollama Usage: ollama [flags] ollama [command] Available Commands: serve Start ollama create Create a model from a Modelfile show Show information for a model run Run a model pull Pull a model from a registry push Push a model to a registry list List models cp Copy a model rm Remove a model help Help about any command Flags: -h, --help help for ollama -v, --version Show version information Use "ollama [command] --help" for more information about a command. किसी भी मॉडल का उपयोग करने के लिए, आपको सबसे पहले उन्हें ओलामा से "खींचना" होगा, ठीक उसी तरह जैसे आप डॉकरहब (यदि आपने पहले इसका उपयोग किया है) या इलास्टिक कंटेनर रजिस्ट्री (ईसीआर) जैसी किसी छवि से खींचते हैं। ओलामा कुछ डिफ़ॉल्ट मॉडलों के साथ आता है (जैसे कि जो फेसबुक का ओपन-सोर्स एलएलएम है) जिसे आप चलाकर देख सकते हैं। llama2 ollama list उस मॉडल का चयन करें (मान लीजिए ) जिसके साथ आप से इंटरैक्ट करना चाहते हैं। अब आप कमांड चलाकर इस मॉडल को नीचे खींच सकते हैं phi ओलामा लाइब्रेरी पेज ollama pull phi एक बार डाउनलोड पूरा हो जाने पर, आप यह जांच कर सकते हैं कि मॉडल स्थानीय रूप से उपलब्ध है या नहीं - ollama list अब जब मॉडल उपलब्ध है, तो यह चलाने के लिए तैयार है। आप कमांड का उपयोग करके एक मॉडल चला सकते हैं - ollama run phi उत्तरों की सटीकता हमेशा शीर्ष स्तर की नहीं होती है, लेकिन सटीकता में सुधार के लिए आप अलग-अलग मॉडलों का चयन करके या शायद कुछ फाइन-ट्यूनिंग करके या अपने आप पर आरएजी-जैसा समाधान लागू करके इसका समाधान कर सकते हैं। मैंने ऊपर जो प्रदर्शित किया है वह यह है कि आप कमांड लाइन प्रॉम्प्ट का उपयोग करके ओलामा मॉडल का उपयोग कैसे कर सकते हैं। हालाँकि, यदि आप लामा द्वारा चलाए जा रहे अनुमान सर्वर की जांच करते हैं तो आप देख सकते हैं कि पोर्ट 11434 पर क्लिक करके इस तक पहुंचने के प्रोग्रामेटिक तरीके हैं। यदि आप अपने ओलामा मॉडल तक पहुंचने के लिए लैंगचैन का उपयोग करना चाहते हैं, तो आप कुछ इस तरह का उपयोग कर सकते हैं - from langchain_community.llms import Ollama from langchain.chains import RetrievalQA prompt = "What is the difference between an adverb and an adjective?" llm = Ollama(model="mistral") qa = RetrievalQA.from_chain_type( llm=llm, chain_type="stuff", retriever=retriever, return_source_documents=True, ) response = qa(prompt) ओलामा में अपना खुद का मॉडल कैसे बनाएं आप ओलामा में की अवधारणा का उपयोग करके अपना स्वयं का मॉडल संस्करण भी बना सकते हैं। अपने मॉडलफ़ाइल में कॉन्फ़िगर करने के लिए अधिक पैरामीटर के लिए, आप इन दस्तावेज़ों को देख सकते हैं। Modelfile उदाहरण मॉडलफ़ाइल - # Downloaded from Hugging Face https://huggingface.co/TheBloke/finance-LLM-GGUF/tree/main FROM "./finance-llm-13b.Q4_K_M.gguf" PARAMETER temperature 0.001 PARAMETER top_k 20 TEMPLATE """ {{.Prompt}} """ # set the system message SYSTEM """ You are Warren Buffet. Answer as Buffet only, and do so in short sentences. """ एक बार जब आपके पास मॉडलफ़ाइल हो, तो आप इसका उपयोग करके अपना मॉडल बना सकते हैं ollama create arjunrao87/financellm -f Modelfile जहां आपके एलएलएम मॉडल का नाम है और आपके ollama.com उपयोगकर्ता नाम से बदल दिया जाएगा (जो आपके ऑनलाइन ओलामा रजिस्ट्री के नेमस्पेस के रूप में भी कार्य करता है)। इस बिंदु पर, आप ओलामा पर किसी भी अन्य मॉडल की तरह अपने बनाए गए मॉडल का उपयोग कर सकते हैं। financellm arjunrao87 आप अपने मॉडल को दूरस्थ ओलामा रजिस्ट्री में धकेलना भी चुन सकते हैं। ऐसा करने के लिए, आपको यह करना होगा ollama.com पर अपना अकाउंट बनाएं एक नया मॉडल जोड़ें आपको अपनी रिमोट मशीन से मॉडल पुश करने की अनुमति देने के लिए सार्वजनिक कुंजियाँ सेट करें। एक बार जब आप अपना स्थानीय एलएलएम बना लेते हैं, तो आप इसका उपयोग करके इसे ओलामा रजिस्ट्री में भेज सकते हैं - ollama push arjunrao87/financellm 🦄अब, अच्छे हिस्से पर आते हैं। चैटबॉट बनाने के लिए ओलामा का उपयोग करना ओलामा का उपयोग करने की मेरी खोज के दौरान, अधिक सुखद खोजों में से एक मुझे पायथन-आधारित वेब एप्लिकेशन बिल्डरों का यह पारिस्थितिकी तंत्र मिला। उपयोग चैटजीपीटी जैसा पूर्ण विकसित चैटबॉट बनाने के लिए किया जा सकता है। जैसा कि उनका पेज कहता है, चैनलिट का चैनलिट उत्पादन के लिए तैयार कन्वर्सेशनल एआई बनाने के लिए एक ओपन-सोर्स पायथन पैकेज है आप चेनलिट के साथ क्या कर सकते हैं, यह जानने के लिए मैंने कुछ चैनलिट ट्यूटोरियल देखे, जिसमें कार्यों का क्रम बनाना (जिन्हें "चरण" कहा जाता है), बटन और क्रियाओं को सक्षम करना, चित्र भेजना और सभी प्रकार की चीज़ें शामिल हैं। आप मेरी यात्रा के इस भाग का अनुसरण कर सकते हैं। यहां एक बार जब मुझे चैनलिट का ज्ञान हो गया, तो मैं एक सीधा चैटबॉट तैयार करना चाहता था जो मूल रूप से ओलामा का उपयोग करता था ताकि मैं चैट करने के लिए स्थानीय एलएलएम का उपयोग कर सकूं (चैटजीपीटी या क्लाउड कहने के बजाय)। कोड की 50 से कम पंक्तियों के साथ, आप चैनलिट + ओलामा का उपयोग करके ऐसा कर सकते हैं। क्या वह पागलपन नहीं है? लाइब्रेरी के रूप में चेनलिट का उपयोग करना बहुत आसान है। मैंने ओलामा का उपयोग करने और उसके साथ बातचीत करने के लिए लैंगचैन का भी उपयोग किया। from langchain_community.llms import Ollama from langchain.prompts import ChatPromptTemplate import chainlit as cl अगला कदम यह परिभाषित करना है कि आप चेनलिट के डेकोरेटर का उपयोग करके चैटबॉट की लोडिंग स्क्रीन को कैसा दिखाना चाहते हैं - @cl.on_chat_start @cl.on_chat_start async def on_chat_start(): elements = [cl.Image(name="image1", display="inline", path="assets/gemma.jpeg")] await cl.Message( content="Hello there, I am Gemma. How can I help you?", elements=elements ).send() .... .... इंटरफ़ेस वह है जिसका उपयोग चैनलिट यूआई पर प्रतिक्रियाएँ भेजने के लिए करता है। आप सरल कुंजी के साथ संदेश बना सकते हैं, और फिर आप इसे जैसी चीज़ों से सजा सकते हैं, मेरे मामले में, जब उपयोगकर्ता पहली बार लॉग इन करता है तो एक छवि दिखाने के लिए मैंने एक जोड़ी है। Message content elements Image अगला कदम ओलामा (अपनी पसंद के मॉडल के साथ) को इंस्टेंट करने के लिए लैंगचैन को आमंत्रित करना है, और प्रॉम्प्ट टेम्पलेट का निर्माण करना है। का उपयोग अधिकतर उपयोगकर्ता संदर्भों और इतिहासों को अलग करने के लिए है, जो कि केवल त्वरित डेमो चलाने के प्रयोजनों के लिए सख्ती से आवश्यक नहीं है। cl.user_session चेन एक लैंगचैन इंटरफ़ेस है जिसे कहा जाता है जिसका उपयोग कस्टम चेन बनाने के लिए किया जाता है। आप उसके बारे में और अधिक पढ़ सकते हैं । Runnable यहाँ @cl.on_chat_start async def on_chat_start(): .... .... model = Ollama(model="mistral") prompt = ChatPromptTemplate.from_messages( [ ( "system", "You are a knowledgeable historian who answers super concisely", ), ("human", "{question}"), ] ) chain = prompt | model cl.user_session.set("chain", chain) अब, आपके पास चैटबॉट यूआई और उपयोगकर्ता इनपुट स्वीकार करने के लिए सभी सुविधाएं हैं। आप उपयोगकर्ता द्वारा दिए गए संकेतों के साथ क्या करते हैं? उपयोगकर्ता द्वारा दिए गए संदेश के साथ कुछ करने के लिए आप चेनलिट से हैंडलर का उपयोग करेंगे। @cl.on_message @cl.on_message async def on_message(message: cl.Message): chain = cl.user_session.get("chain") msg = cl.Message(content="") async for chunk in chain.astream( {"question": message.content}, ): await msg.stream_token(chunk) await msg.send() जैसा कि डॉक्स सुझाव देते हैं "प्रतिक्रिया एसिंक के हिस्सों को वापस स्ट्रीम करें" जो कि हम अपने बॉट के लिए चाहते हैं। chain.astream वास्तव में यही है. कुछ आयात, कुछ कार्य, थोड़ी सी चीनी, और आपके पास एक कार्यात्मक चैटबॉट है। पूरे कोड के लिए, आप मेरा देख सकते हैं। GitHub 👏 यदि यह सामग्री आपके लिए दिलचस्प है, तो उस बटन को दबाएं या यहां मेरे न्यूज़लेटर की सदस्यता लें → । यह मुझे फीडबैक देता है कि मुझे कुछ कम या ज्यादा करने की जरूरत है! धन्यवाद ❤️ https://a1engineered.beehiiv.com/subscribe भी प्रकाशित किया गया यहाँ