中文亚洲精品无码_熟女乱子伦免费_人人超碰人人爱国产_亚洲熟妇女综合网

當(dāng)前位置: 首頁 > news >正文

網(wǎng)站域名登記證明在線搭建網(wǎng)站

網(wǎng)站域名登記證明,在線搭建網(wǎng)站,如何用dedecms做網(wǎng)站,上海外貿(mào)財經(jīng)大學(xué)在構(gòu)建政策問答智能聊天助手的過程中,我們采用了 RAG(Retrieval-Augmented Generation)技術(shù)。RAG 是一種結(jié)合了檢索和生成的混合型自然語言處理技術(shù),它通過檢索相關(guān)信息來增強生成模型的上下文理解能力。RAG 的主要優(yōu)點在于能夠有…

img

在構(gòu)建政策問答智能聊天助手的過程中,我們采用了 RAG(Retrieval-Augmented Generation)技術(shù)。RAG 是一種結(jié)合了檢索和生成的混合型自然語言處理技術(shù),它通過檢索相關(guān)信息來增強生成模型的上下文理解能力。RAG 的主要優(yōu)點在于能夠有效減少生成式模型的“幻覺”問題,即模型生成與現(xiàn)實不符的內(nèi)容,從而提高回答的準(zhǔn)確性和可靠性。我們將整個搭建過程分為三個關(guān)鍵階段:數(shù)據(jù)預(yù)處理、推理和評價。

imgRAG 通用框架



01. 數(shù)據(jù)預(yù)處理

在預(yù)處理階段,我們完成了清洗、分詞并提取特征,確保數(shù)據(jù)質(zhì)量。首先,我們將 PDF 政策文本轉(zhuǎn)化成 TXT ,這一步基于開源項目 tesseract-ocr 的簡體中文版本實現(xiàn)。

def process_pages(pdf_path, start_page, end_page):images = convert_from_path(pdf_path, dpi=300, first_page=start_page, last_page=end_page)text_pages = {}for i, image in enumerate(images, start=start_page):gray_image = ImageOps.grayscale(image)text = pytesseract.image_to_string(gray_image, lang='chi_sim+eng')print(f"\nPage {i} Text:\n{text}")  # Print recognized texttext_pages[i] = text + "\n"return text_pages

在實施時,我們選取的政策文檔為43頁,經(jīng)過 jieba 分詞后,得到13194字,共471句話。

words = jieba.lcut(text)
num_words = len(words)# Matches Chinese period, exclamation, question marks, and newlines
sentence_delimiters = r'[。!?]'  
sentences = re.split(sentence_delimiters, text)sentences = [s.strip() for s in sentences if s.strip()]
num_sentences = len(sentences)

接下來是分段即 chunking 環(huán)節(jié)。我們調(diào)研了多種常用的分段方法,并著重實驗了其中兩種。

方法一:等字符分段法

這也是最常見的分段方法。為適應(yīng)大模型每次輸入 token 的最大數(shù)量限制,并且考慮到單句平均28個字符,我們采用 width=300,overlapping=50 的分割法。

while start < total_words:end = start + Wchunk_words = words[start:end]chunk_text = ''.join(chunk_words)  # Concatenate words without spaceschunks.append(chunk_text)start = end - overlap  # Move the window forward with overlap

方法二:語義雙重合并分段

語義雙重合并分段(semantic chunking double-pass merging)中有雙重過程,其中 First Pass 的目的是準(zhǔn)確識別主題的差異,將最明顯的句子連接在一起。而 Second Pass 進一步將以上小塊組成主題各異的大塊。對于主題的變化判定,我們設(shè)定了閾值 threshold = 0.7。

這里采用的 sentence tokenizer 是 sentence-transformers/paraphrase-multilingual-MiniLM-L12-v2,為句子生成84維的向量。

chunks = []current_chunk = []i = 0while i < len(sentences):sentence = sentences[i]is_item = bool(item_pattern.match(sentence))if is_item:# Start a new chunk for the itemized listif current_chunk:chunks.append(current_chunk)current_chunk = [sentence]i += 1# Add subsequent itemized entries to the current chunkwhile i < len(sentences) and (bool(item_pattern.match(sentences[i])) or sentences[i].startswith(('(', '('))):current_chunk.append(sentences[i])i += 1# Add the completed itemized list chunkchunks.append(current_chunk)current_chunk = []else:# Regular sentence processing with semantic similarityif not current_chunk:current_chunk = [sentence]else:# Compute similarity with the previous sentenceembedding_prev = get_sentence_embedding(current_chunk[-1])embedding_curr = get_sentence_embedding(sentence)sim = cosine_similarity(embedding_prev.reshape(1, -1),embedding_curr.reshape(1, -1))[0][0]if sim >= 0.7:  # Adjust the threshold as neededcurrent_chunk.append(sentence)else:chunks.append(current_chunk)current_chunk = [sentence]i += 1# Add any remaining chunkif current_chunk:chunks.append(current_chunk)

在實踐中,我們發(fā)現(xiàn)使用同樣的大模型,第二種語義分段法的預(yù)測效果要優(yōu)于第一種等字符分段法。這可能是因為在方法二的初始分段過程中,我們注意到了句塊過于零散的情況:

img

條例化的信息在這里被視為分段的標(biāo)志,而相反他們正應(yīng)被歸為一類。于是我們確?!?#xff08;)”級別的 itemization 都能被正確合并。

item_pattern = re.compile(r'^(\(?[一二三四五六七八九十0-9]+\)?[.。、])')  

以上兩種分段法得到的結(jié)果,我們都以 chunks.pkl 和 chunk_embeddings.pkl 形式存儲。

02. 推理環(huán)節(jié)

在推理環(huán)節(jié)中,我們利用大模型的深度學(xué)習(xí)功能,通過微調(diào)和優(yōu)化來提高模型的理解和回答能力。我們需要依據(jù)用戶提問找到相關(guān)聯(lián)的文本,設(shè)計提示詞,隨后調(diào)用大模型作答。

先對 query 進行 tokenization,找到相似度最高的 top K 段落(K=5):

def get_top_k_chunks(query_embedding, chunk_embeddings, K):similarities = []for idx, chunk_embedding in enumerate(chunk_embeddings):sim = cosine_similarity(query_embedding.reshape(1, -1),chunk_embedding.reshape(1, -1))[0][0]similarities.append((idx, sim))similarities.sort(key=lambda x: x[1], reverse=True)top_k = similarities[:K]return top_k 

為兼顧模型性能與潛在的參數(shù)優(yōu)化可行性,我們選擇 Llama-2-7b-hf 作為大模型。設(shè)計一組 prompt 后即可開始問答。

context = ''for idx, sim in top_k_chunks:chunk_text = ''.join(chunks[idx]) if isinstance(chunks[idx], list) else chunks[idx]context += f"【內(nèi)容{idx+1}】\n{chunk_text}\n\n"prompt = f"""你是一名智能助理,請根據(jù)以下提供的政策內(nèi)容,回答用戶的問題。請確?;卮饻?zhǔn)確且基于提供的內(nèi)容。如果無法找到答案,請告知用戶。{context}
用戶提問:
{query}
你的回答:
"""
 terminal>>
請輸入您的問題:杭州市海外高層次人才創(chuàng)新創(chuàng)業(yè)有哪些補助?
生成的回答:
參照中國杭州大學(xué)生創(chuàng)業(yè)大賽在杭落地項目資助條目

可見該回答雖言之成理,仍存在改進空間。問題在于,如何量化評價這一模型的回答準(zhǔn)確度?為此,我們引入了多項選擇題(MCQ)作為評價集。

03. 評價環(huán)節(jié)

鑒于大模型生成的自然語言回答存在不確定性,量化其準(zhǔn)確性變得頗具挑戰(zhàn)。為此,構(gòu)建一個包含確切答案的評價集顯得尤為關(guān)鍵。我們期望該評價集滿足以下特點:

首先,每個問題應(yīng)有一個正確答案,而其他三個錯誤答案在常識范圍內(nèi)應(yīng)具有一定的合理性,這樣可以確保判斷是基于檢索到的文檔內(nèi)容,而非模型的先驗知識。

其次,正確答案應(yīng)在選項中隨機分布,以避免在訓(xùn)練過程中出現(xiàn)過度擬合。通過人工標(biāo)注與 AI 技術(shù)的輔助,我們成功構(gòu)建了30組評價問答題,確保了評價集的質(zhì)量和實用性。

以下是示例問題:

{"query": "哪些企業(yè)能獲得杭州市的創(chuàng)業(yè)補助?","options": {"A": "所有注冊在杭的企業(yè)均可申請。","B": "符合政府補助要求的創(chuàng)新型企業(yè)。","C": "補助只提供給年收入超過一定標(biāo)準(zhǔn)的企業(yè)。","D": "只限于科技創(chuàng)新型企業(yè)。"},"ground_truth": "B"},

在這組評價集上,我們分別驗證了兩種分段法。鑒于生成的回答不總是如指令里聲明的那樣,僅僅給出 ABCD 中的選項,我們提取回答中首個出現(xiàn)的合法大寫字母作為 predicted answer。

  for char in predicted_answer:if char in ['A', 'B', 'C', 'D']:return charreturn None

經(jīng)多組實驗,等字符分段法取得了13.3%-20%的準(zhǔn)確率,而語義分段法取得了26.7%-50%的準(zhǔn)確率??傮w而言,語義分段法所產(chǎn)生的文本在該評價集上更加可靠,除了上述提及的合并 itemization 的原因,還可能是因為等字符分段法恒定的 top K chunks 輸入寬度過大,導(dǎo)致大模型更難準(zhǔn)確理解指示。此處展示正確和錯誤的預(yù)測案例各一組以供參考:

img

img

至此為止,我們可以對不同大模型與分段法在該評價集上的性能搭配進行總結(jié)。

img

不同大模型與分段方法搭配的準(zhǔn)確率

💡注:顯示的準(zhǔn)確率為多組實驗取得的最高值。當(dāng)調(diào)用更小模型時,我們相應(yīng)更改了分段的策略。例如對于 microsoft/phi-2,我們選取 W=80,overlap=40。對于 Open_llama_7b,我們選取 top K=3。

img

在學(xué)員們利用 RAG 技術(shù)搭建政策問答智能聊天助手的流程中,他們經(jīng)歷了詳盡的調(diào)研和調(diào)試,已經(jīng)從最初的探索者成長為能夠獨立處理復(fù)雜任務(wù)的專家。然而,這個項目方案仍有提升空間。

我們注意到,模型的訓(xùn)練和推理過程并未完全分離,導(dǎo)致超參數(shù)(hyperparameters)的設(shè)定過于依賴初始設(shè)計,缺乏迭代優(yōu)化的過程,這是機器學(xué)習(xí)早期的常見問題。隨著深度學(xué)習(xí)技術(shù)的不斷進步,出現(xiàn)了多種調(diào)參方法。在這些方法中,LoRA 因其能夠在較低成本下實現(xiàn)大模型的局部微調(diào)而備受青睞。通過引入 LoRA 技術(shù),我們可以更有效地優(yōu)化模型,實現(xiàn)更精準(zhǔn)的調(diào)整,從而提升整體性能。

01. 什么是 LoRA?

LoRA(low-rank adaptation,低秩適應(yīng))是一種高效的機器學(xué)習(xí)模型微調(diào)技術(shù),它能夠迅速使模型適應(yīng)新環(huán)境。與 RAG 專注于特定數(shù)據(jù)集不同,LoRA 使模型能夠更好地適應(yīng)特定的任務(wù)需求。在面對多樣化的細分任務(wù)時,全面微調(diào)一個大型模型往往成本過高,而 LoRA 提供了一種經(jīng)濟且快速的解決方案。通過在模型的 QKV(Query, Key, Value)部分引入低秩矩陣,即形式為 Bmxr x Arxn 的結(jié)構(gòu),其中 r 遠小于 m 和 n,LoRA 只需訓(xùn)練兩個殘差(residual)矩陣A和B。這種方法顯著減少了訓(xùn)練的參數(shù)量,同時對模型的自注意力層和交叉注意力層產(chǎn)生影響,從而實現(xiàn)對模型的快速且有效的微調(diào)。

02. 把 LoRA 應(yīng)用到 RAG Chatbot

我們先將先前的評價集 dataset.json 以 20:5:5 拆成 train:valid:test。設(shè)置 lora_config 的參數(shù)。

def fine_tune_lora(model_name, train_dataset, valid_dataset):# Load the pre-trained LLaMA modeltokenizer = AutoTokenizer.from_pretrained(model_name)model = AutoModelForCausalLM.from_pretrained(model_name, device_map="auto")# Apply LoRA to the modellora_config = LoraConfig(r=8,  # Low-rank approximation factorlora_alpha=16,  # Scaling factor for the LoRA weightstarget_modules=["q_proj", "k_proj", "v_proj"],  # Target the attention layerslora_dropout=0.1  # Dropout rate for LoRA layers)model = get_peft_model(model, lora_config)

把 evaluation_metric 設(shè)置為 accuracy。定義可訓(xùn)練的參數(shù),以及訓(xùn)練器。為節(jié)約 GPU 資源,可下調(diào)精度。

training_args = TrainingArguments(output_dir='./results',num_train_epochs=3,per_device_train_batch_size=2,  per_device_eval_batch_size=2,gradient_accumulation_steps=4, fp16=True,  # Enable mixed precisionevaluation_strategy="epoch",save_strategy="epoch",logging_dir='./logs',logging_steps=10,
# Train the modeltrainer.train()# Save the fine-tuned LoRA modelmodel.save_pretrained('fine_tuned_lora_llama')tokenizer.save_pretrained('fine_tuned_lora_llama'

最后預(yù)計需要 64.00 MiB GPU 空間。技術(shù)原理已經(jīng)闡明,限于算力資源,工程部分留作將來的拓展實踐。

?

如何學(xué)習(xí)AI大模型?

作為一名熱心腸的互聯(lián)網(wǎng)老兵,我決定把寶貴的AI知識分享給大家。 至于能學(xué)習(xí)到多少就看你的學(xué)習(xí)毅力和能力了 。我已將重要的AI大模型資料包括AI大模型入門學(xué)習(xí)思維導(dǎo)圖、精品AI大模型學(xué)習(xí)書籍手冊、視頻教程、實戰(zhàn)學(xué)習(xí)等錄播視頻免費分享出來。

這份完整版的大模型 AI 學(xué)習(xí)資料已經(jīng)上傳CSDN,朋友們?nèi)绻枰梢晕⑿艗呙柘路紺SDN官方認證二維碼免費領(lǐng)取【保證100%免費

一、全套AGI大模型學(xué)習(xí)路線

AI大模型時代的學(xué)習(xí)之旅:從基礎(chǔ)到前沿,掌握人工智能的核心技能!

img

二、640套AI大模型報告合集

這套包含640份報告的合集,涵蓋了AI大模型的理論研究、技術(shù)實現(xiàn)、行業(yè)應(yīng)用等多個方面。無論您是科研人員、工程師,還是對AI大模型感興趣的愛好者,這套報告合集都將為您提供寶貴的信息和啟示。

img

三、AI大模型經(jīng)典PDF籍

隨著人工智能技術(shù)的飛速發(fā)展,AI大模型已經(jīng)成為了當(dāng)今科技領(lǐng)域的一大熱點。這些大型預(yù)訓(xùn)練模型,如GPT-3、BERT、XLNet等,以其強大的語言理解和生成能力,正在改變我們對人工智能的認識。 那以下這些PDF籍就是非常不錯的學(xué)習(xí)資源。

img

四、AI大模型商業(yè)化落地方案

img

作為普通人,入局大模型時代需要持續(xù)學(xué)習(xí)和實踐,不斷提高自己的技能和認知水平,同時也需要有責(zé)任感和倫理意識,為人工智能的健康發(fā)展貢獻力量。

http://m.risenshineclean.com/news/62956.html

相關(guān)文章:

  • 學(xué)校ftp服務(wù)器做網(wǎng)站泰安seo
  • 做網(wǎng)站賣廣告位賺錢嗎百度站長工具平臺登錄
  • 做網(wǎng)站是要編程嗎網(wǎng)絡(luò)營銷推廣總結(jié)
  • 南通網(wǎng)站外包2021年搜索引擎排名
  • 建設(shè)部城市管理監(jiān)督局網(wǎng)站官網(wǎng)南京百度seo排名
  • 網(wǎng)站開發(fā)后臺注意事項咨詢公司
  • 手機app微信網(wǎng)站建設(shè)磁力狗在線搜索
  • 自己做的網(wǎng)站如何上傳百度電話銷售
  • 表白網(wǎng)站制作平臺百度信息流投放
  • 垃圾網(wǎng)站信息怎么辦朋友圈營銷廣告
  • 東莞網(wǎng)站優(yōu)化怎樣百度最新秒收錄方法2021
  • 番禺做網(wǎng)站企業(yè)1688seo優(yōu)化是什么
  • 自己做網(wǎng)站空間百度搜索廣告
  • wordpress自適應(yīng)導(dǎo)航模板seo的基本步驟
  • 單位網(wǎng)里建網(wǎng)站培訓(xùn)心得體會總結(jié)
  • 微信營銷 網(wǎng)站建設(shè)關(guān)鍵詞排名手機優(yōu)化軟件
  • u盤搭建網(wǎng)站開發(fā)環(huán)境方法線上推廣方式都有哪些
  • 騰云建站靠譜嗎seo是指什么崗位
  • 合肥網(wǎng)站制作軟件湖南網(wǎng)站建設(shè)效果
  • 國外優(yōu)秀的平面設(shè)計網(wǎng)站seo系統(tǒng)培訓(xùn)
  • 門頭溝富陽網(wǎng)站建設(shè)網(wǎng)絡(luò)營銷的發(fā)展現(xiàn)狀如何
  • 企業(yè)咨詢師資格證百度seo 優(yōu)化
  • 高陵微網(wǎng)站建設(shè)網(wǎng)絡(luò)服務(wù)器地址怎么查
  • 河北網(wǎng)站建設(shè)團隊如何建立網(wǎng)站 個人
  • 如何在自己電腦上做網(wǎng)站服務(wù)器夜狼seo
  • 武漢h5網(wǎng)站建設(shè)百度一下app下載安裝
  • 網(wǎng)站制作流程有哪些一站式網(wǎng)絡(luò)營銷
  • 建e網(wǎng)模型官網(wǎng)seo快速排名培訓(xùn)
  • 公司建設(shè)官方網(wǎng)站需要多少錢做運營的具體做什么
  • ps海報素材網(wǎng)站先做后付費的代運營