ollOllama其實對 “地端使用者“去部署RAG的應用非常重要,這一節想來介紹ollama: 先上官方網站: 會先帶大家瀏覽一下官方網站 https://ollama.com Langchain for Ollama Reference: https://python.langchain.com/v0.2/docs/integrations/llms/ollama/ https://python.langchain.com/v0.2/docs/integrations/providers/ollama/ 推薦影片: https://www.youtube.com/watch?v=JpQC0W91E6k https://www.youtube.com/watch?v=aKcAIfhzW68 (多模態辨識) 1. 引言 • 大型語言模型(LLMs)在技術領域中非常重要,它們可以用來處理各種任務,例如編寫代碼、翻譯等。 • 設置和運行LLMs通常需要大量的資源和技術專業知識。ollama是一個簡化這一過程的工具,提供輕量級、易於擴展的框架,使本地端的語言模型運行變得簡單高效。 2. 安裝 ollama ollama 支援 macOS、Windows、Linux 和 Docker,根據操作系統不同,有以下安裝方式: • macOS: 提供預打包 zip 文件,下載解壓後按說明安裝。 • Windows: 提供預覽版下載,因為處於預覽階段,可能會有不穩定情況。 • Linux: 使用 curl 命令行安裝。 • Docker: 使用 docker pull 命令下載並運行。 3. 使用 ollama 的庫和工具 ollama 支援 Python 和 JavaScript 語言環境,並提供以下兩個庫: • ollama-python: 使用 Python 接口與 ollama 互動,安裝後可以簡單地運行大型語言模型。 • ollama-js: 提供 JavaScript 庫,安裝後可在 Node.js 中運行 ollama。 4. 快速開始 要快速運行模型,可以使用簡單的命令,如 ollama run llama2 來啟動 Llama 2 模型,之後可以與其交互。 5. 訪問模型庫 ollama 支援多個模型,這些模型可以通過命令下載。每個模型需要的參數量及大小不同,例如: • Llama 2: 7B 參數,大小為 3.8GB。 • Dolphin Phi: 2.7B 參數,大小為 1.6GB。 運行模型時需要注意 RAM 的大小需求,例如7B參數的模型需要至少8GB的 RAM。 6. 自定義模型 ollama 支持從 GGUF 格式導入模型,並支持自定義提示來調整模型行為。例如,您可以創建一個 Modelfile 來自定義溫度等參數。 7. CLI 指令參考 ollama 提供了多個命令行工具,您可以創建、拉取、刪除和複製模型。例如: • 創建模型:ollama create my-model -f ./Modelfile • 拉取模型:ollama pull llama2 • 刪除模型:ollama rm my-model 8. 多行輸入及多模態模型 ollama 支持多行輸入和多模態模型,允許處理文本與圖片的混合輸入。 9. 提示作為參數傳入 您可以將提示作為命令行的參數來傳入模型。例如,使用 README 文件的內容作為提示輸入:ollama run my-model "請總結該文件:$(cat README.md)" 10. 總結 ollama 是一個強大而靈活的平台,允許開發者輕鬆在本地環境部署和運行大型語言模型,無論是快速體驗還是深度定制開發,都能滿足需求。 這些筆記總結了如何安裝、使用 ollama 進行語言模型操作、如何自定義模型參數、以及常見的命令行工具和實用指令。 下面是使用簡單的使用者介面,搭配langchain和Ollama建構而成的小應用程式。 import os from dotenv import load_dotenv from langchain_community.llms import Ollama import streamlit as st from langchain_core.prompts import ChatPromptTemplate from langchain_core.output_parsers import StrOutputParser load_dotenv() ## Langsmith Tracking os.environ["LANGCHAIN_API_KEY"]=os.getenv("LANGCHAIN_API_KEY") os.environ["LANGCHAIN_TRACING_V2"]="true" os.environ["LANGCHAIN_PROJECT"]=os.getenv("LANGCHAIN_PROJECT") ## Prompt Template prompt=ChatPromptTemplate.from_messages( [ ("system","You are a helpful assistant. Please respond to the question asked"), ("user","Question:{question}") ] ) ## streamlit framework st.title("Langchain Demo With Gemma Model") input_text=st.text_input("What question you have in mind?") ## Ollama Llama2 model llm=Ollama(model="gemma:2b") output_parser=StrOutputParser() chain=prompt|llm|output_parser if input_text: st.write(chain.invoke({"question":input_text})) 總結:Ollam真的非常非常好用,有多的時間會講更多Ollam和大LLM的進階應用。