开源可部署+国产化适配:Lychee-Rerank在麒麟V10+海光C86平台部署记录
开源可部署国产化适配Lychee-Rerank在麒麟V10海光C86平台部署记录1. 项目背景与价值在信息检索和文档处理领域相关性评分是一个核心且关键的技术环节。传统的云端API服务虽然方便但存在数据隐私、网络依赖和使用成本等问题。Lychee-Rerank作为一个开源的相关性评分工具提供了纯本地化的解决方案特别适合对数据安全要求较高的场景。本次部署实践基于麒麟V10操作系统和海光C86硬件平台这是国产化替代的重要技术路线。通过在实际生产环境中的部署测试验证了Lychee-Rerank在国产化平台上的兼容性和性能表现为相关行业提供了可行的技术参考。工具的核心价值在于完全本地化所有数据处理和推理都在本地完成无需网络连接数据安全敏感文档无需上传到第三方服务杜绝隐私泄露风险国产化适配支持国产操作系统和硬件平台符合信创要求灵活定制支持自定义指令和评分规则适应不同业务场景2. 环境准备与依赖安装2.1 系统环境要求本次部署基于以下环境操作系统麒麟V10 SP2CPU架构海光C86x86_64兼容Python版本3.8内存要求至少8GB模型加载需要约3GB内存2.2 基础依赖安装首先更新系统包管理器并安装基础开发工具# 更新系统包列表 sudo yum update # 安装开发工具和编译依赖 sudo yum install -y gcc gcc-c make cmake sudo yum install -y python3-devel openssl-devel libffi-devel2.3 Python环境配置创建独立的Python虚拟环境并安装必要依赖# 创建虚拟环境 python3 -m venv lychee-env source lychee-env/bin/activate # 安装核心Python依赖 pip install --upgrade pip pip install torch torchvision torchaudio --index-url https://download.pytorch.org/whl/cpu pip install streamlit transformers sentencepiece protobuf2.4 模型文件准备由于Lychee官方权重文件可能不可用我们使用Qwen2.5-1.5B作为替代方案# 创建项目目录 mkdir lychee-rerank cd lychee-rerank # 下载模型文件可选transformers会自动下载 # 或者手动放置已下载的模型到指定目录3. 部署与配置过程3.1 项目结构搭建创建标准的项目文件结构lychee-rerank/ ├── app.py # Streamlit主应用 ├── rerank_model.py # 推理模型封装 ├── requirements.txt # 依赖列表 ├── models/ # 模型文件目录 └── examples/ # 示例文档3.2 核心推理代码实现创建rerank_model.py文件实现评分核心逻辑import torch from transformers import AutoTokenizer, AutoModelForCausalLM import numpy as np class LycheeRerank: def __init__(self, model_pathQwen/Qwen2.5-1.5B): self.device cuda if torch.cuda.is_available() else cpu self.tokenizer AutoTokenizer.from_pretrained(model_path) self.model AutoModelForCausalLM.from_pretrained( model_path, torch_dtypetorch.float16 if self.device cuda else torch.float32, device_mapauto if self.device cuda else None ) self.system_prompt 判断以下文档是否与查询相关。只回答是或否。 def calculate_relevance(self, instruction, query, document): prompt fInstruction{instruction}/Instruction\nQuery{query}/Query\nDocument{document}/Document inputs self.tokenizer(prompt, return_tensorspt).to(self.device) with torch.no_grad(): outputs self.model(**inputs) # 提取是的概率作为相关性分数 logits outputs.logits[0, -1, :] yes_token_id self.tokenizer.convert_tokens_to_ids(是) no_token_id self.tokenizer.convert_tokens_to_ids(否) yes_logit logits[yes_token_id].item() no_logit logits[no_token_id].item() # 使用softmax计算概率 yes_prob np.exp(yes_logit) / (np.exp(yes_logit) np.exp(no_logit)) return yes_prob3.3 可视化界面开发创建app.py文件实现Streamlit用户界面import streamlit as st import pandas as pd from rerank_model import LycheeRerank # 初始化模型 st.cache_resource def load_model(): return LycheeRerank() def main(): st.title(⚖️ Lychee-Rerank 相关性评分工具) st.markdown(基于Qwen2.5-1.5B的本地检索相关性评分工具) # 初始化session state if results not in st.session_state: st.session_state.results None # 输入区域 col1, col2 st.columns(2) with col1: st.subheader(输入配置) instruction st.text_input( 指令(Instruction), value基于查询检索相关文档, help自定义评分规则 ) query st.text_area( 查询(Query), valueWhat is the capital of China?, height100, help输入待匹配的查询语句 ) documents st.text_area( 候选文档, valueBeijing is the capital of China.\nShanghai is the largest city in China.\nChina is located in East Asia.\nThe Great Wall is in China.\nTokyo is the capital of Japan., height200, help每行输入一条候选文档支持批量输入 ) if st.button( 计算相关性分数, typeprimary): with st.spinner(计算中请稍候...): model load_model() doc_list [doc.strip() for doc in documents.split(\n) if doc.strip()] results [] for i, doc in enumerate(doc_list): score model.calculate_relevance(instruction, query, doc) results.append({ rank: i 1, score: score, document: doc }) # 按分数降序排序 results.sort(keylambda x: x[score], reverseTrue) for i, res in enumerate(results): res[rank] i 1 st.session_state.results results # 结果显示区域 with col2: st.subheader(评分结果) if st.session_state.results: for result in st.session_state.results: score result[score] # 设置颜色和进度条 if score 0.8: color green elif score 0.4: color orange else: color red st.markdown(f**#{result[rank]} | 分数: {score:.6f}**) st.progress(score) # 显示文档内容 st.code(result[document], languagetext) st.divider() if __name__ __main__: main()4. 运行与测试验证4.1 启动应用程序在项目目录下执行以下命令启动服务# 激活虚拟环境 source lychee-env/bin/activate # 启动Streamlit应用 streamlit run app.py --server.port 8501 --server.address 0.0.0.0启动成功后控制台会显示访问地址通常为http://localhost:8501。4.2 功能测试验证通过浏览器访问应用界面后进行以下测试基础功能测试使用默认的示例数据点击计算按钮验证是否能正常返回结果自定义指令测试修改Instruction内容验证评分规则是否相应变化批量文档测试输入多条候选文档验证批量处理能力性能测试测试不同数量文档的处理时间评估性能表现4.3 国产化适配验证在海光C86平台上的特别验证点# 验证CPU架构兼容性 lscpu | grep Architecture # 应显示x86_64 # 验证麒麟系统版本 cat /etc/os-release | grep PRETTY_NAME # 应显示Kylin Linux Advanced Server V10 # 验证Python环境 python3 -c import torch; print(torch.__version__); print(CUDA available:, torch.cuda.is_available())5. 部署优化与实践建议5.1 性能优化策略针对国产化平台的性能优化建议# 模型加载优化 model AutoModelForCausalLM.from_pretrained( model_path, torch_dtypetorch.float16, # 使用半精度减少内存占用 device_mapauto, low_cpu_mem_usageTrue # 减少CPU内存使用 ) # 推理过程优化 with torch.inference_mode(): # 比torch.no_grad()更高效 outputs model(**inputs)5.2 内存管理建议对于内存受限的环境分批处理大量文档时采用分批处理避免内存溢出模型量化使用8bit或4bit量化进一步减少内存占用缓存清理定期清理GPU和CPU缓存5.3 生产环境部署正式环境部署建议使用反向代理通过Nginx代理Streamlit服务设置开机自启使用systemd管理服务进程日志监控配置完善的日志记录和监控系统定期更新保持模型和依赖库的版本更新6. 总结通过本次在麒麟V10和海光C86平台的部署实践我们成功验证了Lychee-Rerank相关性评分工具在国产化环境中的可行性和稳定性。工具展现了优秀的兼容性和性能表现为相关行业提供了可靠的本地化解决方案。关键成果完成了从模型加载到界面展示的完整部署流程验证了国产化平台的兼容性和性能表现提供了开箱即用的可视化评分工具确保了数据处理的完全本地化和安全性实践价值 本次部署记录为类似项目的国产化适配提供了详细参考特别是在处理敏感数据的场景下本地化解决方案显得尤为重要。Lychee-Rerank不仅是一个技术工具更是数据安全和自主可控理念的具体实践。对于需要在国产化环境中部署类似AI应用的团队本文提供的经验和方法论具有直接的参考价值。随着国产化替代进程的加速这类经过验证的解决方案将发挥越来越重要的作用。获取更多AI镜像想探索更多AI镜像和应用场景访问 CSDN星图镜像广场提供丰富的预置镜像覆盖大模型推理、图像生成、视频生成、模型微调等多个领域支持一键部署。

相关新闻

办公革新:Qwen3-VL:30B+飞书,手把手教你搭建能“看图说话”的智能助理

办公革新:Qwen3-VL:30B+飞书,手把手教你搭建能“看图说话”的智能助理

办公革新:Qwen3-VL:30B飞书,手把手教你搭建能“看图说话”的智能助理 想象一下,在飞书群里发一张产品设计图,你的AI助理不仅能看懂图片内容,还能和你讨论设计细节、生成修改建议,甚至帮你写一份产品说明文…

2026/5/17 6:11:02 阅读更多 →
不用写代码!用App Inventor 2+百度API做天气APP的全过程记录

不用写代码!用App Inventor 2+百度API做天气APP的全过程记录

从零到一:一个高中生用App Inventor 2打造专属天气应用的真实手记 去年夏天,我所在的科技创新小组接到了一个任务:为学校的“智慧校园”项目开发一个简单的天气信息展示模块。作为小组里唯一一个没有系统学习过编程的成员,我一开始…

2026/7/5 2:42:12 阅读更多 →
Ruoyi-Vue 3.8.7集成积木报表JmReport和JimuBI大屏的5个常见问题及解决方案

Ruoyi-Vue 3.8.7集成积木报表JmReport和JimuBI大屏的5个常见问题及解决方案

Ruoyi-Vue 3.8.7 集成 JmReport 与 JimuBI:从依赖冲突到权限配置的深度排雷指南 如果你正在尝试将积木报表 JmReport 和积木大屏 JimuBI 集成到 Ruoyi-Vue 3.8.7 项目中,并且已经按照一些基础教程操作,却依然在启动、访问或功能调用时遇到各种…

2026/5/17 10:55:19 阅读更多 →

最新新闻

Dify实战:从零构建生产级AI应用的工作流与RAG优化指南

Dify实战:从零构建生产级AI应用的工作流与RAG优化指南

🚀 30款热门AI模型一站整合,DeepSeek/GLM/Qwen 随心用,限时 5 折。 👉 点击领海量免费额度 如果你最近在尝试把大语言模型(LLM)的能力真正用起来,而不是停留在聊天对话,大概率会遇…

2026/7/5 2:42:48 阅读更多 →
webMAN MOD:PS3 上的一站式管理插件

webMAN MOD:PS3 上的一站式管理插件

文章目录webMAN MOD:PS3 上的一站式管理插件webMAN MOD:PS3 上的一站式管理插件 webMAN MOD 是一个 PlayStation 3 的自制插件,从 DeanK 的 webMAN/sMAN 分支而来,在原有基础上增加了大量功能,目前在 GitHub 上有 1,7…

2026/7/5 2:42:48 阅读更多 →
企业微信二次开发实战:API、外部群与自动化应用指南

企业微信二次开发实战:API、外部群与自动化应用指南

引言 企业微信作为腾讯推出的企业级办公平台,其开放的API生态为开发者提供了丰富的二次开发能力。通过企业微信二次开发,企业能够将内部业务流程、客户服务与协同办公深度整合,构建定制化的数字化解决方案。本文将聚焦于企业微信API、企业微…

2026/7/5 2:40:47 阅读更多 →
VMPDump实战指南:动态脱壳VMProtect 3.x的原理与逆向分析

VMPDump实战指南:动态脱壳VMProtect 3.x的原理与逆向分析

1. 项目概述:为什么我们需要VMPDump?在逆向工程和安全研究的圈子里,VMProtect(简称VMP)一直是个让人又爱又恨的存在。爱的是它强大的保护能力,恨的也是它强大的保护能力。尤其是到了3.x版本,其引…

2026/7/5 2:36:47 阅读更多 →
基于SpringBoot的合同管理系统与实现

基于SpringBoot的合同管理系统与实现

选题背景 在当今数字化、信息化高速发展的时代背景下,企业运营与管理正经历着深刻的变革。合同作为企业对外合作、对内管理、明确各方权利义务的核心法律文件与商业凭证,其管理水平直接关系到企业的经营效率、风险控制能力与合规性。传统的人工纸质合同管…

2026/7/5 2:34:45 阅读更多 →
在STM32上跑通TinyML:从理论到实践的技术指南

在STM32上跑通TinyML:从理论到实践的技术指南

一、 引言:为什么要在STM32上部署TinyML?简要介绍TinyML(微型机器学习)的概念、优势及其在边缘计算中的重要性。阐述STM32作为主流微控制器平台,在资源受限环境下运行ML模型的挑战与机遇。二、 核心概念与准备工作2.1 …

2026/7/5 2:34:45 阅读更多 →

日新闻

B站视频下载神器BiliTools:5分钟学会轻松保存任何B站内容

B站视频下载神器BiliTools:5分钟学会轻松保存任何B站内容

B站视频下载神器BiliTools:5分钟学会轻松保存任何B站内容 【免费下载链接】BiliTools A cross-platform bilibili toolbox. 跨平台哔哩哔哩工具箱,支持下载视频、番剧等等各类资源 项目地址: https://gitcode.com/GitHub_Trending/bilit/BiliTools …

2026/7/5 0:03:34 阅读更多 →
威胁模型全解析:从新手入门到实战应用,助你构建安全产品!

威胁模型全解析:从新手入门到实战应用,助你构建安全产品!

威胁模型的陌生现状在忙碌疲惫的一天里,参与了关于混合后量子密码学的讨论,应付端点攻击找茬的人,还参与留言板讨论后,发现“威胁模型”对多数人仍是陌生概念,且多被当作时髦用语。有趣的相关画作有一幅由 Embyr 创作的…

2026/7/5 0:03:34 阅读更多 →
渗透测试入门指南:从零基础到实战环境搭建

渗透测试入门指南:从零基础到实战环境搭建

1. 从“看热闹”到“入门”:我理解的渗透测试到底是什么?每次看到新闻里说某个大公司的数据被“黑”了,或者某个网站被攻击导致服务瘫痪,你是不是和我一样,心里会冒出两个念头:一是“这黑客真厉害”&#x…

2026/7/5 0:07:38 阅读更多 →

周新闻

B站视频下载神器BiliTools:5分钟学会轻松保存任何B站内容

B站视频下载神器BiliTools:5分钟学会轻松保存任何B站内容

B站视频下载神器BiliTools:5分钟学会轻松保存任何B站内容 【免费下载链接】BiliTools A cross-platform bilibili toolbox. 跨平台哔哩哔哩工具箱,支持下载视频、番剧等等各类资源 项目地址: https://gitcode.com/GitHub_Trending/bilit/BiliTools …

2026/7/5 0:03:34 阅读更多 →
威胁模型全解析:从新手入门到实战应用,助你构建安全产品!

威胁模型全解析:从新手入门到实战应用,助你构建安全产品!

威胁模型的陌生现状在忙碌疲惫的一天里,参与了关于混合后量子密码学的讨论,应付端点攻击找茬的人,还参与留言板讨论后,发现“威胁模型”对多数人仍是陌生概念,且多被当作时髦用语。有趣的相关画作有一幅由 Embyr 创作的…

2026/7/5 0:03:34 阅读更多 →
渗透测试入门指南:从零基础到实战环境搭建

渗透测试入门指南:从零基础到实战环境搭建

1. 从“看热闹”到“入门”:我理解的渗透测试到底是什么?每次看到新闻里说某个大公司的数据被“黑”了,或者某个网站被攻击导致服务瘫痪,你是不是和我一样,心里会冒出两个念头:一是“这黑客真厉害”&#x…

2026/7/5 0:07:38 阅读更多 →

月新闻