Blog6

自然語言處理之11~ChatGPT之推理初步

2-11:ChatGPT之推理初步 目前各個商業化的大型語言模型,如Grok、Gemini等,為凸顯其市場競爭力,都會特別強調其推理功能,也就是仿效人類舉一反三、觸類旁通的能力。但老字號的ChatGPT,即使是3.5版本,若能善用提詞技巧,它的推理能力,已經足夠讓人驚艷了。 推理能力,一般人比較會聯想到數理科學領域,那些需要繁複計算的解題過程。但不能忽視的是,普通人在處理平常事物的時候,如果具備有良好的文字思考邏輯能力,在很多方面,也是相對有優勢的。 我們先從簡單的測試開始,看看ChatGPT3.5能否理解半古典中文笑話。它若能分析出笑點所在,則它的能力,很可能不僅僅止於整理資料而已,或許它還能有幾分揣摩人類情感的天份。以下是我們給它的笑話,以及ChatGPT3.5所做的回應。 「 有一個女婿在過年期間去向丈母娘祝壽,他在進門時看到了門口新貼好的春聯上下聯,於是很應景的向岳母說了句“天增歲月娘增壽”,這時所有人都為他的急智大聲喝采;可他得意忘形,不知見好就收,竟然又脫口而出了第二句“春滿乾坤父滿門”,於是被所有親戚當場轟出了家門。」請問,這個笑話的笑點在哪裡? ChatGPT的解說,真是超乎我們的預期。它竟然知道修改過後的春聯,相對於原來的春聯,這當中的梗到底是好笑在哪裡。 於是,我們再出一題英文的笑話來考考它……….. 「One day, the human torch in the movie ‘Fantastic Four’ felt uncomfortable. Then he went to a hospital to check his body temperature. After the examination, the nurse told him “You are hot.”. And he replied to her “So are you.”」 What’s funny in the mentioned joke? […]

自然語言處理之11~ChatGPT之推理初步 Read More »

自然語言處理之10~ChatGPT表格處理

2-10:ChatGPT表格處理 ChatGPT3.5本身,即使只能算是相對陽春的版本,但可做的事情還真不少,除了文章摘要、詩文創作、修改文稿,還可以把二維表格,取其部份欄位數據,整理為CSV資料檔案格式。 我們令GPT將下列原始表格中,共6個欄位的資料,處理成4個欄位的新表格。新表格欄位名稱包括有產業別,2021年、2022年每月每家平均銷售額,以及這兩年的平均銷售額比值變動率。 上面是未處理前的原始表格,其第一列的欄位名稱部份,是有經過分割儲存格的處理,並且2022年還只有上半年6個月的資料,即使是用人的肉眼來判讀,有時都還難免會發生錯誤,但ChatGPT居然都能正確解讀無誤,實在讓人驚訝! GPT整理出來的新表格如下,它的計算數據經過查核,並無錯誤,可直接將其轉換成 CSV(Comma Seperated Values)檔案格式。 我們用得到的CSV檔案,請ChatGPT幫忙設計Python程式碼,用來繪製其3D散佈圖。它所提供的程式碼,我們只需要將輸入輸出的部份修改即可,執行後可得到以下的圖形。 如果純粹用人工手動方式,一般人設計Python程式來畫出2D散佈圖,基本上並沒有太大困難,但要畫出3D立體圖並且標記清楚,就沒那麼簡單了。ChatGPT設計程式的能力,一次又一次地,讓我們為它進步的幅度感到震驚!它正無聲無息地,在快速改變程式設計這個行業的樣貌。

自然語言處理之10~ChatGPT表格處理 Read More »

自然語言處理之9~AI生成之人物一致性

2-9:AI生成之人物一致性 ChatGPT3.5,是不提供影像生成功能的,但在ChatGPT4.0/4o版本當中,所使用到的DALL·E 3繪圖技術,倒是被應用在微軟的Copilot平台,可以免費經由Edge瀏覽器來開啟使用。 一般繪圖的風格,可以很粗略地劃分為寫實、插畫、卡通等,其中的寫實風格(realistic style),是畫風最細緻的表達方式,很多人喜歡拿來生成人物,但也會面臨同樣的難題,就是即使想要畫同一個人,前後的圖畫通常外表會相去甚遠。 例如,我們給它一個提詞,”Yang是一個台灣中年人,他身材微胖,頭髮是黑色的,臉型稍長,常常穿著一件藍色牛仔褲,請用寫實風格,幫我畫一張Yang在河邊(/街上)的圖畫。”,提詞的內容,只不過一個在「河邊」,另一個在「街上」,得到的圖案,差異竟如此之大。 這是因為,我們對人物外型細節的描述不夠精準。如果對同一個人的樣貌特徵,包括姓名、年齡、性別、髮型、臉型、膚色、衣服、裙褲等,前後都可以有一致性的描述,則情況可以改善很多。 我們稍微修改一下提詞為,”Lin是一位台灣年輕女性,她的短髮是金色的,她身材瘦小,皮膚白皙,臉是圓的,喜歡穿著一件粉紅色T-shirt,和一條綠色裙子。請用寫實風格,幫我畫出一張Lin在河邊(/在餐廳吃飯)的圖畫。”,就可以得到下面改良的結果。 除了人物出現的場合,我們可再把衣著調整一下,這不會太過改變人物的外貌,但可視為場景的轉換,”Lin是一位台灣年輕女性,她的短髮是金色的,她身材瘦小,皮膚白皙,臉是圓的,喜歡穿著一件紫色外套,和一條藍色牛仔褲。請用寫實風格,幫我畫出一張Lin在床上看手機(/在家裡和柴犬擁抱)的圖畫。” 使用免費的生成式AI,或者戲稱為「窮人的AI」,若運用好的提詞(prompt),可補原有軟體之不足。但時代總是在進步的,這種角色一致性(characters consistency)的問題,會隨技術的改善逐步迎刃而解。

自然語言處理之9~AI生成之人物一致性 Read More »

自然語言處理之8~小型語言模型轉執行檔

2-8:小型語言模型轉執行檔 大型語言模型像ChatGPT等,是不容易被安裝在個人裝置之中,但小型語言模型,如果把它的功能,限縮在某些特定的用途上,例如單純翻譯中英文就好,或者只具備對話功能也可以,則其開發的軟體就不會太大,要轉換成執行檔就變得可行了。 在這個單元,我們所建立的小型語言模型,所提供的只有單一聊天功能,程式碼檔案不大,可利用前面提到的pyinstaller模組,直接轉換成執行檔。我們在此訓練資料的來源,是免費下載自PTT網頁平台(批踢踢)相關的對話資料集,所使用的文字並未多做修飾。 https://mobile-learning-testing.com/wp-content/uploads/2025/05/reinpon9.mp4 在執行對話時,可以察覺到答覆時有略為停頓了一下,這是因為所載入的神經網路權重,其容量多達1.24GB,而我們用的是陽春型的CPU,做如許張量計算有點吃力。如果CPU的速度夠快,或者改用GPU,就不會有這種停頓的感覺了。 到目前為止我們已經觀察到,Python這個程式語言,可連結網路、轉換檔案、建立視窗,很適合用於第一線的實務工作。邊緣裝置如果安裝這種執行檔再加上GPU,則雲端運算常出現的網路遲延(Latency),將不復存在。

自然語言處理之8~小型語言模型轉執行檔 Read More »

自然語言處理之7~AI連線上網

2-7:AI連線上網 我們以Python程式所開發的語言模型,如果想要提升它的可及性,可經由網路連線讓一般人也接觸得到,這同時也可避免原始程式碼外露的風險。另一方面,原始資料如果檔案太大,本就不適合安裝在個人裝置當中。 在這個單元,我們所採AI模型網路連線的技術,是目前普受歡迎的Flask模組。它是一種輕巧的網頁伺服器模組,可結合Python和HTML語法,讓使用者經由固定IP,連接到開發者的個人電腦,取用既經訓練好的語言模型,進行文字處理或生成的工作。 https://mobile-learning-testing.com/wp-content/uploads/2025/05/reinpon8.mp4 我們網頁上的輸入介面,和ChatGPT一樣陽春,而輸出的結果,更加陽春許多。因為是小型語言模型,僅限於英翻中的內容,沒有摘要、創作、簡報等等功能。 ChatGPT之所以使用雲端連線,是不得不然的技術性考量,因為它的神經網路參數,少則數十億,多則數百億,檔案太過龐大,是不可能被安裝在個人電腦上。 但現今的趨勢,一般則是認為,語言模型應該朝小型化發展,小到可以放在邊緣裝置裡面才好。如此,它所點燃的商機,才可能呈現爆炸性的成長。

自然語言處理之7~AI連線上網 Read More »

自然語言處理之6~ChatGPT的基礎Transformer

 2-6:ChatGPT的基礎Transformer 目前熱門的生成式AI技術,包括ChatGPT和Gemini及Llama等,它們都是建立在Transformer演算法的基礎之上。開發者會使用「Transformer」這個名稱,也許是因為它使用到多頭多層的架構,宛如組合積木般層層堆疊而上,有利於擴充其權重數至百億個或更多。 圖2-6-1. Transformer也是相當受歡迎的電影”變形金剛”。  而Transformer的核心,則在注意力(Attention)的運算。注意力機制源自人類的視覺行為,好比我們在看下面圖片時,我們會重點式的先看嬰兒臉部表情,以及標題列和內文第一行,再顧及嬰兒紙尿布的說明,而不會鉅細靡遺的把整張圖片都看完。 注意力機制早期是應用在電腦視覺上面,但真正受到眾人矚目的,是使用在自然語言處理之後的卓越表現。例如我們現在英翻中一個句子,”I am walking to the river bank.”,當翻譯到”我正走向河X”的時候,這個X,如果有注意到river和bank的關係,或者有參照到已經翻譯出來的中文部份,則接在”河”後面的字詞,”岸邊”要比”銀行”好多了。 我們對模型輸入文字時,第一步,是先將英文單字或者中文詞彙,利用詞嵌入(Word Embedding)技術,將其轉換成向量的型態,稱之為「詞向量」(Word Vector)。向量裡面純量元素的個數,名之為長度或「維度」,有時維度可達512或更多。一個句子裡面有好幾個單字,一個單字會使用到一個向量,把這幾個向量堆在一起就成了矩陣。 詞向量裡面某個維度數字的大小,可視為這個單字所具某種屬性的強弱。例如下圖中,4個單字的向量維度都是7,第1個維度living being表示其生物屬性,cat、kitten、dog都有一定大小,但houses就是負值了;第2個feline表示其貓科屬性,cat、kitten都很高,dog和houses都是負數了;而第7個維度plural表其名詞複數形屬性,最高的就是字尾有加s的houses。 各個單字,用詞向量表示後,彼此之間的相關程度,可以從這些向量相靠近的程度看得出來,如下圖的貓和狗的關係就勝過和汽車的關係。向量靠得越近,夾角越小,其cosine值越大。我們知道兩個向量的內積(dot product)值,是和cosine值呈正比,所以就可以用向量內積值來表示彼此相關的程度。 輸入句子所形成的矩陣,要進行自我注意力(Self Attention)之前,先要把維度減少,所使用的轉換矩陣,就是即將要訓練的權重矩陣。這個部份,都是把輸入矩陣X轉換成三個矩陣Q、K、V,這三個新矩陣,意義很相近,都是原始矩陣X降維的結果。所以可以進行Q、K之間的內積運算,將其得到的加權值,乘上V矩陣,就是有考慮到詞向量彼此關係的新矩陣Z了。 圖2-6-2. Q和K矩陣相乘時,K矩陣有先做了一個轉置(Transpose)的動作,將列轉成行,才能進行兩個矩陣的內積運算。註:中國大陸和台灣對於列跟行的定義,剛好相反,但如果使用row和column就沒有問題了。  輸入矩陣X所轉換的三個矩陣,Q、K、V,可以三個一組形成好幾組,這樣一來,要訓練的權重矩陣就可多出好幾倍,這就是多頭注意力(Multi-head Attention)的概念。甚至,還可以將輸出當作另一層的輸入,重複類似的計算步驟,使用多層訓練來得到更多的權重矩陣。 整個完整的架構,就如下圖所示。在左邊的編碼器(Encoder)和右邊的解碼器(Decoder)當中,各有一次的自我注意力運算,但在解碼器中,又多了一次一般注意力(cross attention)運算,它是把自己的Q矩陣,和編碼器的K矩陣做內積再乘上編碼器的V矩陣。這樣的操作是可以理解的,例如在做翻譯時,譯文必須參考原文,也要參考已經翻譯出來的部分。 我們把上面的架構圖,其執行注意力機制的過程,用下面一個簡單的動畫來綜合說明。 https://mobile-learning-testing.com/wp-content/uploads/2025/03/attention.mp4

自然語言處理之6~ChatGPT的基礎Transformer Read More »

自然語言處理之5~ChatGPT做多益測驗

2-5:ChatGPT做多益測驗 ChatGPT被稱為大型語言模型,想當然耳,它最擅長處理的必然是各類語言,包括中英文和程式語言。在模型訓練階段,它使用了大量文字(主要是英文),來進行翻譯、摘要、創作等工作,所以它也會是一個很棒的英文老師。 我們先用它來幫我們解答多益測驗的閱讀部份,在此,所引用的考題來源,是連結自本網站“英語檢定”導覽列,可由下面首頁點選進入: https://mobile-learning-testing.com 提問(prompt)的方式很簡單,只要使用下列文字即可: “請解答下列英語測驗題, 請先將全部題目閱讀一次之後, 再開始作答. ‘……….’ “ 將網頁題目複製後,貼到提問中的 ‘……….’ 部份,取代………即可(保留成對的單引號或雙引號)。但要注意,提問的時候,一定要請它先把全部題目閱讀一次之後再作答,因為這題閱讀測驗,本身有三個填空選擇題,分放在文章前、中、後段,如果只讀完填空題前一小段文字即做答,會產生誤答。 圖2-5-1. 使用ChatGPT,來閱讀一個短篇文章的英語測驗填空題。 上圖是測驗文章及題目內容。ChatGPT在閱讀題目時很有技巧,它看得懂有底線“_______”的地方,才是要填空的位置;它也知道,要去避開不是很重要又不太懂的部份,例如網頁上每題下方都有選項鈕來供點選做答,如右方所示 A   B   C   D  。但在複製貼到ChatGPT時選項鈕就看不到了,它也就視而不見了。 下圖是ChatGPT答題及解釋的內容,每個答案的對或錯它都有分析,幾乎都是一語中的,不多冗言。 未來我們會在多益聽力測驗的部份有所著墨,其在解答分析上需要多一點技巧,可等到GPT-4o等產品較普及後再來嘗試。 圖2-5-2. 使用ChatGPT,來分析填空選擇題的每個答案正確與否。

自然語言處理之5~ChatGPT做多益測驗 Read More »

自然語言處理之4~ChatGPT做網頁設計

2-4:ChatGPT做網頁設計 網頁設計,包括有前端和後端,合稱為全端。前端就是我們使用瀏覽器閱讀的頁面,常見的設計語法有HTML、CSS、JavaScript;後端是連結網頁資料庫的地方,PHP和mysql是普遍的軟體。 ChatGPT,對所有全端部份都能勝任。我們在此,僅顯示其前端設計功能,一葉知秋,它的網頁設計潛力看起來是頗值得期待。 我們在ChatGPT裡面,撰寫下列提問(prompt): “請用html和JavaScript語法, 建立一個複選(multi-choices)英語測驗題. 這個測驗題是有關’關係代名詞’的, 請將題目內容由上而下靠左對齊.” 圖2-4-1. 使用ChatGPT,來設計一個網頁英語測驗題。 上圖的關係代名詞複選測驗題的程式碼,是由ChatGPT所提供答覆。將程式碼複製貼上文書編輯器(例如記事本),再將其存成*.html檔案格式,然後快點兩次,就可以用瀏覽器閱讀其頁面了。 提問者只需用文字描述所想要的結果,其所生成的程式碼內部的指令,如按鈕(button)、核取方塊(checkbox),甚至顯示答案對或錯,一概都是ChatGPT負責寫就。讓人驚訝的,不但它使用的程式語法頗專業,它出的英語測驗題目,其難度也在多益之上。 例如答案二當中,”The person who I met……….”,常人會以為who要用受格whom才對,但實際上,使用主格who也是可以的。 圖2-4-2. 用瀏覽器開啟圖2-4-1的程式內容,得到一個關係代名詞的複選題。

自然語言處理之4~ChatGPT做網頁設計 Read More »

自然語言處理之3~ChatGPT做程式設計

2-3:ChatGPT做程式設計 使用ChatGPT整理資料或創作文字,適當的提問(prompt)是很重要的。好的提問可以做出有效的條件限制,讓它回答的內容,合理地限縮在你所需要的範圍內。 但一般人的日常對話,或者在社群平台輸入的文字,通常都比較隨興,不會刻意去講究文法和邏輯。因此在善用此項工具前,是需要花點時間學習,才能理解提問的重要性。 ChatGPT裡面,有非常強大的程式設計功能,因為它本身的神經網路機制,就是複雜又精巧的演算法。撰寫普通的程式碼,對它來講,僅是牛刀小試,但是提詞的技巧在此也益形重要。 圖2-3-1. 使用ChatGPT,來設計一個九九乘法表的程式碼。 上面的九九乘法表Python程式碼,是由ChatGPT所提供答覆,我們在提問階段,有給予一些限制,完整的提詞內容如下:”請設計一個Python程式, 可以輸出由左而右水平排列的九九乘法表. 其中, 乘數和被乘數需兩兩交換位置, 乘積的個位數需對齊. 請不要使用function, 只使用最常見之基本語法及最少之行數.”。 我們用prompt做出層層限制,其實是在用文字來代替程式碼的指令。這樣的方式,多嘗試幾次就比較能夠掌握了。複製上面的程式,再拿到Spyder軟體上執行後,得到下列的結果,看的出來,它的確有按照我們的要求在建立其邏輯。 圖2-3-2. 執行程式得到的九九乘法表,其輸出的的格式,有刻意用prompt去要求。

自然語言處理之3~ChatGPT做程式設計 Read More »

自然語言處理之2~大型語言模型

2-2:大型語言模型 現今熱門的大型語言模型,比如像ChatGPT、Gemini等,採用的都是Transformer架構。這種架構,可以將巨量訓練資料快速平行處理,但必須使用到多部AI伺服器在雲端運算,並不是一般中小型企業能負擔的起的。 所以經過一番優勝劣敗激烈交鋒,目前能提供商品化服務的,僅寥寥幾家。即使研發能力傑出如臉書(Meta),最終還是退出了第一線的競爭。 但臉書開發出來的大型語言模型第二版LLama 2,被該公司免費公開,讓其它研究資源有限的單位,可以下載其源碼,經過微調的程序,就可以套用在各自的系統當中。 圖2-2-1. Meta公司的LLAMA 2被釋出為開源碼,造福不少財力有限的研究單位。 一般中小型公司,轉而聚焦在邊緣運算當中,希望開發出來的模型,在桌上型電腦,或者平板甚至手機就可以使用,如此不但可改善網路遲延(Latency),未來創造的商機更是不可限量。 對個人工作者而言,ChatGPT也已從當初的玩具階段,晉身到工具水平了。現在它的文字輸出品質,早非昔日吳下阿蒙,做簡報做表格它樣樣勝任愉快;在畫圖方面,除了人物的一致性尚待加強,採用寫實風格作畫,真是栩栩如生、躍然紙上。 圖2-2-2. 向Copilot要求”請用寫實風格,畫出一張黃色柴犬的微笑圖片。”它就幫你畫出這樣的圖片。

自然語言處理之2~大型語言模型 Read More »

Shopping Cart