news 2026/5/20 19:11:56

收藏必备!小白程序员快速掌握RAG系统中重排序策略,提升大模型上下文质量

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
收藏必备!小白程序员快速掌握RAG系统中重排序策略,提升大模型上下文质量

本文介绍了RAG系统中重排序策略,通过重排序策略对初始检索的候选文档重新打分排序,将最相关的内容提升到前列,从而提升大模型的上下文质量。文章详细阐述了RRF、RankLLM和CrossEncoder三种重排序方法的核心原理、优势与劣势,并提供了相应的代码样例。通过学习这些方法,开发者可以更好地优化检索结果,提升大模型的性能和用户体验。

“通过重排序策略对初始检索的候选文档重新打分排序,将最相关的内容提升到前列,从而提升大模型的上下文质量。”

RAG 系统中的重排序(Reranking)是对初始检索结果进行二次排序的核心后处理环节。初始检索通常依赖向量相似度或关键词匹配,返回的结果在语义相关性上存在噪声,重排序通过更精细的相关性判断模型对候选文档重新打分,将最相关的内容提升到前列,从而提高大模型接收到的上下文质量。

下面我们就来分享下重排序的几种方法

1、RRF重排

RRF(Reciprocal Rank Fusion)是一种简单而有效的多检索结果融合算法,它通过将多个检索查询的结果进行排名合并,来提高检索的准确性和覆盖面。

核心思想:

  1. 对于同一个用户问题,生成多个不同角度的查询

  2. 分别对每个查询进行检索

  3. 使用RRF算法将多个检索结果列表融合成一个统一的排序列表

  4. RRF算法为每个文档分配分数:score = 1/(rank + k),其中rank是该文档在某个结果列表中的排名

优势:实现简单、速度快、没有算力成本

劣势:缺乏深层语义理解,精度弱于模型类重排算法

流程图

代码样例

import os import uuid from dotenv import load_dotenv from openai import OpenAI from langchain_classic.text_splitter import RecursiveCharacterTextSplitter from langchain_community.vectorstores import Milvus from langchain_classic.prompts import ChatPromptTemplate from langchain_core.output_parsers import StrOutputParser from langchain_core.embeddings import Embeddings from langchain_core.documents import Document from langchain_openai import ChatOpenAI from langchain_classic.load import dumps, loads load_dotenv() # ===================== 配置初始化 ===================== OPENAI_API_KEY = os.getenv("GLM_API_KEY") OPENAI_BASE_URL = os.getenv("GLM_BASE_URL") EMBEDDING_MODEL = os.getenv("GLM_EMBEDDING_MODEL", "embedding-3") MILVUS_URI = os.getenv("MILVUS_URI", "http://localhost:19530") COLLECTION_NAME = "finance_report_rrf" # 兼容 LangChain 的嵌入适配器 class OpenAIEmbeddingsAdapter(Embeddings): def __init__(self, client, model): self.client = client self.model = model def embed_documents(self, texts): response = self.client.embeddings.create(input=texts, model=self.model) return [item.embedding for item in response.data] def embed_query(self, text): return self.embed_documents([text])[0] client = OpenAI(api_key=OPENAI_API_KEY, base_url=OPENAI_BASE_URL) embed_model = OpenAIEmbeddingsAdapter(client, EMBEDDING_MODEL) # ===================== 文档加载 ===================== def parse_finance_document(): """构建财务分析示例文档""" texts = [ "悦享餐饮2020-2023财务综合分析报告:短期偿债能力分析。" "2020~2023年间,悦享餐饮速动比率分别为2.85、2.07、1.48和1.53," "流动比率分别为2.12、2.24、1.61和1.68,整体呈先降后升趋势。" "2022年受非流动资产增加影响,流动比率大幅回落;" "2023年加强应付账款管控,流动资产增加,短期偿债能力略有改善。", "悦享餐饮2020-2023财务综合分析报告:长期偿债能力分析。" "资产负债率先升后降(21.56%->22.03%->28.15%->26.87%)," "产权比率同步变动(28.0%->39.9%->36.7%)。" "2022年受外部冲击,应付账款大增,资产负债率攀升至28.15%;" "2023年优化资产结构,总资产增至188652.47万元,负债回落。", "悦享餐饮2020-2023财务综合分析报告:营运能力分析。" "应收账款周转率从25.12次降至15.34次后回升至18.65次;" "存货周转率波动较大(10.87->8.23->12.35->11.68)。", "悦享餐饮2020-2023财务综合分析报告:盈利能力分析。" "2020~2021年毛利率稳定在60%左右,2022年大幅下滑至-10.23%,2023年回升至8.65%。" "净资产收益率同步下降,主要受门店扩张成本和疫情影响。", "悦享餐饮2020-2023财务综合分析报告:发展能力分析。" "2022年新增5家门店,成本3256.87万元,加剧资金压力;2023年暂停扩张。" "营业收入增长率从2021年的15.2%下降至2022年的-8.3%,2023年恢复至5.1%。", ] return [Document(page_content=t) for t in texts] def reciprocal_rank_fusion(results: list[list], k=60): """ RRF(Reciprocal Rank Fusion)算法实现 参数: results (list[list]): 多个检索结果列表,每个列表包含按相关性排序的文档 k (int): RRF算法的调节参数,默认值60(经验值) 返回: list: 融合后的(文档, 分数)元组列表,按分数降序排序 算法原理: score = 1 / (rank + k),同一文档出现在多个列表中时累加分数 """ fused_scores = {} for docs in results: for rank, doc in enumerate(docs): doc_str = dumps(doc) if doc_str not in fused_scores: fused_scores[doc_str] = 0 fused_scores[doc_str] += 1 / (rank + k) reranked_results = [ (loads(doc), score) for doc, score in sorted(fused_scores.items(), key=lambda x: x[1], reverse=True) ] return reranked_results # ===================== 构建向量索引 ===================== print("正在加载文档...") docs = parse_finance_document() text_splitter = RecursiveCharacterTextSplitter(chunk_size=300, chunk_overlap=50) splits = text_splitter.split_documents(docs) print(f"文档已切分为 {len(splits)} 个文本块") print("正在创建 Milvus 向量索引...") vectorstore = Milvus( embedding_function=embed_model, collection_name=COLLECTION_NAME, connection_args={"uri": MILVUS_URI}, auto_id=True, ) vectorstore.add_documents(splits) retriever = vectorstore.as_retriever(search_kwargs={"k": 3}) print("向量索引创建完成") # ===================== 配置多查询生成器 ===================== template = """你是一个帮助用户生成多个搜索查询的助手。 请根据以下问题生成4个不同角度的相关搜索查询,这些查询应该: 1. **从不同的角度理解原问题** 2. **使用不同的关键词和表达方式** 3. **覆盖问题的不同方面** 原问题:{question} 请生成4个相关的搜索查询:""" prompt_rag_fusion = ChatPromptTemplate.from_template(template) llm = ChatOpenAI( model="glm-4", temperature=0, api_key=OPENAI_API_KEY, base_url=OPENAI_BASE_URL ) generate_queries = ( prompt_rag_fusion | llm | StrOutputParser() | (lambda x: [q.strip() for q in x.split("/n") if q.strip()]) ) # ===================== 测试 RRF 重排 ===================== questions = [ "悦享餐饮的短期偿债能力怎么样?", "2022年毛利率为什么下滑?", "门店扩张对财务有什么影响?", ] for idx, question in enumerate(questions, 1): print(f"/n{'='*50}") print(f"问题 {idx}: {question}") print('='*50) # 生成多个查询 queries = generate_queries.invoke({"question": question}) print(f"生成了 {len(queries)} 个查询:") for i, query in enumerate(queries, 1): print(f" 查询 {i}: {query}") # 对每个查询进行检索 all_results = [] for query in queries: query_docs = retriever.invoke(query) all_results.append(query_docs) # 使用RRF算法融合结果 reranked_docs = reciprocal_rank_fusion(all_results) # 展示最终结果 print(f"/nRRF重排结果(前3个):") for i, (doc, score) in enumerate(reranked_docs[:3], 1): content_preview = doc.page_content[:200].replace('/n', ' ').strip() print(f"/n 排名 {i} (RRF分数: {score:.4f}):") print(f" 内容: {content_preview}...") if doc.metadata: print(f" 来源: {doc.metadata.get('source', '未知')}")

2、RankLLM重排

利用大语言模型(LLM)的深度语言理解能力进行文档重排,通过prompt engineering引导LLM对每个文档进行相关性评分。

优势:语义理解最深、推理能力强、可解释性好

劣势:成本高(LLM API调用)、延迟大

流程图

代码样例

importos from dotenvimportload_dotenv from openaiimportOpenAI from langchain_community.vectorstoresimportMilvus from langchain_core.embeddingsimportEmbeddings from langchain_core.documentsimportDocument from langchain_openaiimportChatOpenAI from langchain_core.promptsimportChatPromptTemplate from langchain_core.output_parsersimportStrOutputParser load_dotenv()# ===================== 配置初始化 =====================OPENAI_API_KEY=os.getenv("GLM_API_KEY")OPENAI_BASE_URL=os.getenv("GLM_BASE_URL")EMBEDDING_MODEL=os.getenv("GLM_EMBEDDING_MODEL","embedding-3")MILVUS_URI=os.getenv("MILVUS_URI","http://localhost:19530")COLLECTION_NAME="finance_report_rankllm"class OpenAIEmbeddingsAdapter(Embeddings): def __init__(self, client, model): self.client=client self.model=model def embed_documents(self, texts): response=self.client.embeddings.create(input=texts,model=self.model)return[item.embeddingforiteminresponse.data]def embed_query(self, text):returnself.embed_documents([text])[0]client=OpenAI(api_key=OPENAI_API_KEY,base_url=OPENAI_BASE_URL)embed_model=OpenAIEmbeddingsAdapter(client, EMBEDDING_MODEL)# ===================== 文档加载 =====================texts=["悦享餐饮2020-2023财务综合分析报告:短期偿债能力分析。""2020~2023年间,速动比率分别为2.85、2.07、1.48和1.53,""流动比率分别为2.12、2.24、1.61和1.68,整体呈先降后升趋势。","悦享餐饮2020-2023财务综合分析报告:长期偿债能力分析。""资产负债率先升后降(21.56%->22.03%->28.15%->26.87%),""2022年受外部冲击,应付账款大增,资产负债率攀升至28.15%。","悦享餐饮2020-2023财务综合分析报告:盈利能力分析。""2020~2021年毛利率稳定在60%左右,2022年大幅下滑至-10.23%,2023年回升至8.65%。""净资产收益率同步下降,主要受门店扩张成本和疫情影响。","悦享餐饮2020-2023财务综合分析报告:发展能力分析。""2022年新增5家门店,成本3256.87万元,加剧资金压力;2023年暂停扩张。""营业收入增长率从2021年的15.2%下降至2022年的-8.3%,2023年恢复至5.1%。","悦享餐饮2020-2023财务综合分析报告:营运能力分析。""应收账款周转率从25.12次降至15.34次后回升至18.65次;""存货周转率波动较大(10.87->8.23->12.35->11.68)。",]docs=[Document(page_content=t)fortintexts]# ===================== 创建 Milvus 向量检索器 =====================vectorstore=Milvus(embedding_function=embed_model,collection_name=COLLECTION_NAME,connection_args={"uri":MILVUS_URI},auto_id=True,)vectorstore.add_documents(docs)retriever=vectorstore.as_retriever(search_kwargs={"k":5})# ===================== LLM 重排器 =====================grade_prompt=ChatPromptTemplate.from_messages([("system","你是一个文档相关性评分员。根据用户问题对文档进行评分。\n""只输出一个0-10的整数分数,10表示高度相关,0表示完全无关。"),("human","用户问题:{question}\n\n文档内容:{document}\n\n相关性分数(0-10):"),])llm=ChatOpenAI(model="glm-4",temperature=0,api_key=OPENAI_API_KEY,base_url=OPENAI_BASE_URL)grader=grade_prompt|llm|StrOutputParser()def llm_rerank(query, docs,top_n=3):""" LLM 重排:对每个文档调用 LLM 评分,按分数降序返回前 top_n 个 参数: query: 用户查询 docs: 候选文档列表 top_n: 返回文档数 返回: list: 按 LLM 评分排序的(文档, 分数)元组列表""" scored_docs=[]fordocindocs: try: score_str=grader.invoke({"question":query,"document":doc.page_content})score=int(score_str.strip())except(ValueError, TypeError): score=0scored_docs.append((doc,score))scored_docs.sort(key=lambda x: x[1],reverse=True)returnscored_docs[:top_n]# ===================== 执行查询和重排 =====================query="2022年毛利率为什么下滑?"# 第一阶段:Milvus 向量检索候选文档candidate_docs=retriever.invoke(query)# 第二阶段:LLM 重排reranked=llm_rerank(query, candidate_docs,top_n=3)print(f"查询: {query}\n")print("LLM 重排结果(前3个):")fori,(doc, score)inenumerate(reranked,1): print(f"\n排名 {i} (相关性分数: {score}/10):")print(f" 内容: {doc.page_content[:150]}...")ifdoc.metadata: print(f" 来源: {doc.metadata.get('source', '未知')}")

3、CrossEncoder重排

CrossEncoder是一种基于BERT的双向编码器重排模型,将查询和文档作为一个整体输入,利用[CLS]标记的输出预测相关性分数,能够捕捉查询与文档之间的深层交互。

优势:精度高、语义理解强

劣势:计算开销大,每个查询-文档对需单独编码,不适合第一阶段检索(从海量的文档里快速粗筛选出少量的候选文档)

流程图

代码样例

from transformers import AutoTokenizer, AutoModelForSequenceClassification import torch # 1. 加载预训练的CrossEncoder模型 model_name = "cross-encoder/ms-marco-MiniLM-L-12-v2" tokenizer = AutoTokenizer.from_pretrained(model_name) model = AutoModelForSequenceClassification.from_pretrained(model_name) def encode_and_score(query, docs): """ 计算查询与每个文档的相关性分数 输入格式: [CLS] query [SEP] document [SEP] 分数越高表示相关性越强 """ scores = [] for doc in docs: inputs = tokenizer( query, doc, return_tensors="pt", truncation=True, max_length=512, padding="max_length" ) with torch.no_grad(): outputs = model(inputs) score = outputs.logits[0][0].item() scores.append(score) return scores # 2. 测试数据(财务分析场景) query = "悦享餐饮2022年毛利率为什么下滑?" documents = [ "2020~2021年毛利率稳定在60%左右,2022年大幅下滑至-10.23%,2023年回升至8.65%。" "净资产收益率同步下降,主要受门店扩张成本和疫情影响。", "2022年新增5家门店,成本3256.87万元,加剧资金压力;2023年暂停扩张。" "营业收入增长率从2021年的15.2%下降至2022年的-8.3%。", "2020~2023年间,速动比率分别为2.85、2.07、1.48和1.53," "流动比率分别为2.12、2.24、1.61和1.68,整体呈先降后升趋势。", "资产负债率先升后降(21.56%->22.03%->28.15%->26.87%)," "2022年受外部冲击,应付账款大增,资产负债率攀升至28.15%。", ] # 3. 执行CrossEncoder重排 scores = encode_and_score(query, documents) ranked_docs = sorted(zip(documents, scores), key=lambda x: x[1], reverse=True) # 4. 输出重排结果 print(f"查询: {query}/n") print("CrossEncoder重排结果(按相关性分数降序):") for rank, (doc, score) in enumerate(ranked_docs, start=1): if score > 0: level = "高度相关" elif score > -2: level = "中等相关" else: level = "低相关" print(f"/n 排名 {rank} (分数: {score:.4f}, {level}):") print(f" {doc[:100]}...")

总结

重排算法核心原理核心优势主要劣势典型使用场景
RRF多维度查询检索,通过公式1/(rank+k)融合排名得分实现简单、速度快、无算力成本无深层语义理解,精度偏低,依赖查询质量多路召回合并、高并发快速检索
RankLLM借助大模型 + 提示词,逐文档人工规则化打分排序语义理解极强、具备逻辑推理、结果可解释调用成本高、接口延迟大专业问答、复杂推理、需要结果解释
CrossEncoder拼接问句与文档整体编码,依靠 BERT 双向交互计算相关分语义匹配精准、相关性判别能力强逐对编码耗时高、算力开销大搜索业务精排、RAG 少量候选文档排序

总的来说,通过重排序提升检索结果排序精度,将原始的初始检索结果打磨为高质量的生成上下文。

最后

2026年技术圈的分化愈发明显:降薪裁员潮持续蔓延,传统开发、测试等岗位大批缩水,不少从业者陷入职业焦虑;与之形成鲜明对比的是,AI大模型相关岗位迎来疯狂扩招,薪资逆势飙升150%,大厂更是直接开出70-100W年薪,疯抢具备实战能力的大模型人才,甚至放宽年龄限制,只求能快速落地技术、创造价值!

很多程序员、职场新人纷纷入局大模型领域,绝非盲目跟风,而是实实在在看到了不可替代的价值优势,这也是2026年最值得抓住的职业风口:

1、窗口期红利,入门门槛友好:不同于成熟赛道的“内卷式招聘”,2026年大模型人才缺口巨大,简历只要达标(掌握基础AI应用+具备简单项目经验),年龄、学历均非硬性要求,小白可快速入门,转行程序员也能无缝衔接;

2、技术可复用,上手速度翻倍:如果你有前后端开发、测试、数据分析等基础,在大模型落地、系统部署、Prompt工程等环节会更具优势,无需从零开始,复用原有技术能力就能快速进阶;

3、懂业务更吃香,竞争力翻倍:单纯懂技术已不够,2026年大厂更看重“技术+业务”的复合型人才,有垂直领域(金融、医疗、工业等)经验者,能精准定位模型落地痛点,薪资比纯技术岗高出30%以上;

更重要的是,即便没有转型需求,用AI大模型工具为工作赋能、提升效率,也已经成为80%企业的硬性要求——不会用大模型提效,未来很可能被行业淘汰!

那么2026年,小白/程序员该如何高效学习大模型?

很多人想入门大模型,却陷入两大困境:要么到处搜集零散资料,不成体系,越学越懵;要么被收费高昂的课程割韭菜,花了钱却学不到实战技能,白白浪费时间走弯路。

今天就给大家精心整理了一份2026年最新、免费、系统化的AI大模型学习资源包,覆盖从零基础入门到商业实战、从理论沉淀到面试通关的全流程,所有资料均已整理归档,无需拼凑,直接领取就能上手学习,小白可照做,程序员可进阶!

👇👇扫码免费领取全部内容👇👇

1、大模型系统化学习路线

这份学习路线结合2026年行业趋势和新手学习规律,由行业专家精心设计,从零基础到精通,每一步都有明确指引,帮你节省80%的无效学习时间,少走弯路、高效进阶,避免踩坑。

2、从0到进阶大模型学习视频教程

从入门到进阶这里都有,跟着老师学习事半功倍。

3、大模型学习书籍&电子文档

涵盖2026年最新技术要点,包括基础入门、Transformer核心原理、Prompt工程、RAG实战、模型微调与部署等内容

4、AI大模型最新行业报告

报告包含腾讯、阿里、甲子光年等权威机构发布的核心内容,还有2026年中文大模型基准测评报告、AI Agent行业研究报告等,帮你站在行业前沿,把握技术风口。

5、大模型项目实战&配套源码

项目包含Deepseek R1、GPT项目、MCP项目、RAG实战等热门方向,还有视频配套代码,手把手教你从0到1完成项目开发,既能练手提升技术,又能丰富简历,为求职和职业发展加分。

6、2026大模型大厂面试真题

2026年大模型面试已全面升级,不再单纯考察基础原理,而是转向侧重技术落地和业务结合的综合考察,很多程序员和新手因为缺乏针对性准备,明明技术不错,却在面试中失利。

适用人群

四阶段学习规划(共90天,可落地执行)
第一阶段(10天):初阶应用

该阶段让大家对大模型 AI有一个最前沿的认识,对大模型 AI 的理解超过 95% 的人,可以在相关讨论时发表高级、不跟风、又接地气的见解,别人只会和 AI 聊天,而你能调教 AI,并能用代码将大模型和业务衔接。

  • 大模型 AI 能干什么?
  • 大模型是怎样获得「智能」的?
  • 用好 AI 的核心心法
  • 大模型应用业务架构
  • 大模型应用技术架构
  • 代码示例:向 GPT-3.5 灌入新知识
  • 提示工程的意义和核心思想
  • Prompt 典型构成
  • 指令调优方法论
  • 思维链和思维树
  • Prompt 攻击和防范
第二阶段(30天):高阶应用

该阶段我们正式进入大模型 AI 进阶实战学习,学会构造私有知识库,扩展 AI 的能力。快速开发一个完整的基于 agent 对话机器人。掌握功能最强的大模型开发框架,抓住最新的技术进展,适合 Python 和 JavaScript 程序员。

  • 为什么要做 RAG
  • 搭建一个简单的 ChatPDF
  • 检索的基础概念
  • 什么是向量表示(Embeddings)
  • 向量数据库与向量检索
  • 基于向量检索的 RAG
  • 搭建 RAG 系统的扩展知识
  • 混合检索与 RAG-Fusion 简介
  • 向量模型本地部署
第三阶段(30天):模型训练

恭喜你,如果学到这里,你基本可以找到一份大模型 AI相关的工作,自己也能训练 GPT 了!通过微调,训练自己的垂直大模型,能独立训练开源多模态大模型,掌握更多技术方案。

到此为止,大概2个月的时间。你已经成为了一名“AI小子”。那么你还想往下探索吗?

  • 为什么要做 RAG
  • 什么是模型
  • 什么是模型训练
  • 求解器 & 损失函数简介
  • 小实验2:手写一个简单的神经网络并训练它
  • 什么是训练/预训练/微调/轻量化微调
  • Transformer结构简介
  • 轻量化微调
  • 实验数据集的构建
第四阶段(20天):商业闭环

对全球大模型从性能、吞吐量、成本等方面有一定的认知,可以在云端和本地等多种环境下部署大模型,找到适合自己的项目/创业方向,做一名被 AI 武装的产品经理。

  • 硬件选型

  • 带你了解全球大模型

  • 使用国产大模型服务

  • 搭建 OpenAI 代理

  • 热身:基于阿里云 PAI 部署 Stable Diffusion

  • 在本地计算机运行大模型

  • 大模型的私有化部署

  • 基于 vLLM 部署大模型

  • 案例:如何优雅地在阿里云私有部署开源大模型

  • 部署一套开源 LLM 项目

  • 内容安全

  • 互联网信息服务算法备案

👇👇扫码免费领取全部内容👇👇

7、这些资料真的有用吗?

这份资料由我和鲁为民博士(北京清华大学学士和美国加州理工学院博士)共同整理,现任上海殷泊信息科技CEO,其创立的MoPaaS云平台获Forrester全球’强劲表现者’认证,服务航天科工、国家电网等1000+企业,以第一作者在IEEE Transactions发表论文50+篇,获NASA JPL火星探测系统强化学习专利等35项中美专利。本套AI大模型课程由清华大学-加州理工双料博士、吴文俊人工智能奖得主鲁为民教授领衔研发。

资料内容涵盖了从入门到进阶的各类视频教程和实战项目,无论你是小白还是有些技术基础的技术人员,这份资料都绝对能帮助你提升薪资待遇,转行大模型岗位。

这份完整版的大模型 AI 学习资料已经上传CSDN,朋友们如果需要可以微信扫描下方CSDN官方认证二维码免费领取【保证100%免费

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/5/20 19:10:11

Java开发者必看:哪些技术可以战略性搁置?高效学习路径规划

1. 项目概述:重新审视Java学习的“必选项”最近在技术社区里,一个话题引起了不小的讨论:“可以不必再学习的Java知识?”。乍一听,这似乎有点离经叛道,毕竟我们一直被教导要夯实基础、全面掌握。但作为一个在…

作者头像 李华
网站建设 2026/5/20 19:09:20

CANN/asc-devkit Cube消息释放函数

FreeMessage 【免费下载链接】asc-devkit 本项目是CANN 推出的昇腾AI处理器专用的算子程序开发语言,原生支持C和C标准规范,主要由类库和语言扩展层构成,提供多层级API,满足多维场景算子开发诉求。 项目地址: https://gitcode.co…

作者头像 李华
网站建设 2026/5/20 19:07:30

深入STM32 USB OTG FS:从官方MSC例程到实战双存储设备移植全记录

STM32 USB OTG FS双存储设备开发实战:从协议栈解剖到SD卡/SPI Flash同步挂载 1. 工程架构设计与协议栈深度解析 在嵌入式存储设备开发领域,USB大容量存储类(MSC)的实现一直是工程师面临的典型挑战。本文将以STM32F103的USB OTG FS外设为基础,…

作者头像 李华
网站建设 2026/5/20 19:06:01

CANN分布式屏障扩展算子

DistributeBarrierExtend 【免费下载链接】ops-transformer 本项目是CANN提供的transformer类大模型算子库,实现网络在NPU上加速计算。 项目地址: https://gitcode.com/cann/ops-transformer 产品支持情况 产品是否支持Ascend 950PR/Ascend 950DT√Atlas A3…

作者头像 李华
网站建设 2026/5/20 19:02:15

CANN/asc-devkit SetCurBufSize函数文档

SetCurBufSize 【免费下载链接】asc-devkit 本项目是CANN 推出的昇腾AI处理器专用的算子程序开发语言,原生支持C和C标准规范,主要由类库和语言扩展层构成,提供多层级API,满足多维场景算子开发诉求。 项目地址: https://gitcode.…

作者头像 李华