為什麼我們要微調語言模型?當我們需要教授LLM新技能或增強其在特定領域的理解時,微調至關重要。
在這個項目中,我們旨在微調小型和大型指導/聊天語言模型,包括用於小語言模型的Smollm(SLM)和大型語言模型(LLM)的Mistral。
所使用的主要示例數據集是medalpaca/medical_meadow_medical_flashcards ,該數據集源自ANKI Medical Carreculum抽認卡。這些抽認卡由醫學生創建和定期更新,涵蓋了許多醫學主題,例如解剖學,生理學,病理學和藥理學,旨在通過簡潔的摘要和助記符來支持有效的學習和保留。
儘管此項目使用Medical_meadow_medical_flashcards數據集,但它適用於其他數據集,以進行問題/答案和指示/響應任務。通過修改配置文件可以輕鬆完成不同數據集的集成。
該項目還支持量化,這使得在更適度的硬件設置上微調大型模型(如Mistral和Llama)是可行的。
在HuggingFace上可以使用微調的Smollm型號嗎?
儘管基本模型的響應是一般的,並遵循降級格式,但微調模型似乎有效地納入了培訓的專業技能,尤其是在復制預期響應樣式時。但是,作為沒有醫學背景的人,我無法評估這兩種模型提供的響應的準確性或質量。下面是一張表,比較了一組醫學問題的原始模型,基本模型和微調模型的響應。
| 問題 | 原始響應 | 基本模型響應 | 微調模型響應 |
|---|---|---|---|
| 哪些抗瘧疾藥物具有針對催眠瘧原蟲的活性? | Primaquine是具有抗催眠劑瘧原蟲活性的抗瘧疾藥物。 | 抗瘧藥是一類藥物,可有效抵抗瘧原蟲,這些藥物負責導致瘧疾。用於治療瘧疾的最常見抗瘧疾藥物包括:1。氨芐青黴素(兩性黴素B) :一種有效抗瘧原蟲物質的廣譜抗生素。 2. fosamivir(fosamivir) :一種有效抵抗瘧原蟲的寬光譜抗病毒。 3。流感(流感) :一種有效抵抗瘧原蟲物種的廣譜抗病毒。 4。 **氨芐青黴素 | 紅黴素是具有抗催眠劑瘧原蟲活性的抗瘧疾藥物。 |
| 用來描述鮑曼每單位空間中過濾的物質量的術語是什麼? | 鮑曼每單位時間過濾的物質量稱為過濾負載。 | “鮑曼的空間”一詞是一種口語化,用於描述在鮑曼空間中過濾的物質的數量,這是一個假設的空間,該空間將航天器發射到軌道上。該概念基於這樣的想法:航天器可以發射到軌道,然後返回地球,航天器濾除了空間中可能存在的所有剩餘顆粒或碎屑。 “鮑曼的空間”一詞通常用於描述鮑曼(Bowman)空間中過濾的物質量,這是一個假設的空間,該空間將航天器發射到軌道上然後返回地球。這 | 用來描述鮑曼每單位空間中過濾的物質量的術語稱為過濾效率。 |
| 用來描述靜脈中包含的血容量的術語是什麼? | 靜脈中包含的血容量稱為無重理體積。 | “血量”一詞是指通過人體循環系統循環的血液量。這是一個複雜的過程,涉及血液和組織之間氧,營養和廢物產物的交換。血量通常以升(L)或毫升(ML)為單位,通常通過循環系統分佈在整個體內。有幾個關鍵成分有助於血液體積:1。紅細胞:這些細胞將氧氣從肺部攜帶到組織。它們的直徑約為1.5毫米,由血紅蛋白組成 | 用來描述靜脈中包含的血容量的術語稱為靜脈血液。 |
| 確定過渡細胞癌預後的最重要因素是什麼? | 確定過渡細胞癌預後的最重要因素是侵襲程度。 | 確定過渡細胞癌(TCC)的預後至關重要,因為它可以顯著影響患者的生活質量,治療選擇和整體生存。確定TCC預後的最重要因素是存在明確的診斷,定義明確的腫瘤和有利的預後。以下是一些可能影響TCC預後的關鍵因素:1。清晰的診斷:TCC被診斷為明顯的腫瘤,這意味著它具有良性或良性樣生長。 TCC也被診斷出有利的預後,因為它不太可能傳播到 | 確定過渡細胞癌預後的最重要因素是高級的存在。 |
響應的準確性:微調模型複制了預期的格式和样式,但表明了一些不准確性。例如,紅黴素錯誤地鑑定為抗催眠瘧原蟲的抗瘧疾藥物。正確的答案應為primaquine。
基本模型問題:基本模型的響應過於普遍,有時是偏離主題,尤其是在醫療環境中,如鮑曼(Bowman)的空間和血液量的不正確解釋所示。
注意:僅在10個訓練時期就獲得了此結果。對更多時期的訓練可能會導致更好的結果。 (ツ) /。
為了順利運行該項目,需要Python 3.10。該項目已在Python 3.10.13上進行了測試和驗證。請按照以下步驟設置您的環境:
創建虛擬環境:
python -m venv env
激活虛擬環境:
source env/bin/activate
安裝所需的依賴項:
pip install -r requirements.txt
設置環境變量:複製.env.example文件並將其重命名為.env:
mv .env.example .env
您可以使用Jupyter筆記本探索培訓步驟:
cd notebooks
jupyter-lab
另外,您可以直接啟動微調過程。用於微調的參數在configs文件夾中的配置文件中指定。要使用默認的SmallM模型開始微調過程,請運行:
python train.py
如果要訓練其他模型,則可以通過將配置文件名作為參數傳遞:
python train.py --model Mistral
用所需模型的配置文件的名稱替換Mistral。要訓練新模型,只需使用所需的設置創建一個新的配置文件,然後使用適當的模型名稱運行train.py。