news 2026/2/28 14:27:00

微调Cross-Encoder Rerank模型,让RAG系统精准度提升30%!小白入门到精通实战教程

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
微调Cross-Encoder Rerank模型,让RAG系统精准度提升30%!小白入门到精通实战教程

本文详细介绍如何使用LlamaIndex微调Cross-Encoder类型的Rerank模型,提升RAG系统检索精度10-30%。文章涵盖Rerank模型基础概念、数据准备、微调流程、评估方法及最佳实践,通过领域适配、任务适配和数据适配,使通用Rerank模型在垂直领域表现更佳,无需改变Embedding模型即可实现高性价比的检索优化。


Rerank(重排序)模型是RAG系统中的关键组件,能够显著提升检索精度。本文将详细介绍如何使用LlamaIndex微调Cross-Encoder类型的Rerank模型,让你的RAG系统更精准、更智能。

🎯 核心价值:通过微调Rerank模型,可以在不改变Embedding模型的情况下,将检索准确率提升10-30%,是优化RAG系统性价比最高的方法之一。

一、Rerank模型基础概念

1. 什么是Rerank模型?

Rerank(重排序)模型是RAG系统中的"精排"组件,用于对初步检索到的文档进行二次排序,选出最相关的文档。

工作流程:

用户查询 → Embedding模型检索Top-K文档(如Top-100) → Rerank模型精排 → 返回Top-N最相关文档(如Top-3)

2. Cross-Encoder vs Bi-Encoder

特性Bi-Encoder(Embedding模型)Cross-Encoder(Rerank模型)
输入方式分别编码查询和文档同时编码查询+文档对
计算方式独立编码后计算相似度联合编码,全注意力机制
精度较低更高(10-30%提升)
速度快(可预计算文档向量)较慢(需实时计算)
适用场景大规模检索(百万级文档)精排(Top-K文档)
典型模型BGE、M3E、Qwen3-EmbeddingBGE-Reranker、Cross-Encoder

为什么Cross-Encoder更精准?

  • • Cross-Encoder可以对查询和文档进行联合编码,使用全注意力机制捕获细粒度的语义交互
  • • Bi-Encoder只能计算预编码向量的相似度,无法捕获查询-文档之间的深层语义关系

3. 为什么需要微调Rerank模型?

通用模型的局限性:

  • • 通用Rerank模型(如bge-reranker-base)在通用领域表现良好
  • • 但在垂直领域(法律、医疗、金融等)可能表现不佳
  • • 无法理解领域特定的术语、表达方式和语义关系

微调的优势:

  • • ✅领域适配:针对特定领域优化,理解领域术语
  • • ✅任务适配:针对特定任务(如QA、文档检索)优化
  • • ✅数据适配:学习你的数据分布和标注偏好
  • • ✅性能提升:通常能带来10-30%的准确率提升

二、数据准备

1. 数据格式要求

Rerank模型微调需要三元组数据格式:

{"query":"问题文本","passage":"文档/上下文文本","score":1// 1表示相关,0表示不相关}

数据示例:

[{"query":"什么是证券法?","passage":"证券法是为了规范证券发行和交易行为,保护投资者的合法权益,维护社会经济秩序和社会公共利益,促进社会主义市场经济的发展而制定的法律。","score":1},{"query":"什么是证券法?","passage":"民法典是调整平等主体的自然人、法人和非法人组织之间的人身关系和财产关系的法律规范的总称。","score":0}]

2. 数据收集策略

方法1:人工标注

  • • 从实际业务场景中收集查询-文档对
  • • 人工标注相关性(0或1)
  • • 优点:质量高,准确
  • • 缺点:成本高,耗时长

方法2:从现有数据集提取

  • • 使用QASPER、MS MARCO等公开数据集
  • • 从问答对中提取查询和上下文
  • • 优点:成本低,速度快
  • • 缺点:可能不完全匹配你的领域

方法3:负样本挖掘(Hard Negatives)

  • • 使用Embedding模型检索Top-K文档
  • • 选择相关性较低的文档作为负样本(score=0)
  • • 选择相关性较高的文档作为正样本(score=1)
  • • 优点:数据质量好,训练效果好

3. 数据集规模建议

场景训练样本数验证样本数正负样本比例
快速验证100-50050-1001:1 或 1:2
小规模应用500-2000100-2001:1 或 1:2
生产环境2000-10000200-5001:1 或 1:3
大规模应用10000+1000+1:1 或 1:4

正负样本比例建议:

  • • 保持1:1到1:4之间的比例
  • • 负样本过多可能导致模型过于保守
  • • 正样本过多可能导致模型过于激进

三、使用LlamaIndex微调Cross-Encoder

1. 环境准备

# 安装LlamaIndex相关包pip install llama-index-finetuning-cross-encoderspip install llama-index-llms-openaipip install llama-index# 安装其他依赖pip install datasetspip install sentence-transformerspip install torch

2. 数据加载与处理

from llama_index.finetuning.cross_encoders import ( CrossEncoderFinetuneEngine, CrossEncoderDataModule,)from datasets import load_datasetimport pandas as pd# 方法1:从JSON文件加载defload_data_from_json(json_path):"""从JSON文件加载训练数据"""import jsonwithopen(json_path, 'r', encoding='utf-8') as f: data = json.load(f)# 转换为LlamaIndex格式 train_data = []for item in data: train_data.append({"query": item["query"],"passage": item["passage"],"score": item["score"] })return train_data# 方法2:从HuggingFace数据集加载(以QASPER为例)defload_data_from_hf():"""从HuggingFace加载QASPER数据集""" dataset = load_dataset("allenai/qasper") train_data = []# 从训练集中提取800个样本for sample in dataset["train"].select(range(800)): paper_text = sample["full_text"]["paragraphs"] questions = sample["qas"]["question"] answers = sample["qas"]["answers"]# 构建查询-文档对for q_idx, question inenumerate(questions):# 正样本:问题和相关上下文if answers[q_idx] andlen(answers[q_idx]) > 0: relevant_context = extract_relevant_context( paper_text, answers[q_idx] ) train_data.append({"query": question,"passage": relevant_context,"score": 1 })# 负样本:问题和无关上下文 irrelevant_context = extract_irrelevant_context( paper_text, answers[q_idx] ) train_data.append({"query": question,"passage": irrelevant_context,"score": 0 })return train_data# 加载数据train_data = load_data_from_json("train_rerank.json")val_data = load_data_from_json("val_rerank.json")

3. 创建微调引擎

from llama_index.finetuning.cross_encoders import CrossEncoderFinetuneEngine# 初始化微调引擎finetune_engine = CrossEncoderFinetuneEngine( train_dataset=train_data, # 训练数据 val_dataset=val_data, # 验证数据(可选) model_id="cross-encoder/ms-marco-MiniLM-L-12-v2", # 基础模型 model_output_path="./rerank_model_finetuned", # 输出路径 batch_size=16, # 批次大小 epochs=3, # 训练轮数 learning_rate=2e-5, # 学习率 warmup_steps=100, # 预热步数)# 开始微调finetune_engine.finetune()# 获取微调后的模型finetuned_model = finetune_engine.get_finetuned_model()

4. 完整微调示例

import osfrom llama_index.finetuning.cross_encoders import CrossEncoderFinetuneEnginefrom llama_index.postprocessor import CohereRerank, SentenceTransformerRerankimport jsondeffinetune_rerank_model():"""微调Rerank模型的完整流程"""# 1. 加载数据 BASE_DIR = "./data" TRAIN_DATA_PATH = os.path.join(BASE_DIR, "train_rerank.json") VAL_DATA_PATH = os.path.join(BASE_DIR, "val_rerank.json")withopen(TRAIN_DATA_PATH, 'r', encoding='utf-8') as f: train_data = json.load(f)withopen(VAL_DATA_PATH, 'r', encoding='utf-8') as f: val_data = json.load(f)# 2. 配置微调参数 finetune_engine = CrossEncoderFinetuneEngine( train_dataset=train_data, val_dataset=val_data, model_id="cross-encoder/ms-marco-MiniLM-L-12-v2", # 或使用 "BAAI/bge-reranker-base" model_output_path="./rerank_model_finetuned", batch_size=16, epochs=3, learning_rate=2e-5, warmup_steps=100, show_progress=True, )# 3. 执行微调print("开始微调Rerank模型...") finetune_engine.finetune()print("微调完成!")# 4. 保存模型(可选:推送到HuggingFace Hub)# finetune_engine.push_to_hub(# repo_id="your-username/your-rerank-model",# token="your-hf-token"# )return finetune_engineif __name__ == "__main__": finetune_engine = finetune_rerank_model()

四、使用微调后的Rerank模型

1. 在LlamaIndex中使用

from llama_index.postprocessor import SentenceTransformerRerankfrom llama_index.core import VectorStoreIndex, Documentfrom llama_index.embeddings.openai import OpenAIEmbedding# 1. 加载微调后的Rerank模型reranker = SentenceTransformerRerank( model="./rerank_model_finetuned", # 或使用HuggingFace路径 top_n=3, # 返回Top-3文档)# 2. 创建向量索引embed_model = OpenAIEmbedding(model="text-embedding-3-small")documents = [Document(text="文档内容1"), Document(text="文档内容2")]vector_index = VectorStoreIndex.from_documents( documents, embed_model=embed_model)# 3. 创建查询引擎(带Rerank)query_engine = vector_index.as_query_engine( similarity_top_k=10, # 先用Embedding检索Top-10 node_postprocessors=[reranker], # 再用Rerank精排到Top-3)# 4. 查询response = query_engine.query("你的问题")print(response)

2. 直接使用微调后的模型

from sentence_transformers import CrossEncoder# 加载微调后的模型model = CrossEncoder("./rerank_model_finetuned")# 计算查询-文档相关性分数query = "什么是证券法?"passages = ["证券法是为了规范证券发行和交易行为...","民法典是调整平等主体的自然人...","公司法是为了规范公司的组织和行为...",]# 计算分数scores = model.predict([ [query, passage] for passage in passages])# 排序ranked_indices = sorted(range(len(scores)), key=lambda i: scores[i], reverse=True)print("排序结果:")for idx in ranked_indices:print(f"分数: {scores[idx]:.4f}, 文档: {passages[idx][:50]}...")

五、评估方法

1. Reranking评估指标

Hit Rate(命中率):

  • • 衡量Top-K结果中是否包含正确答案
  • • 公式:Hit@K = (包含正确答案的查询数) / (总查询数)

MRR(Mean Reciprocal Rank):

  • • 衡量正确答案的平均排名倒数
  • • 公式:MRR = (1/rank_1 + 1/rank_2 + ...) / N

NDCG(Normalized Discounted Cumulative Gain):

  • • 考虑排序位置的评估指标
  • • 更关注Top结果的准确性

2. 评估脚本示例

from llama_index.core.evaluation import ( RetrieverEvaluator, generate_question_context_pairs,)from llama_index.postprocessor import SentenceTransformerRerankfrom llama_index.core import VectorStoreIndexdefevaluate_reranker( index: VectorStoreIndex, reranker: SentenceTransformerRerank, eval_dataset,):"""评估Rerank模型性能"""# 创建带Rerank的查询引擎 query_engine = index.as_query_engine( similarity_top_k=10, node_postprocessors=[reranker], )# 评估指标 hit_rate_1 = 0 hit_rate_3 = 0 hit_rate_5 = 0 mrr = 0for item in eval_dataset: query = item["query"] ground_truth = item["ground_truth_passages"] # 正确答案列表# 获取检索结果 response = query_engine.retrieve(query) retrieved_passages = [node.text for node in response]# 计算Hit@K hit_1 = any(gt in retrieved_passages[:1] for gt in ground_truth) hit_3 = any(gt in retrieved_passages[:3] for gt in ground_truth) hit_5 = any(gt in retrieved_passages[:5] for gt in ground_truth) hit_rate_1 += hit_1 hit_rate_3 += hit_3 hit_rate_5 += hit_5# 计算MRRfor rank, passage inenumerate(retrieved_passages, 1):if passage in ground_truth: mrr += 1.0 / rankbreak n = len(eval_dataset)return {"Hit@1": hit_rate_1 / n,"Hit@3": hit_rate_3 / n,"Hit@5": hit_rate_5 / n,"MRR": mrr / n, }# 使用示例results = evaluate_reranker( index=vector_index, reranker=reranker, eval_dataset=val_dataset,)print(f"评估结果: {results}")

3. 对比评估:微调前后

from llama_index.postprocessor import SentenceTransformerRerank# 原始模型original_reranker = SentenceTransformerRerank( model="cross-encoder/ms-marco-MiniLM-L-12-v2", top_n=3,)# 微调后的模型finetuned_reranker = SentenceTransformerRerank( model="./rerank_model_finetuned", top_n=3,)# 评估原始模型original_results = evaluate_reranker( index=vector_index, reranker=original_reranker, eval_dataset=val_dataset,)# 评估微调后的模型finetuned_results = evaluate_reranker( index=vector_index, reranker=finetuned_reranker, eval_dataset=val_dataset,)# 对比结果print("=" * 50)print("原始模型性能:")print(original_results)print("=" * 50)print("微调后模型性能:")print(finetuned_results)print("=" * 50)print("性能提升:")for key in original_results: improvement = finetuned_results[key] - original_results[key]print(f"{key}: {improvement:+.4f} ({improvement/original_results[key]*100:+.2f}%)")

六、实战案例:基于QASPER数据集的微调

完整流程示例

from datasets import load_datasetfrom llama_index.finetuning.cross_encoders import CrossEncoderFinetuneEngineimport jsondefprepare_qasper_dataset():"""从QASPER数据集准备训练数据"""# 1. 加载数据集 dataset = load_dataset("allenai/qasper")# 2. 从训练集提取800个样本 train_samples = []for sample in dataset["train"].select(range(800)): paper_text = " ".join(sample["full_text"]["paragraphs"]) questions = sample["qas"]["question"] answers = sample["qas"]["answers"]for q_idx, question inenumerate(questions):if answers[q_idx] andlen(answers[q_idx]) > 0:# 提取相关上下文作为正样本 answer_text = answers[q_idx][0]["answer"]["unanswerable"]ifnot answer_text: # 只保留有答案的问题# 构建正样本 relevant_context = extract_context_from_paper( paper_text, answers[q_idx] ) train_samples.append({"query": question,"passage": relevant_context,"score": 1 })# 构建负样本(随机选择不相关的段落) irrelevant_context = extract_random_context( paper_text, answers[q_idx] ) train_samples.append({"query": question,"passage": irrelevant_context,"score": 0 })# 3. 从测试集提取80个样本作为验证集 val_samples = []for sample in dataset["test"].select(range(80)):# 类似处理...passreturn train_samples, val_samplesdefextract_context_from_paper(paper_text, answers):"""从论文中提取相关上下文"""# 简化实现:根据答案位置提取上下文# 实际应用中需要更复杂的逻辑return paper_text[:500] # 示例defextract_random_context(paper_text, answers):"""提取随机不相关的上下文"""# 简化实现return paper_text[1000:1500] # 示例# 主流程if __name__ == "__main__":# 1. 准备数据print("准备训练数据...") train_data, val_data = prepare_qasper_dataset()# 保存数据withopen("train_rerank.json", "w", encoding="utf-8") as f: json.dump(train_data, f, ensure_ascii=False, indent=2)withopen("val_rerank.json", "w", encoding="utf-8") as f: json.dump(val_data, f, ensure_ascii=False, indent=2)# 2. 微调模型print("开始微调...") finetune_engine = CrossEncoderFinetuneEngine( train_dataset=train_data, val_dataset=val_data, model_id="cross-encoder/ms-marco-MiniLM-L-12-v2", model_output_path="./qasper_rerank_model", batch_size=16, epochs=3, learning_rate=2e-5, ) finetune_engine.finetune()print("微调完成!模型保存在: ./qasper_rerank_model")

七、最佳实践与优化建议

1. 数据质量优化

✅ 正样本质量:

  • • 确保正样本的文档确实与查询相关
  • • 避免标注错误,这会严重影响模型性能
  • • 正样本应该覆盖各种查询类型和文档类型

✅ 负样本策略:

  • • 使用Hard Negatives(难以区分的负样本)
  • • 避免使用完全无关的负样本(太容易区分)
  • • 负样本应该与正样本在语义上相似但实际不相关

✅ 数据平衡:

  • • 保持正负样本比例在1:1到1:4之间
  • • 确保不同查询类型的数据分布均匀

2. 模型选择建议

基础模型参数量速度精度适用场景
cross-encoder/ms-marco-MiniLM-L-6-v222M快速原型、资源受限
cross-encoder/ms-marco-MiniLM-L-12-v2117M推荐:平衡性能
BAAI/bge-reranker-base278M中文场景、生产环境
BAAI/bge-reranker-large560M很高高精度需求

推荐策略:

  • 开发测试:使用ms-marco-MiniLM-L-6-v2快速验证
  • 生产环境:使用ms-marco-MiniLM-L-12-v2bge-reranker-base
  • 中文场景:优先使用bge-reranker-base

3. 训练参数调优

# 推荐配置training_config = {"batch_size": 16, # 根据GPU显存调整:8GB显存用8,16GB用16"epochs": 3, # 通常3-5轮足够,避免过拟合"learning_rate": 2e-5, # 推荐范围:1e-5到5e-5"warmup_steps": 100, # 预热步数:总步数的10%"max_length": 512, # 最大序列长度:根据数据调整"weight_decay": 0.01, # 权重衰减:防止过拟合}

调优建议:

  • 学习率:从2e-5开始,如果loss不下降,尝试1e-5
  • 批次大小:在显存允许的情况下,越大越好
  • 训练轮数:监控验证集性能,早停防止过拟合

4. 性能优化

推理加速:

# 使用FP16加速(性能损失<1%)reranker = SentenceTransformerRerank( model="./rerank_model_finetuned", top_n=3, use_fp16=True, # 启用FP16)# 批量处理scores = model.predict( [[query, passage] for passage in passages], batch_size=32, # 批量处理提高效率 show_progress_bar=True,)

缓存优化:

  • • 对于相同的查询,可以缓存Rerank结果
  • • 使用Redis等缓存系统存储Top-K结果

5. 部署建议

本地部署:

# 使用ONNX加速(可选)from optimum.onnxruntime import ORTModelForSequenceClassificationmodel = ORTModelForSequenceClassification.from_pretrained("./rerank_model_finetuned", export=True,)

API服务:

# 使用FastAPI部署from fastapi import FastAPIfrom pydantic import BaseModelapp = FastAPI()reranker = SentenceTransformerRerank(model="./rerank_model_finetuned")classRerankRequest(BaseModel): query: str passages: list[str] top_n: int = 3@app.post("/rerank")defrerank(request: RerankRequest): scores = reranker.postprocess_nodes( query=request.query, nodes=request.passages, top_n=request.top_n, )return {"results": scores}

八、常见问题与解决方案

Q1: 微调后性能没有提升?

可能原因:

  • • 数据质量差(标注错误、正负样本不平衡)
  • • 训练数据量太少(<500样本)
  • • 学习率设置不当
  • • 过拟合(训练轮数过多)

解决方案:

  • • 检查数据质量,重新标注
  • • 增加训练数据量
  • • 调整学习率(尝试1e-5到5e-5)
  • • 使用早停机制,监控验证集性能

Q2: 训练速度太慢?

优化方案:

  • • 使用更小的模型(如ms-marco-MiniLM-L-6-v2
  • • 减少max_length(如从512降到256)
  • • 使用更大的batch_size(在显存允许的情况下)
  • • 使用FP16训练:model.half()

Q3: 显存不足(OOM)?

解决方案:

  • • 减小batch_size(如从16降到8或4)
  • • 减小max_length(如从512降到256)
  • • 使用梯度累积:gradient_accumulation_steps=2
  • • 使用更小的模型

Q4: 如何选择Top-K值?

建议:

  • Embedding检索Top-K:通常选择50-100(取决于文档库大小)
  • Rerank后Top-N:通常选择3-10(最终返回给用户的数量)
  • 平衡点:Top-K太大→Rerank计算慢,Top-K太小→可能漏掉正确答案

Q5: 中文场景如何选择模型?

推荐:

  • • 基础模型:BAAI/bge-reranker-base(中文优化)
  • • 如果数据量足够,可以在此基础上微调
  • • 确保训练数据包含足够的中文样本

九、总结

微调Rerank模型是提升RAG系统检索精度的高性价比方法:

核心优势:

  • • 无需改变Embedding模型,只需微调Rerank模型
  • • 通常能带来10-30%的准确率提升
  • • 训练成本低,数据需求相对较少(1000-5000样本即可)

关键步骤:

    1. 数据准备:收集高质量的查询-文档对,标注相关性
    1. 模型选择:根据场景选择合适的基础模型
    1. 微调训练:使用LlamaIndex的CrossEncoderFinetuneEngine
    1. 评估验证:使用Hit Rate、MRR等指标评估性能
    1. 部署优化:使用FP16、批量处理等优化推理速度

最佳实践:

  • • 使用Hard Negatives提高训练效果
  • • 保持正负样本比例在1:1到1:4之间
  • • 监控验证集性能,防止过拟合
  • • 在生产环境中使用FP16加速推理

适用场景:

  • • 垂直领域RAG系统(法律、医疗、金融等)
  • • 需要高精度检索的场景
  • • 有领域特定数据可以用于微调

记住:微调Rerank模型是RAG系统优化的"最后一步",应该在优化Embedding模型之后进行。通过合理的微调,可以让你的RAG系统在特定领域达到更高的检索精度!


​最后

我在一线科技企业深耕十二载,见证过太多因技术卡位而跃迁的案例。那些率先拥抱 AI 的同事,早已在效率与薪资上形成代际优势,我意识到有很多经验和知识值得分享给大家,也可以通过我们的能力和经验解答大家在大模型的学习中的很多困惑。

我整理出这套 AI 大模型突围资料包:

  • ✅AI大模型学习路线图
  • ✅Agent行业报告
  • ✅100集大模型视频教程
  • ✅大模型书籍PDF
  • ✅DeepSeek教程
  • ✅AI产品经理入门资料

完整的大模型学习和面试资料已经上传带到CSDN的官方了,有需要的朋友可以扫描下方二维码免费领取【保证100%免费】👇👇
​​

为什么说现在普通人就业/升职加薪的首选是AI大模型?

人工智能技术的爆发式增长,正以不可逆转之势重塑就业市场版图。从DeepSeek等国产大模型引发的科技圈热议,到全国两会关于AI产业发展的政策聚焦,再到招聘会上排起的长队,AI的热度已从技术领域渗透到就业市场的每一个角落。


智联招聘的最新数据给出了最直观的印证:2025年2月,AI领域求职人数同比增幅突破200%,远超其他行业平均水平;整个人工智能行业的求职增速达到33.4%,位居各行业榜首,其中人工智能工程师岗位的求职热度更是飙升69.6%。

AI产业的快速扩张,也让人才供需矛盾愈发突出。麦肯锡报告明确预测,到2030年中国AI专业人才需求将达600万人,人才缺口可能高达400万人,这一缺口不仅存在于核心技术领域,更蔓延至产业应用的各个环节。

​​

资料包有什么?

①从入门到精通的全套视频教程⑤⑥

包含提示词工程、RAG、Agent等技术点

② AI大模型学习路线图(还有视频解说)

全过程AI大模型学习路线

③学习电子书籍和技术文档

市面上的大模型书籍确实太多了,这些是我精选出来的

④各大厂大模型面试题目详解

⑤ 这些资料真的有用吗?

这份资料由我和鲁为民博士共同整理,鲁为民博士先后获得了北京清华大学学士和美国加州理工学院博士学位,在包括IEEE Transactions等学术期刊和诸多国际会议上发表了超过50篇学术论文、取得了多项美国和中国发明专利,同时还斩获了吴文俊人工智能科学技术奖。目前我正在和鲁博士共同进行人工智能的研究。

所有的视频教程由智泊AI老师录制,且资料与智泊AI共享,相互补充。这份学习大礼包应该算是现在最全面的大模型学习资料了。

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


智泊AI始终秉持着“让每个人平等享受到优质教育资源”的育人理念‌,通过动态追踪大模型开发、数据标注伦理等前沿技术趋势‌,构建起"前沿课程+智能实训+精准就业"的高效培养体系。

课堂上不光教理论,还带着学员做了十多个真实项目。学员要亲自上手搞数据清洗、模型调优这些硬核操作,把课本知识变成真本事‌!

​​​​

如果说你是以下人群中的其中一类,都可以来智泊AI学习人工智能,找到高薪工作,一次小小的“投资”换来的是终身受益!

应届毕业生‌:无工作经验但想要系统学习AI大模型技术,期待通过实战项目掌握核心技术。

零基础转型‌:非技术背景但关注AI应用场景,计划通过低代码工具实现“AI+行业”跨界‌。

业务赋能 ‌突破瓶颈:传统开发者(Java/前端等)学习Transformer架构与LangChain框架,向AI全栈工程师转型‌。

👉获取方式:

😝有需要的小伙伴,可以保存图片到wx扫描二v码免费领取【保证100%免费】🆓**

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

2026年100道最新软件测试面试题,常见面试题及答案汇总

除了掌握扎实的专业技能之外&#xff0c;你还需要一份《软件测试面试宝典》才能在万千面试者中杀出重围&#xff0c;成功拿下offer。 小编特意整理了100道软件测试面试题&#xff0c;送给大家&#xff0c;希望大家都能顺利通过面试&#xff0c;拿下高薪。赶紧拿去吧~~ 正文&a…

作者头像 李华
网站建设 2026/2/26 19:04:54

元宇宙数字人驱动技术:TensorRT实现实时表情生成

元宇宙数字人驱动技术&#xff1a;TensorRT实现实时表情生成 在虚拟社交、远程协作和沉浸式娱乐不断演进的今天&#xff0c;用户对“数字人”的期待早已超越了静态建模。人们不再满足于一个会动的3D头像&#xff0c;而是希望看到能听懂情绪、回应语气、实时做出自然表情的智能体…

作者头像 李华
网站建设 2026/2/22 15:33:36

体育赛事解说AI诞生记:实时性要求极高场景应对

体育赛事解说AI诞生记&#xff1a;实时性要求极高场景应对 在一场激烈的足球比赛中&#xff0c;球员突然起脚射门——观众屏息凝视&#xff0c;下一秒&#xff0c;解说席传来一声激动的“精彩破门&#xff01;”——但这一次&#xff0c;声音并非来自人类主播&#xff0c;而是由…

作者头像 李华
网站建设 2026/2/21 3:00:56

Python+Requests+Pytest+YAML+Allure实现接口自动化

本项目实现接口自动化的技术选型&#xff1a;PythonRequestsPytestYAMLAllure &#xff0c;主要是针对之前开发的一个接口项目来进行学习&#xff0c;通过 PythonRequests 来发送和处理HTTP协议的请求接口&#xff0c;使用 Pytest 作为测试执行器&#xff0c;使用 YAML 来管理测…

作者头像 李华
网站建设 2026/2/17 0:00:16

测试流程改进的变革管理:如何推动团队接受并践行新实践

变革管理的必要性与软件测试背景 在快速迭代的软件开发环境中&#xff0c;测试流程的改进是提升产品质量、缩短发布周期的关键驱动力。然而&#xff0c;引入新实践&#xff08;如从手动测试转向自动化、或采用DevOps集成&#xff09;常面临团队抵抗——测试从业者可能因习惯惰…

作者头像 李华