一区二区三区三上|欧美在线视频五区|国产午夜无码在线观看视频|亚洲国产裸体网站|无码成年人影视|亚洲AV亚洲AV|成人开心激情五月|欧美性爱内射视频|超碰人人干人人上|一区二区无码三区亚洲人区久久精品

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評(píng)論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

基于OpenVINO和LangChain構(gòu)建RAG問答系統(tǒng)

英特爾物聯(lián)網(wǎng) ? 來源:英特爾物聯(lián)網(wǎng) ? 2023-12-25 11:10 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

作者:楊亦誠(chéng) 英特爾 AI 軟件工程師

背景

隨著生成式 AI 的興起,和大語言模型對(duì)話聊天的應(yīng)用變得非常熱門,但這類應(yīng)用往往只能簡(jiǎn)單地和你“聊聊家?!?,并不能針對(duì)某些特定的行業(yè),給出非常專業(yè)和精準(zhǔn)的答案。這也是由于大語言模型(以下簡(jiǎn)稱 LLM)在時(shí)效性和專業(yè)性上的局限所導(dǎo)致,現(xiàn)在市面上大部分開源的 LLM 幾乎都只是使用某一個(gè)時(shí)間點(diǎn)前的公開數(shù)據(jù)進(jìn)行訓(xùn)練,因此它無法學(xué)習(xí)到這個(gè)時(shí)間點(diǎn)之后的知識(shí),并且也無法保證在專業(yè)領(lǐng)域上知識(shí)的準(zhǔn)確性。那有沒有辦法讓你的模型學(xué)習(xí)到新的知識(shí)呢?

當(dāng)然有,這里一般有 2 種方案:

Fine-tuning 微調(diào)

微調(diào)通過對(duì)特定領(lǐng)域數(shù)據(jù)庫(kù)進(jìn)行廣泛的訓(xùn)練來調(diào)整整個(gè)模型。這樣可以內(nèi)化專業(yè)技能和知識(shí)。然后,微調(diào)也需要大量的數(shù)據(jù)、大量的計(jì)算資源和定期的重新訓(xùn)練以保持時(shí)效性。

RAG 檢索增強(qiáng)生成

RAG的全稱是 Retrieval-Augmented Generation,它的原理是通過檢索外部知識(shí)來給出上下文響應(yīng),在無需對(duì)模型進(jìn)行重新訓(xùn)練的情況,保持模型對(duì)于特定領(lǐng)域的專業(yè)性,同時(shí)通過更新數(shù)據(jù)查詢庫(kù),可以實(shí)現(xiàn)快速地知識(shí)更新。但 RAG 在構(gòu)建以及檢索知識(shí)庫(kù)時(shí),會(huì)占用更多額外的內(nèi)存資源,其回答響應(yīng)延時(shí)也取決于知識(shí)庫(kù)的大小。

從以上比較可以看出,在沒有足夠 GPU 計(jì)算資源對(duì)模型進(jìn)行重新訓(xùn)練的情況下,RAG 方式對(duì)普通用戶來說更為友好。因此本文也將探討如何利用 OpenVINO 以及 LangChain 工具來構(gòu)建屬于你的 RAG 問答系統(tǒng)。

RAG 流程

雖然 RAG 可以幫助 LLM “學(xué)習(xí)”到新的知識(shí),并給出更可靠的答案,但它的實(shí)現(xiàn)流程并不復(fù)雜,主要可以分為以下兩個(gè)部分:

01構(gòu)建知識(shí)庫(kù)檢索

13965cbe-a0dc-11ee-8b88-92fbcf53809c.png

圖:構(gòu)建知識(shí)庫(kù)流程

Load 載入:

讀取并解析用戶提供的非結(jié)構(gòu)化信息,這里的非結(jié)構(gòu)化信息可以是例如 PDF 或者 Markdown 這樣的文檔形式。

Split 分割:

將文檔中段落按標(biāo)點(diǎn)符號(hào)或是特殊格式進(jìn)行拆分,輸出若干詞組或句子,如果拆分后的單句太長(zhǎng),將不便于后期 LLM 理解以及抽取答案,如果太短又無法保證語義的連貫性,因此我們需要限制拆分長(zhǎng)度(chunk size),此外,為了保證 chunk 之間文本語義的連貫性,相鄰 chunk 會(huì)有一定的重疊,在 LangChain 中我可以通過定義 Chunk overlap 來控制這個(gè)重疊區(qū)域的大小。

13b6d278-a0dc-11ee-8b88-92fbcf53809c.png

圖:Chunk size 和 Chunk overlap 示例

Embedding 向量化:

使用深度學(xué)習(xí)模型將拆分后的句子向量化,把一段文本根據(jù)語義在一個(gè)多維空間的坐標(biāo)系里面表示出來,以便知識(shí)庫(kù)存儲(chǔ)以及檢索,語義將近的兩句話,他們所對(duì)應(yīng)的向量相似度會(huì)相對(duì)較大,反之則較小,以此方式我們可以在檢索時(shí),判斷知識(shí)庫(kù)里句子是否可能為問題的答案。

Store 存儲(chǔ):

構(gòu)建知識(shí)庫(kù),將文本以向量的形式存儲(chǔ),用于后期檢索。

02檢索和答案生成

13ce8c56-a0dc-11ee-8b88-92fbcf53809c.png

圖:答案生成流程

Retrieve 檢索:

當(dāng)用戶問題輸入后,首先會(huì)利用 embedding 模型將其向量化,然后在知識(shí)庫(kù)中檢索與之相似度較高的若干段落,并對(duì)這些段落的相關(guān)性進(jìn)行排序。

Generate 生成:

將這個(gè)可能包含答案,且相關(guān)性最高的 Top K 個(gè)檢索結(jié)果,包裝為 Prompt 輸入,喂入 LLM 中,據(jù)此來生成問題所對(duì)應(yīng)的的答案。

關(guān)鍵步驟

在利用 OpenVINO構(gòu)建 RAG 系統(tǒng)過程中有以下一些關(guān)鍵步驟:

01封裝 Embedding 模型類

由于在 LangChain 的 chain pipeline 會(huì)調(diào)用 embedding 模型類中的embed_documents和 embed_query 來分別對(duì)知識(shí)庫(kù)文檔和問題進(jìn)行向量化,而他們最終都會(huì)調(diào)用 encode 函數(shù)來實(shí)現(xiàn)每個(gè) chunk 具體的向量化實(shí)現(xiàn),因此在自定義的 embedding 模型類中也需要實(shí)現(xiàn)這樣幾個(gè)關(guān)鍵方法,并通過 OpenVINO進(jìn)行推理任務(wù)的加速。

13ee7976-a0dc-11ee-8b88-92fbcf53809c.png

圖:embedding 模型推理示意

由于在 RAG 系統(tǒng)中的各個(gè) chunk 之間的向量化任務(wù)往往沒有依賴關(guān)系,因此我們可以通過 OpenVINO 的 AsyncInferQueue 接口,將這部分任務(wù)并行化,以提升整個(gè) embedding 任務(wù)的吞吐量。

for i, sentence in enumerate(sentences_sorted):
      inputs = {}
      features = self.tokenizer(
        sentence, padding=True, truncation=True, return_tensors='np')
      for key in features:
        inputs[key] = features[key]
      infer_queue.start_async(inputs, i)
    infer_queue.wait_all()
    all_embeddings = np.asarray(all_embeddings)

左滑查看更多

此外,從 HuggingFace Transfomers 庫(kù)中(https://hf-mirror.com/sentence-transformers/all-mpnet-base-v2#usage-huggingface-transformers)導(dǎo)出的 embedding 模型是不包含 mean_pooling 和歸一化操作的,因此我們需要在獲取模型推理結(jié)果后,再實(shí)現(xiàn)這部分后處理任務(wù)。并將其作為 callback function 與 AsyncInferQueue 進(jìn)行綁定。

def postprocess(request, userdata):
      embeddings = request.get_output_tensor(0).data
      embeddings = np.mean(embeddings, axis=1)
      if self.do_norm:
        embeddings = normalize(embeddings, 'l2')
      all_embeddings.extend(embeddings)


    infer_queue.set_callback(postprocess)

左滑查看更多

02封裝 LLM 模型類

由于 LangChain 已經(jīng)可以支持 HuggingFace 的 pipeline 作為其 LLM 對(duì)象,因此這里我們只要將 OpenVINO 的 LLM 推理任務(wù)封裝成一個(gè) HF 的 text generation pipeline 即可(詳細(xì)方法可以參考我的上一篇文章)。此外為了流式輸出答案(逐字打印),需要通過 TextIteratorStreamer 對(duì)象定義一個(gè)流式生成器。

streamer = TextIteratorStreamer(
  tok, timeout=30.0, skip_prompt=True, skip_special_tokens=True
)
generate_kwargs = dict(
  model=ov_model,
  tokenizer=tok,
  max_new_tokens=256,
  streamer=streamer,
  # temperature=1,
  # do_sample=True,
  # top_p=0.8,
  # top_k=20,
  # repetition_penalty=1.1,
)
if stop_tokens is not None:
  generate_kwargs["stopping_criteria"] = StoppingCriteriaList(stop_tokens)
  
pipe = pipeline("text-generation", **generate_kwargs)
llm = HuggingFacePipeline(pipeline=pipe)

左滑查看更多

03設(shè)計(jì) RAG prompt template

當(dāng)完成檢索后,RAG 會(huì)將相似度最高的檢索結(jié)果包裝為 Prompt,讓 LLM 進(jìn)行篩選與重構(gòu),因此我們需要為每個(gè) LLM 設(shè)計(jì)一個(gè) RAG prompt template,用于在 Prompt 中區(qū)分這些檢索結(jié)果,而這部分的提示信息我們又可以稱之為 context 上下文,以供 LLM 在生成答案時(shí)進(jìn)行參考。以 ChatGLM3 為例,它的 RAG prompt template 可以是這樣的:

 "prompt_template": f"""<|system|>
    {DEFAULT_RAG_PROMPT_CHINESE }"""
    + """
    <|user|>
    問題: {question} 
    已知內(nèi)容: {context} 
    回答: 
    <|assistant|>""",

左滑查看更多

其中:

● {DEFAULT_RAG_PROMPT_CHINESE}為我們事先根據(jù)任務(wù)要求定義的系統(tǒng)提示詞。

●{question}為用戶問題。

●{context} 為 Retriever 檢索到的,可能包含問題答案的段落。

例如,假設(shè)我們的問題是“飛槳的四大優(yōu)勢(shì)是什么?”,對(duì)應(yīng)從飛槳文檔中獲取的 Prompt 輸入就是:

“<|system|>
基于以下已知信息,請(qǐng)簡(jiǎn)潔并專業(yè)地回答用戶的問題。如果無法從中得到答案,請(qǐng)說 "根據(jù)已知信息無法回答該問題" 或 "沒有提供足夠的相關(guān)信息"。不允許在答案中添加編造成分。另外,答案請(qǐng)使用中文。
<|user|>
問題: 飛槳的四大領(lǐng)先技術(shù)是什么?
已知內(nèi)容: ## 安裝


PaddlePaddle最新版本: v2.5
跟進(jìn)PaddlePaddle最新特性請(qǐng)參考我們的版本說明


四大領(lǐng)先技術(shù)
開發(fā)便捷的產(chǎn)業(yè)級(jí)深度學(xué)習(xí)框架


飛槳深度學(xué)習(xí)框架采用基于編程邏輯的組網(wǎng)范式,對(duì)于普通開發(fā)者而言更容易上手,符合他們的開發(fā)習(xí)慣。同時(shí)支持聲明式和命令式編程,兼具開發(fā)的靈活性和高性能。網(wǎng)絡(luò)結(jié)構(gòu)自動(dòng)設(shè)計(jì),模型效果超越人類專家。


支持超大規(guī)模深度學(xué)習(xí)模型的訓(xùn)練


飛槳突破了超大規(guī)模深度學(xué)習(xí)模型訓(xùn)練技術(shù),實(shí)現(xiàn)了支持千億特征、萬億參數(shù)、數(shù)百節(jié)點(diǎn)的開源大規(guī)模訓(xùn)練平臺(tái),攻克了超大規(guī)模深度學(xué)習(xí)模型的在線學(xué)習(xí)難題,實(shí)現(xiàn)了萬億規(guī)模參數(shù)模型的實(shí)時(shí)更新。
查看詳情


支持多端多平臺(tái)的高性能推理部署工具
…
<|assistant|>“

左滑查看更多

04創(chuàng)建 RetrievalQA 檢索

在文本分割這個(gè)任務(wù)中,LangChain 支持了多種分割方式,例如按字符數(shù)的 CharacterTextSplitter,針對(duì) Markdown 文檔的 MarkdownTextSplitter,以及利用遞歸方法的 RecursiveCharacterTextSplitter,當(dāng)然你也可以通過繼成 TextSplitter 父類來實(shí)現(xiàn)自定義的 split_text 方法,例如在中文文檔中,我們可以采用按每句話中的標(biāo)點(diǎn)符號(hào)進(jìn)行分割。

class ChineseTextSplitter(CharacterTextSplitter):
  def __init__(self, pdf: bool = False, **kwargs):
    super().__init__(**kwargs)
    self.pdf = pdf


  def split_text(self, text: str) -> List[str]:
    if self.pdf:
      text = re.sub(r"
{3,}", "
", text)
      text = text.replace("

", "")
    sent_sep_pattern = re.compile(
      '([﹒﹔﹖﹗.。???]["’”」』]{0,2}|(?=["‘“「『]{1,2}|$))') # del :;
    sent_list = []
    for ele in sent_sep_pattern.split(text):
      if sent_sep_pattern.match(ele) and sent_list:
        sent_list[-1] += ele
      elif ele:
        sent_list.append(ele)
    return sent_list

左滑查看更多

接下來我們需要載入預(yù)先設(shè)定的好的 prompt template,創(chuàng)建 rag_chain。

141de0ee-a0dc-11ee-8b88-92fbcf53809c.png

圖:Chroma 引擎檢索流程

這里我們使用 Chroma 作為檢索引擎,在 LangChain 中,Chroma 默認(rèn)使用 cosine distance 作為向量相似度的評(píng)估方法,同時(shí)可以通過調(diào)整 db.as_retriever(search_type= "similarity_score_threshold"),或是 db.as_retriever(search_type= "mmr")來更改默認(rèn)搜索策略,前者為帶閾值的相似度搜索,后者為 max_marginal_relevance 算法。當(dāng)然 Chroma 也可以被替換為 FAISS 檢索引擎,使用方式也是相似的。

此外通過定義 as_retriever函數(shù)中的 {"k": vector_search_top_k},我們還可以改變檢索結(jié)果的返回?cái)?shù)量,有助于幫助 LLM 獲取更多有效信息,但也為增加 Prompt 的長(zhǎng)度,提高推理延時(shí),因此不建議將該數(shù)值設(shè)定太高。創(chuàng)建 rag_chain 的完整代碼如下:

 documents = load_single_document(doc.name)


  text_splitter = TEXT_SPLITERS[spliter_name](
    chunk_size=chunk_size, chunk_overlap=chunk_overlap
  )


  texts = text_splitter.split_documents(documents)


  db = Chroma.from_documents(texts, embedding)
  retriever = db.as_retriever(search_kwargs={"k": vector_search_top_k})


  global rag_chain
  prompt = PromptTemplate.from_template(
    llm_model_configuration["prompt_template"])
  chain_type_kwargs = {"prompt": prompt}
  rag_chain = RetrievalQA.from_chain_type(
    llm=llm,
    chain_type="stuff",
    retriever=retriever,
    chain_type_kwargs=chain_type_kwargs,
  )

左滑查看更多

05答案生成

創(chuàng)建以后的 rag_chain 對(duì)象可以通過 rag_chain.run(question) 來響應(yīng)用戶的問題。將它和線程函數(shù)綁定后,就可以從 LLM 對(duì)象的 streamer 中獲取流式的文本輸出。

def infer(question):
    rag_chain.run(question)
    stream_complete.set()


  t1 = Thread(target=infer, args=(history[-1][0],))
  t1.start()
  partial_text = ""
  for new_text in streamer:
    partial_text = text_processor(partial_text, new_text)
    history[-1][1] = partial_text
    yield history

左滑查看更多

最終效果

最終效果如下圖所示,當(dāng)用戶上傳了自己的文檔文件后,點(diǎn)擊 Build Retriever 便可以創(chuàng)建知識(shí)檢索庫(kù),同時(shí)也可以根據(jù)自己文檔的特性,通過調(diào)整檢索庫(kù)的配置參數(shù)來實(shí)現(xiàn)更高效的搜索。當(dāng)完成檢索庫(kù)創(chuàng)建后就可以在對(duì)話框中與 LLM 進(jìn)行問答交互了。

1433ee66-a0dc-11ee-8b88-92fbcf53809c.png

圖:基于 RAG 的問答系統(tǒng)效果

總結(jié)

在醫(yī)療、工業(yè)等領(lǐng)域,行業(yè)知識(shí)庫(kù)的構(gòu)建已經(jīng)成為了一個(gè)普遍需求,通過 LLM 與 OpenVINO 的加持,我們可以讓用戶對(duì)于知識(shí)庫(kù)的查詢變得更加精準(zhǔn)與高效,帶來更加友好的交互體驗(yàn)。

審核編輯:湯梓紅

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場(chǎng)。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請(qǐng)聯(lián)系本站處理。 舉報(bào)投訴
  • 英特爾
    +關(guān)注

    關(guān)注

    61

    文章

    10196

    瀏覽量

    174696
  • AI
    AI
    +關(guān)注

    關(guān)注

    88

    文章

    35164

    瀏覽量

    279981
  • 數(shù)據(jù)庫(kù)
    +關(guān)注

    關(guān)注

    7

    文章

    3927

    瀏覽量

    66238
  • OpenVINO
    +關(guān)注

    關(guān)注

    0

    文章

    115

    瀏覽量

    483

原文標(biāo)題:基于 OpenVINO? 和 LangChain 構(gòu)建 RAG 問答系統(tǒng) | 開發(fā)者實(shí)戰(zhàn)

文章出處:【微信號(hào):英特爾物聯(lián)網(wǎng),微信公眾號(hào):英特爾物聯(lián)網(wǎng)】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。

收藏 人收藏
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

    評(píng)論

    相關(guān)推薦
    熱點(diǎn)推薦

    利用OpenVINO和LlamaIndex工具構(gòu)建多模態(tài)RAG應(yīng)用

    文本內(nèi)容構(gòu)建 RAG 流水線已經(jīng)相對(duì)成熟。然而為視頻內(nèi)容構(gòu)建 RAG 流水線則困難得多。由于視頻結(jié)合了圖像,音頻和文本元素,因此需要更多和更復(fù)雜的數(shù)據(jù)處理能力。本文將介紹如何利用
    的頭像 發(fā)表于 02-21 10:18 ?2125次閱讀
    利用<b class='flag-5'>OpenVINO</b>和LlamaIndex工具<b class='flag-5'>構(gòu)建</b>多模態(tài)<b class='flag-5'>RAG</b>應(yīng)用

    【「基于大模型的RAG應(yīng)用開發(fā)與優(yōu)化」閱讀體驗(yàn)】+第一章初體驗(yàn)

    的deepseek,讓美股暴跌17%,讓美國(guó)的星際之門計(jì)劃直接流產(chǎn)了,想笑出聲。 《基于大模型的RAG應(yīng)用開發(fā)與優(yōu)化》一書從理論到實(shí)踐,系統(tǒng)性地介紹了如何結(jié)合大模型與RAG技術(shù)構(gòu)建高效
    發(fā)表于 02-07 10:42

    為什么無法在RedHat中構(gòu)建OpenVINO? 2022.2?

    嘗試使用 RedHat* (UBI 9) 構(gòu)建OpenVINO? 2022.2 在 CMAKE 操作過程中遇到錯(cuò)誤
    發(fā)表于 03-05 08:25

    為什么無法從源代碼推斷OpenVINO?構(gòu)建中的VPU?

    為什么無法從源代碼推斷OpenVINO?構(gòu)建中的 VPU
    發(fā)表于 03-06 07:12

    如何為Raspbian Bullseye構(gòu)建開源OpenVINO??

    為 Raspbian* Bullseye 構(gòu)建開源OpenVINO? 的變通方法步驟
    發(fā)表于 03-07 07:07

    《AI Agent 應(yīng)用與項(xiàng)目實(shí)戰(zhàn)》閱讀心得3——RAG架構(gòu)與部署本地知識(shí)庫(kù)

    技術(shù)不僅解決了LLM的知識(shí)更新問題,更為構(gòu)建專業(yè)領(lǐng)域的智能問答系統(tǒng)提供了完整的技術(shù)方案。通過與向量數(shù)據(jù)庫(kù)的深度集成,RAG實(shí)現(xiàn)了知識(shí)的動(dòng)態(tài)擴(kuò)展和精準(zhǔn)檢索,這種架構(gòu)設(shè)計(jì)為AI
    發(fā)表于 03-07 19:49

    使用 llm-agent-rag-llamaindex 筆記本時(shí)收到的 NPU 錯(cuò)誤怎么解決?

    使用 conda create -n ov-nb-demos python=3.11 創(chuàng)建運(yùn)行 llm-agent-rag-llamaindex notebook 的環(huán)境。 執(zhí)行“創(chuàng)建
    發(fā)表于 06-23 06:26

    在Raspberry Pi上從源代碼構(gòu)建OpenVINO 2021.3收到錯(cuò)誤怎么解決?

    在 Raspberry Pi 上從源代碼構(gòu)建 OpenVINO?2021.3。 運(yùn)行OpenVINO?推理,并收到錯(cuò)誤消息: ModuleNotFoundError:沒有
    發(fā)表于 08-15 08:24

    如何使用交叉編譯方法為Raspbian 32位操作系統(tǒng)構(gòu)建OpenVINO工具套件的開源分發(fā)

    提供如何使用交叉編譯方法為 Raspbian* 32 位操作系統(tǒng)構(gòu)建 OpenVINO? 工具套件的開源分發(fā)。 單擊主題上的 了解詳細(xì)信息: 系統(tǒng)要求注意本指南假定您的 Raspber
    發(fā)表于 08-15 06:28

    如何使用Python包裝器正確構(gòu)建OpenVINO工具套件

    構(gòu)建該工具套件。 如果您未明確指定 Python 版本,CMake 會(huì)選擇系統(tǒng)級(jí) Python 版本(2.7),而且您的 Python 腳本將不起作用。 注意以下說明假定您已安裝了 Python
    發(fā)表于 08-15 07:13

    如何利用OpenVINO加速LangChain中LLM任務(wù)

    LangChain 是一個(gè)高層級(jí)的開源的框架,從字面意義理解,LangChain 可以被用來構(gòu)建 “語言處理任務(wù)的鏈條”,它可以讓AI開發(fā)人員把大型語言模型(LLM)的能力和外部數(shù)據(jù)結(jié)合起來,從而
    的頭像 發(fā)表于 12-05 09:58 ?1107次閱讀

    Java開發(fā)者LLM實(shí)戰(zhàn)——使用LangChain4j構(gòu)建本地RAG系統(tǒng)

    不會(huì)是最新的,最新的chatGPT-4o只能基于2023年6月之前的數(shù)據(jù)進(jìn)行回答,距離目前已經(jīng)快一年的時(shí)間,如果想讓GPT基于近一年的時(shí)間回復(fù)問題,就需要RAG(檢索增強(qiáng)生成)技術(shù)了。 此外,對(duì)于公司內(nèi)部的私有數(shù)據(jù),為了數(shù)據(jù)安全、商業(yè)利益考慮,不能放到互
    的頭像 發(fā)表于 07-02 10:32 ?2843次閱讀
    Java開發(fā)者LLM實(shí)戰(zhàn)——使用<b class='flag-5'>LangChain</b>4j<b class='flag-5'>構(gòu)建</b>本地<b class='flag-5'>RAG</b><b class='flag-5'>系統(tǒng)</b>

    LangChain框架關(guān)鍵組件的使用方法

    LangChain,開發(fā)者可以輕松構(gòu)建基于RAG或者Agent流水線的復(fù)雜應(yīng)用體系,而目前我們已經(jīng)可以在LangChain的關(guān)鍵組件LLM,Text Embedding和Reranke
    的頭像 發(fā)表于 08-30 16:55 ?1193次閱讀
    <b class='flag-5'>LangChain</b>框架關(guān)鍵組件的使用方法

    使用OpenVINO和LlamaIndex構(gòu)建Agentic-RAG系統(tǒng)

    RAG 系統(tǒng)的全稱是 Retrieval-augmented Generation,本質(zhì)上是 Prompt Engineering,通過在 Prompt 中注入檢索得到的外部數(shù)據(jù),可以有效地
    的頭像 發(fā)表于 10-12 09:59 ?766次閱讀
    使用<b class='flag-5'>OpenVINO</b>和LlamaIndex<b class='flag-5'>構(gòu)建</b>Agentic-<b class='flag-5'>RAG</b><b class='flag-5'>系統(tǒng)</b>

    中科曙光助力中航結(jié)算公司構(gòu)建私域文檔智能問答系統(tǒng)

    近日,中航結(jié)算公司(中國(guó)航空結(jié)算有限責(zé)任公司)依托曙光AI解決方案提供的強(qiáng)勁算力,協(xié)同DeepAI深算智能引擎快速適配、調(diào)優(yōu)、上線DeepSeek大模型業(yè)務(wù)平臺(tái)?;贒eepSeek底座,中航結(jié)算公司構(gòu)建了以RAG增強(qiáng)檢索為核心的私域文檔智能
    的頭像 發(fā)表于 03-19 15:40 ?488次閱讀