டைனமிக் மென்பொருள் கட்டமைப்பிற்கான எல்எல்எம்களுடன் RAG ஐ ஒருங்கிணைத்தல்: ஒரு நடைமுறை வழிகாட்டி
அறிமுகம்
சமீபத்திய ஆண்டுகளில், பெரிய மொழி மாதிரிகள் (LLMகள்) மற்றும் மீட்டெடுப்பு-ஆக்மென்டட் ஜெனரேஷன் (RAG) நுட்பங்களின் வருகையுடன் மென்பொருள் கட்டிடக்கலைத் துறை குறிப்பிடத்தக்க மாற்றத்திற்கு உட்பட்டுள்ளது. இந்த இரண்டு தொழில்நுட்பங்களுக்கிடையிலான ஒருங்கிணைப்பு, மென்பொருள் அமைப்புகளை நாம் வடிவமைக்கும் மற்றும் மேம்படுத்தும் விதத்தில் புரட்சியை ஏற்படுத்தும் ஆற்றலைக் கொண்டுள்ளது. இந்தக் கட்டுரையில், LangChain மற்றும் DSPy போன்ற ஆர்கெஸ்ட்ரேஷன் கருவிகளைப் பயன்படுத்தி செயல்படுத்தும் உத்திகள் உட்பட, டைனமிக் மென்பொருள் கட்டமைப்பிற்கான LLMகளுடன் RAG இன் ஒருங்கிணைப்பை ஆராய்வோம்.
RAG என்றால் என்ன?
RAG என்பது உயர்தர உரை வெளியீடுகளை உருவாக்க, மீட்டெடுப்பு அடிப்படையிலான மற்றும் தலைமுறை அடிப்படையிலான மாதிரிகளின் வலிமையை ஒருங்கிணைக்கும் ஒரு நுட்பமாகும். பெரிய கார்பஸிலிருந்து தொடர்புடைய ஆவணங்கள் அல்லது பத்திகளைத் தேர்ந்தெடுக்க மீட்டெடுப்பு மாதிரியைப் பயன்படுத்துவதே RAG இன் அடிப்படை யோசனையாகும், பின்னர் இந்த மீட்டெடுக்கப்பட்ட பத்திகளின் அடிப்படையில் உரையை உருவாக்க ஒரு தலைமுறை மாதிரியைப் பயன்படுத்த வேண்டும். இந்த அணுகுமுறை கேள்வி பதில், உரை சுருக்கம் மற்றும் உரையாடல் AI போன்ற பணிகளில் குறிப்பிடத்தக்க முன்னேற்றங்களைக் காட்டுகிறது.
எல்எல்எம் என்றால் என்ன?
எல்எல்எம்கள் என்பது ஒரு வகையான செயற்கை நுண்ணறிவு மாதிரியாகும், இது மனிதனைப் போன்ற மொழி வெளியீடுகளை உருவாக்க பெரிய அளவிலான உரை தரவுகளில் பயிற்சியளிக்கப்படுகிறது. இந்த மாதிரிகள் பொதுவாக மின்மாற்றி கட்டமைப்புகளை அடிப்படையாகக் கொண்டவை மற்றும் பரந்த அளவிலான இயற்கை மொழி செயலாக்கப் பணிகளில் அதிநவீன முடிவுகளை அடைந்துள்ளன. LLMகள் மிகவும் பல்துறை மற்றும் மொழி மொழிபெயர்ப்பு, உரை சுருக்கம் மற்றும் உரையாடல் AI போன்ற பணிகளுக்குப் பயன்படுத்தப்படலாம்.
எல்எல்எம்களுடன் RAGஐ ஏன் ஒருங்கிணைக்க வேண்டும்?
எல்எல்எம்களுடன் RAG இன் ஒருங்கிணைப்பு டைனமிக் மென்பொருள் கட்டமைப்பிற்கு பல நன்மைகளை வழங்குகிறது:
- மேம்படுத்தப்பட்ட துல்லியம்: RAG ஆனது LLM களுக்கு ஒரு பெரிய கார்பஸிலிருந்து தொடர்புடைய ஆவணங்கள் அல்லது பத்திகளைத் தேர்ந்தெடுக்க உதவும், இது மிகவும் துல்லியமான மற்றும் தகவலறிந்த உரை வெளியீடுகளுக்கு வழிவகுக்கும்.
- அதிகரித்த செயல்திறன்: RAG ஆனது மிகவும் பொருத்தமான ஆவணங்கள் அல்லது பத்திகளை மட்டும் தேர்ந்தெடுப்பதன் மூலம் LLMகளின் கணக்கீட்டு மேல்நிலையைக் குறைக்கலாம், இது விரைவான மறுமொழி நேரத்திற்கு வழிவகுக்கும்.
- மேம்படுத்தப்பட்ட நெகிழ்வுத்தன்மை: மாறும் பயனர் விருப்பத்தேர்வுகள் மற்றும் தேவைகளுக்கு ஏற்ப RAG பயன்படுத்தப்படலாம், மேலும் LLMகள் மிகவும் பொருத்தமான மற்றும் ஈடுபாட்டுடன் உரை வெளியீடுகளை உருவாக்க அனுமதிக்கிறது.
அமுலாக்க உத்திகள்
எல்எல்எம்களுடன் RAG ஐ ஒருங்கிணைக்க பல செயல்படுத்தல் உத்திகள் உள்ளன, அவற்றுள்:
- LangChain: LangChain என்பது ஒரு திறந்த மூல நூலகமாகும், இது RAG-அடிப்படையிலான மாதிரிகளை உருவாக்க எளிய மற்றும் உள்ளுணர்வு API ஐ வழங்குகிறது. இது பரந்த அளவிலான எல்எல்எம்களை ஆதரிக்கிறது மற்றும் சிக்கலான RAG கட்டமைப்புகளை செயல்படுத்த பயன்படுகிறது.
- DSPy: DSPy என்பது ஒரு பைதான் நூலகமாகும், இது RAG-அடிப்படையிலான மாதிரிகளை செயல்படுத்த எளிய மற்றும் திறமையான வழியை வழங்குகிறது. இது பரந்த அளவிலான எல்எல்எம்களை ஆதரிக்கிறது மற்றும் சிக்கலான RAG கட்டமைப்புகளை செயல்படுத்த பயன்படுகிறது.
குறியீடு எடுத்துக்காட்டு
எல்எல்எம்களுடன் RAG ஐ ஒருங்கிணைக்க LangChain ஐ எவ்வாறு பயன்படுத்துவது என்பதை விளக்கும் எளிய குறியீடு எடுத்துக்காட்டு இங்கே:
லாங்செயின் இறக்குமதி
langchain.chains இருந்து RAGChain இறக்குமதி
langchain.llms இலிருந்து LAMA ஐ இறக்குமதி செய்கிறது
லாமா = LAMA()
# RAGChain மாதிரியை உருவாக்கவும்
rag_chain = RAGChain(llama, retrieval_model="t5-small")
# ஒரு வரியை வரையறுக்கவும்
prompt = "பிரான்சின் தலைநகரம் என்ன?"
# உரை வெளியீட்டை உருவாக்கவும்
வெளியீடு = rag_chain.run(prompt)
அச்சு (வெளியீடு)
இந்த குறியீடு உதாரணம், LAMA மாதிரியை மீட்டெடுப்பு மாதிரியுடன் ஒருங்கிணைக்கும் RAGChain மாதிரியை உருவாக்க LangChain ஐ எவ்வாறு பயன்படுத்துவது என்பதை விளக்குகிறது. RAGChain மாதிரியானது ஒரு ப்ராம்ட்டின் அடிப்படையில் உரை வெளியீட்டை உருவாக்கப் பயன்படுகிறது.
முதல் 5-10 அதிகம் பயன்படுத்தப்பட்ட கட்டளைகள்/துணுக்குகள்
எல்எல்எம்களுடன் RAGஐ ஒருங்கிணைப்பதற்காக அதிகம் பயன்படுத்தப்படும் 5-10 கட்டளைகள்/துணுக்குகள் இங்கே:
langchain.RAGChain(llama, retrieval_model="t5-small"): LAMA மாதிரியை மீட்டெடுப்பு மாதிரியுடன் ஒருங்கிணைக்கும் RAGChain மாதிரியை உருவாக்குகிறது.llama.run(prompt): LLaMA மாதிரியைப் பயன்படுத்தி ஒரு ப்ராம்ட்டின் அடிப்படையில் உரை வெளியீட்டை உருவாக்குகிறது.rag_chain.run(prompt): RAGChain மாதிரியைப் பயன்படுத்தி ஒரு ப்ராம்ட்டின் அடிப்படையில் உரை வெளியீட்டை உருவாக்குகிறது.langchain.chains.RAGChain(llama, retrieval_model="t5-small", max_length=1024): LAMA மாதிரியை மீட்டெடுப்பு மாதிரியுடன் ஒருங்கிணைத்து, வெளியீட்டு உரையின் அதிகபட்ச நீளத்தை அமைக்கும் RAGChain மாதிரியை உருவாக்குகிறது.llama.get_input(prompt): LLaMA மாதிரிக்கான உள்ளீட்டு உரையை வழங்கும்.rag_chain.get_output(prompt): RAGChain மாதிரிக்கான வெளியீட்டு உரையை வழங்குகிறது.langchain.chains.RAGChain(llama, retrieval_model="t5-small", batch_size=32): ஒரு LAMA மாதிரியை மீட்டெடுப்பு மாதிரியுடன் ஒருங்கிணைத்து தொகுதி அளவை அமைக்கும் RAGChain மாதிரியை உருவாக்குகிறது.llama.get_output(prompt): LLaMA மாதிரிக்கான வெளியீட்டு உரையை வழங்கும்.rag_chain.get_input(prompt): RAGChain மாதிரிக்கான உள்ளீட்டு உரையை வழங்கும்.langchain.chains.RAGChain(llama, retrieval_model="t5-small", device="cuda"): RAGChain மாதிரியை உருவாக்குகிறது, இது LLaMA மாதிரியை மீட்டெடுப்பு மாதிரியுடன் ஒருங்கிணைத்து சாதனத்தை CUDAக்கு அமைக்கிறது.
காட்சிப்படுத்தல்
Chart.js ஐப் பயன்படுத்தி RAGChain மாதிரியின் எளிய காட்சிப்படுத்தல் இங்கே:
{
"வகை": "பார்",
"தரவு": {
"லேபிள்கள்": ["LAMA", "RAGChain"],
"தரவுத்தொகுப்புகள்": [
{
"லேபிள்": "துல்லியம்",
"தரவு": [0.8, 0.9],
"பின்னணி நிறம்": ["#FF6384", "#36A2EB"]
}
]
},
"விருப்பங்கள்": {
"தலைப்பு": {
"காட்சி": உண்மை,
"உரை": "RAGChain மாதிரி துல்லியம்"
},
"செதில்கள்": {
"yAxes": [
{
"உண்ணி": {
"beginAtZero": உண்மை
}
}
]
}
}
}
இந்த காட்சிப்படுத்தல் LAMA மாதிரி மற்றும் RAGChain மாதிரியின் துல்லியத்தைக் காட்டுகிறது.
முடிவு
எல்எல்எம்களுடன் RAG இன் ஒருங்கிணைப்பு, டைனமிக் மென்பொருள் கட்டமைப்பிற்கு பல நன்மைகளை வழங்குகிறது, இதில் மேம்பட்ட துல்லியம், அதிகரித்த செயல்திறன் மற்றும் மேம்பட்ட நெகிழ்வுத்தன்மை ஆகியவை அடங்கும். LangChain மற்றும் DSPy இரண்டு பிரபலமான ஆர்கெஸ்ட்ரேஷன் கருவிகள் ஆகும், அவை RAG-அடிப்படையிலான மாதிரிகளை செயல்படுத்த பயன்படுத்தப்படலாம். இந்தக் கட்டுரையில் வழங்கப்பட்ட செயலாக்க உத்திகள் மற்றும் குறியீடு எடுத்துக்காட்டுகளைப் பின்பற்றுவதன் மூலம், டெவலப்பர்கள் LLMகளை மீட்டெடுப்பு மாதிரிகளுடன் ஒருங்கிணைக்கும் சிக்கலான RAG கட்டமைப்புகளை உருவாக்கலாம். எல்எல்எம்களுடன் RAGஐ ஒருங்கிணைப்பதற்காக அதிகம் பயன்படுத்தப்படும் முதல் 5-10 கட்டளைகள்/துணுக்குகளும் குறிப்புக்காக வழங்கப்பட்டுள்ளன.