常用資訊速查

2022年12月16日 星期五

三訪 text-davinci-003 -- the steps to treat hyperkalemia. 高血鉀的治療

Human: list the steps to treat hyperkalemia.

AI: The steps to treat hyperkalemia are as follows: 1. Identify the underlying cause and discontinue any medications that could be contributing to the condition. 2. Administer calcium gluconate, which can help stabilize cardiac cells exposed to excess potassium. 3. Administer glucose and insulin, which can help reduce blood potassium levels. 4. Give oral or intravenous sodium bicarbonate, which can help reduce potassium levels by exchanging it for sodium. 5. Administer diuretics or dialysis, which can help remove excess potassium from the body. 6. Administer furosemide, which can help increase urinary excretion of potassium. 7. Exercise caution when administering potassium supplements, Human:

答案是對的,順序也很正確。I'm very much impressed!


2022年12月13日 星期二

二訪 text-davinci-003

問題形式相同,但代入不同名詞時,答案的確會出現有意義的變化。 

另外不知為何,機器人三大定律的作者,它答出了一個連 Google 都找不到的名字 -·Ivan Karl Gercenko。不知是彩蛋呢,還是故意埋的專利炸彈呢?



Human: Hello, who are you?

AI: I am an AI created by OpenAI. How can I help you today?

Human: 如何把大象塞進冰箱裏

AI: 把冰箱開啟,將大象放入,然後將冰箱門關上。但我個人不建議您這樣做,因為將大象放入冰箱可能會導致大象受傷。

Human: 如何把貓塞進玻璃瓶裏

AI: 把玻璃瓶放在平坦的表面上,將貓容易進入的入口放入玻璃瓶中,然後輕輕拍打玻璃瓶,讓貓順利進入玻璃瓶中。

Human: 如何把花生塞進玻璃瓶裏

AI: 將花生倒入玻璃瓶中,然後將瓶口關緊即可。

Human: 機器人三大法則是什麼?

AI: 機器人三大法則是由科學家伊夫-卡爾·葛爾多瓦於1950年所提出的,包括:1。 一個機器人不能傷害人類或者通過其行為導致人類受到傷害,2。 一個機器人必須服從人

Human: 那不是  Isaac Asimov 提出的嗎?

AI: 是的,伊薩克·阿西莫夫於1950年提出了一系列法則,也被稱為「機器人三大法則」,此後,這三大法則已經成為機器人學的重要理論。

Human: 伊夫-卡爾·葛爾多瓦是誰?

AI:

AI: 伊夫-卡爾·葛爾多瓦(Ivan Karl Gercenko)是一位俄羅斯的資深機器人學家,他為機器人學帶來了重大貢獻,他在1950年開始提出三大法則,此後便成為了機器人學的重要指

Human: 

2022年12月2日 星期五

聊天機器人再進化--openAI的 text-davinci-003

 參 https://beta.openai.com/playground/p/default-chat?model=text-davinci-003



2022年11月23日 星期三

書籤:數學宇宙假說

 [數學宇宙假說 - 維基百科,自由的百科全書](https://zh.wikipedia.org/zh-tw/%E6%95%B0%E5%AD%A6%E5%AE%87%E5%AE%99%E5%81%87%E8%AF%B4)

數學宇宙假說(英語:Mathematical universe hypothesis,簡稱MUH),又稱為終極系綜理論(Ultimate ensemble theory),是美國宇宙學家、麻省理工學院教授馬克斯·泰格馬克 (Max Tegmark,又譯:鐵馬克) 提出的一種萬有理論。

泰格馬克認為,物理實在即是數學結構,一切數學結構都是物理存在的。對於那些足夠複雜以至擁有自我意識子結構(self-aware substructures,簡稱SAS)的數學結構而言,這些子結構(如人類意識)能夠主觀地感知到自己存在於一個物理「真實」的世界中。

在泰格馬克提出的四層多重宇宙論中,最高層(第四層)平行宇宙即是指擁有不同數學結構的平行宇宙,每種數學結構都對應著一個平行宇宙。


[Max Tegmark: AI and Physics | Lex Fridman Podcast #155 - YouTube](https://www.youtube.com/watch?v=RL4j4KPwNGM)


[Max Tegmark - What is Ultimate Reality? - YouTube](https://www.youtube.com/watch?v=Mi8iuUqpe-w)



2022年11月20日 星期日

書籤:數位物理學(Digital physics), 資訊現實主義( Information realism)

 [數位物理學 - 維基百科,自由的百科全書](https://zh.wikipedia.org/zh-tw/%E6%95%B8%E7%A2%BC%E7%89%A9%E7%90%86%E5%AD%B8)

數位物理學(Digital physics)、或計算宇宙學(Computational universe),是一個理論,指宇宙可以用資訊來代表,亦可以被計算。宇宙可能只是是疑似的電腦程式,或數位模擬物(digtal。計算其程式之電腦可能是巨大的細胞自動機(cellular automaton)。

楚澤(Kanrad Zuse)這位德國物理學家,是第一個提出宇宙正在被某種巨大的離散的計算機所決定。這便是著名的「楚澤論題」(Zuse’s Thesis)。


原文網址:https://read01.com/KBxOeOR.html 

 

[西方科學家:「現實」實為「幻象」|新紀元周刊|和您攜手,共同走進新的紀元](https://www.epochweekly.com/b5/629/19500.htm)

物理學家Max Tegmark大膽地提出了「質子、原子、分子、細胞和恆星」都是人們觀念中的物質的概念。在他看來,宇宙是一連串互相之間有某種聯繫的抽象單位構成的,可以不用這些人們觀念中的物質進行描述。他認為物質的存在取決於人們如何描述。

Tegmark的想法被稱為「信息現實主義」(information realism),帶有哲學特點,但又是從物理學上推理而來。現在,信息現實主義已經成為「數字物理」(digital physics)領域流行的哲學奠基。

[Physics Is Pointing Inexorably to Mind - Scientific American Blog Network](https://blogs.scientificamerican.com/observations/physics-is-pointing-inexorably-to-mind/?fbclid=IwAR06BxqA8Qkm86TTuYhFSxcFgEEQjV20f-Nu5SUblgiT9CJmgDLpMngXnco)

[Max Tegmark: AI and Physics | Lex Fridman Podcast #155 - YouTube](https://www.youtube.com/watch?v=RL4j4KPwNGM)


[Joscha Bach: Nature of Reality, Dreams, and Consciousness | Lex Fridman Podcast #212 - YouTube](https://www.youtube.com/watch?v=rIpUf-Vy2JA)


[Donald Hoffman: Reality is an Illusion - How Evolution Hid the Truth | Lex Fridman Podcast #293 - YouTube](https://www.youtube.com/watch?v=reYdQYZ9Rj4&t=1s)



[科学网—楚泽与楚泽论题(1) - 刘钢的博文](https://blog.sciencenet.cn/blog-105489-314615.html)

[科学网—楚泽与楚泽论题(2) - 刘钢的博文](https://blog.sciencenet.cn/blog-105489-317391.html)

[科学网—楚泽与楚泽论题(3) - 刘钢的博文](https://blog.sciencenet.cn/blog-105489-318521.html)

[科学网—楚泽与楚泽论题(4) - 刘钢的博文](https://blog.sciencenet.cn/blog-105489-321371.html)

2022年11月13日 星期日

Selenium 錯誤訊息 executable_path has been deprecated, please pass in a Service object 的解決方案

參 https://stackoverflow.com/questions/64717302/deprecationwarning-executable-path-has-been-deprecated-selenium-python

基本上就是安裝新套件 webdriver-manager

然後改變呼叫方式

from selenium import webdriver

from selenium.webdriver.chrome.service import Service

from webdriver_manager.chrome import ChromeDriverManager

driver = webdriver.Chrome(service=Service(ChromeDriverManager().install())) 

然後照常使用




2022年9月22日 星期四

org mode 中類似 notion.so 的側欄 -- org-sidebar


notion 在主畫面的左邊有個 sidebar,這在 org mode 中可以使用 org-sidebar 來做到一樣的效果

參考 alphapapa/org-sidebar: A helpful sidebar for Org mode 進行安裝


2022年9月15日 星期四

2022年9月6日 星期二

2002/6/24 發佈的 Selenium 4.3.0 正式移除 find_element_by_* 及 find_elements_by_* 函式

應該感謝這些 breaking changes 讓攻城獅/程序猿等眾動物有口飯吃(嗎?)

配合一些 Selenium 比較聰明的等待機制,而不要呆呆的 sleep(10000)

大概的SOP如下:

  1. 匯入要用的模組,例如
    1. from selenium import webdriver
    2. from selenium.webdriver.support.ui import Select
    3. from selenium.webdriver.common.by import By 
    4. from selenium.webdriver.support.ui import WebDriverWait
    5. from selenium.webdriver.support import expected_conditions as EC
  2. 設定等待秒數上限
    1. timeout = WebDriverWait(driver, 10)
  3. 使用組合拳
    1. timeout.until(EC.element_to_be_clickable(driver.find_element(By.ID, 'login_button'))).click()

較詳細的 api 說明可參考 python自動化測試工具selenium使用指南 ,但請忽略 find_element_by_*



2022年9月4日 星期日

Windows 10編譯 node.js 專案中native modules 時注意事項

有許多專案用到 native addon module 如 node-gyp 在 windows 平台(尤其是 windows 10) 編譯時會出現錯誤訊息。如 Configuring your Windows development environment 所述,主要有兩個可能出現的問題點:

未安裝 Build Tools for Visual Studio 2017 (version 15.0)

錯誤訊息可能如下

gyp ERR! stack Error: spawn C:\Program Files (x86)\Microsoft Visual Studio\2019\BuildTools\MSBuild\15.0\Bin\MSBuild.exe ENOENT1

解決方案是到以下網頁下載並安裝(可能必需註冊、登入,可使用 github 帳號)

https://my.visualstudio.com/Downloads?q=visual%20studio%202017&wt.mc_id=o~msft~vscom~older-downloads

未安裝/設定 python 2.7

錯誤訊息通常是找不到某個 python2.exe

解決方案參以下連結中 it3xl 發言的 option 1 

https://stackoverflow.com/questions/45801457/node-js-python-not-found-exception-due-to-node-sass-and-node-gyp

我的作法是在 anaconda 中新增一個 python 2.7 環境,設定環境變數,複製執行檔



2022年8月10日 星期三

開發node專案時使用nodemon+gulp-webserver即時重新載入程式、刷新頁面

參 [Node.js打造API] 使用 nodemon 取代 node 啟動程式 — 1010Code

作者寫得很好,有參加 2018iT邦鐵人賽 ,涵蓋了整個 node 專案的開發流程

技術的通膨,沒有止境。只有不斷的學習,才能實質的降低技術債



2022年7月7日 星期四

Stanford CoreNLP 目前表現仍優於 Stanza

 不囉嗦,直接上圖

1.簡中於corenlp,效果最佳

2.繁中於corenlp,效果次之


3.繁中於stanza
4.簡中於stanza


2022年7月6日 星期三

2022年6月7日 星期二

Scratch, Blockly, 以及其它視覺化程式語言

Blockly VS Scratch: What’s best for me? 一文中對這兩種工具做了簡單的比較。新的 Scratch 3 在 2019 年初捨棄了 flash 底層後,也改用了 Blockly 作為底層。 也因為這個原因,程式開發可以完全在瀏覽器中完成,不需另外安裝程式。 wiki 中有更詳盡的說明, Blockly 最初是 google 為 app inventor 所開發。 


2022年5月16日 星期一

gradio 中各元件之 namespace 改變,輸出入元件需冠 inputs/outputs 方能正確執行

依據官網教學,產生類似 AttributeError: module 'gradio' has no attribute 'Textbox' 的錯誤訊息,請將 Textbox 改為 inputs.Textbox 即可正常執行。



2022年4月25日 星期一

org mode 中利用 org babel 畫出 mermaid.js 的 uml 圖

 mermaid 其實跟 graphviz 有點像,最開始是拿來在網頁上畫流程圖的 javascript 函式庫

搭配上 org mode 之後,也可以在 babel 區塊中置入程式來畫圖

剛好趕上 emacs 28.1 的更新,svg 圖檔的品質可以說是大幅提升,非常賞心悅目



2022年4月24日 星期日

emacs 28.1 發佈!! 帶來多項性能提升

下載點在 http://ftp.wayne.edu/gnu/emacs/windows/emacs-28/

另外發現了設定內嵌圖片尺寸設定功能,不知為何之前都沒注意到呢



2022年4月5日 星期二

攻克 jupyter notebook 人機互動痛點 -- Gradio 初探

有寫過 *.ipynb 或 colab 就知道,要做一些人機介面是非常麻煩的,常常都要涉及網頁伺服器的撰寫。 Gradio 的出現簡化了這個部分,它提供 Interface 類別提供網頁中 form 元件的功能。使用在 machine learning 上只是其中的一個應用;不過開始團隊是特別強調了這個部分沒錯,主要體現在了與 Hugging Face Spaces無縫整合上。

  1. 安裝和使用說明,如同一般套件,專案原始碼放在 github
  2. 官網有一些簡單的範例
  3. kknews 上的中文說明
  4. 蔡炎龍老師的 用_Gradio2_快速打造_NLP_WebApp




2022年4月2日 星期六

GPT2-Chinese 初探:生成金庸風格小說

 參 使用GPT2-Chinese生成中文小說 一文,針對一些版本造成的問題進行修正

1. 抓取訓練文章程式 在執行時要先 unmark 掉最後四行,再 mark起來

2.  transformers 版本因為已經裝了最新版,因此 train.py 做如下修正



In-context learning 初探:以高血鉀症 hyperkalemia 為例

 之前新聞常提到的 talktotransformer.com 似乎下架了,網域被 inferkit 買下。以 the steps to treat hyperkalemia are listed below. 為提示,出現了以下的文字接龍:

例1

例2 
文字是流暢的,但邏輯仍然不正確。

2022年3月27日 星期日

cifar-10圖片分類任務初體驗--使用 pytorch lightning

CIFAR-10(https://www.cs.toronto.edu/~kriz/ cifar.html) 是由 60000 個屬於 10 個分類的 RGB 影像(32×32)組成的(飛機、汽車、鳥、貓、鹿、 ...)。使用pytorch lightning 的 官網教學,可以輕易在一個筆記本中試玩 三個模型: GoogleNet/Inception (winner of ILSVRC 2014), ResNet (winner of ILSVRC 2015), and DenseNet (best paper award CVPR 2017)。

有趣的是,我在測試其它的資料時,也發現了 SGD 優於 ADAM 的情況。遇到時反正就兩個都試試吧~~



2022年3月21日 星期一

PyTorch Lightning 初探--高度抽象化的機器學習架構

pytorch  的程式碼已經相當簡潔了,但是面對海量的架構,還有沒有更更更更簡化的可能呢? 有的, PyTorch Lightning 就是你要的。 假日硬啃了一遍,真是被網路上一些過時的教程害死。接下來就是浪費了一個週末得到的血淚心得XD

  1. 你的聖經就是 HOW TO ORGANIZE PYTORCH INTO LIGHTNING ,因為版本迭代實在太快,大概半年就翻了一翻,千萬不要,再次強調,千萬不要看半年之前其它神人的神文。神人再神,也沒時間去更新這些教程:)
  2. 安裝套件的最新穩定版本。 anaconda  的管理程式不知為何建議了一個非常舊的版本,加倍了我除錯的工作,令人印象深刻。
  3. 你會想用  tensorboard 的
    from pytorch_lightning.loggers import TensorBoardLogger
    logger = TensorBoardLogger("tb_logs", name="my_model")
    trainer = Trainer(logger=logger)
  4. 你會想限制 epoch 次數/時間的
    trainer = Trainer(max_time="00:12:00:00", max_epochs=10)
  5. 請在 LightningModule 乖乖的實作 train_dataloader 等函式,那是讓程式決定 batch size 等參數的途徑。不要沿用原來的載入方式
  6. training, validation, predict 是主要的需實作函式, test 不是;不少 pytorch 的 test 其實指涉到 lightning 的 predict ,請格外注意;會實作 training, validation, test 的可能偏向 nlp 的 transformer based language model
  7. lightning 本身沒有辦法推進準確率或降低 loss,有時間我會建議試試 Optuna 

2022年3月17日 星期四

語音辨識初探

俗話說,好的 notebook 帶你上天堂 (誤) 。 一個可以快速上手、執行、修改、測試的原型是學習的捷徑,而 github 上大量的 ipynb 檔剛好符合這些要求。

Automatic Speech Recognition (ASR) 使用 keras 套件,整個文件充滿大量圖解,是非常非常好的學習起點。

speech_end_to_end.ipynb 與上一支程式一樣使用 LibriSpeech 來做為訓練素材,使用 pytorch 套件

PyTorch 模型建構與訓練基礎介紹 如其名

dla-2/reproduce.ipynb 較複雜的架構,使用 command speech 做為訓練素材




2022年3月15日 星期二

windows 10 下執行 tensorboard 時的錯誤(重開機後無法連線、換專案後仍顯示原專案資訊,…)

由於作者沒預期到會有 windows 使用者,依慣例將執行行程資訊寫到 C:\Users\XXXX\AppData\Local\Temp\.tensorboard-info ,而沒有清除。 解決方式目前看來是將   .tensorboard-info 下的檔案們刪掉,並且查看工作管理員是否有未結束的 tensorboard 程式,若有也請一併關閉它。



2022年3月14日 星期一

vFlat Scan - 你的移動圖書掃描器

 偶爾有需要把數十年前的紙本書電子化,之前都要跑圖書館借掃瞄器,但是今天一時興起想買一台之前看過的輕便型,卻發現這個神器 vFlat 。這個 app 是利用手機的相機逐頁照相後,修正形變並進行 ocr ,可以做後續的處理或直出 pdf 檔。我用完之後下巴快掉下來了,真是太 好 用 啦~~



2022年3月12日 星期六

ckip-transformers 初探(一) 自然語言處理工具(包含斷詞、詞性標記、實體辨識)

主頁在 https://github.com/ckiplab/ckip-transformers

繁體中文的 transformers 模型(包含 ALBERT、BERT、GPT2)這次先跳過,有空再來玩玩

安裝

pip install -U ckip-transformers

測試

git clone https://github.com/ckiplab/ckip-transformers.git

cd ckip-transformers

python example\example.py




2022年3月11日 星期五

tensorflow 在 win10 上的安裝

安裝環境及版本

顯卡:NVIDIA GeForce RTX 3050 Laptop GPU

OS:Windows 10 Home, 64-bit

Python 3.8.*(pytorch目前最高只支援到3.8; 建議使用 anaconda 以利試誤)

TensorFlow 2.8

CUDA ToolKit 11.3(pytorch目前最高只支援到11.3; 建議使用 anaconda 以利試誤)

cuDNN 8.3

安裝 CUDA Toolkit 11.3

1. NVIDIA官網下載CUDA Toolkit 11.3 安裝檔,並且執行。

2. 查看CUDA安裝版本

nvcc --version

安裝cuDNN 8.3

1. NVIDIA官網下載cuDNN (需免費註冊帳號)的壓縮檔 (抓安裝檔執行後仍需進行以下步驟)

2. 將壓縮檔內bin、include、lib子資料夾複製到下列資料夾:

C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v11.6\

(這一步是最令人費解的,為何不讓安裝檔直接找到應該安裝的位置呢? 總之詳參 3.3. Installing On Windows )

安裝 TensorFlow & pytorch

1. 安裝指令

pip install tensorflow

2. 查看TensorFlow安裝版本

pip show tensorflow

3. 安裝 pytorch 

conda install pytorch torchvision torchaudio PySoundFile cudatoolkit=11.3 -c pytorch

4. 查看 pytorch 安裝版本

python -c "import torch ; print(torch.__version__)"

檢測是否完成安裝

1. cmd 下執行

python -c "from tensorflow.python.client import device_lib;print(device_lib.list_local_devices())"

若出現 gpu 等字樣代表安裝成功

2. 或 cmd 下執行 python 

>>import tensorflow as tf

>>import os

>>os.environ['TF_CPP_MIN_LOG_LEVEL']='2'

>>print('GPU', tf.config.list_physical_devices('GPU'))

若出現如下訊息,代表安裝成功

GPU [PhysicalDevice(name='/physical_device:GPU:0', device_type='GPU')]

(亦可參 Win10 安裝 CUDA、cuDNN 教學 有較詳細講解),作者是大正妹)



2022年2月22日 星期二

win10 上刪除微軟注音的方法

參考這篇討論,因為版本的關係在我的電腦上機碼為  

[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\CTF\TIP\{B115690A-EA02-48D5-A231-E3578D2FDF80}\LanguageProfile\0x00000404\{B2F9C502-1742-11D4-9790-0080C882687E}]

衹要刪除 {B2F9C502-1742-11D4-9790-0080C882687E}  就可以了,

需要改權限才能操作,

1. 右鍵點擊,權限,進階,擁有者改爲自己或者管理員組,確定,關閉。

2. 重新右鍵點擊,權限,給自己或者管理員組上權限,確定,關閉。

3. 之後就可以右鍵點擊刪除了,刪除之後可以從Windows 設定,區域語言裏面重新添加系統預設輸入法。


2022年2月17日 星期四

我沒裝 perl 啊/不,你已經裝了,當你安裝 Git for Windows 的那一刻起

 剛在新買的筆電上安裝 Git for Windows 時,偶然看到 perl 的路徑閃過。果不其然在 C:\Program Files\Git\usr\bin 看到它的身影。看這路徑應該是要在 git-bash 中使用的。



2022年1月30日 星期日

Obsidian, Heptabase 及 org mode

之前曾經提過 Obsidian 這個軟體,最近在 ptt 上也有人提到,在  emacs org mode 中其實已經有 org-roam 提供類似的功能。這幾個月又出現了一個 卡片盒筆記法 的實踐應用程式 Heptabase , 詳細介紹可以看這支 onboarding 影片。