2024 में, एलएलएम-आधारित अनुप्रयोगों की कोई कमी नहीं है। माइक्रोसॉफ्ट और गूगल जैसी प्रमुख तकनीकी कंपनियां अपने प्रमुख चैटजीपीटी और जेमिनी मॉडल के अधिक से अधिक शक्तिशाली संस्करणों को आगे बढ़ा रही हैं, और एंथ्रोपिक जैसे विशेषज्ञ खिलाड़ी अतिरिक्त एकीकरण के साथ प्रतिस्पर्धी पेशकशों को आगे बढ़ा रहे हैं। लागू एलएलएम दुनिया में, कंपनियां और यहां तक कि सरकारें विभिन्न संदर्भों के लिए चैट एप्लिकेशन के साथ प्रयोग कर रही हैं।
एलएलएम में डाली गई भारी उद्यमशीलता ऊर्जा के बावजूद, अधिकांश हाई-प्रोफाइल एप्लिकेशन अभी भी चैट-जैसे इंटरफेस पर अपना ध्यान केंद्रित करके सीमित हैं जो मानव-पठनीय पाठ को लेते हैं और वापस करते हैं। यह समझने योग्य है - आखिरकार, एलएलएम के सबसे रोमांचक विकासों में से एक मानव भाषा को समझने और उत्पन्न करने की क्षमता है, जो एक संवादी उपयोगकर्ता इंटरफ़ेस की अनुमति देता है। हालाँकि, चैट इंटरफ़ेस एलएलएम के लिए एक और बहुत महत्वपूर्ण उपयोग के मामले को नजरअंदाज कर देता है - एक बड़ी डेटा पाइपलाइन में एक मध्यवर्ती चरण के रूप में टेक्स्ट प्रोसेसिंग।
आज, हम इस उपयोग के मामले का पता लगाएंगे और देखेंगे कि एलएलएम केवल प्राकृतिक भाषा जनरेटर के रूप में नहीं, बल्कि डेटा पाइपलाइन के हिस्से के रूप में कैसे उपयोगी हो सकते हैं।
एलएलएम को डेटा पाइपलाइन के हिस्से के रूप में उपयोग करने के लिए, हमें एलएलएम के आउटपुट स्वरूप को बदलने की आवश्यकता है - मनुष्यों के पढ़ने के लिए पैराग्राफ उत्पन्न करने के बजाय, मॉडल को कुछ ऐसा उत्पन्न करना होगा जिसे कंप्यूटर पढ़ सकें। आमतौर पर, इसका मतलब JSON जैसे डेटा प्रारूप में संरचित आउटपुट या पायथन या SQL जैसी प्रोग्रामिंग भाषा में निर्देश है। ये आउटपुट प्रारूप प्राकृतिक भाषा की तुलना में बहुत कम क्षमाशील हैं, क्योंकि एक लापता उद्धरण चिह्न या ब्रैकेट पूरी पाइपलाइन को क्रैश कर सकता है। इसलिए, हमें इस उपयोग के मामले का समर्थन करने के लिए विकसित किए गए विशेष तरीकों और सुविधाओं पर भरोसा करने की आवश्यकता होगी। इन सुविधाओं को सामूहिक रूप से फ़ंक्शन कॉलिंग के रूप में संदर्भित किया जाता है, क्योंकि आउटपुट फ़ंक्शंस को कॉल करता है या फ़ंक्शन कॉल में उपभोग किया जाता है।
हालाँकि, इससे पहले कि हम इन तरीकों पर गहराई से विचार करें, आइए पहले थोड़ा और गहराई से जानें कि फ़ंक्शन कॉलिंग सुविधाएँ पहले स्थान पर क्यों विकसित की गईं।
बाहरी सेवाओं से जुड़ना
फ़ंक्शन कॉलिंग के लिए मूल और सबसे सीधा उपयोग का मामला बाहरी सेवाओं से जुड़ना है। जब OpenAI ने मूल रूप से GPT-4 जारी किया, तो इसने एपीआई को एक ऐसी सुविधा के साथ अपडेट किया, जिसने उपयोगकर्ता को मॉडल को पायथन-शैली कार्यों का एक सेट प्रदान करने की अनुमति दी, जिसे मॉडल अपने लक्ष्यों को पूरा करने के लिए कॉल कर सकता है। उदाहरण के लिए, मॉडल को बताया जा सकता है कि यह एक जटिल सुरक्षा की कीमत की गणना करने के लिए एक बाहरी फ़ंक्शन को कॉल कर सकता है। इस जानकारी का उपयोग करके, मॉडल कोड लिखने में सक्षम होगा जो प्रतिभूतियों के मूल्य निर्धारण पर विशेष ज्ञान के बिना, इन प्रतिभूतियों से बने पोर्टफोलियो के मूल्य की गणना करता है।
पायथन-शैली के कार्यों को कॉल करना केवल हिमशैल का सिरा है। एक बार जब बाज़ार में फ़ंक्शन-कॉलिंग का महत्व सिद्ध हो गया, तो OpenAI और अन्य LLM प्रदाताओं ने JSON या SQL जैसे अन्य आउटपुट स्वरूपों का समर्थन करना शुरू कर दिया। महत्वपूर्ण बात यह थी कि ये मॉडल मशीन-पठनीय आउटपुट दे रहे थे, जिन्हें अन्य प्रक्रियाओं द्वारा विश्वसनीय रूप से पढ़ा जा सकता था।
चतुर पाठक यह पहचान सकते हैं कि हमने पिछले लेखों में प्रशिक्षण डेटा , एसक्यूएल या जेएसओएन उत्पन्न करने के लिए एलएलएम का उपयोग करके कुछ ऐसा ही किया है। इन लेखों में, हमने त्वरित इंजीनियरिंग और आउटपुट-चेकिंग का उपयोग करके इसे पूरा किया, लेकिन अब फ़ंक्शन-कॉलिंग एक व्यापक रूप से समर्थित सुविधा है, हम इन मॉडल-स्तरीय सुविधाओं पर भरोसा करके इसे और अधिक आसानी से कर सकते हैं।
एलएलएम की शृंखला
फ़ंक्शन कॉलिंग ने मल्टी-एलएलएम अनुप्रयोगों के लिए नई संभावनाएं पैदा कीं, और जल्द ही डेवलपर्स परिष्कृत सिस्टम बनाने के लिए एलएलएम की श्रृंखला के साथ प्रयोग कर रहे थे। इनमें से कुछ प्रणालियाँ एजेंटों के रूप में जानी जाने लगीं, जो स्वतंत्र रूप से वेब पर खोज कर सकती थीं, नया डेटा एकत्र कर सकती थीं और नई जानकारी के साथ किसी अन्य एलएलएम को कॉल कर सकती थीं। ये पाइपलाइन आश्चर्यजनक मात्रा में स्वायत्तता देने में सक्षम हैं और बहुत कम इनपुट के साथ परिष्कृत समस्याओं को हल करने में सक्षम हैं, हालांकि अभी भी एपीआई लागत और व्यवहार संबंधी सुरक्षा उपाय जैसी सीमाएं हैं, जो एजेंटों को व्यापक रूप से अपनाने से रोकती हैं।
एलएलएम को इनपुट और इंटरमीडिएट प्रोसेसिंग के रूप में उपयोग करना
फ़ंक्शन-कॉलिंग एलएलएम के लिए एक अन्य उपयोग का मामला इनपुट और मध्यवर्ती डेटा प्रोसेसिंग है। एलएलएम का उपयोग असंरचित इनपुट को संरचित डेटा में पार्स करने के लिए किया जा सकता है जिसका उपयोग डाउनस्ट्रीम प्रोसेसिंग के लिए किया जा सकता है। जबकि इनमें से कई कार्यों को "पारंपरिक" एनएलपी प्रौद्योगिकियों में स्थानांतरित कर दिया जाता है, ट्रांसफार्मर-आधारित मॉडल की लचीली प्रकृति का मतलब है कि एक विशेष रूप से प्रशिक्षित मॉडल अन्य एनएलपी प्रौद्योगिकियों की तुलना में इन कार्यों पर बहुत बेहतर प्रदर्शन कर सकता है। परिणामस्वरूप, कई डेवलपर अपनी डेटा पाइपलाइनों में इन विशेष मॉडलों का लाभ उठाने का प्रयास कर रहे हैं।
अब जब हम फ़ंक्शन-कॉलिंग के पीछे के सिद्धांत से परिचित हो गए हैं, तो आइए उस एप्लिकेशन पर नज़र डालें जिसे हम आज बना रहे हैं।
पिछले लेख में, मैंने सीबी इनसाइट्स लोकप्रिय न्यूज़लेटर के बारे में प्राकृतिक भाषा के सवालों के जवाब देने के लिए एक सरल आरएजी एप्लिकेशन बनाया था। आज के लेख में, हम एक समान प्रश्न-उत्तर एप्लिकेशन का निर्माण करेंगे, लेकिन एम्बेडिंग खोज और GPT3.5 पर निर्भर होने के बजाय, हम प्राथमिक अनुक्रमण पद्धति के रूप में इकाई पहचान का उपयोग करेंगे। इसके अतिरिक्त, हम संक्षेपण इंजन के रूप में DRAGON का उपयोग करेंगे ताकि हम संपूर्ण एप्लिकेशन को अपने लैपटॉप पर चला सकें, किसी क्लाउड सेवा की आवश्यकता नहीं है।
इकाई पहचान का उपयोग क्यों करें?
इससे पहले कि हम कार्यान्वयन में उतरें, आइए खोज को एम्बेड करने के बजाय पुनर्प्राप्ति तकनीक के रूप में एनईआर का उपयोग करने के फायदों का पता लगाएं। जबकि उत्पादन में हम विशिष्ट स्थिति की मांगों के अनुसार प्रत्येक तकनीक का उपयोग करना चाहेंगे, एनईआर एक प्रणाली पर कई फायदे प्रदान करता है जो एम्बेडिंग खोज पर निर्भर करता है।
डिबग योग्यता: क्योंकि इकाई पहचान एक आसानी से सत्यापन योग्य कार्य है, संपूर्ण पाइपलाइन बहुत अधिक डिबग करने योग्य है। यह जांचना आसान है कि क्या मॉडल सभी संस्थाओं की सही पहचान करता है, और इन संस्थाओं के आधार पर एक मिलान एल्गोरिदम बनाना और सुधारना आसान है। तुलनात्मक रूप से, यह सत्यापित करना अधिक कठिन है कि एम्बेडिंग एल्गोरिदम अनुच्छेदों में समानता और अंतर की ठीक से पहचान कर रहा है।
लचीलापन: पहचान और फ़िल्टरिंग को अलग करके, हम एम्बेडिंग-आधारित खोज एल्गोरिदम की तुलना में पाइपलाइन को अधिक लचीला बनाते हैं। हम अतिरिक्त मेटाडेटा जोड़ सकते हैं, इकाई प्रकार के आधार पर खोज एल्गोरिदम बदल सकते हैं, और यहां तक कि एनईआर-आधारित खोज परिणामों के शीर्ष पर एम्बेडिंग एल्गोरिदम का उपयोग भी कर सकते हैं। यह प्रौद्योगिकियों के संयोजन के आधार पर अधिक शक्तिशाली सुविधाओं को विकसित करने की अनुमति देता है।
उदाहरण के लिए, एक एनईआर-आधारित पाइपलाइन दस्तावेज़ों के एक सेट को कम करने के लिए इकाई-आधारित खोज का उपयोग कर सकती है, फिर खोज स्थान के भीतर और भी कम करने के लिए एक एम्बेडिंग एल्गोरिदम का उपयोग कर सकती है। इससे खोज अधिक तेज़ और अधिक कुशल हो जाती है.
पहचान शक्ति: मैन्युअल नियंत्रण के स्तर के कारण, जो संभव है, एनईआर पाइपलाइन कुछ खोज और पुनर्प्राप्ति कार्यों के लिए अधिक उपयुक्त हैं। एंबेडिंग खोजें प्रशिक्षण डेटा के भीतर अंशों की निकटता पर आधारित होती हैं, जो इस संभावना की गणना करती है कि दो दस्तावेज़ एक ही बड़े दस्तावेज़ से आते हैं। कुछ उपयोग मामलों में, इससे एम्बेडिंग खोज से महत्वपूर्ण दस्तावेज़ छूट जाएंगे।
अब जब हम आरएजी पाइपलाइन के भीतर एनईआर का उपयोग करने के लाभों को समझते हैं, तो आइए हम अपने एप्लिकेशन में उपयोग की जा रही विशिष्ट तकनीकों पर गहराई से नज़र डालें।
एलएलएम इकाई मान्यता
इकाई पहचान असंरचित भाषा डेटा से संरचित डेटा निकालने के लिए एक "पारंपरिक" एनएलपी तकनीक है। निकाले गए डेटा का उपयोग डाउन-लाइन प्रोसेसिंग में या विश्लेषण किए जा रहे मार्ग के लिए मेटाडेटा के रूप में किया जा सकता है।
ऐतिहासिक रूप से, यह छोटे, उद्देश्य-निर्मित मशीन लर्निंग एल्गोरिदम का उपयोग करके पूरा किया गया था जो पहले भाषण के हिस्सों को टैग करता है, उसके बाद दूसरा पास होता है जो यह निर्धारित करता है कि पहचाने गए उचित संज्ञाएं नामित इकाइयां हैं या नहीं।
फ़ंक्शन-कॉलिंग एलएलएम के साथ, हम कई अतिरिक्त लाभों के साथ एक ही कार्य पूरा कर सकते हैं।
क्योंकि ट्रांसफॉर्मर आर्किटेक्चर छोटे एनएलपी मॉडल की तुलना में भाषा संरचना को बेहतर ढंग से समझने में सक्षम है, इसलिए प्रदर्शन अधिक मजबूत होने की संभावना है, उदाहरण के लिए ऐसे मामलों में जहां मार्ग अनुचित तरीके से स्वरूपित किया गया है।
क्योंकि एलएलएम को नवीनतम प्रशिक्षण डेटा के साथ अद्यतन किया जा रहा है, इकाई पहचान प्रणाली अन्य ओपन-सोर्स इकाई मान्यता मॉडल की तुलना में अधिक अद्यतित रहने की संभावना है।
प्रॉम्प्ट इंजीनियरिंग तकनीकों का उपयोग अतिरिक्त डेटा को एम्बेड करने और अतिरिक्त निर्देश देने के लिए किया जा सकता है, जिससे ऑफ-द-शेल्फ मॉडल में भी अधिक लचीले व्यवहार की अनुमति मिलती है।
ड्रैगन हमने पिछले लेख में ड्रैगन को कवर किया है जहां हमने प्राकृतिक-भाषा डेटा को सारांशित करने में इसके प्रभावशाली प्रदर्शन पर प्रकाश डाला है। हम विश्लेषण के अंतिम चरण को पूरा करने के लिए ड्रैगन का उपयोग करेंगे, जहां हम चयनित संस्थाओं से संबंधित सभी लेखों का सारांश देंगे।
एसएलआईएम एसएलआईएम एलएलएमवेयर से लघु, स्थानीय रूप से चलने योग्य मॉडल का एक नया परिवार है - यह कोई रहस्य नहीं है कि मैं उनके लघुकरण कार्य का प्रशंसक हूं - जो फ़ंक्शन कॉलिंग में माहिर है। इन मॉडलों को विशेष रूप से मशीनों द्वारा व्याख्या किए जा सकने वाले आउटपुट उत्पन्न करने के लिए ठीक किया गया है, जिससे उपयोगकर्ता बाहरी एपीआई पर भरोसा किए बिना फ़ंक्शन कॉलिंग आर्किटेक्चर में हाल के विकास का लाभ उठा सकते हैं।
आज हम एसएलआईएम-एनईआर मॉडल का उपयोग करेंगे, जो न्यूज़लेटर लेखों पर नामित इकाई पहचान का प्रदर्शन करेगा। एनईआर के अलावा, भावना विश्लेषण, एसक्यूएल पीढ़ी और मल्टी-स्टेप एजेंटों के लिए एसएलआईएम मॉडल भी हैं।
अब हम तकनीक को समझते हैं, आइए एप्लिकेशन को लागू करें!
आइए सीबी इनसाइट्स लेख डाउनलोड करके शुरुआत करें। आइए निर्भरताएँ आयात करें:
import requests from bs4 import BeautifulSoup import os import pandas as pd import json import re
और अब न्यूज़लेटर संग्रह डाउनलोड करने के लिए कोड:
res = requests.get('https://www.cbinsights.com/newsletter/') soup = BeautifulSoup(res.text) article_links = [[i.text, i['href']] for i in soup.find_all('a') if 'campaign-archive' in i['href'] ] article_soups = [BeautifulSoup(requests.get(link).text) for title, link in article_links]
अब जब हमने न्यूज़लेटर संग्रह डाउनलोड कर लिया है, तो आइए इसे JSON प्रारूप में संसाधित करें
result_json = {} for soup_meta, soup_art in zip(article_links, article_soups): article_tables = [] cur_article = [] for table in soup_art.find_all('table'): if table.attrs.get('mc:variant') == 'Section_Divider': article_tables.append(get_deduped_article_tables(cur_article)) cur_article = [] else: cur_article.append(table.text) article_tables.append(get_deduped_article_tables(cur_article)) result_json[soup_meta[0]] = article_tables articles_with_meta = [] for name, tables in result_json.items(): print(name, pd.to_datetime(tables[0][1].strip())) articles_with_meta.append({ 'name': name, 'date': pd.to_datetime(tables[0][1].strip()).strftime('%Y-%m-%d'), 'tables': tables }) df = pd.DataFrame(articles_with_meta)
अब हम वहीं हैं जहां पिछले लेख में थे। हालाँकि, एम्बेडिंग बनाकर आरएजी निर्माण के लिए सीधे जाने के बजाय, हम एक इकाई-पहचान चरण चलाएंगे।
सबसे पहले, आइए SLIM चलाने के लिए निर्भरताएँ आयात करें, LLMWare से मॉडलों का एक नया सेट जो हमें अपनी मशीन पर स्थानीय रूप से इकाई पहचान करने की अनुमति देता है:
from llmware.agents import LLMfx from llmware.parsers import WikiParser from collections import defaultdict # define a function for identifying all the named entities def run_ner(text): agent = LLMfx() agent.load_work(text) agent.load_tool("ner") named_entities = agent.ner() ner_dict= named_entities["llm_response"] return ner_dict
अब हम सभी लेखों पर नामित इकाई पहचान चला सकते हैं:
date_entities = defaultdict(dict) for _, row in df.iterrows(): for idx, t in enumerate(row['tables'][1:]): if 'Start Your Free Trial' in t: t = t[:t.index('Start Your Free Trial')] date_entities[row['date']][idx] = run_ner('\n'.join(t))
एनईआर पाइपलाइन को पूरा होने में कुछ मिनट लग सकते हैं, लेकिन अत्याधुनिक लघु एलएलएम का उपयोग करके इकाइयों को पहचानने के लिए आपको बस इतना ही चाहिए।
आप कुछ परीक्षण आइटम प्रिंट करके date_entities शब्दकोश की जांच कर सकते हैं। उदाहरण के लिए, कोड:
date_entities[list(date_entities.keys())[0]]
नीचे आउटपुट देना चाहिए:
{0: {'people': ['Yahoo!'], 'place': [], 'company': ['Databricks', 'MosaicML'], 'misc': []}, 1: {'people': [], 'place': ['New York'], 'company': ['CB Insights'], 'misc': []}}
जो एसएलआईएम मॉडल द्वारा पता लगाए गए सभी विभिन्न संस्थाओं को दिखाता है।
अब जबकि संस्थाओं का पता चल गया है, आइए एक प्रश्न-उत्तर वर्कफ़्लो बनाएं जो इस तकनीक की शक्ति को प्रदर्शित करता है। हमारे उदाहरण के लिए, हम परीक्षण प्रश्न का उपयोग करेंगे: Microsoft की AI रणनीति में OpenAI की क्या भूमिका है?
आइए DRAGON को चलाने के लिए उचित पैकेज आयात करके शुरुआत करें:
from llmware.prompts import Prompt query = "What role does OpenAI play in Microsoft's AI strategy?" model_name = "llmware/dragon-llama-7b-gguf" prompter = Prompt().load_model(model_name)
अब, हम उस फ़ंक्शन का निर्माण कर सकते हैं जो इकाई पहचान का उपयोग करके प्रश्न का उत्तर देता है। अपने एनईआर डेटा का लाभ उठाने के लिए, हम निम्नलिखित वर्कफ़्लो लागू करना चाहेंगे:
कोड रूप में वर्कफ़्लो इस प्रकार दिखता है:
def answer_question_with_ner(query): ner_results = run_ner(query) # run NER on the user query search_entities = [] for ent_type, ent_list in ner_results.items(): search_entities.extend(ent_list) # create a list of entities to search for search_entities = list(set(search_entities)) # now perform a lookup for articles that mention the identified entities, using set arithmetic. articles = set(entity_to_place_map[search_entities[0]]) for se in search_entities: articles &= set(entity_to_place_map[se]) # now process the corpus into a prompt and feed it to the question-answering LLM. article_content = [] for article in articles: article_content.extend(df[df['date'] == article[0]].iloc[0]['tables'][article[1]+1]) response = prompter.prompt_main(query, context='\n'.join(article_content), prompt_name="default_with_context", temperature=0.3) return response # return the response.
पहले कोड ब्लॉक से क्वेरी के साथ फ़ंक्शन चलाएँ, और आपको निम्नलिखित परिणाम देखना चाहिए:
Microsoft has poured billions of dollars into ChatGPT developer OpenAI. However, it's also placed a number of bets on other GenAI startups across computing, mapping, and gaming.
आप प्रतिक्रिया ऑब्जेक्ट के "साक्ष्य" अनुभाग में भी देख सकते हैं कि, वास्तव में सीबी इनसाइट्स संग्रह से दो लेख जिनमें माइक्रोसॉफ्ट और ओपनएआई का उल्लेख है, पुनः प्राप्त कर लिए गए हैं, और एलएलएम का उत्तर सीधे साक्ष्य पर आधारित है।
ध्यान दें कि क्योंकि हम स्पष्ट इकाई पहचान कर रहे हैं, पुनर्प्राप्ति प्रक्रिया बेहद पारदर्शी और डिबग करने योग्य है। क्या कभी यह सवाल उठना चाहिए कि मॉडल ने कॉर्पस से जानकारी के इन विशिष्ट टुकड़ों को क्यों पुनर्प्राप्त किया - यह देखने के लिए बस एक साधारण प्रिंट स्टेटमेंट की आवश्यकता है कि मॉडल ने लेख को चुना क्योंकि क्वेरी में "माइक्रोसॉफ्ट" और "ओपनएआई" का उल्लेख है, और दो पुनर्प्राप्त न्यूज़लेटर अनुभाग एकमात्र अनुभाग हैं जो दोनों संस्थाओं का उल्लेख करते हैं।
इसके अतिरिक्त, जब एम्बेडिंग-आधारित वेक्टर खोज के साथ तुलना की जाती है, तो एनईआर लुकअप विधि अधिक सटीक उत्तर प्रदान करती है। मेरे परीक्षणों में, चयनित लेख ओपनएआई के एडीए एल्गोरिदम द्वारा रैंक किए गए शीर्ष 10 सबसे प्रासंगिक लेखों में थे, लेकिन उन्हें प्रश्न के सबसे करीब होने के रूप में पहचाना नहीं गया था। इसलिए, यह संभव है कि एम्बेडिंग खोज का उपयोग करने वाले एप्लिकेशन ने प्रश्न का बिल्कुल भी सही उत्तर नहीं दिया हो, और डिबगबिलिटी की कमी केवल भ्रम में योगदान देगी।
और इसके साथ, हमने एनईआर लुकअप का उपयोग करके एक प्रश्न-उत्तर एप्लिकेशन बनाया है, जिससे प्रक्रिया में पाइपलाइन की गुणवत्ता में सुधार हुआ है!
आज, हमने फ़ंक्शन कॉलिंग, एक रोमांचक नई एलएलएम सुविधा का उपयोग करके एक एप्लिकेशन बनाया है। लघु, स्थानीय रूप से चलने योग्य फ़ंक्शन-कॉलिंग मॉडल एक क्रांतिकारी विकास है जो एआई अनुप्रयोगों की एक नई श्रेणी को अनलॉक करता है, और हम इन प्रौद्योगिकियों का केवल पहला पुनरावृत्ति देख रहे हैं। यह देखना रोमांचक होगा कि आने वाले महीनों में डेवलपर्स इन प्रौद्योगिकियों के साथ कौन से एप्लिकेशन बनाएंगे।
यदि आपके पास एआई क्षेत्र में कोई विचार है जिसे आप कार्यान्वित होते देखना चाहते हैं या केवल प्रौद्योगिकी के बारे में बातचीत करना चाहते हैं, तो कृपया जीथब या लिंक्डइन पर पहुंचने में संकोच न करें।
यदि आप SLIMs और DRAGON के पीछे की कंपनी LLMWare के बारे में अधिक जानना चाहते हैं, तो आप उन्हें HugginFace या Github पर पा सकते हैं।