OnPrem.LLM:一个轻量级 Python 库,用于使用私有数据运行本地大型语言模型

深入探索 llama-cpp-python:在 LangChain 中启用本地 LLM 推理 通过本文,我们了解了如何在 LangChain 中使用 llama-cpp-python 部署 LLama 模型,涵盖了从安装到推理的整个过程。建议读者进一步探索获取最新模型,并阅读LangChain 官方文档以学习更多关于模型使用的技巧。 阅读详情

一、介绍 OnPrem.LLM

OnPrem.LLM 是一个简单的 Python 库,用于使用非公开数据运行本地大型语言模型。它默认使用的 7B 参数模型,你也可以通过提供 use_larger=True 使用默认的 13B 模型。你还可以提供不同模型的 URL。OnPrem.LLM 主要受到 privateGPT 项目的启发,旨在帮助将本地 LLM 集成到实际应用程序中。

二、安装 OnPrem.LLM

在安装 OnPrem.LLM 前,需要先安装 PyTorch 和 llama-cpp-python。建议使用虚拟环境来进行安装,可以参考以下2.1和2.2部门准备好包管理器和Python等基础环境。

2.1、Package Manager

要安装 PyTorch 二进制文件,您需要使用两个受支持的包管理器之一:Anaconda 或 pip。 Anaconda 是推荐的包管理器,因为它将在一个沙盒安装中为您提供所有 PyTorch 依赖项,包括 Python。

2.1.1、Anaconda

根据你实际的安装环境操作系统来选择对应的脚本安装 Anaconda,然后激活即可使用。

  • Linux 系统使用以下命令
curl -O https://repo.anaconda.com/miniconda/Miniconda3-latest-Linux-x86_64.sh
sh Miniconda3-latest-Linux-x86_64.sh
  • Intel Mac 系统使用以下命令
curl -O https://repo.anaconda.com/miniconda/Miniconda3-latest-MacOSX-x86_64.sh
sh Miniconda3-latest-MacOSX-x86_64.sh
  • M1 Mac 系统使用以下命令
curl -O https://repo.anaconda.com/miniconda/Miniconda3-latest-MacOSX-arm64.sh
sh Miniconda3-latest-MacOSX-arm64.sh
  • 使用以下命令激活conda环境:
source ~/.bashrc
  • 使用以下命令检查conda是否成功安装:
conda --version

如果conda成功安装,您将看到conda的版本号,我这里安装的是conda 23.5.2。

2.1.2、pip

如果您通过 Homebrew 或 Python 网站安装了 Python,则 pip 会随之安装。如果您安装了 Python 3.x,那么您将使用命令 pip3 。

提示:如果您只想使用命令 pip 而不是 pip3 ,则可以将 pip 符号链接到 pip3 二进制文件。

2.2、Python

建议您使用 Python 3.8 或更高版本,可以通过 Anaconda 包管理器(见下文)、Homebrew 或 Python 网站安装。

如果需要在Miniconda中安装特定版本的Python,可以使用以下命令:

conda create -n myenv python=3.11

这将创建一个名为myenv的环境,并在其中安装 Python 3.11 版本。您可以根据需要替换版本号。

如果使用的是 Mac/Linux,您可以使用以下命令激活虚拟环境:

conda activate myenv

在命令行前面如果看到 (myenv) 则说明 Python 的虚拟环境激活成功了,后续推出会话需要安装依赖也需要先激活到虚拟环境再进行操作。

(base) root@racknerd:/scalene# conda activate myenv
(myenv) root@racknerd:/scalene# pip --version
pip 23.2.1 from /root/miniconda3/envs/myenv/lib/python3.11/site-packages/pip (python 3.11)

2.3、PyTorch

PyTorch 在 macOS 10.15 (Catalina) 或更高版本上受支持。

2.3.1、Anaconda

要通过 Anaconda 安装 PyTorch,请使用以下 conda 命令:

conda install pytorch torchvision -c pytorch
2.3.2、pip

要通过 pip 安装 PyTorch,请使用以下命令,具体取决于您的 Python 版本:

# Python 3.x
pip3 install torch torchvision
2.3.3、Verification

为了确保 PyTorch 正确安装,我们可以通过运行示例 PyTorch 代码来验证安装。这里我们将构造一个随机初始化的张量。

import torch
x = torch.rand(5, 3)
print(x)

输出应该类似于:

tensor([[0.3380, 0.3845, 0.3217],
        [0.8337, 0.9050, 0.2650],
        [0.2979, 0.7141, 0.9069],
        [0.1449, 0.1132, 0.1375],
        [0.4675, 0.3947, 0.1426]])

2.4、llama-cpp-python

llama-cpp-python 是 llama.cpp 的 Python 绑定。它支持许多LLM的推理,可以在 HuggingFace 上访问。

注意:新版本的 llama-cpp-python 使用 GGUF 模型文件

从版本 0.1.79 开始,模型格式已从 ggmlv3 更改为 gguf 。旧模型文件可以使用 llama.cpp 中的 convert-llama-ggmlv3-to-gguf.py 脚本进行转换

要将现有的 GGML 模型转换为 GGUF,您可以在 llama.cpp 中运行以下命令:

python ./convert-llama-ggmlv3-to-gguf.py --eps 1e-5 --input models/openorca-platypus2-13b.ggmlv3.q4_0.bin --output models/openorca-platypus2-13b.gguf.q4_0.bin
2.4.1、仅CPU安装

从源代码构建 llama.cpp 。这是推荐的安装方法,因为它可以确保 llama.cpp 是使用适合您的系统的可用优化构建的。

pip install llama-cpp-python

如果您之前通过 pip 安装了 llama-cpp-python 并希望升级版本或使用不同的编译器选项重建软件包,请添加以下标志以确保正确重建软件包:

pip install llama-cpp-python --force-reinstall --upgrade --no-cache-dir

注意:如果您使用的是Apple Silicon (M1) Mac,请确保您已安装支持arm64架构的Python版本。例如:

wget https://github.com/conda-forge/miniforge/releases/latest/download/Miniforge3-MacOSX-arm64.sh
bash Miniforge3-MacOSX-arm64.sh

否则,安装时将构建 llama.ccp x86 版本,该版本在 Apple Silicon (M1) Mac 上速度会慢 10 倍。

2.4.2、使用硬件加速安装

lama.cpp 支持多个 BLAS 后端以加快处理速度。使用 FORCE_CMAKE=1 环境变量强制使用 cmake 并为所需的 BLAS 后端安装 pip 包(源代码)。

安装具有 cuBLAS 支持的 llama-cpp-python,请在安装前设置 LLAMA_CUBLAS=on 环境变量:

CMAKE_ARGS="-DLLAMA_CUBLAS=on" pip install llama-cpp-python

重要提示:如果您已经安装了该软件包的仅限 CPU 版本,则需要从头开始重新安装。以下步骤描述了安装和使用具有 cuBLAS 支持的 llama-cpp-python ,并且可用于 Linux 和 Google Colab 等上的 GPU 加速:

CMAKE_ARGS="-DLLAMA_CUBLAS=on" FORCE_CMAKE=1 pip install -q --upgrade --force-reinstall llama-cpp-python --no-cache-dir

要使用 OpenBLAS 安装,请在安装前设置 LLAMA_BLAS and LLAMA_BLAS_VENDOR 环境变量:

CMAKE_ARGS="-DLLAMA_BLAS=ON -DLLAMA_BLAS_VENDOR=OpenBLAS" pip install llama-cpp-python

要使用 CLBlast 进行安装,请在安装前设置 LLAMA_CLBLAST=on环境变量:

CMAKE_ARGS="-DLLAMA_CLBLAST=on" pip install llama-cpp-python

要使用 Metal (MPS) 进行安装,请在安装前设置 LLAMA_METAL=on 环境变量:

CMAKE_ARGS="-DLLAMA_METAL=on" pip install llama-cpp-python

要安装 AMD 卡的 hipBLAS / ROCm 支持,请在安装前设置 LLAMA_HIPBLAS=on 环境变量:

CMAKE_ARGS="-DLLAMA_HIPBLAS=on" pip install llama-cpp-python
2.4.3、在CentOS系统安装失败

问题:ERROR: Could not build wheels for llama-cpp-python, which is required to install pyproject.toml-based projects

解决:gcc 版本需要 升级到 11 版本(https://github.com/imartinez/privateGPT/issues/644)

# 删除已安装的 gcc 
yum remove gcc 
yum remove gdb
# 安装 scl-utils
yum install scl-utils 
yum install centos-release-scl
# find devtoolset-11
yum list all --enablerepo='centos-sclo-rh' | grep "devtoolset"
# 安装 devtoolset-11-toolchain 工具集
yum install -y devtoolset-11-toolchain
# 把下面的指令添加到 /etc/profile 文件尾部
PATH=$PATH:/opt/rh/devtoolset-11/root/usr/bin 
export PATH 
sudo scl enable devtoolset-11 bash
# 查看 gcc version and gcc11 is installed successfully.
gcc --version
# 再次尝试安装
pip install llama-cpp-python==0.1.50

2.5、OnPrem

安装 PyTorch 并安装 llama-cpp-python 后,您可以使用以下命令安装 OnPrem.LLM:

pip install onprem

三、快速开始

默认情况下,下载并使用 7B 参数模型。如果是 use_larger=True ,则使用 13B 参数。您还可以向 LLM 提供您选择的 LLM 的 URL(有关示例,请参阅下面的代码生成部分)。从 v0.0.20 开始,OnPrem.LLM 支持较新的 GGUF 格式。

from onprem import LLM

llm = LLM()

如果在尝试下载模型时收到 SSL 错误,可以设置 ssl_verify=False

from onprem import LLM

LLM.download_model(url, ssl_verify=False)

四、离线部署

在联网环境下通过调用 LLM.download_model 方法将模型文件下载到 <your_home_directory>/onprem_data ,然后将下载的模型权重文件传输到离线机器上的同一位置。

对于 ingest 和 ask 方法,还需要下载并传输嵌入模型文件:

from sentence_transformers import SentenceTransformer
model = SentenceTransformer('sentence-transformers/all-MiniLM-L6-v2')
model.save('/some/folder')

将 some/folder 文件夹复制到离线计算机,并通过 embedding_model_name 参数提供 LLM 的路径。

五、应用案例

5.1、使用提示词解决问题

5.1.1、信息提取
prompt = """Extract the Name, Position, and Company from the following sentences.  Here are some examples.
[Text]: Fred is a serial entrepreneur. Co-founder and CEO of Platform.sh, he previously co-founded Commerce Guys, a leading Drupal ecommerce provider. His mission is to guarantee that as we continue on an ambitious journey to profoundly transform how cloud computing is used and perceived, we keep our feet well on the ground continuing the rapid growth we have enjoyed up until now. 
[Name]: Fred
[Position]: Co-founder and CEO
[Company]: Platform.sh
###
[Text]: Microsoft (the word being a portmanteau of "microcomputer software") was founded by Bill Gates on April 4, 1975, to develop and sell BASIC interpreters for the Altair 8800. Steve Ballmer replaced Gates as CEO in 2000, and later envisioned a "devices and services" strategy.
[Name]:  Steve Ballmer
[Position]: CEO
[Company]: Microsoft
###
[Text]: Franck Riboud was born on 7 November 1955 in Lyon. He is the son of Antoine Riboud, the previous CEO, who transformed the former European glassmaker BSN Group into a leading player in the food industry. He is the CEO at Danone.
[Name]:  Franck Riboud
[Position]: CEO
[Company]: Danone
###
[Text]: David Melvin is an investment and financial services professional at CITIC CLSA with over 30 years’ experience in investment banking and private equity. He is currently a Senior Adviser of CITIC CLSA.
"""
saved_output = llm.prompt(prompt)

[Name]: David Melvin

[Position]: Senior Adviser

[Company]: CITIC CLSA

5.1.2、语法纠正
prompt = """Correct the grammar and spelling in the supplied sentences.  Here are some examples.
[Sentence]:
I love goin to the beach.
[Correction]: I love going to the beach.
[Sentence]:
Let me hav it!
[Correction]: Let me have it!
[Sentence]:
It have too many drawbacks.
[Correction]: It has too many drawbacks.
[Sentence]:
I do not wan to go
[Correction]:"""
saved_output = llm.prompt(prompt)

I don't want to go.

5.1.3、情感分类
prompt = """Classify each sentence as either positive, negative, or neutral.  Here are some examples.
[Sentence]: I love going to the beach.
[[Classification]: Positive
[Sentence]: It is 10am right now.
[Classification]: Neutral
[Sentence]: I just got fired from my job.
[Classification]: Negative
[Sentence]: The reactivity of  your team has been amazing, thanks!
[Classification]:"""

saved_output = llm.prompt(prompt)

Positive

5.1.4、释义和总结
prompt = """Paraphrase the following text delimited by triple backticks. 
```After a war lasting 20 years, following the decision taken first by President Trump and then by President Biden to withdraw American troops, Kabul, the capital of Afghanistan, fell within a few hours to the Taliban, without resistance.```
"""
saved_output = llm.prompt(prompt)

Paraphrase: After two decades of war in Afghanistan, with President Trump and later President Biden announcing their plans to withdraw American troops, Kabul, the Afghan capital, quickly fell into the hands of the Taliban without any resistance from local authorities or security forces.

5.1.5、少样本答案提取
prompt = """Answer the Question based on the Context.  Here are some examples.
[Context]: 
NLP Cloud was founded in 2021 when the team realized there was no easy way to reliably leverage Natural Language Processing in production.
Question: When was NLP Cloud founded?
[Answer]: 
2021
###
[Context]:
NLP Cloud developed their API by mid-2020 and they added many pre-trained open-source models since then.
[Question]: 
What did NLP Cloud develop?
[Answer]:
API
###
[Context]:
All plans can be stopped anytime. You only pay for the time you used the service. In case of a downgrade, you will get a discount on your next invoice.
[Question]:
When can plans be stopped?
[Answer]:
Anytime
###
[Context]:
The main challenge with GPT-J is memory consumption. Using a GPU plan is recommended.
[Question]:
Which plan is recommended for GPT-J?
Answer:"""
saved_output = llm.prompt(prompt)

GPU Plan

5.1.6、生成产品描述
prompt = """Generate a Sentence from the Keywords. Here are some examples.
[Keywords]:
shoes, women, $59
[Sentence]:
Beautiful shoes for women at the price of $59.
###
[Keywords]:
trousers, men, $69
[Sentence]:
Modern trousers for men, for $69 only.
###
[Keywords]:
gloves, winter, $19
[Sentence]: 
Amazingly hot gloves for cold winters, at $19.
###
[Keywords]: 
t-shirt, men, $39
[Sentence]:"""
saved_output = llm.prompt(prompt)

A stylish and comfortable t-shirt for men, for just $39.

5.1.7、起草电子邮件
prompt = """Generate an email introducing Tesla to shareholders."""
saved_output = llm.prompt(prompt)

Subject: Introducing Tesla, the future of transportation Dear Shareholder, I am writing to introduce you to Tesla, the leading manufacturer of electric vehicles (EVs) and energy storage products. Tesla has been at the forefront of innovating EV technology since its inception in 2003. With a history of creating breakthrough products such as the Tesla Model S, Tesla Powerwall, and Solar Roof, it is clear that Tesla's mission is to create a better future through sustainable transportation and energy solutions. Tesla has experienced rapid growth in recent years, with its stock price increasing by 475% since January 2016. This growth can be attributed to several factors, including the increase in global interest in sustainability and environmental issues, as well as Tesla's continuous innovation and success in the EV market. Overall, Tesla is a company that not only produces cutting-edge products but also has a strong commitment to sustainability and innovation. As a shareholder of Tesla, I encourage you to take advantage of this opportunity to invest in the future of transportation and energy storage solutions with Tesla. Thank you for your continued support of Tesla.

5.2、通过RAG与文档对话

在这个示例中,我们将展示如何使用OnPrem.LLM来进行检索增强生成或RAG(Retrieval-Augmented Generation)。

首先,我们需要确保使用GPU加速推理。为此,我们使用NVIDIA Titan V GPU,并且有适度的12GB VRAM。请确保您已经按照文档中所述安装了支持CUBLAS的llama-cpp-python库。

接下来,在提供LLM参数时,您只需添加ngpulayers参数即可启用GPU加速响应。

另外,我们还可以通过将use_larger参数设置为True来使用稍大的默认模型。

这样,您就可以利用OnPrem.LLM进行检索增强生成,并在具备GPU加速的环境中获得更好的性能和效果。

from onprem import LLM
import tempfile

vectordb_path = tempfile.mkdtemp()

llm = LLM(use_larger=True, n_gpu_layers=35, vectordb_path=vectordb_path)

# 加载文件
llm.ingest("./sample_data/")
5.2.1、对加载的文件进行提问
# 对加载的文件进行提问
result = llm.ask("What is ktrain?")
5.2.2、查询文档答案来源

答案存储在 results['answer'] 中。从向量存储中检索到的用于生成答案的文档存储在上面的 results['source_documents'] 中。

print(result["source_documents"][0])
5.2.3、与上传的文档聊天

与 LLM.ask 不同, LLM.chat 方法保留会话记忆,但代价是更大的上下文和对 LLM 的额外调用。

result = llm.chat("What is ktrain?")

result = llm.chat("Does it support image classification?")

print(result["answer"])

5.3、代码生成

我们将通过提供 URL 并采用该模型所需的特定提示格式来使用 CodeUp LLM。

from onprem import LLM
from IPython.display import Markdown as md

url = "https://huggingface.co/TheBloke/CodeUp-Llama-2-13B-Chat-HF-GGUF/resolve/main/codeup-llama-2-13b-chat-hf.Q4_K_M.gguf"
llm = LLM(url, n_gpu_layers=35)

template = """
Below is an instruction that describes a task. Write a response that appropriately completes the request.

### Instruction:
{prompt}

### Response:"""

answer = llm.prompt(
    "Write a Python script that returns all file paths from a folder recursively.",
    prompt_template=template,
)

md(answer)

5.4、语义相似度

OnPrem.LLM 中的底层矢量数据库可用于检测文本片段之间的语义相似性。

import os, tempfile
from onprem import LLM

vectordb_path = tempfile.mkdtemp()
llm = LLM(
    embedding_model_name="sentence-transformers/nli-mpnet-base-v2",
    embedding_encode_kwargs={"normalize_embeddings": True},
    vectordb_path=vectordb_path,
)

data = [  # from txtai
    "US tops 5 million confirmed virus cases",
    "Canada's last fully intact ice shelf has suddenly collapsed, forming a Manhattan-sized iceberg",
    "Beijing mobilises invasion craft along coast as Taiwan tensions escalate",
    "The National Park Service warns against sacrificing slower friends in a bear attack",
    "Maine man wins $1M from $25 lottery ticket",
    "Make huge profits without work, earn up to $100,000 a day",
]
source_folder = tempfile.mkdtemp()
for i, d in enumerate(data):
    filename = os.path.join(source_folder, f"doc{i}.txt")
    with open(filename, "w") as f:
        f.write(d)

llm.ingest(source_folder, chunk_size=500, chunk_overlap=0)

在这里,我们获得对底层向量存储的引用并直接查询它以找到最佳语义匹配。

db = llm.load_ingester().get_db()
for query in (
    "feel good story",
    "climate change",
    "public health story",
    "war",
    "wildlife",
    "asia",
    "lucky",
    "dishonest junk",
):
    docs = db.similarity_search(query)
    print(f"{query} : {docs[0].page_content}")

Google Colab:

https://github.com/Crossme0809/frenzyTechAI/blob/main/onprem/OnPremLLMQuickStart_1007.ipynb

六、OnPrem 内置Web应用

OnPrem.LLM 包含一个内置 Web 应用程序,可轻松访问和使用 LLM。安装 OnPrem.LLM 后,您可以按照以下步骤准备 Web 应用程序并启动它:

第 1 步:使用 Python API 提取一些文档:
from onprem import LLM
llm = LLM()
llm.ingest('/your/folder/of/documents')
第 2 步:启动 Web 应用程序:
# 命令行运行
onprem --port 8000

然后,在 Web 浏览器中输入 localhost:8000 (如果在远程服务器上运行,则输入 <domain_name>:8000 )以访问该应用程序:

Web 应用程序是通过 Streamlit: pip install streamlit 实现的。如果尚未安装, onprem 命令将要求您安装它。以下是有关 onprem 命令的更多信息:

$:~/projects/github/onprem$ onprem --help
usage: onprem [-h] [-p PORT] [-a ADDRESS] [-v]

Start the OnPrem.LLM web app
Example: onprem --port 8000

optional arguments:
  -h, --help            show this help message and exit
  -p PORT, --port PORT  Port to use; default is 8501
  -a ADDRESS, --address ADDRESS
                        Address to bind; default is 0.0.0.0
  -v, --version         Print a version

该应用程序要求用户主目录的 onprem_data 文件夹中存在名为 webapp.yml 的文件。此文件存储 Web 应用程序使用的信息,例如要使用的模型。如果不存在,则会为您创建一个默认的,如下所示:

# 默认YAML配置
llm:
  # 模型url(或先前下载的模型文件名)
  model_url: https://huggingface.co/TheBloke/WizardLM-13B-V1.2-GGUF/resolve/main/wizardlm-13b-v1.2.Q4_K_M.gguf
  # number of layers offloaded to GPU
  n_gpu_layers: 32
  # 向量数据库文件夹路径
  vectordb_path: {datadir}/vectordb
  # 模型下载文件夹的路径
  model_download_path: {datadir}
  # LLM. ask和LLM.chat使用的源文件数量
  rag_num_source_docs: 6
  # LLM. ask/LLM.chat考虑的源的最小相似性分数
  rag_score_threshold: 0.0
  # verbosity of Llama.cpp
  verbose: TRUE
prompt:
  # prompt_template与LLM.提示词一起使用(例如,用于接受系统提示词的模型)
  prompt_template:
ui:
  # 应用名称
  title: OnPrem.LLM
  # “与您的文档对话”屏幕中的副标题
  rag_title:
  # 包含将在下面插入的内容的markdown文件的路径rag_title
  rag_text_path:
  # 包含原始文档的文件夹路径(即您提供给LLM. ingest的文件夹的绝对路径)
  rag_source_path:
  # 基本url(留空,除非您运行自己的单独Web服务器来提供源文档)
  rag_base_url:

您可以根据您的要求编辑该文件。 llm 部分中的变量会自动传递给 onprem.LLM 构造函数,而构造函数又将额外的 **kwargs 传递给 llama-cpp-python 。例如,您可以在 llm 部分中添加 temperature 变量来调整 Web 应用程序中模型的温度(例如,接近 0.0 的较低值可实现更具确定性的输出,较高的值可实现更稳定的输出)以获得更多创意)。

自动创建的 YAML 文件中的默认模型是 13B 参数模型。如果这对您的系统来说太大且太慢,您可以编辑上面的 model_url 以使用速度更快的 7B 参数模型或 3B 参数模型,但会牺牲一些性能。当然,您也可以编辑 model_url 以使用更大的模型。任何 GGUF 格式的模型都可以使用。

如果你对这篇文章感兴趣,而且你想要了解更多关于AI领域的实战技巧,可以关注「技术狂潮AI」公众号。在这里,你可以看到最新最热的AIGC领域的干货文章和案例实战教程。

llama-cpp-python使用教程 llama-cpp-python使用教程摘要 本教程详细介绍了llama-cpp-python的安装、基础用法和高级功能。安装支持CPU、GPU(CUDA/Metal)及OpenBLAS加速,需配置对应环境。基础用法包括加载GGUF模型、文本生成和对话模式。高级功能涵盖GPU加速(设置n_gpu_layers)、多模态处理(图片描述生成)和流式输出。实用技巧包括模型量化(如Q4_K_M平衡性能与显存)、显存优化(内存映射)和性能调优(线程/批处理设置)。常见问题解决涉及CUDA路径配置、GCC升级等。适用于 阅读详情

相关推荐

使用 Llama.cpp 和 llama-cpp-python 快速部署本地 LLM 模型

是llama.cpp的 Python 绑定,旨在简化本地运行大语言模型的过程。它支持多种 LLM 模型,包括可以从获取的模型。

hgSdaegva的博客 3132

llama-cpp-python

一、关于 llama-cpp-python 二、安装 安装配置 支持的后端 Windows 笔记 MacOS笔记 升级和重新安装 三、高级API 1、简单示例 2、从 Hugging Face Hub 中提取模型 3、聊天完成 4、JSON和JSON模式 JSON模式 JSON Schema 模式 5、函数调用 6、多模态模型 7、Speculative Decoding 8、Embeddings 9、调整上下文窗口 四、OpenAI兼容Web服务器 Web服务器功能 五、Docker镜像 六、低级API

AI工程化、开源分享、文档翻译、代码笔记 5286

MuleSoft企业级AI编排:让大模型真正融入ERP/CRM核心业务流

AI编排(AI Orchestration)是将大语言模型从通用能力转化为可信赖业务代理的关键范式,其本质在于解决LLM的语义泛化性与企业系统刚性元数据契约之间的根本矛盾。技术原理上,需通过集成平台实现请求结构化映射、上下文安全治理、多系统协同调度与实时事实校验;其核心价值在于保障LLM输出在真实生产环境中的准确性、可观测性与合规性。典型应用场景覆盖智能工单分类、采购补货建议、合同自动审核等高价值闭环业务。本文聚焦MuleSoft Anypoint Platform作为企业级AI编排中枢的落地实践,深度解析

weixin_34348174的博客 387

【个人开发】llama2部署实践(三)——python部署llama服务(基于GPU加速)

gcc:9.4.0cuda:11.8以上,End。

weixin_44505713的博客 6228

BIOREASON:AI驱动的临床级DNA分析平台解析

DNA分析是精准医疗的核心环节,涉及测序数据质控、变异识别、临床解读与报告生成等多阶段技术流程。其底层依赖生物信息学原理,包括比对算法(如BWA-MEM)、变异检测模型(如DeepVariant)和ACMG致病性评级体系。随着NGS在基层医院普及,如何降低技术门槛、提升分析一致性与临床可解释性,成为关键工程挑战。AI在此并非替代专家,而是将十年沉淀的规则、指南与经验结构化蒸馏为可验证、可审计、可部署的智能模块。BIOREASON正是这一范式的典型实践——融合轻量AI、符号推理与临床知识图谱,实现从FASTQ

weixin_33997389的博客 290

MongoDB Atlas向量搜索+Databricks构建生产级RAG系统

向量数据库是RAG架构的核心组件,其选型直接影响语义检索精度、数据一致性与运维成本。传统方案依赖Pinecone、Weaviate等专用向量库,常面临同步延迟、权限割裂、扩缩容复杂等工程瓶颈。MongoDB Atlas原生向量搜索通过融合标量过滤、全文检索与向量相似度计算,实现低延迟、高可控的混合查询能力;Databricks则作为Embedding模型管理与LLM编排中枢,依托Unity Catalog提供血缘追踪、模型版本治理与跨团队协作支持。二者结合,不仅降低基础设施复杂度,更将RAG从实验原型升级为

cqwmy840702的博客 380

Mythos技术解析:AI驱动的全自动漏洞挖掘与攻防闭环

漏洞挖掘正从人工逆向分析迈向AI原生自动化,其核心在于将代码语义、执行路径与真实利用原语深度耦合。Mythos通过多阶段推理调度、动态工具链编排和细粒度漏洞空间建模,实现了从静态识别到沙箱验证再到POC生成的端到端闭环。这种能力不再依赖传统符号执行或模糊测试的单一范式,而是构建了AST控制流图、符号执行状态投影与exploit primitive映射的三层表征体系,显著提升对语义等价但语法异构漏洞(如C/Rust跨语言逻辑缺陷)的检出率。在SWE-bench Pro与CyberGym等权威基准中大幅超越Op

culi4814的博客 490

AI Agent Runtime 层的范式革命:从 Context 存储到 Event-Log 驱动

AI Agent 不再是单次问答,而是持续运行、跨工具调用、需审计回溯的业务实体。其核心挑战在于状态管理——传统依赖 LLM context 的方案易导致静默截断、幻觉输出与 credential 泄露。Event-log 驱动的 session 管理借鉴数据库 WAL 思想,实现 durable state、crash-consistent 恢复与全链路可审计;无状态 harness 与 sandbox 隔离则支撑高并发、安全合规与云原生扩缩。这一架构演进正推动 runtime 层快速 commoditi

485

Hermes Agent:面向系统测试的智能CLI测试代理

系统测试是验证复杂业务系统端到端功能正确性的关键环节,其核心在于多环境适配、多服务协同与多格式报告交付。传统方案依赖人工调度与脚本拼接,导致可维护性差、执行不可复现。Hermes Agent 以 CLI 为统一入口、API 为能力底座,将测试意图抽象为声明式 YAML 配置,实现‘一次定义、全量覆盖、即刻交付’。它不替代单元或 UI 测试工具,而是聚焦 ERP/CRM 等系统级回归场景,通过 Rust 构建的轻量二进制、rootless 容器沙箱与 WASM 渲染引擎,保障跨平台稳定性与毫秒级响应。适用于从

weixin_34253126的博客 484

Xilnx大学计划/XUP ZYNQ ZU开发板

TUL PYNQ™-ZU板,基于Xilinx Zynq UltraScale+ MPSoC,是为Xilinx大学项目设计的,以支持Xilinx PYNQ (Python Productivi-ty for Zynq)开源框架和嵌入式系统开发。

weixin_57025922的博客 946

Qt数据导出实战:从SQLite到CSV的完整流程(附内存优化技巧)

本文详细介绍了在Qt框架下,将SQLite数据库中的数据高效导出为CSV格式的完整流程。针对大数据量场景,重点分享了分块读取、流式写入等内存优化技巧,有效解决了嵌入式或资源受限环境中导出功能的内存占用与性能瓶颈问题,并提供了健壮的代码实现方案。

weixin_29313547的博客 341

Mythos与Glasswing:通用大模型驱动的AI安全范式革命

大语言模型正从代码生成工具演进为具备自主推理与行动能力的数字安全分析师。其核心原理在于‘推理-行动’(Reasoning-to-Action)范式的深度强化,使模型能跨模块、跨时间维度进行因果建模与符号化执行,从而在真实软件系统中稳定复现人类红队专家的认知闭环。这一技术跃迁带来双重价值:一方面显著提升漏洞发现效率,推动SWE-bench Pro、CyberGym等工程化基准成为能力标尺;另一方面倒逼安全体系从‘找漏洞’转向‘管风险’,催生以Project Glasswing为代表的协同防御新范式。当前实践已

weixin_30388677的博客 375

Unity 实现动态网格地图生成与交互组件

本文详细介绍了在Unity中实现动态网格地图生成与交互组件的完整方案。从基础网格单元实现到高级交互功能,涵盖网格生成器核心逻辑、事件驱动架构、性能优化技巧以及六边形网格等特殊实现。特别适合游戏开发者学习如何构建战棋、模拟经营类游戏的可交互地图系统,提升开发效率与用户体验。

weixin_29015483的博客 1068

【亲测免费】 llama-cpp-python 项目常见问题解决方案

llama-cpp-python 项目常见问题解决方案 【免费下载链接】llama-cpp-python Python bindings for llama.cpp 项目地址: https://gitcode.com/gh_mir...

gitblog_09695的博客 2630

别再傻傻分不清PBR和NPR了!从《原神》到《双城之战》,聊聊游戏里那些让你眼前一亮的渲染风格

本文深入解析了PBR(基于物理的渲染)与NPR(非真实感渲染)在游戏视觉风格中的应用差异,通过《原神》和《双城之战》的案例,展示了两种渲染技术如何创造出截然不同的艺术效果。从技术原理到实战案例,帮助读者理解如何根据项目需求选择合适的渲染风格。

weixin_30425949的博客 146

特斯拉 Model 3解析(八)全面拆解特斯拉自动驾驶大脑:AP控制器硬核技术解析

算力极限:双FSD = 144 TOPS,专为AI推理优化。存储架构:LPDDR4 + NAND + NOR,保证高速/可靠启动。通信架构:以太网传视频,CAN传控制,TSN保障实时性。感知输入:多路摄像头 + 高速SerDes,满足全景感知。电源设计:功率模块+被动元件海洋,稳定性优先。功能安全:双芯片冗余 + GPS + 紧急呼叫,容错率极高。🎯 在我看来,特斯拉AP控制器就是一台“车载超算”,它在电源设计、存储架构和功能安全上远超一般新势力方案。

weixin_43199439的博客 1440

windows上搭建llama小型私有模型

导言目标一、命令行运行大模型llama安装前的准备运行大模型二、 使用python调用模型环境准备使用langchain调用llama模型欢迎使用Markdown编辑器新的改变功能快捷键合理的创建标题,有助于目录的生成如何改变文本的样式插入链接与图片如何插入一段漂亮的代码片生成一个适合你的列表创建一个表格设定内容居中、居左、居右创建一个自定义列表如何创建一个注脚注释也是必不可少的KaTeX数学公式新的甘特图功能,丰富你的文章UML 图表FLowchart流程图导出与导入导出导入Markdown。

wuanwujie的博客 4223

【Bug已解决】openclaw max turns reached / Tool calls exceeded limit — OpenClaw 最大轮次超限解决方案

OpenClaw 在执行过程中达到最大轮次限制任务未完成,本质是 --max-turns 设置过小或任务过于复杂。文中给出增加轮次、--continue 继续、分步执行等完整方案。

一键难忘的博客 5505

[NLP] 使用Llama.cpp和LangChain在CPU上使用大模型-RAG

下载llama-cpp, llama-cpp-pythonLangChain是一个提供了一组广泛的集成和数据连接器,允许我们链接和编排不同的模块。可以常见聊天机器人、数据分析和文档问答等应用。sentence-transformer提供了简单的方法来计算句子、文本和图像的嵌入。它能够计算100多种语言的嵌入。我们将在这个项目中使用开源的all-MiniLM-L6-v2模型。Facebook AI相似度搜索(FAISS)是一个为高效相似度搜索和密集向量聚类而设计的库。

摩登都市天空---专栏 7264

高通SDX35平台 modem启动异常分析

SDX35 MIFI项目在生产时出现modem反复重启问题。经排查发现是modem在初始化GNSS模块时访问了不存在的硬件地址导致崩溃,原因是产线使用的SDX35 000-AB型号芯片阉割了GNSS功能,而本地测试使用的AA型号支持该功能。解决方案是通过修改modem编译选项,采用高通新提供的genlmm2选项(保留IMS和SMS功能但去除GNSS支持),最终解决了启动异常问题并满足VZW认证需求。

四儿家的小祖宗的博客 273

UG NX二次开发(C#)-读取PMI对象的名称

摘要:本文介绍了在UG NX中通过NXOpen获取PMI对象名称的方法。首先说明PMI对象初始无名称,可通过重命名或属性设置名称。然后提供C#代码示例,展示如何遍历PMI集合获取对象名称,并显示名称和类型信息。适用于需要操作PMI对象的开发人员,欢迎加入技术交流QQ群749492565。(99字)

GimiGimmy 591

基于llama_cpp 调用本地模型(llama)实现基本推理

零基础实践本地推理模型基本应用: 基于llama_cpp的本地模型调用。 本文先安装 **llama_cpp** python库,再编写程序,利用其调用llama-2-7b-chat.Q4_K_M.ggu模型。

十年通信老兵的技术修炼之路——从3G到5G,从地面基站到卫星通信。 1848

数学建模模型总结

这是本人在两年内准备参加数学建模竞赛搜集到的模型资料,已经经过了本人的筛选和整理,希望能够对准备参加数学建模竞赛的学弟学妹们提供一些帮助!

llama.cpp一种在本地CPU上部署的量化模型(超低配推理llama)

前不久,Meta前脚发布完开源大语言模型LLaMA,随后就被网友“泄漏”,直接放了一个磁力链接下载链接。然而那些手头没有顶级显卡的朋友们,就只能看看而已了但是 Georgi Gerganov 开源了一个项目llama.cpp次项目的牛逼之处就是没有GPU也能跑LLaMA模型大大降低的使用成本,本文就是时间如何在我的 mac m1 pro 上面跑起来这个模型。

god_Zeo的安全博客 2万+

IMSL CNL 7.0.0 (x86-64)Crack

IMSL CNL 7.0.0 (x86-64)Crack intel的算法库破解文件,这是C++版本的破解文件

温度PID控制PLC程序

温度PID稳定控制程序,适用于欧姆龙PLC,对其他PLC也具有很大参考价值

【亲测免费】 Llama-CPP-Python 教程

Llama-CPP-Python 教程 【免费下载链接】llama-cpp-python Python bindings for llama.cpp 项目地址: https://gitcode.com/gh_mirrors/ll/...

gitblog_00184的博客 3032

Data-Structures-and-Algorithm-Analysis-in-Java.pdf

作者: Weiss, Mark A. 出版社: Addison Wesley Data Structures and Algorithm Analysis in Java is an “advanced algorithms” book that fits between traditional CS2 and Algorithms Analysis courses. In the old ACM Curriculum Guidelines, this course was known as CS7. This text is for readers who want to learn good programming and algorithm analysis skills simultaneously so that they can develop such programs with the maximum amo...

5分钟精通llama-cpp-python:从安装到AI应用实战全解析

想要在个人电脑上轻松运行大语言模型?llama-cpp-python作为专为开发者设计的Python绑定库,为您提供了一条快速接入llama.cpp推理引擎的便捷通道。本指南将带您深入掌握这个强大的AI工具包,从基础安装到高级功能应用,一站式解决所有技术难题!🚀 ## 🎯 环境准备与系统兼容性 在开始安装llama-cpp-python之前,请确保您的环境满足以下要求: **基础环境配置

gitblog_00881的博客 1210

Py之Langchain:Langchain(LLM大型语言模型应用程序框架/将LLMs个体进行flow的能力)的简介、安装、使用方法之详细攻略

​ Py之Langchain:Langchain(LLM大型语言模型应用程序框架/将LLMs个体进行flow的能力)的简介、安装、使用方法之详细攻略 目录 Langchai的简介 Langchai的安装 Langchain的使用方法 Langchai的简介 大型语言模型(LLMs)正在成为一种具有变革性的技术,使开发人员能够构建以前无法构建的应用程序。然而,仅仅将这些LLMs用于独立应用通常是不够的,真正的力量在于将它们与其他计算或知识来源相结合。

头部AI社区如有邀博主AI主题演讲请私信—心比天高,仗剑走天涯,保持热爱,奔赴向梦想!低调,专注,谦虚,自律,反思,成长,还算比较正能量的博主,公益免费传播…内心特别想在AI界做出一些可以推进历史进程影响力的技术(兴趣使然,有点小情怀,也有点使命感呀 7277
上一篇: Chainlit vs Streamlit和Gradio:为什么Chainlit是开发聊天机器人不错的选择
下一篇: GPT-Engineer:一个提示就能生成完整应用|全自动代码生成神器
技术狂潮AI
博客等级 码龄3年 1282粉丝 137原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

技术狂潮AI

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值