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

centos-LLM+EmbeddingModel+VectorDB-简单模型

参考:
Ollama平台里最流行的embedding模型: nomic-embed-text 模型介绍和实践-CSDN博客
https://blog.csdn.net/skywalk8163/article/details/145498041

https://docs.cherry-ai.com/knowledge-base/data

Installation — Sentence Transformers documentation
https://www.sbert.net/docs/installation.html

GitHub - huggingface/transformers: 🤗 Transformers: State-of-the-art Machine Learning for Pytorch, TensorFlow, and JAX.
https://github.com/huggingface/transformers

快速入门 | 🦜️🔗 Langchain
https://python.langchain.com.cn/docs/get_started/quickstart

环境:
centos 7,anaconda3,CUDA 11.6


目录

  • 问题描述
  • 方案设计
  • 实现
    • 安装
    • 测试

问题描述

公司希望定制一个知识库,结合大语言模型,让用户在提问的时候可以获得专注于生物学领域的答案。

本文只写一个快速实现的、粗略的方案。针对生物学领域的会在后续的文章中细化。

方案设计

参考Cherry Studio的方案。
在这里插入图片描述
关于Cherry Studio的简单使用见上篇:

win10-CherryStudio-简单使用+自定义知识库-CSDN博客
https://blog.csdn.net/pxy7896/article/details/146937655

实现

安装

// 创建conda环境.
conda create -n llm python=3.11

// 安装pytorch, gpu版(版本号是根据 CUDA 11.6 确定的)
pip3 install torch torchvision torchaudio --extra-index-url https://download.pytorch.org/whl/cu116

// 安装transformers
pip install transformers

// 安装sentence-transformers
pip install -U sentence-transformers

// 安装langchain
pip --default-timeout=1000  install langchain
pip install langchain_community

说明:

  • sentence-transformers建议:Python 3.9+, PyTorch 1.11.0+, and transformers v4.41.0+
  • 安装torch的时候可能太慢,可以先下载两个比较大的包(直接搜索名称,找到清华源下载。具体的版本,在pip安装torch的时候肯定会卡在那里,能看到):nvidia_cublas_cu12-12.4.5.8-py3-none-manylinux2014_x86_64.whl(346MB)和torch-2.6.0-cp311-cp311-manylinux1_x86_64.whl(731MB),切换到环境中,将安装包放到某个路径下,使用pip install "torch-*.whl"这样的命令即可安装。安装好两个大包之后,再次重复命令,即可顺利安装

测试

# 放在开头
# 使用Hugging face国内镜像
import os
os.environ['HF_ENDPOINT'] = 'https://hf-mirror.com'  


# 依赖库:sentence-transformers + FAISS + ChatGLM3
from sentence_transformers import SentenceTransformer
from langchain_community.vectorstores import FAISS
from transformers import AutoTokenizer, AutoModel

# 1. Embedding Model
encoder = SentenceTransformer('paraphrase-multilingual-MiniLM-L12-v2')

# 2. 向量数据库
documents = ["基因TP53与癌症相关...", "阿司匹林抑制COX-2..."]  # 替换为你的生物医学文档
db = FAISS.from_texts(documents, encoder)

# 3. LLM
tokenizer = AutoTokenizer.from_pretrained("THUDM/chatglm3-6b", trust_remote_code=True)
model = AutoModel.from_pretrained("THUDM/chatglm3-6b", trust_remote_code=True).half().cuda()

# 工作流程
question = "TP53基因的功能是什么?"
q_vector = encoder.encode(question)
docs = db.similarity_search_by_vector(q_vector, k=1)
prompt = f"根据以下内容回答问题:{docs[0].page_content}\n问题:{question}"
response, _ = model.chat(tokenizer, prompt)
print(response)

# 输出
'''

'''

先下班了,输出结果明天补。

http://www.dtcms.com/a/107674.html

相关文章:

  • Aliee,Bengio and Theis:细胞数据上的因果机器学习
  • 代理模式-spring关键设计模式,bean的增强,AOP的实现
  • Spring SpringBoot 细节总结
  • 【ROS】 CMakeLists 文件详解
  • 大数据Spark(五十六):Spark生态模块与运行模式
  • 《 C语言中的变长数组:灵活而强大的特性》
  • 【git项目管理】长话短说
  • JVM生产环境问题定位与解决实战(六):总结篇——问题定位思路与工具选择策略
  • 如何给槽函数传递用户的参数
  • Vue3的组件通信
  • 博卡软件管理中心8:赋能美容美发行业数字化转型的智能解决方案
  • TensorFlow实现逻辑回归
  • 释义ES6中的箭头函数
  • 源码编译安装nginx和php
  • 透过 /proc 看见内核:Linux 虚拟文件系统与 systemd 初始化初探
  • 表面法线估计(Surface Normal Estimation)
  • CSGO 皮肤交易平台后端 (Spring Boot) 代码结构与示例
  • 为什么 js 对象中引用本地图片需要写 require 或 import
  • Windows 实战-evtx 文件分析--笔记
  • 国标GB28181视频监控平台EasyCVR保驾护航休闲娱乐“九小场所”安全运营
  • 基于Python设计的TEQC数据质量可视化分析软件
  • JavaScript基础-移动端常用开发插件
  • 从零开始学java--常用工具类介绍
  • obsidian ios git同步
  • 【企业文化】CXO是什么?
  • arcgis jsapi 4.31调用geoserver发布/{z}/{x}/{y}.png
  • python-leetcode 63.搜索二维矩阵
  • JavaScript中Symbol详解及使用场景
  • c++:封装哈希表实现unordered_map与unordered_set
  • [dp_1] 使用最小花费爬楼梯 | 解码方法 | 虚拟dp[0]=0