我們要如何在我們的系統中加入生成式人工智慧(Generative Artificial Intelligence, GenAI)呢?
目前的GenAI的主要元件是大型語言模型(Large Language Model, LLM),呼叫LLM有兩種方式,第一種是透過呼叫雲端的LLM,通常就是需要付費並取得API Key,第二種是呼叫本地端的LLM,通常我們可以透過Ollma下載並啟動、管理下載下來的LLM。
我們就以本地端的使用為範例,首先,先下載並安裝Ollama,步驟請參考:
使用Ollma有兩種模式,上面連結是第一種方式,透過ollama run去啟動一個LLM,啟動後,就可以利用程式去呼叫本地端的LLM (local LLM)。另一種方式是透過ollama serve,這時候我們就是在本地端啟動一個REST API,可以透過REST API去使用LLM,目前ollama的API相對簡單,只適合初學者試用。所以,一般的網路教學都以第一種方式為主。
呼叫local LLM有多種方式,ollama就提供了一個簡單的python 程式庫(library)供我們使用。不過,因為這個library相對簡單。除了ollama之外,滿多人使用LangChain及LlamaIdex提供的library。
簡單的說,如果要開發一個檢索與索引相關的應用(如:RAG),LlamaIndex是比較合適的工具,而且,相對於LangChain比較容易上手,如果是要開發一個複雜工作流程的GenAI應用,LangChain的生態系(如:LangGraph、LangSmith)更完整,就相對比較適合,當然,因為可以用在更複雜的情境上,使用上相對於LlamaIndex就比較複雜。
LangChain跟LlamaIndex的創造者其實都是在同一公司的同事,根據Jerry Liu的說法,他們在一次的晚餐中討論到大型語言模型的一些事,結果,兩個大型專案就因此而產生了。