可视化FAISS矢量空间并调整RAG参数提高结果精度

随着开源大型语言模型的性能不断提高,编写和分析代码、推荐、文本摘要和问答(qa)对的性能都有了很大的提高。但是当涉及到qa时,llm通常会在未训练数据的相关的问题上有所欠缺,很多内部文件都保存在公司内部,以确保合规性、商业秘密或隐私。当查询这些文件时,会使得llm产生幻觉,产生不相关、捏造或不一致的内容。

☞☞☞AI 智能聊天, 问答助手, AI 智能搜索, 免费无限量使用 DeepSeek R1 模型☜☜☜

可视化FAISS矢量空间并调整RAG参数提高结果精度

一种处理这一挑战的可行技术是检索增强生成(RAG)。它涉及通过引用训练数据源之外的权威知识库来增强响应的过程,以提升生成的质量和准确性。RAG系统包括一个检索系统,用于从语料库中检索相关文档片段,以及一个LLM模型,利用检索到的片段作为上下文来生成响应。因此,语料库的质量和嵌入在向量空间中的表示对RAG的性能至关重要。

在本文中,我们将使用可视化库renumics-spotlight在2-D中可视化FAISS向量空间的多维嵌入,并通过改变某些关键的矢量化参数来寻找提高RAG响应精度的可能性。对于我们选择的LLM,将采用TinyLlama 1.1B Chat,这是一个紧凑的模型,与Llama 2相同的架构。它的优点是具有更小的资源占用和更快的运行时间,但其准确性没有成比例的下降,这使它成为快速实验的理想选择。

系统设计

QA系统有两个模块,如图所示。

可视化FAISS矢量空间并调整RAG参数提高结果精度

LoadFVectorize模块用于加载PDF或Web文档,并进行初步测试和可视化。另一个模块负责加载LLM并实例化FAISS检索器,然后构建一个包含LLM、检索器和自定义查询提示的检索链。最后,我们对向量空间进行可视化处理。

代码实现

1、安装必要的库

renumics-spotlight库采用类似于umap的可视化方法,将高维嵌入减少为易于管理的2D可视化,同时保留关键属性。我们之前曾简单介绍过umap的用法,但仅限于基本功能介绍。这次,我们将其作为系统设计的一部分,将其整合到一个实际项目中。首先,需要安装必要的库。

pip install langchain faiss-cpu sentence-transformers flask-sqlalchemy psutil unstructured pdf2image unstructured_inference pillow_heif opencv-python pikepdf pypdf pip install renumics-spotlight CMAKE_ARGS="-DLLAMA_METAL=on" FORCE_CMAKE=1 pip install --upgrade --force-reinstall llama-cpp-python --no-cache-dir

上面的最后一行是安装带有Metal支持的llama- pcp -python库,该库将用于在M1处理器上加载带有硬件加速的TinyLlama。

2、LoadFVectorize模块

模块包括3个功能:

load_doc处理在线pdf文档的加载,每个块分割512个字符,重叠100个字符,返回文档列表。

vectorize调用上面的函数load_doc来获取文档的块列表,创建嵌入并保存到本地目录opdf_index,同时返回FAISS实例。

load_db检查FAISS库是否在目录opdf_index中的磁盘上并尝试加载,最终返回一个FAISS对象。

该模块代码的完整代码如下:

# LoadFVectorize.py  from langchain_community.embeddings import HuggingFaceEmbeddings from langchain_community.document_loaders import OnlinePDFLoader from langchain.text_splitter import RecursiveCharacterTextSplitter from langchain_community.vectorstores import FAISS  # access an online pdf def load_doc() -> 'List[Document]':loader = OnlinePDFLoader("https://support.riverbed.com/bin/support/download?did=7q6behe7hotvnpqd9a03h1dji&versinotallow=9.15.0")documents = loader.load()text_splitter = RecursiveCharacterTextSplitter(chunk_size=512, chunk_overlap=100)docs = text_splitter.split_documents(documents)return docs  # vectorize and commit to disk def vectorize(embeddings_model) -> 'FAISS':docs = load_doc()db = FAISS.from_documents(docs, embeddings_model)db.save_local("./opdf_index")return db  # attempts to load vectorstore from disk def load_db() -> 'FAISS':embeddings_model = HuggingFaceEmbeddings()try:db = FAISS.load_local("./opdf_index", embeddings_model)except Exception as e:print(f'Exception: {e}\nNo index on disk, creating new...')db = vectorize(embeddings_model)return db

3、主模块

主模块最初定义了以下模板的TinyLlama提示符模板:

{context}{question}

另外采用来自TheBloke的量化版本的TinyLlama可以极大的减少内存,我们选择以GGUF格式加载量化LLM。

然后使用LoadFVectorize模块返回的FAISS对象,创建一个FAISS检索器,实例化RetrievalQA,并将其用于查询。

# main.py from langchain.chains import RetrievalQA from langchain.prompts import PromptTemplate from langchain_community.llms import LlamaCpp from langchain_community.embeddings import HuggingFaceEmbeddings import LoadFVectorize from renumics import spotlight import pandas as pd import numpy as np  # Prompt template  qa_template = """ You are a friendly chatbot who always responds in a precise manner. If answer is  unknown to you, you will politely say so. Use the following context to answer the question below: {context}  {question}  """  # Create a prompt instance  QA_PROMPT = PromptTemplate.from_template(qa_template) # load LLM llm = LlamaCpp(model_path="./models/tinyllama_gguf/tinyllama-1.1b-chat-v1.0.Q5_K_M.gguf",temperature=0.01,max_tokens=2000,top_p=1,verbose=False,n_ctx=2048 ) # vectorize and create a retriever db = LoadFVectorize.load_db() faiss_retriever = db.as_retriever(search_type="mmr", search_kwargs={'fetch_k': 3}, max_tokens_limit=1000) # Define a QA chain  qa_chain = RetrievalQA.from_chain_type(llm,retriever=faiss_retriever,chain_type_kwargs={"prompt": QA_PROMPT} )  query = 'What versions of TLS supported by Client Accelerator 6.3.0?'  result = qa_chain({"query": query}) print(f'--------------\nQ: {query}\nA: {result["result"]}')  visualize_distance(db,query,result["result"])

向量空间可视化本身是由上面代码中的最后一行visualize_distance处理的:

visualize_distance访问FAISS对象的属性__dict__,index_to_docstore_id本身是值docstore-ids的关键索引字典,用于向量化的总文档计数由索引对象的属性ntotal表示。

vs = db.__dict__.get("docstore")index_list = db.__dict__.get("index_to_docstore_id").values()doc_cnt = db.index.ntotal

调用对象索引的方法reconstruct_n,可以实现向量空间的近似重建

embeddings_vec = db.index.reconstruct_n()

有了docstore-id列表作为index_list,就可以找到相关的文档对象,并使用它来创建一个包括docstore-id、文档元数据、文档内容以及它在所有id的向量空间中的嵌入的列表:

doc_list = list() for i,doc-id in enumerate(index_list):a_doc = vs.search(doc-id)doc_list.append([doc-id,a_doc.metadata.get("source"),a_doc.page_content,embeddings_vec[i]])

然后使用列表创建一个包含列标题的DF,我们最后使用这个DF进行可视化

df = pd.DataFrame(doc_list,columns=['id','metadata','document','embedding'])

在继续进行可视化之前,还需要将问题和答案结合起来,我们创建一个单独的问题以及答案的DF,然后与上面的df进行合并,这样能够显示问题和答案出现的地方,在可视化时我们可以高亮显示:

# add rows for question and answerembeddings_model = HuggingFaceEmbeddings()question_df = pd.DataFrame({"id": "question","question": question,"embedding": [embeddings_model.embed_query(question)],})answer_df = pd.DataFrame({"id": "answer","answer": answer,"embedding": [embeddings_model.embed_query(answer)],})df = pd.concat([question_df, answer_df, df])

这里使用使用np.linalg.norm在文件和问题嵌入上的进行距离大小的计算:

question_embedding = embeddings_model.embed_query(question)# add column for vector distancedf["dist"] = df.apply( lambda row: np.linalg.norm(np.array(row["embedding"]) - question_embedding),axis=1,)

因为spotlight可以对df进行可视化,所有我们直接调用即可

spotlight.show(df)

这一步将在浏览器窗口中启动spotlight。

运行测试

1、基本测试

下面是我们选择的样本问题:

Waymark Waymark

Waymark是一个视频制作工具,帮助企业快速轻松地制作高影响力的广告。

Waymark 79 查看详情 Waymark

What versions of TLS supported by Client Accelerator 6.3.0?

正确答案是:

Client Accelerator 6.3.0 supports TLS 1.1 or 1.2.

以下额外信息可能包含在响应中。

You must enable this capability using the following CLI command on the Client Accelerator:(config) # policy id  ssl backend client-tls-1.2Even though TLS 1.1 is not mentioned in the syntax of this command, using  this command automatically enables support for both TLS 1.1 and 1.2.

然后我们看看TinyLlama对上述问题的回答:

Client Accelerator 6.3.0 supports TLS 1.1 or 1.2 as the default  supported TLS versions with Client Accelerator. You must enable this  capability using the following CLI command on the Client Accelerator:“`(config) # policy id  ssl backend client-tlss1.2“`Note that this command only applies to TLS 1.1 or TLS 1.2. If you need to  support older TLS versions, you can use the ssl backend command with  the client-tlss1.0 or client-tlss1.1 option instead.

看起来与实际答案非常相似,但它并不完全正确,因为这些TLS版本不是其默认值。

那么我们来看看他是从哪些段落中找到的答案呢?

可视化FAISS矢量空间并调整RAG参数提高结果精度

在可以spotlight中使用visible 按钮来控制显示的列。按“dist”对表格进行排序,在顶部显示问题、答案和最相关的文档片段。查看我们文档的嵌入,它将几乎所有文档块描述为单个簇。这是合理的,因为我们原始pdf是针对特定产品的部署指南,所以被认为是一个簇是没有问题的。

单击Similarity Map选项卡中的过滤器图标,它只突出显示所选的文档列表,该列表是紧密聚集的,其余的显示为灰色,如图下所示。

可视化FAISS矢量空间并调整RAG参数提高结果精度

2、测试块大小和重叠参数

由于检索器是影响RAG性能的关键因素,让我们来看看影响嵌入空间的几个参数。TextSplitter的块大小chunk size(1000,2000)和/或重叠overlap (100,200)参数在文档分割期间是不同的。

可视化FAISS矢量空间并调整RAG参数提高结果精度

对所有组合的对于输出似乎相似,但是如果我们仔细比较正确答案和每个回答,准确答案是(1000,200)。其他回答中不正确的细节已经用红色突出显示。我们来尝试使用可视化嵌入来解释这一行为:

可视化FAISS矢量空间并调整RAG参数提高结果精度

从左到右观察,随着块大小的增加,我们可以观察到向量空间变得稀疏且块更小。从底部到顶部,重叠逐渐增多,向量空间特征没有明显变化。在所有这些映射中整个集合仍然或多或少地呈现为一个单一的簇,并只有几个异常值存在。这种情况在生成的响应中是可以看到的因为生成的响应都非常相似。

如果查询位于簇中心等位置时由于最近邻可能不同,在这些参数发生变化时响应很可能会发生显著变化。如果RAG应用程序无法提供预期答案给某些问题,则可以通过生成类似上述可视化图表并结合这些问题进行分析,可能找到最佳划分语料库以提高整体性能方面优化方法。

为了进一步说明,我们将两个来自不相关领域(Grammy Awards和JWST telescope)的维基百科文档的向量空间进行可视化展示。

def load_doc():loader = WebBaseLoader(['https://en.wikipedia.org/wiki/66th_Annual_Grammy_Awards','https://en.wikipedia.org/wiki/James_Webb_Space_Telescope'])documents = loader.load()...

只修改了上面代码其余的代码保持不变。运行修改后的代码,我们得到下图所示的向量空间可视化。

可视化FAISS矢量空间并调整RAG参数提高结果精度

这里有两个不同的不重叠的簇。如果我们要在任何一个簇之外提出一个问题,那么从检索器获得上下文不仅不会对LLM有帮助,而且还很可能是有害的。提出之前提出的同样的问题,看看我们LLM产生什么样的“幻觉”

Client Accelerator 6.3.0 supports the following versions of Transport Layer Security (TLS):

TLS 1.2\2. TLS 1.3\3. TLS 1.2 with Extended Validation (EV) certificates\4. TLS 1.3 with EV certificates\5. TLS 1.3 with SHA-256 and SHA-384 hash algorithms

这里我们使用FAISS用于向量存储。如果你正在使用ChromaDB并想知道如何执行类似的可视化,renumics-spotlight也是支持的。

总结

检索增强生成(RAG)允许我们利用大型语言模型的能力,即使LLM没有对内部文档进行训练也能得到很好的结果。RAG涉及从矢量库中检索许多相关文档块,然后LLM将其用作生成的上下文。因此嵌入的质量将在RAG性能中发挥重要作用。

在本文中,我们演示并可视化了几个关键矢量化参数对LLM整体性能的影响。并使用renumics-spotlight,展示了如何表示整个FAISS向量空间,然后将嵌入可视化。Spotlight直观的用户界面可以帮助我们根据问题探索向量空间,从而更好地理解LLM的反应。通过调整某些矢量化参数,我们能够影响其生成行为以提高精度。

以上就是可视化FAISS矢量空间并调整RAG参数提高结果精度的详细内容,更多请关注创想鸟其它相关文章!

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 chuangxiangniao@163.com 举报,一经查实,本站将立刻删除。
发布者:程序猿,转转请注明出处:https://www.chuangxiangniao.com/p/1004346.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
真我13 Pro系列外观官方首曝!莫奈灵感设计 还原独特油墨质感
上一篇 2025年12月1日 23:42:35
Maestro修改函数注释指南
下一篇 2025年12月1日 23:42:38

相关推荐

  • 从概念到应用,清华团队开发DeepTFBU工具包助力基因表达精准调控

    从概念到应用,清华团队开发DeepTFBU工具包助力基因表达精准调控从概念到应用,清华团队开发DeepTFBU工具包助力基因表达精准调控从概念到应用,清华团队开发DeepTFBU工具包助力基因表达精准调控从概念到应用,清华团队开发DeepTFBU工具包助力基因表达精准调控

    ☞☞☞AI 智能聊天, 问答助手, AI 智能搜索, 免费无限量使用 DeepSeek R1 模型☜☜☜ 编辑 | 萝卜皮 增强子通过与转录因子 (TF) 相互作用,在各种生物过程中充当基因表达的关键调节器。虽然转录因子结合位点 (TFBS) 被广泛认为是 TF 结合和增强子活性的关键决定因素,但其…

    2026年8月31日 用户投稿
    800
  • Seer预览文件加载慢怎么办_优化Seer文件预览速度的方法

    优化Seer预览速度需调整缓存设置、升级解码器、降低触发延迟、限制并发数并更新软件版本,具体包括开启缓存并设为2GB以上、使用Quartz和ImageMagick提升解析效率、将预览延迟降至200毫秒、限制同时预览数量为2-3个,并确保使用最新版Seer以获得最佳性能。 如果您在使用Seer进行文件…

    2026年8月30日
    100
  • 如何优化谷歌浏览器性能 Chrome浏览器加速设置详细指南

    要优化Chrome浏览器性能,需从资源管理、数据清理和设置调整入手。首先定期清理缓存、Cookie等浏览数据,减少磁盘占用;其次精简扩展程序,禁用或删除不常用、高资源占用的插件,避免后台消耗;接着开启硬件加速以利用GPU减轻CPU负担,并根据需要关闭后台应用运行;保持Chrome版本更新以获取性能改…

    2026年8月29日
    200
  • 注册Deepseek账号时,哪些信息是必填的?

    必填信息:1、邮箱注册;2、手机号码注册;3、第三方社交平台注册。注册成功后通常还需要填写一些基本个人信息,如昵称、性别、生日等。 1、DeepSeek官网入口☜☜☜☜☜点击保存 2、DeepSeek官方登录入口☜☜☜☜☜点击保存 ☞☞☞AI 智能聊天, 问答助手, AI 智能搜索, 免费无限量使用…

    2026年8月29日
    100
  • 流畅阅读— 开源AI浏览器翻译插件,支持双语对照显示

    流畅阅读— 开源AI浏览器翻译插件,支持双语对照显示流畅阅读— 开源AI浏览器翻译插件,支持双语对照显示流畅阅读— 开源AI浏览器翻译插件,支持双语对照显示流畅阅读— 开源AI浏览器翻译插件,支持双语对照显示

    fluentread:你的浏览器翻译利器,助你畅享无障碍阅读体验! FluentRead是一款开源浏览器翻译插件,它利用先进的AI技术,旨在为你提供如同母语般流畅的阅读体验。支持多种翻译引擎,包括传统的机器翻译和强大的AI大模型,并且允许你自定义翻译服务。其核心功能包含智能翻译、便捷的双语对照显示以…

    2026年8月29日 用户投稿
    200
  • 谷歌浏览器为什么打字的时候有明显延迟_谷歌浏览器输入延迟原因分析

    首先禁用硬件加速并检查扩展程序,清除缓存与重置设置可解决谷歌浏览器输入延迟问题。具体操作包括添加–disable-gpu参数、关闭冲突扩展、清除所有时间的缓存数据及恢复默认设置,最终在Dell XPS 13的Windows 11环境下有效改善文本输入卡顿现象。 如果您在使用谷歌浏览器输入…

    2026年8月28日
    300
  • OpenAI等AI公司竞相利用“蒸馏”技术 构建低成本模型

    ☞☞☞AI 智能聊天, 问答助手, AI 智能搜索, 免费无限量使用 DeepSeek R1 模型☜☜☜ 全球领先的人工智能公司,包括OpenAI、微软和Meta,正积极采用“模型蒸馏”技术,致力于打造更经济实惠的AI模型,惠及消费者和企业。 DeepSeek公司在中国利用这项技术,基于Meta和阿…

    2026年8月28日
    100
  • 耶鲁、剑桥等开发MindLLM,将脑成像直接转换为文本

    耶鲁、剑桥等开发MindLLM,将脑成像直接转换为文本耶鲁、剑桥等开发MindLLM,将脑成像直接转换为文本耶鲁、剑桥等开发MindLLM,将脑成像直接转换为文本耶鲁、剑桥等开发MindLLM,将脑成像直接转换为文本

    ☞☞☞AI 智能聊天, 问答助手, AI 智能搜索, 免费无限量使用 DeepSeek R1 模型☜☜☜ 编辑 | 萝卜皮 将功能性磁共振成像 (fMRI) 信号解码为文本一直是神经科学界面临的一项重大挑战,它有望推动脑机接口的发展,并加深对大脑机制的了解。然而,现有的方法往往存在预测性能不佳、任务…

    2026年8月28日 用户投稿
    000
  • 高通牵手诺基亚贝尔实验室,展示无线网络中可互操作的多厂商AI的价值

    高通牵手诺基亚贝尔实验室,展示无线网络中可互操作的多厂商AI的价值高通牵手诺基亚贝尔实验室,展示无线网络中可互操作的多厂商AI的价值高通牵手诺基亚贝尔实验室,展示无线网络中可互操作的多厂商AI的价值高通牵手诺基亚贝尔实验室,展示无线网络中可互操作的多厂商AI的价值

    ai赋能无线网络:高通与诺基亚联合展示多厂商ai互操作性 本文介绍高通和诺基亚在2024年世界移动通信大会(MWC 2024)上展示的成果:一个基于AI的、可互操作的多厂商无线网络系统。该系统显著提升了网络吞吐量,并在不同物理环境中展现出强大的鲁棒性。 关键发现: AI模型在各种物理环境(包括室内外…

    2026年8月28日 用户投稿
    100
  • 敏感数据加密存储与传输方案

    实现敏感数据的加密存储与传输可以通过以下方法:1) 使用aes进行数据存储加密,确保数据填充正确;2) 使用tls协议进行数据传输加密,注意证书验证;3) 采用硬件安全模块(hsm)或密钥管理服务(kms)进行密钥管理,并优化性能以提升系统效率。 在当今数字化时代,敏感数据的加密存储与传输成为了一个…

    2026年8月27日
    200
  • win8玩游戏卡顿怎么办 win8玩游戏帧数低卡顿优化方案

    更新显卡驱动、切换至高性能电源模式、关闭视觉效果、结束高占用后台进程及启用硬件加速可提升游戏流畅度,具体操作包括通过设备管理器更新驱动、调整电源计划、禁用系统动画、使用任务管理器清理资源占用,并通过dxdiag检查硬件加速状态。 如果您在运行游戏时遇到画面不流畅、帧数低或频繁卡顿的情况,这通常与系统…

    2026年8月27日
    200
  • 为什么Qwen能自我改进推理,Llama却不行?斯坦福找到了原理

    为什么Qwen能自我改进推理,Llama却不行?斯坦福找到了原理为什么Qwen能自我改进推理,Llama却不行?斯坦福找到了原理为什么Qwen能自我改进推理,Llama却不行?斯坦福找到了原理为什么Qwen能自我改进推理,Llama却不行?斯坦福找到了原理

    深度解析:大模型的自我改进能力为何参差不齐?斯坦福大学最新研究揭秘 近期,斯坦福大学的一项研究深入探讨了大型语言模型(LLM)自我改进能力背后的机制,解释了为何有些模型能够有效利用额外计算资源提升性能,而另一些则停滞不前。该研究的核心在于模型的初始“认知行为”。 研究人员选取了Qwen-2.5-3B…

    2026年8月27日 用户投稿
    200
  • MySQL如何实现数据加密存储 字段级加密与解密操作指南

    mysql实现数据加密存储的核心是通过字段级加密保护敏感信息。1. 选择aes等安全高效的加密算法,优先使用aes而非des或rsa以平衡性能与安全性;2. 创建aes_encrypt和aes_decrypt自定义函数利用mysql内置aes_encrypt/aes_decrypt实现加解密;3. …

    2026年8月27日
    100
  • SSL/TLS加密通信的配置(WSS/HTTPS)

    配置ssl/tls加密通信需要从证书颁发机构获取证书,并正确配置服务器。1. 获取数字证书,选择免费或商业证书。2. 配置nginx服务器,设置ssl_certificate和ssl_certificate_key。3. 处理常见问题,如证书链不完整和配置文件错误。4. 优化性能,使用硬件加速器和h…

    2026年8月26日
    000
  • Java中如何实现动画 详解定时刷新机制

    Java中如何实现动画 详解定时刷新机制Java中如何实现动画 详解定时刷新机制Java中如何实现动画 详解定时刷新机制Java中如何实现动画 详解定时刷新机制

    java中实现动画的核心机制是定时刷新画面,利用javax.swing.timer在gui程序中安全更新界面。具体步骤为:选择jpanel等组件重写paintcomponent()绘制帧内容;创建timer设置延迟时间和actionlistener;在actionperformed()中更新动画状态…

    2026年8月26日 用户投稿
    100
  • 敏感数据加密(如AES)与解密实现

    aes算法用于加密和解密敏感数据,支持128位、192位和256位密钥长度。使用时需注意:1. 密钥管理:使用安全的生成和存储机制。2. 初始化向量(iv):使用随机iv增强安全性。3. 模式选择:如cbc、gcm,gcm提供加密和认证。4. 性能考虑:高并发环境下使用并行处理或硬件加速。5. 错误…

    2026年8月26日
    100
  • Meta发布AI新模型系列 Llama 4,首次采用“混合专家”架构

    meta发布全新多模态ai模型系列llama 4,引领开源ai发展! 该系列包含llama 4 scout、llama 4 maverick和llama 4 behemoth三个模型,能够处理文本、视频、图像和音频等多种数据类型,并在不同格式间实现内容转换。 ☞☞☞AI 智能聊天, 问答助手, AI…

    2026年8月26日
    000
  • Java中如何旋转图片 分析图像旋转的实现

    Java中如何旋转图片 分析图像旋转的实现Java中如何旋转图片 分析图像旋转的实现Java中如何旋转图片 分析图像旋转的实现Java中如何旋转图片 分析图像旋转的实现

    图像旋转通过坐标变换实现,核心步骤包括确定旋转中心、计算旋转矩阵、应用变换、处理边界及插值。旋转中心通常为图像中心,也可自定义;旋转矩阵描述二维空间中绕点逆时针旋转的数学关系;使用逆矩阵将目标像素映射回原始坐标;旋转后图像可能超出边界,需裁剪或填充;插值常用最近邻、双线性或双三次方法,其中双线性在速…

    2026年8月26日 用户投稿
    400
  • Java中如何填充颜色 掌握区域填充的实现

    Java中如何填充颜色 掌握区域填充的实现Java中如何填充颜色 掌握区域填充的实现Java中如何填充颜色 掌握区域填充的实现Java中如何填充颜色 掌握区域填充的实现

    在java中填充颜色,核心在于操作图像像素并使用java的图像处理api。1. 创建bufferedimage对象作为图像缓冲区;2. 通过creategraphics()获取graphics2d对象用于绘制;3. 使用setcolor()设置填充颜色;4. 调用fillrect()或fill()方…

    2026年8月26日 用户投稿
    000
  • 除了Transformer架构,还有哪些常用的大模型架构

    常见大模型架构多样。RNN 处理序列,却因梯度问题难应对长序列;其变体 LSTM 借门控机制改善,GRU 则简化结构提效率。CNN 从计算机视觉起步,借卷积等提取特征,后拓展应用。GAN 用于生成,借生成与判别对抗训练。VAE 融合自编码器与变分推断生成多样样本 。 ☞☞☞AI 智能聊天, 问答助手…

    2026年8月25日
    000

发表回复

登录后才能评论
关注微信