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

公司网站备案需要什么网站的域名用文字搜索怎么做

公司网站备案需要什么,网站的域名用文字搜索怎么做,大航母网站建设与服务,高校邦营销型网站建设测验答案文章目录 FastGPT引申:常见 Rerank 实现方案1. 使用 BGE Reranker2. 使用 Cohere Rerank API3. 使用 Cross-Encoder 实现4. 自定义 Reranker 实现5. FastAPI 服务实现6. 实现方案总结 FastGPT引申:常见 Rerank 实现方案 下边介绍几种 Rerank 的具体实现…

文章目录

    • FastGPT引申:常见 Rerank 实现方案
      • 1. 使用 BGE Reranker
      • 2. 使用 Cohere Rerank API
      • 3. 使用 Cross-Encoder 实现
      • 4. 自定义 Reranker 实现
      • 5. FastAPI 服务实现
      • 6. 实现方案总结

FastGPT引申:常见 Rerank 实现方案

下边介绍几种 Rerank 的具体实现方案。

1. 使用 BGE Reranker

from transformers import AutoModelForSequenceClassification, AutoTokenizer
import torchclass BGEReranker:def __init__(self):# 加载模型和分词器self.model_name = "BAAI/bge-reranker-base"self.tokenizer = AutoTokenizer.from_pretrained(self.model_name)self.model = AutoModelForSequenceClassification.from_pretrained(self.model_name)self.model.eval()def rerank(self, query: str, documents: list[str]) -> list[dict]:results = []# 批处理文档for doc in documents:# 构造输入格式inputs = self.tokenizer(text=[query],text_pair=[doc],padding=True,truncation=True,max_length=512,return_tensors="pt")# 模型推理with torch.no_grad():scores = self.model(**inputs).logits.flatten()results.append({"text": doc,"score": float(scores[0])  # 转换为Python float})# 按分数排序results.sort(key=lambda x: x["score"], reverse=True)return results# 使用示例
reranker = BGEReranker()
query = "如何使用Python进行数据分析?"
docs = ["Python数据分析基础教程","数据分析工具pandas使用指南","Python编程基础入门"
]reranked_results = reranker.rerank(query, docs)

2. 使用 Cohere Rerank API

import cohere
from typing import List, Dictclass CohereReranker:def __init__(self, api_key: str):self.co = cohere.Client(api_key)def rerank(self, query: str, documents: List[Dict[str, str]], top_n: int = 3) -> List[Dict]:try:# 调用Cohere APIresults = self.co.rerank(query=query,documents=[doc["text"] for doc in documents],top_n=top_n,model="rerank-multilingual-v2.0")# 格式化结果reranked_results = []for result in results:reranked_results.append({"id": documents[result.index]["id"],"text": result.document["text"],"relevance_score": result.relevance_score})return reranked_resultsexcept Exception as e:print(f"Reranking error: {str(e)}")return []# 使用示例
reranker = CohereReranker(api_key="your-api-key")
query = "数据分析方法"
docs = [{"id": "1", "text": "使用pandas进行数据处理"},{"id": "2", "text": "数据可视化技巧"},{"id": "3", "text": "机器学习算法"}
]results = reranker.rerank(query, docs)

3. 使用 Cross-Encoder 实现

from sentence_transformers import CrossEncoder
import numpy as npclass CrossEncoderReranker:def __init__(self):# 加载cross-encoder模型self.model = CrossEncoder('cross-encoder/ms-marco-MiniLM-L-6-v2')def rerank(self, query: str, documents: List[Dict], batch_size: int = 32) -> List[Dict]:# 准备文档对pairs = [[query, doc["text"]] for doc in documents]# 批量计算相关性分数scores = []for i in range(0, len(pairs), batch_size):batch = pairs[i:i + batch_size]batch_scores = self.model.predict(batch)scores.extend(batch_scores)# 组合结果results = []for idx, score in enumerate(scores):results.append({"id": documents[idx]["id"],"text": documents[idx]["text"],"score": float(score)})# 按分数排序results.sort(key=lambda x: x["score"], reverse=True)return results# 使用示例
reranker = CrossEncoderReranker()
results = reranker.rerank(query, documents)

4. 自定义 Reranker 实现

import torch
from torch import nn
from transformers import AutoTokenizer, AutoModelclass CustomReranker(nn.Module):def __init__(self, model_name: str = "bert-base-chinese"):super().__init__()self.encoder = AutoModel.from_pretrained(model_name)self.tokenizer = AutoTokenizer.from_pretrained(model_name)# 相关性评分层self.score = nn.Linear(self.encoder.config.hidden_size, 1)def forward(self, input_ids, attention_mask):# 获取BERT输出outputs = self.encoder(input_ids=input_ids,attention_mask=attention_mask)# 使用[CLS]标记的输出计算相关性分数pooled_output = outputs.last_hidden_state[:, 0]score = self.score(pooled_output)return scoredef rerank(self, query: str, documents: List[str]) -> List[Dict]:self.eval()results = []with torch.no_grad():for doc in documents:# 构造输入inputs = self.tokenizer(text=[query],text_pair=[doc],padding=True,truncation=True,max_length=512,return_tensors="pt")# 计算分数score = self.forward(inputs["input_ids"],inputs["attention_mask"])results.append({"text": doc,"score": float(score[0])})# 排序results.sort(key=lambda x: x["score"], reverse=True)return results# 训练函数示例
def train_reranker(model, train_dataloader, epochs=3):optimizer = torch.optim.AdamW(model.parameters(), lr=2e-5)loss_fn = nn.BCEWithLogitsLoss()for epoch in range(epochs):model.train()for batch in train_dataloader:optimizer.zero_grad()input_ids = batch["input_ids"]attention_mask = batch["attention_mask"]labels = batch["labels"]scores = model(input_ids, attention_mask)loss = loss_fn(scores, labels)loss.backward()optimizer.step()

5. FastAPI 服务实现

from fastapi import FastAPI, HTTPException
from pydantic import BaseModel
from typing import List, Optionalapp = FastAPI()class Document(BaseModel):id: strtext: strclass RerankerRequest(BaseModel):query: strdocuments: List[Document]class RerankerResponse(BaseModel):id: strtext: strscore: float@app.post("/rerank", response_model=List[RerankerResponse])
async def rerank(request: RerankerRequest):try:reranker = CrossEncoderReranker()  # 或其他实现results = reranker.rerank(query=request.query,documents=[{"id": doc.id,"text": doc.text} for doc in request.documents])return resultsexcept Exception as e:raise HTTPException(status_code=500, detail=str(e))

6. 实现方案总结

  • BGE Reranker
    • 开源模型
    • 支持中英文
    • 性能较好
  • Cohere Rerank
    • 商业API
    • 多语言支持
    • 无需维护模型
  • Cross-Encoder
    • 专门针对重排序优化
    • 计算效率较高
    • 易于使用
  • 自定义实现
    • 完全可控
    • 可以针对特定场景优化
    • 需要训练数据

文章转载自:

http://EeNw6lxa.LLmhq.cn
http://yR7UsJ8g.LLmhq.cn
http://GZn2a4ny.LLmhq.cn
http://AwsEsRJ4.LLmhq.cn
http://hwdS7J64.LLmhq.cn
http://JJIlip0y.LLmhq.cn
http://Pv5m16c1.LLmhq.cn
http://jBY1eaG2.LLmhq.cn
http://WjL6jeWM.LLmhq.cn
http://gWJnq4Dy.LLmhq.cn
http://h1NkiPbF.LLmhq.cn
http://AgsaCl2b.LLmhq.cn
http://MINXEE7Q.LLmhq.cn
http://aCLWeok5.LLmhq.cn
http://3qAgIQk6.LLmhq.cn
http://N9Fu868i.LLmhq.cn
http://vckDzmKJ.LLmhq.cn
http://Ea88zhh7.LLmhq.cn
http://JfMKynzk.LLmhq.cn
http://9xNiyUKO.LLmhq.cn
http://RB3naHwa.LLmhq.cn
http://CE0EEZ7z.LLmhq.cn
http://YNcuOXCB.LLmhq.cn
http://v1FlWqAy.LLmhq.cn
http://qoqwf2tD.LLmhq.cn
http://o9CZDSig.LLmhq.cn
http://SF1JrBr8.LLmhq.cn
http://oz0AAcaY.LLmhq.cn
http://gZw8G7Kl.LLmhq.cn
http://VWn92XAh.LLmhq.cn
http://www.dtcms.com/wzjs/634917.html

相关文章:

  • 北京婚恋网站哪家最好网页打不开无法访问此网站
  • 小说网站做封面要钱吗有哪些网页游戏网站
  • 南宁青秀万达网站建设做家教网站资质
  • 做网站好一点的公司沙市做网站weisword
  • 宝安做棋牌网站建设哪家技术好域名 备案号 网站的关系
  • 宁德蕉城住房和城乡建设部网站温州建设银行支行网站
  • 域名还没备案可以做网站吗重庆建筑信息网官网
  • 如何给网站续费东营网站建设制作
  • 制作企业网站的app新网站建设的工作
  • 佛山网站建设模板最新消息今天的新闻
  • 郑州h5网站建设价格怎么开发微信网站
  • 找网站做任务领q币网站营销的分类有哪些
  • 老域名做网站好吗一个网站是如何建设
  • 建设网站的一般过程专门做酒店的网站
  • 荆州哪有做网站的公司重庆网站目录
  • 房产网站加盟网站建设期末实践报告
  • 小语种网站建设要点一个网站绑定多个域名
  • 美食网站开发的难点成都专业小程序开发公司
  • 如何设置便于搜索引擎收录的网站结构wordpress 评论主题
  • 南京网站推广公司在线学做网站
  • intitle 律师网站建设的重要性网页链接制作生成
  • 怎么自己做论坛网站吗西安网站建设q.479185700強
  • 成都网站优化推广大图网
  • 厦门 网站建设公司电话广告牌模板图片
  • 南宁公司建站模板wordpress 主题 网址导航
  • 网站不备案做优化仙游哪里可以做网站的
  • 网站建设策划方案twordpress目录权限设置密码
  • 怎么查看网站是用什么系统做的建设网站用图片需要版权
  • 广东广州电脑个人建站宜兴做网站
  • 中小企业网站制作不了中国工程建设信息网站