当前位置: 首页 > article >正文

本地运行LLama 3.2的三种方法

在这里插入图片描述
大型语言模型(LLMs)已经彻底改变了AI领域,小型模型也在崛起。因此,即使是在旧的PC和智能手机上运行先进的LLMs也成为了可能。为了给大家一个起点,我们将探索三种不同的方法来本地与LLama 3.2进行交互。

先决条件

在这里插入图片描述

在我们深入探讨之前,请确保你已经:

  • 安装并运行了Ollama

  • 已经拉取了LLama 3.2模型(在终端中使用 ollama pull llama3.2

现在,让我们来探索这三种方法!

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())

方法二:使用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进行交互的灵活性。

方法三:使用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


# 加载文档
loader = DirectoryLoader('/path/to/documents', glob="**/*.docx", loader_cls=UnstructuredWordDocumentLoader)
documents = loader.load()


# 将文档拆分为多个块
text_splitter = RecursiveCharacterTextSplitter(chunk_size=500, chunk_overlap=0)
splits = text_splitter.split_documents(documents)


# 创建嵌入和向量存储
embeddings = OllamaEmbeddings(model="nomic-embed-text")
vectorstore = Chroma.from_documents(documents=splits, embedding=embeddings)


# 初始化LLama 3.2
llm = Ollama(model="llama3.2", base_url="http://localhost:11434")


# 执行相似性搜索并生成回答
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}\n问题: {query}\n回答:")
print(response)




这种方法允许你构建能够使用LLama 3.2强大的语言理解能力来理解和推理大量文本数据的应用程序。

开始生成提示了!

下载成功后,你可以在终端中使用以下命令运行模型:

$ ollama run llama3.2:3b-instruct-q8_0

现在你已经可以生成一些图片提示了。假设我想为我的博客文章创建一个缩略图,于是我运行了下面的提示词:

Generate a random image prompt that I can use as a thumbnail for my article.

这是生成的结果:

Here's a random image prompt for you:


"A misty, moonlit forest with an old, gnarled tree in the center, its branches twisted and tangled like a giant's fingers. In the background, a subtle glow
emanates from a faint, ethereal light that seems to be seeping from the very earth itself."


Feel free to use this prompt as is or modify it to fit your article's theme and style!

在这里插入图片描述

现在我准备在leonardo.ai网站上使用这个图片提示。这个网站非常适合从文本生成图片。你可以通过创建账户轻松开始制作图片。

该网站每天为你提供150个可用积分。如果合理使用这些积分,它非常适合个人使用。

在这里插入图片描述

如果你是这个平台的新手,可以使用我的图片生成设置,以下是具体的设置:

  • 预设:Cinematic Kino

  • 预设风格:Cinematic

  • 对比度:Medium

  • 图片尺寸:16:9, Medium

  • 模型:Leonardo Lightning XL

结论

在本地运行LLama 3.2为AI驱动的应用程序打开了新的可能性。无论你是寻找简单的聊天交互、基于API的集成,还是复杂的文档分析系统,这三种方法都提供了适应各种使用场景的灵活性。

记住要负责任地、道德地使用这些强大的工具。编码愉快!


http://www.kler.cn/news/330435.html

相关文章:

  • 多旋翼无人机“仿鸟类”精确拦截飞行目标,助力低空安全
  • 微信小程序技术框架选型
  • 在java后端发送HTTPClient请求
  • 用CSS创造三角形案例
  • 数据结构:c++ (OJ202) 快乐数
  • 实用SQL小总结
  • 基于ESP8266—AT指令连接阿里云+MQTT透传数据(2)
  • 828华为云征文|WordPress部署
  • ①EtherCAT转Modbus485RTU网关多路同步高速采集无需编程串口服务器
  • 高德地图key
  • 如果您忘记了 Apple ID 和密码,按照指南可重新进入您的设备
  • 深入解析 Vert.x 的关键特性、架构及其在异步编程中的应用
  • 基于深度学习的不遗忘训练
  • Python Web 开发中的DevOps 实践与自动化运维
  • C++软件试用期检测
  • SpringBoot驱动的社区医院信息管理平台
  • 【09】纯血鸿蒙HarmonyOS NEXT星河版开发0基础学习笔记-Class类基础全解(属性、方法、继承复用、判断)
  • Ubuntu上FFmpeg的安装与使用完全指南
  • D3.js数据可视化基础——基于Notepad++、IDEA前端开发
  • Java的学习(语法相关)