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

RTX-3090 Qwen3-8B Dify RAG环境搭建

RTX-3090 Qwen3-8B Dify RAG环境搭建

    • 一、环境配置
    • 二、操作步骤
      • 1、创建容器
      • 2、下载`Qwen3-8B`和embedding模型
      • 3、安装`transformers`
      • 4、安装`vllm`
      • 5、安装`flash-attention`
      • 6、启动兼容OpenAI API的服务
        • 1、方案一:启动`vllm`服务【不支持多任务】
        • 2、方案二:Flask和PyTorch实现的Qwen3-8B和Embeddings 兼容OpenAI API的服务
      • 7、测试API服务
      • 8.安装`Dify`

一、环境配置

属性
CUDA Driver Version555.42.02
CUDA Version12.5
OSUbuntu 20.04.6 LTS
Docker version24.0.5, build 24.0.5-0ubuntu1~20.04.1
GPUNVIDIA GeForce RTX 3090 24GB显存

二、操作步骤

1、创建容器

docker run --runtime nvidia --gpus all -ti \-v $PWD:/home -w /home \-p 8000:8000 --ipc=host nvcr.io/nvidia/pytorch:24.03-py3 bash

2、下载Qwen3-8B和embedding模型

cd /home
pip install modelscope
modelscope download --model Qwen/Qwen3-8B  --local_dir Qwen3-8B
modelscope download --model maidalun/bce-embedding-base_v1 --local_dir bce-embedding-base_v1

3、安装transformers

cd /home
git clone https://github.com/huggingface/transformers.git
cd transformers
git checkout v4.51.0
pip install tokenizers==0.21
python3 setup.py install

4、安装vllm

pip install vllm
pip install flashinfer-python==v0.2.2
python3 -m pip install --upgrade 'optree>=0.13.0'
pip install bitsandbytes>=0.45.3 -i https://pypi.tuna.tsinghua.edu.cn/simple

5、安装flash-attention

git clone https://github.com/Dao-AILab/flash-attention.git
cd flash-attention/
git checkout fd2fc9d85c8e54e5c20436465bca709bc1a6c5a1
python setup.py build_ext
python setup.py bdist_wheel
pip install dist/flash_attn-*.whl

6、启动兼容OpenAI API的服务

1、方案一:启动vllm服务【不支持多任务】
cd /home
export TORCH_CUDA_ARCH_LIST="8.6+PTX"
vllm serve ./Qwen3-8B/ --quantization bitsandbytes --enable-prefix-caching --dtype bfloat16
2、方案二:Flask和PyTorch实现的Qwen3-8B和Embeddings 兼容OpenAI API的服务
cat > dify_api_srv.py <<-'EOF'
from transformers import AutoModelForCausalLM, AutoTokenizer
import time
import torch
from transformers import AutoModel
from typing import List
import numpy as np
from transformers import TextStreamer
from flask import Flask, request, jsonify, Response
import uuid
import jsonapp = Flask(__name__)# 加载模型和分词器
model_name = "./Qwen3-8B"
tokenizer = AutoTokenizer.from_pretrained(model_name)
model = AutoModelForCausalLM.from_pretrained(model_name,torch_dtype="auto",device_map="auto"
)# 加载本地嵌入模型
MODEL_PATH = "./bce-embedding-base_v1"  # 本地模型路径
rerank_tokenizer = AutoTokenizer.from_pretrained(MODEL_PATH)
rerank_model = AutoModel.from_pretrained(MODEL_PATH)@app.route('/v1/completions', methods=['POST'])
def handle_completion():"""处理文本补全请求"""data = request.get_json()print(data)# 解析请求参数prompt = data.get('prompt', '')max_tokens = data.get('max_tokens', 32768)temperature = float(data.get('temperature', 1.0))top_p = float(data.get('top_p', 1.0))# 构建模型输入messages = [{"role": "user", "content": prompt}]formatted_text = tokenizer.apply_chat_template(messages,tokenize=False,add_generation_prompt=True,enable_thinking=False)inputs = tokenizer(formatted_text, return_tensors="pt").to(model.device)# 生成文本generated_ids = model.generate(**inputs,max_new_tokens=max_tokens,temperature=temperature,do_sample=False,top_p=top_p,pad_token_id=tokenizer.eos_token_id)# 解析生成结果output_ids = generated_ids[0][len(inputs.input_ids[0]):]try:think_token_id = tokenizer.convert_tokens_to_ids("</think>")index = len(output_ids
http://www.dtcms.com/a/171593.html

相关文章:

  • Vue 3 中 ref 的使用例子
  • 大连理工大学选修课——图形学:第一章 图形学概述
  • 相向双指针-16. 最接近的三数之和
  • 新一代智能座舱娱乐系统软件架构设计文档
  • 【计网】互联网的组成
  • Linux watch 命令使用详解
  • Easy云盘总结篇-文件上传01
  • 高等数学-第七版-下册 选做记录 习题10-2
  • LangChain4J-XiaozhiAI 项目分析报告
  • FiLo++的框架图介绍
  • Sway初体验
  • SwinTransformer 改进:与PSConv结合的创新设计
  • Go-Spring 全新版本 v1.1.0
  • 代码随想录算法训练营第八天 |【字符串】344.反转字符串、541. 反转字符串II、卡码网:54.替换数字
  • 互联网与无线广播:数字时代与模拟时代的通讯双轨制-优雅草卓伊凡
  • 使用synchronized关键字同步Java线程
  • Vector - VT System - 板卡_VT板卡使用介绍_07
  • BUUCTF Pwn wustctf2020_closed WP
  • Java大师成长计划之第12天:性能调优与GC原理
  • 设计模式每日硬核训练 Day 17:中介者模式(Mediator Pattern)完整讲解与实战应用
  • LeetCode - 91.解码方法
  • 高等数学第三章---微分中值定理与导数的应用(3.3泰勒(Taylor)公式)
  • transfomer网络构建
  • C与指针——输入输出
  • 【学习笔记】深度学习:典型应用
  • LlamaIndex统一管理存储组件的容器--StorageContext
  • ES类的索引轮换
  • 轻量化定时工具!Pt 极简界面 :定时备份 + 循环灵活关机
  • 深度优先搜索(DFS)与广度优先搜索(BFS):图与树遍历的两大利器
  • 分布式系统中的 ActiveMQ:异步解耦与流量削峰(二)