7.7 Extracting and saving responses

Chapter 7-Fine-tuning to follow instructions

7.7 Extracting and saving responses

  • 在本節中,我們保存測試集響應以便在下一節中評分,除此之外保存模型的副本以供將來使用。

    ?

  • 首先,讓我們簡單看看finetuned模型生成的響應

    torch.manual_seed(123)for entry in test_data[:3]:input_text = format_input(entry)token_ids = generate(model=model,idx=text_to_token_ids(input_text, tokenizer).to(device),max_new_tokens=256,context_size=BASE_CONFIG["context_length"],eos_id=50256)generated_text = token_ids_to_text(token_ids, tokenizer)response_text = (generated_text[len(input_text):].replace("### Response:", "").strip()
    )print(input_text)print(f"\nCorrect response:\n>> {entry['output']}")print(f"\nModel response:\n>> {response_text.strip()}")print("-------------------------------------")"""輸出"""
    Below is an instruction that describes a task. Write a response that appropriately completes the request.### Instruction:
    Rewrite the sentence using a simile.### Input:
    The car is very fast.Correct response:
    >> The car is as fast as lightning.Model response:
    >> The car is as fast as a cheetah.
    -------------------------------------
    Below is an instruction that describes a task. Write a response that appropriately completes the request.### Instruction:
    What type of cloud is typically associated with thunderstorms?Correct response:
    >> The type of cloud typically associated with thunderstorms is cumulonimbus.Model response:
    >> The type of cloud associated with thunderstorms is a cumulus cloud.
    -------------------------------------
    Below is an instruction that describes a task. Write a response that appropriately completes the request.### Instruction:
    Name the author of 'Pride and Prejudice'.Correct response:
    >> Jane Austen.Model response:
    >> The author of 'Pride and Prejudice' is Jane Austen.
    -------------------------------------
    

    正如我們根據測試集指令、給定響應和模型響應所看到的,模型的性能相對較好,第一個和最后一個說明的答案顯然是正確的,第二個答案很接近;模型用“cumulus cloud”而不是“cumulonimbus”來回答(但是,請注意前者可以發展成后者,后者能夠產生thunderstorms)

  • 最重要的是,我們可以看到模型評估不像上一章我們只需要計算正確垃圾郵件/非垃圾郵件類別標簽的百分比即可獲得分類準確性的那樣簡單。

  • 在實踐中,聊天機器人等instruction-finetunedLLM通過多種方法進行評估

    1. 短答案和多項選擇基準,例如MMLU(“測量大規模多任務語言理解”,[https://arxiv.org/pdf/2009.03300](https://arxiv.org/pdf/2009.03300)),用于測試模型的知識
    2. 與其他LLM的人類偏好比較,例如LMSYS聊天機器人競技場([https://arena.lmsys.org](https://arena.lmsys.org))
    3. 自動會話基準測試,其中使用另一個LLM(如GPT-4)來評估響應,例如AlpackaEval([https://tatsu-lab.github.io/alpaca_eval/](https://tatsu-lab.github.io/alpaca_eval/))
  • 在下一節中,我們將使用類似于AlpackaEval的方法,并使用另一個LLM來評估我們模型的響應;但是,我們將使用我們自己的測試集,而不是使用公開可用的基準數據集。為此,我們將模型響應添加到“test_data”字典中,并將其保存為“instruction-data-with-response. json”文件以進行記錄保存,以便我們可以在需要時在單獨的Python會話中加載和分析它

    from tqdm import tqdmfor i, entry in tqdm(enumerate(test_data), total=len(test_data)):input_text = format_input(entry)token_ids = generate(model=model,idx=text_to_token_ids(input_text, tokenizer).to(device),max_new_tokens=256,context_size=BASE_CONFIG["context_length"],eos_id=50256)generated_text = token_ids_to_text(token_ids, tokenizer)response_text = generated_text[len(input_text):].replace("### Response:", "").strip()test_data[i]["model_response"] = response_textwith open("instruction-data-with-response.json", "w") as file:json.dump(test_data, file, indent=4)  # "indent" for pretty-printing"""輸出"""
    100%|██████████| 110/110 [00:59<00:00,  1.86it/s]
    

    檢查其中一個條目,看看響應是否已正確添加到“test_data”字典中

    print(test_data[0])"""輸出"""
    {'instruction': 'Rewrite the sentence using a simile.', 'input': 'The car is very fast.', 'output': 'The car is as fast as lightning.', 'model_response': 'The car is as fast as a cheetah.'}
    

    可以看到原始的output和模型的model_response都在

  • 最后我們保存微調后的模型以供將來用

    import refile_name = f"E:\\LLM\\gpt2\\{re.sub(r'[ ()]', '', CHOOSE_MODEL) }-sft.pth"
    torch.save(model.state_dict(), file_name)
    print(f"Model saved as {file_name}")# Load model via
    # model.load_state_dict(torch.load("E:\\LLM\\gpt2\\gpt2-medium355M-sft.pth"))"""輸出"""
    Model saved as E:\LLM\gpt2\gpt2-medium355M-sft.pth
    

    ? image-20250303221542814


7.8 Evaluating the finetuned LLM

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/bicheng/84957.shtml
繁體地址,請注明出處:http://hk.pswp.cn/bicheng/84957.shtml
英文地址,請注明出處:http://en.pswp.cn/bicheng/84957.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

計算機網絡第3章(上):數據鏈路層全解析——組幀、差錯控制與信道效率

目錄 一、數據鏈路層的功能二、組幀2.1 字符計數法&#xff08;Character Count&#xff09;2.2 字符填充法&#xff08;Character Stuffing&#xff09;2.3 零比特填充法2.4 違規編碼法 三、差錯控制3.1 檢錯編碼&#xff08;奇偶校驗碼&#xff09;3.2 循環冗余校驗&#xff…

鑄鐵試驗平臺的重要性及應用前景

鑄鐵作為一種重要的金屬材料&#xff0c;在工業生產中扮演著舉足輕重的角色。為了確保鑄鐵制品的質量和性能&#xff0c;鑄鐵材料的試驗是必不可少的環節。而鑄鐵試驗平臺則是進行鑄鐵試驗的關鍵設備之一&#xff0c;它為鑄鐵材料的研究和開發提供了重要的技術支持。本文將探討…

std::shared_ptr引起內存泄漏的例子

目錄 一、循環引用&#xff08;最常見場景&#xff09; 示例代碼 內存泄漏原因 二、共享指針管理的對象包含自身的 shared_ptr 示例代碼 內存泄漏&#xff08;或雙重釋放&#xff09;原因 三、解決方案 1. 循環引用&#xff1a;使用 std::weak_ptr 2. 對象獲取自身的 …

AI 知識數據庫搭建方案:從需求分析到落地實施

AI 知識數據庫的搭建需結合業務場景、數據特性與技術架構&#xff0c;形成系統化解決方案。以下是一套完整的搭建框架&#xff0c;涵蓋規劃、設計、實施及優化全流程&#xff1a; 一、前期規劃&#xff1a;需求分析與目標定義 1. 明確業務場景與知識需求 場景導向&#xff1a…

Tensorflow 基礎知識:變量、常量、占位符、Session 詳解

在深度學習領域,TensorFlow 是一個廣泛使用的開源機器學習框架。想要熟練使用 TensorFlow 進行模型開發,掌握變量、常量、占位符和 Session 這些基礎知識是必不可少的。接下來,我們就深入了解一下它們的概念、用處,并通過代碼示例進行演示。 一、常量(Constant) 常量,顧…

linux 常見問題之如何清除大文件的內容

linux 常見問題之如何清除大文件的內容 在 Linux 系統中&#xff0c;我們有時會遇到文件隨著時間增長變得巨大&#xff0c;最常見的就是服務器的日志文件&#xff0c;隨著時間的推移占用大量的磁盤空間&#xff0c;下面介紹如何清楚大文件的內容&#xff0c;當然避免文件內容過…

薛定諤的貓思想實驗如何推演到量子計算

前言 這是我的選修課作業&#xff0c;但是我并不喜歡小論文方式的寫法&#xff0c;死板又老套。先在這打一份底稿。 薛定諤的貓 可能一說到量子這個關鍵詞&#xff0c;大家第一時間都會想到的是“薛定諤的貓”。 實驗介紹 薛定諤的貓是一個著名的思想實驗&#xff0c;由奧…

嵌入式開發中fmacro-prefix-map選項解析

在嵌入式開發中&#xff0c;-fmacro-prefix-map 是 GCC 和 Clang 等編譯器提供的一個路徑映射選項&#xff0c;主要用于在預處理階段重寫宏定義中出現的絕對路徑。它的核心目的是解決以下問題&#xff1a; 核心作用 構建可重現性 消除編譯輸出&#xff08;如 .o、.d 文件&…

Javaweb學習——day3(Servlet 中處理表單數據)

文章目錄 一、概念學習1. GET vs POST 請求方式的區別2. HttpServletRequest 獲取表單數據 二、代碼講解與練習第 1 步&#xff1a;在 webapp 下創建 login.html第 2 步&#xff1a;在 com.example 包下創建 LoginServlet第 3 步&#xff1a;修改 web.xml 注冊 LoginServlet第 …

在 iOS 開發中單獨解析域名為 IP

1 為什么要自己解析? 典型場景說明劫持/污染檢測比較 系統解析 與 自建 DNS 的差異QoS / CDN 選路對每個候選 IP 做 RT/丟包測速系統 API(NSURLSession / Network.framework)在「真正建立連接之前」不會把解析結果暴露出來,因此需要主動解析一步。 2 API 選型概覽 API是否過…

YOLOv1 技術詳解:正負樣本劃分與置信度設計

&#x1f50d; YOLOv1 技術詳解&#xff1a;正負樣本劃分與置信度設計 一、前言 YOLOv1 是目標檢測領域中具有劃時代意義的算法之一&#xff0c;它將檢測任務統一為一個回歸問題&#xff0c;實現了“You Only Look Once”的端到端實時檢測。其中&#xff0c;正負樣本的劃分機…

為 Nginx 配置 HTTPS(以 n8n 為例)完整教程【CentOS 7】

在部署如 n8n 這類自動化平臺時&#xff0c;為了保障數據傳輸安全&#xff0c;我們通常會使用 HTTPS 訪問。本文將以 n8n.example.com 為例&#xff0c;介紹如何在 CentOS 7 系統中通過 Nginx 為本地運行在端口 5678 的 n8n 服務配置免費 SSL 證書&#xff08;Let’s Encrypt&a…

Elasticsearch從安裝到實戰、kibana安裝以及自定義IK分詞器/集成整合SpringBoot詳細的教程ES(四)查詢、排序、分頁、高亮

基礎代碼 package com.test.xulk;import com.alibaba.fastjson.JSON; import com.test.xulk.es.esdoc.HotelDoc; import com.test.xulk.es.service.IHotelService; import org.apache.http.HttpHost; import org.elasticsearch.action.search.SearchRequest; import org.elast…

一個數組樣式上要分成兩個

如圖所示&#xff0c;要有一個區分來顯示&#xff0c;如果一開始就是這樣還可以有很多種處理方式&#xff0c;但是這個后期一直在調整所以不好重做因為開發已經完成&#xff0c;加上很多地方聯動改的地方太多&#xff0c;所以采用了一個比較笨的方法 <ul class"classif…

NLP進化史:從規則模板到思維鏈推理,七次范式革命全解析

“語言不是神的創造物&#xff0c;而是平凡人類的產物。”——諾姆喬姆斯基 自然語言處理&#xff08;NLP&#xff09;的發展史&#xff0c;就是人類試圖教會機器理解語言本質的探索史。本文將帶您穿越70年技術長河&#xff0c;揭示NLP領域關鍵的范式轉換里程碑。 一、規則驅動…

Yarn與NPM緩存存儲目錄遷移

Yarn與NPM緩存存儲目錄遷移 背景與需求 解釋Yarn和NPM緩存機制的作用及默認存儲路徑遷移緩存目錄的常見原因&#xff08;如磁盤空間不足、系統盤性能優化、多項目協作需求&#xff09; Yarn緩存目錄遷移方法 查看當前Yarn緩存目錄的命令&#xff1a;yarn cache dir修改Yarn…

Python爬蟲-批量爬取快手視頻并將視頻下載保存到本地

前言 本文是該專欄的第80篇,后面會持續分享python爬蟲干貨知識,記得關注。 本文筆者以快手為例子,基于Python爬蟲來實現批量采集視頻,并將視頻下載以及保存到本地。 而具體的“視頻采集以及視頻下載,保存”思路邏輯,筆者將在正文中結合“完整代碼”來詳細介紹每個步驟。…

org.springframework.cloud.openfeign 組件解釋

我們來詳細解釋一下 org.springframework.cloud.openfeign 這個組件。 一句話概括&#xff1a;它是一個聲明式的、模板化的HTTP客戶端&#xff0c;旨在讓微服務之間的REST API調用變得像調用本地方法一樣簡單。 為了讓你徹底理解&#xff0c;我會從以下幾個方面來解釋&#x…

2025年06月13日Github流行趨勢

項目名稱&#xff1a;awesome-llm-apps 項目地址url&#xff1a;https://github.com/Shubhamsaboo/awesome-llm-apps項目語言&#xff1a;Python歷史star數&#xff1a;37,536今日star數&#xff1a;1,287項目維護者&#xff1a;Shubhamsaboo, Madhuvod, libw0430, AndrewHoh, …

Go語言底層(五): 深入淺出Go語言的ants協程池

在 Go 語言中&#xff0c;goroutine 的輕量特性使得高并發編程變得異常簡單。然而&#xff0c;隨著并發量的增加&#xff0c;頻繁創建對象和無限制啟動 goroutine 也可能帶來內存浪費、GC 壓力和資源搶占等問題。為了解決這些隱患&#xff0c;協程池成為常用的優化手段。用于控…