Python 自然語言處理講義與範例
- 通則
- 「結業前」可提問、討論,要把多餘時間和資源,留給當前上課的學員。
- 寫信
- E-mail:
darren@darreninfo.cc - 信件標題寫上你的班別和姓名,或是在哪裡參與我的課程,例如
[資展 BDSEXX / 臺大計中 / 聯成]你的主旨 ○○○。 - 提問的內容要與本專案有關,其它課程的部分,去請益原本授課的老師。
- 不要把程式碼寄給我,可能沒時間看,討論儘量以解決問題的方向為主。
- 不符合以上幾點,將直接刪除,敬請見諒。
- E-mail:
- 僅限授課學員。
- 同學之間可以互相討論,但千萬不要抄襲。
- 作業有
3個:微調 BERT,建立多元分類模型- 修改
bert_finetue的範例,從二元分類,改成多元分類,使用的資料集如下: - Datasets:Johnson8187/Chinese_Multi-Emotion_Dialogue_Dataset
- 下載資料集的方法:
- 按下頁面右邊的
Use this dataset,然後選擇合適的library,例如pandas,然後複製官方提供的範例。 - 按下
Files and versions,裡面有data.csv,按下Download file(一個下載的 icon),可以直接另存新檔到硬碟當中。
- 按下頁面右邊的
- 訓練資料的
label是文字,但微調時只能使用整數0, 1, 2, 3, ...等數值型態,需要進行轉換。 - 預測以下文字,並且輸出預測的結果,以及 score (confidence,取得小數點後面第
4位):
texts = [ "我每天都能跟她一起上學,我好開心!", "最好的朋友要離開臺灣了,以後可能不容易再見面...", "我覺得我快不行了...", "剛剛收到研究所錄取的通知書!", "今年的冬天好像比較晚來。" ]- 範例:
他們兩個竟然牽手了! => 驚奇語調 (0.9168) 有人在背後說我胖!幹! => 憤怒語調 (0.9527) 我媽終於要讓我養狗了 => 開心語調 (0.8216) ...- 使用
GitHub平台來提交作業,並且將github repo 連結寄給我。 - Git 與 GitHub 使用教學: 程式與網頁開發者必備技能!Git 和 GitHub 零基礎快速上手,輕鬆掌握版本控制的要訣!
- Markdown 語法: 如何使用 Markdown 語言撰寫技術文件
- 上傳大型檔案到 github 上,請參考:
output/ (這裡放置你微調後的模型,不需要包括 checkpoint-* 資料夾,選擇 Best Model) 其它 .py 程式 README.mdREADME.md要有詳細的說明(可參考 這名同學的作業),例如:
# 中文句子情緒分類 ## 訓練資料來源 - [Datasets:Johnson8187/Chinese_Multi-Emotion_Dialogue_Dataset](https://huggingface.co/datasets/Johnson8187/Chinese_Multi-Emotion_Dialogue_Dataset) ## 基礎模型 - [google-bert/bert-base-chinese](https://huggingface.co/google-bert/bert-base-chinese) ## 安裝套件 - torch (版本號) - torchvision (版本號) - torchaudio (版本號) - transformers (版本號) - datasets (版本號) - evaluate (版本號) - accelerate (版本號) - scikit-learn (版本號) (版本號可用 pip list,或是 conda list 來檢視) ... ## 說明 (介紹你微調後的模型,主要用來做什麼的,例如你使用模型進行情緒分類,分成幾類…等等,再放上作業要求的 texts 預測結果,自由發揮) ## 執行方法 python XXX.py python XXX.py python XXX.py ... ## 成果  ... [影片名稱或其它標題](你的影片連結) ... ## 其它你想要補充標題和內容 ... ...
- 修改
微調從 Huggingface 下載的語言模型,建立可以多輪對話的「土味情話」或「幽默笑話」專家system prompt類似你是一個情話高手,你會以親切、溫和的口吻來回答使用者的問題。,可依情境自訂。- 多輪對話的範例(至少
2輪):
你:教我如何透過長相來認識女性朋友。 專家:你就跟他說「你長得很像我一個朋友」。 你:長得像你朋友? 專家:沒錯,跟她說「你長得像我下一任女朋友」。 你:那如果她問「你上一任女朋友呢?」 專家:你可以跟她說「前任從缺,下一任只正取一名」。 你:那如果她問「所以很多人報名嗎?」 專家:你就回答「目前採單獨招生,看到妳之後就停止收件」。 你:那如果她說「我又沒說要報名?」 專家:你就說「沒關係,我只是先把錄取通知準備好」。- 語料(corpus)可以跟 ChatGPT/Claude/Gemini/Grok 等 AI 平台不斷討論來取得,再整理成多輪對話的訓練語料,也可以上網查詢或是從 YouTube 影片中抽取
- 要建立
github repository,同時 READMD.md 也要完整說明。
透過 RAG 建立健康諮詢小幫手- 資料庫的資料表,至少要有
流水號、新聞標題、新聞連結、文章全文、文章摘要、文章新增時間,可自行決定內容的豐富程度。 - 請使用網路爬蟲技術,取得 健康醫療網 的
新聞分類資料。 文章摘要可以先將新聞標題跟文章全文字串合併,然後透過地端模型來產生文章摘要,字數不限。- 將
文章摘要轉換成向量,儲存成向量索引。 - 整合
地端模型來建立問答系統,系統以網頁形式展示,可以有checkbox來決定多輪對話是否進行檢索。 - 詢問
2個不同的問題(與你取得的新聞資料有關),最後請系統將剛才詢問的問題,整理成重點後回答我們。 - 每次
地端模型回答完問題的時候,都要附上它檢索的新聞標題、新聞連結、文章新增時間,放在回覆的後面,以條列的方式呈現。 - 要建立
github repository,同時 READMD.md 也要完整說明。
- 資料庫的資料表,至少要有
- 作業的
github repository 連結要寄給我。 - 繳交時間
- 原則上最後一堂課結束後 3 週內,準確時間上課說明。