3种本地运行Llama 3.2的方法
大型语言模型 (LLM) 彻底改变了 AI 领域,小型模型也正在兴起。因此,即使在较旧的 PC 和智能手机上也有可能运行高级 LLM。为了给出一个起点,我们将探索三种不同的本地与 LLama 3.2 交互的方法。
在深入研究之前,请确保你已经:
- 安装并运行Ollama
- 已拉取LLama 3.2 模型(在终端中使用
ollama pull llama3.2
)
现在,让我们探索这三种方法!
方法1:使用Ollama Python包
Ollama Python 包提供了一种在 Python 脚本或 Jupyter 笔记本中与 LLama 3.2 交互的直接方法。
import ollama
response = ollama.chat(
model="llama3.2",
messages=[
{
"role": "user",
"content": "Tell me an interesting fact about elephants",
},
],
)
print(response["message"]["content"])
此方法非常适合简单的同步交互。但是,如果你想流式传输响应,该怎么办?Ollama 的 AsyncClient
可以满足你的需求:
import asyncio
from ollama import AsyncClient
async def chat():
message = {
"role": "user",
"content": "Tell me an interesting fact about elephants"
}
async for part in await AsyncClient().chat(
model="llama3.2", messages=[message], stream=True
):
print(part["message"]["content"], end="", flush=True)
# Run the async function
asyncio.run(chat())
方法 2:使用 Ollama API
对于那些喜欢直接使用 API 或希望将 LLama 3.2 集成到非 Python 应用程序中的人,Ollama 提供了一个简单的 HTTP API。
curl http://localhost:11434/api/chat -d '{
"model": "llama3.2",
"messages": [
{
"role": "user",
"content": "What are God Particles?"
}
],
"stream": false
}'
此方法可让你灵活地使用任何可以发出 HTTP 请求的语言或工具与 LLama 3.2 进行交互。
方法 3:使用 Langchain 开发高级应用
对于更复杂的应用程序,尤其是涉及文档分析和检索的应用程序,Langchain 可与 Ollama 和 LLama 3.2 无缝集成。
以下代码片段演示了如何加载文档、创建嵌入和执行相似性搜索:
from langchain_community.document_loaders import DirectoryLoader, UnstructuredWordDocumentLoader
from langchain_text_splitters import RecursiveCharacterTextSplitter
from langchain_community.embeddings import OllamaEmbeddings
from langchain_community.llms import Ollama
from langchain_community.vectorstores import Chroma
# Load documents
loader = DirectoryLoader('/path/to/documents', glob="**/*.docx", loader_cls=UnstructuredWordDocumentLoader)
documents = loader.load()
# Split documents into chunks
text_splitter = RecursiveCharacterTextSplitter(chunk_size=500, chunk_overlap=0)
splits = text_splitter.split_documents(documents)
# Create embeddings and vector store
embeddings = OllamaEmbeddings(model="nomic-embed-text")
vectorstore = Chroma.from_documents(documents=splits, embedding=embeddings)
# Initialize LLama 3.2
llm = Ollama(model="llama3.2", base_url="http://localhost:11434")
# Perform a similarity search and generate a response
query = "What was the main accomplishment of Thomas Jefferson?"
similar_docs = vectorstore.similarity_search(query)
context = "\n".join([doc.page_content for doc in similar_docs])
response = llm(f"Context: {context}\nQuestion: {query}\nAnswer:")
print(response)
这种方法允许你使用 LLama 3.2 强大的语言理解功能构建能够理解和推理大量文本数据的应用程序。
4、结束语
在本地运行 LLama 3.2 为 AI 驱动的应用程序开辟了一个无限可能的世界。无论您是在寻找简单的聊天交互、基于 API 的集成还是复杂的文档分析系统,这三种方法都可以提供灵活性以适应广泛的用例。
请记住以负责任和合乎道德的方式使用这些强大的工具。祝你编码愉快!
原文链接:3 Ways to Run LLama 3.2 Locally
汇智网翻译整理,转载请标明出处