顯示具有 AI與LLM與ML機器學習 標籤的文章。 顯示所有文章
顯示具有 AI與LLM與ML機器學習 標籤的文章。 顯示所有文章

2026年6月21日 星期日

修改ALLM環境變數,改善5分鐘會斷線

用AnythingLLM(ALLM)當前端去呼叫Ollama的LLM model,會出現5分鐘就斷線的問題。當LLM model很大,生成內容的時間超過5分鐘,就會因為用Node.js寫的ALLM預設fetch()是300秒,造成ALLM主動斷線,回傳 HTTP 500。修正方法是:

  • sed -i '' "s/OLLAMA_RESPONSE_TIMEOUT='0'/OLLAMA_RESPONSE_TIMEOUT='86400000'/" ~/Library/Application\ Support/anythingllm-desktop/storage/.env
  • sed -i '' "s/ANYTHINGLLM_FETCH_TIMEOUT='0'/ANYTHINGLLM_FETCH_TIMEOUT='86400000'/" ~/Library/Application\ Support/anythingllm-desktop/storage/.env

完成之後重開ALLM就可以了。以下說明這兩個環境變數的作用:

2026年6月14日 星期日

手動運行Ollama並看執行的log

在Server上面用下面指令啟動Ollama來當LLM inference server,並且可長長久久運行:

  • export OLLAMA_MODELS="/llm/.../ollama/models"
  • export OLLAMA_NUM_PARALLEL=1
  • export OLLAMA_MAX_LOADED_MODELS=2
  • export OLLAMA_FLASH_ATTENTION=1
  • export OLLAMA_CONTEXT_LENGTH=65536
  • export OLLAMA_KEEP_ALIVE="1h"
  • export OLLAMA_LOAD_TIMEOUT=8h
  • ollama serve 2>&1 | tee ~/ollama-service.log

這樣ollama在載入LLM model的時候,相關的log就會存下來。用下面指令看:

2026年5月24日 星期日

用SSH tunnel把內部服務轉到本機上使用

上一篇《SSH用ProxyJump過堡壘機連內部伺服器》 就可以直接遠端登入到躲在堡壘機後面的內部伺服器。這篇介紹要如何把躲在堡壘機後面內部伺服器開啟的服務轉到自己的電腦上,流程說明如下

  • 開一個Ollama服務在內部服務器,預設長在11434 port
  • 堡壘機Bastion上可以透過 http://192.168.11.23:11434存取該服務
  • 本地電腦與堡壘機的資料傳輸則會透過SSH tunnel來加密
  • 在本地電腦用 http://localhost:22434 存取Ollama服務

只要兩個指令就可以完成,再用一個指令驗證:

2023年12月15日 星期五

2023年12月14日 星期四

M2 Mac裝Stable Diffusion WebUI來出圖

終於發文可以附上自己生成的圖了,以下介紹要如何在M2 Mac上安裝Stable Diffusion WebUI。在安裝前需要先知道幾件事情:

  1. 安裝的Stable Diffusion是AUTOMATIC1111組出來Stable Diffusion的WebUI版
  2. Stable Diffusion是從文字生成圖像的生成模型,意思就是輸入文字會產生圖片。原始碼可以在GitHub上看到,產生圖片的模型則可在Hugging Face上找到
  3. WebUI意思是執行後會在本機背景執行一個網站,使用者只要直接用瀏覽器開啟 http://127.0.0.1:7860 即可連線本機網站開始使用
  4. 這個網站是用python寫的,會需要安裝許多相關的套件。一般網路上為了方便都會用anaconda來把背景需要的python裝好。但不喜歡anaconda裝了一大堆有的沒有的,所以一些需要的程式會用MacPorts來安裝python 3.10版與其他軟體,而不使用anaconda

2023年12月8日 星期五

Winows 11上裝Stable Diffusion來出圖

上個月底才剛完成M2 Mac裝Stable Diffusion WebUI來出圖,最近剛好手邊的Windows被弄壞,重灌完Windows 11 23H2之後,也就在上面順手安裝了一下AUTOMATIC1111的Stable Diffusion WebUI,在安裝前要先知道幾件事情:

  1. AUTOMATIC1111放在GitHub上面的Stable Diffusion WebUI是個用Python寫出來的程式碼,所以必須要先安裝Git與Python
  2. 這程式可以用GPU加速,也就是說要安裝特定的驅動程式,如果是N牌的還需要安裝CUDA toolkit;A牌手上沒有硬體可以測試
  3. 顯卡硬體搭配的GPU驅動程式版本,配套的CUDA包版本,還有Python的版本對於能不能夠順利執行Stable Diffusion WebUI有著極其重大的影響。

2023年11月23日 星期四

到ArtHub.ai上找AI生成的圖和提示詞

AI生圖很方便,ArtHub.ai是個蒐集用AI生成的設計、圖片與藝品的網站

2023年9月16日 星期六

2022年9月9日 星期五

只要一台樹莓派,使用iPhone熱點不斷線

iPhone分享電信網路給Wifi上網(俗稱開熱點、分享手機網路、Tethering),最大的問題就是很容易斷線,而且斷線後需要熱點主人重新手動開啟熱點才能繼續分享網路。觀察得到的經驗是:連上iPhone熱點的設備若一段時間沒有使用網路後,熱點就會斷線。為了在家可持續使用熱點不斷線,在本部落格中提出了過兩個解決方案:


一段時間的使用才意會到:當樹莓派(Raspberry pi 3)連iPhone熱點時,熱點不會斷。故現在使用的第三個方案只需放一台樹莓派在家中,就可讓iPhone熱點不斷線,第三方案的設定細節與順序如下:

2019年7月5日 星期五

靈敏度 ✕ 特異度 ✕ ROC曲線

在開發檢測方法的時候,通常都會有許多參數可以調整。例如說:
  • 提高靈敏度Sensitivity:故意把預測陽性的數目增多
  • 提高特異度Specificity:故意把預測陰性的數量增多

這時候需要一個方法來估算某檢測方法的好壞。其中一種方式就是畫出某種檢測方法的ROC curve(Receiver Operating Characteristic curve見維基百科上面的範例圖):
  • y軸 = Sensitivity = TPR:故y值越大越好
  • x軸 = 1 - Specificity = 1 - FPR:x值越小越好

2019年7月4日 星期四

混淆矩陣之 Accuracy, MCC, F1 score

前面兩篇文章談及預測準不準確的測量如下:
這兩種都是要用多個數字來看預測準不準,這邊要介紹的則是用一個數值來看。要注意的是,因為只有用一個數字,所以一些極端的狀況下反而會有誤導。這些數值包含了:
  • ACCAccuracy準確率。數值在0到1之間,越大越準
    • 一般的檢測最愛拿這個當作標準,但如果實際有與實際無的數量差很多,使用ACC無法判斷檢測是不是好的。
  • MCCMatthews correlation coefficient,數值會在-1到1之間
    • 數值靠近0:代表跟隨機亂猜差不多
    • 數值遠離0:正的代表預測的很準、負值代表是反指標
  • F1 score:又稱為F-score或F-measure

跟之前一樣,先把混淆矩陣confusion matrix寫出來:

2019年7月2日 星期二

混淆矩陣之 Precision vs. NPV

上一篇談及《Sensitivity vs. Specificity》,主要是以實際有無為的數量當作分母來判斷檢測好不好。這篇談及的則是檢測出陰陽當作分母來判斷好壞。下面則是所使用到的混淆矩陣(Confusion Matrix):

真實情況
有, +無, -



陽性 Positive, P(真陽性, TP)(偽陽性, FP)(P=TP+FP)
陰性 Negative, N(偽陰性, FN)(真陰性, TN)(N=FN+TN)

上述表格裡面使用(小括號)圈起來的代表是要填寫自然數,裡面縮寫分別代表:

2019年7月1日 星期一

混淆矩陣之 Sensitivity vs. Specificity

判斷一個預測的準確程度,會先把實際情形與預測結果的數量畫出一個矩陣,這個矩陣稱之為混淆矩陣(Confusion Matrix),畫出來就是下列的形式:

真實情況
有, +無, -



陽性 Positive, P(真陽性, TP)(偽陽性, FP)
陰性 Negative, N(偽陰性, FN)(真陰性, TN)
(y=TP+FN)(n=FP+TN)

上述表格裡面使用(小括號)圈起來的代表是要填寫自然數,裡面縮寫分別代表:

2018年5月21日 星期一

Clustering分群、Classification分類

當手上有一堆資料,每筆資料當成一個點,那可以做:
  • Clustering Analysis(群聚分析):將這些點依據親疏遠近分群。在分群之前並不一定會知道結果共會出現幾群,故用機器學習做分群屬於非監督式學習(unsupervised learning)
    例:將一個班級的人特性比較像的分在同一群之內
  • Statistical Classification(分類問題):將每個點分到已知的類別中。在分類之前已經知道有幾類,做分類只是建立已知類別的特性,故用機器學習做分類則屬於監督式學習(supervised learning)
    例:已知活潑與文靜兩類,將一個班級的人合理的分到這兩類中

2017年11月28日 星期二

在Mac上用Docker安裝TensorFlow

在Macintosh電腦下面,可以用《Python的virtualenv上安裝TensorFlow》。另一種比較簡單的方式則是使用Docker,方法依序如下:
  1. 安裝Docker:參考《Install Docker for Mac》
  2. 啟動Docker:點擊Docker圖示來啟動Docker
  3. 顯示安裝的docker版本:docker --version
    Docker version 17.09.0-ce, build afdb6d4
  4. 安裝TensorFlowDocker:docker pull tensorflow/tensorflow參考《Installing TensorFlow on macOS》當中Docker那段文章,或是在hub.docker.com上的這篇文章
  5. 啟動Docker:docker run -it -p 8888:8888 tensorflow/tensorflow
    ......
    Copy/paste this URL into your browser when you connect for the first time, to login with a token:
    http://localhost:8888/?token=0c1f4af783b92ef48ebc29c488a7765d438931e9f00ea243
  6. 使用瀏覽器,把上面紅色部分貼上(注意每個人的token都不一樣,請參考自己指令出現的結果)
這樣就可以使用瀏覽器開使用玩TensorFlow了。

2017年11月27日 星期一

在Python的virtualenv上安裝TensorFlow

TensorFlow是個開源的機器學習軟體。可以用Python, C++, Java, Go來跑,這邊介紹的安裝方式為透過《Mac上Python的虛擬環境virtualenv》來安裝與使用TensorFlow。
  1. source /tmp/pyve/bin/activate
  2. easy_install -U pip
  3. pip install --upgrade tensorflow 
  4. source /tmp/pyve/bin/activate
  5. (tensorflow)$ python
  6. import tensorflow as tf
    hello = tf.constant('Hello, TensorFlow!')
    sess = tf.Session()
    print(sess.run(hello))
  7. (tensorflow)$ deactivate
上面指令的,藍色的部分是安裝綠色的部分是啟動TensorFlow:

2017年10月23日 星期一

Christopher Olah介紹類神經網路

類神經網路(Neural Networks,簡稱NN)是機器學習的其中一種方法,此colah's blog的作者Christopher Olah提供許多類神經網路原理與應用的介紹,包含了: