July
20th,
2024
弘兼憲史上班族基本數字力
買書推薦網址:
Readmoo: 下架了
前言:
這是 2024 年第 6 本讀完的書。 當初看到作者就買了,本來想說可以補充相關知識的。
內容摘要:
你知道薪資明細表裡的機關嗎?
「成本」究竟是什麼?
貨物賣得多,錢就賺得多嗎?
上班族不可缺乏的基本數字力,數字力強,工作才能做得好。
◆只要數字概念強,你就能成為工作能力佳的上班族!
不論職場菜鳥或老鳥,不管是什麼樣的工作,多少都會接觸到和數字相關的業務內容。舉凡產品成本估算、定價;個人薪資所得;產業景氣循環;企業經營分析、償債能力等,都是身為優秀上班族,不可不知的超基本常識。
像是新聞報導常見的「景氣動向指標」,它是根據對景氣的變動敏感的幾項指標組合而成,其中指標可分為「領先指標」、「同步指標」、「落後指標」三種。由於組合了多項指標,可對景氣的狀況做出綜合性的判斷與預測,得知目前景氣好或壞,決定公司因應的各項策略。
另外,經營分析經常用在調查企業的往來對象上,但除此之外也有其他用途。例如,要投資股票時,必須先得知投資標的那家公司的狀況。因此,經營分析相當有用。如果先學會經營分析,也會變成能夠更深入理解新聞媒體報導關於企業的事。
諸如此類,上班族必備的基本數字力,包含面對個人、產品、市場、企業、商業等各領域的業務。本書提出各類數字的計算由來,運用的方法,讓你輕鬆掌握關鍵數字,解決問題無往不利。
心得:
弘兼憲史一直是我很喜歡的漫畫家,他最有名的就是「課長-島耕作 」。裡面除了有日本上班族的心路歷程外,最重要的就是針對日本企業各種文化的考究與整理。 這一本也是,整理了很多相關的基本知識。 但是隨著有在投資股票,許多的基本相關財務報表的基本概念也就出現了。 因為有一些財報的分析,能夠了解裡面的基本原因,經常聽著財經號角跟股癌也讓我基本知識有一些些的進步。(當然賠錢賠得多,學得最多)。
不過這一本比較基本,如果有基本企業概論或是經濟學概念的人,或許就不需要閱讀了。
繼續閱讀
July
18th,
2024
前言 LLM 的盛行之後,我們可以看到許多開發者將 LLM 整入到自己的聊天機器人 (LINE ChatBot) 之中。但是隨著而來也有不同的考量開始出現。讓許多開發者感到困擾,該如何更有經濟效益,並且更安全合法規的方式來使用 LINE Chatbot。 自從 LLAMA 等開源模型發展後,我們可以看到市面上有許多相關的開源模型。 LLAMA, Gemma, Phi3 等等,甚至有許多模型是可以在自己本地端的電腦中使用的。本篇文章將介紹這一類型的 Local Model 究竟能如何跟 LINE Bot 去整合,,並且提供一些範例程式碼作為 LINE Bot 的範例。 相關程式碼 關於 LINE Bot 相關程式碼,可以參考這一段。這邊使用 Groq 的 API 服務 https://github.com/kkdai/linebot-gemma Gemma/LLAMA 這一類的模型該如何部署 不論是 Gemma 還是 LLAMA 這一類可以部署在本地電腦(或是自己的雲端伺服器裡面的),在本文中都先暫且稱為 Local Model 。 他的基本 Prediction 的精準度,在於你提供的本地機器的算力。 筆電使用上 可以考慮使用 Ollama Ollama 是一個跨平台很好使用 LLM 的本地端工具,可以在本地端的電腦去使用 Llama3, Phi 3, Mistral, Gemma2 等等本地端的模型。使用跟安裝也相當簡單,基本上現在只要是 M1 或是 M2 的 Mac Book 就可以很輕鬆地跑起相關的服務。 GCP / Vertex AI 上面要部署這些模型 可以透過 Vertex AI 的服務來部署 Gemma Gemma2 PaliGemma 但是需要申請伺服器單位如列表 Gemma / Gemma2 PaliGemma Machine type: ct5lp-hightpu-4t Accelerator type: TPU_V5_LITEPOD Accelerator count: 4 - Machine type: g2-standard-16- Accelerator type: NVIDIA_L4- Accelerator count: 1 不過要注意這些單位需要申請,因為筆者還沒有申請下來本文將使用 Groq 來示範。 (2024/07/19) 透過 LPU API Services - Groq 來使用 Gemma2 不得不說 Groq 真的很快,而且目前也都還有免費額度可以使用 API 來呼叫。這邊也放上最簡的程式碼來呼叫 Gemma2-9B # Default import os from groq import Groq client = Groq( # This is the default and can be omitted api_key=os.environ.get("GROQ_API_KEY"), ) chat_completion = client.chat.completions.create( messages=[ {...
繼續閱讀
July
16th,
2024
(課程連結: https://www.udacity.com/enrollment/cd13416) 前言 Google 跟 Udacity 合作開的這一個課程,蠻建議大家可以看一下。除了是免費之外,更加許多文件裡面沒有提供的詳細資訊跟用法講得很清楚。 想要更了解每一個 API 該如何使用,可以考慮看看。 這邊快速講一下課程大綱,然後帶幾個我覺得很重要的概念: 課程大綱 Introduction to LLMs and Gemini 基本概念補充。 Introduction to prompting in Google AI Studio 主要都是 AI Studio 的操作說明。 Developing with the Gemini API 建議開發者都要看這個,大多是 API 使用細節。 Advanced Applications 課程整理,還有相關小專案給學員練習。 幾個重點整理: 如何算產出 token token_n_model = genai.GenerativeModel(model_name, generation_config={"temperature": 0.0}) poem_prompt = "Write me a poem about Berkeley's campus" prompt_token_count = token_n_model.count_tokens(poem_prompt) output_token_count = token_n_model.count_tokens(response.text) print(f'Tokens in prompt: {prompt_token_count} \n Estimated tokens in output {output_token_count}') 透過 prompt_token_count: 輸入的 token 數字。 output_token_count: 產出的 token 數字。 Safety Setting 由於 Gemini 有著嚴格的管控,許多時候一些資料會被以安全因素而拒絕回覆。這時候你需要做一些處理: 在進行此演示之前,請記住要負責任地處理 AI 並遵循道德準則。 安全性是 Gemini 的一個重要內建功能。讓我們來了解更多它的功能: 如何檢查您的提示是否被安全過濾器阻擋 哪些安全過濾器導致了阻擋 如何調整設置以解除阻擋 檢查提示是否被阻擋 假設我們選擇了以下提示,在當前的安全設置下,您可以預期您的回應會被阻擋: model = genai.GenerativeModel("gemini-1.5-flash", generation_config={"temperature": 0}) unsafe_prompt = "Write a threat a video game villain might make" response = model.generate_content(unsafe_prompt) print(response.text) 輸出:ValueError: 無效操作:response.text 快速訪問器需要回應包含有效的 Part,但沒有返回任何內容。請檢查 candidate.safety_ratings 以確定回應是否被阻擋。 現在,您可以印出 response.candidates[0].finish_reason 以進一步調查。 如果 finish_reason 是 FinishReason.STOP,則表示您的生成請求成功運行。 如果 finish_reason 是 FinishReason.SAFETY,則表示您的生成請求因安全原因被阻擋,因此 response.text 結構將為空。 檢查安全過濾器 印出 response.candidates[0].safety_ratings 將顯示評級結構。我們可能會看到如下內容: [category: HARM_CATEGORY_SEXUALLY_EXPLICIT probability: NEGLIGIBLE , category: HARM_CATEGORY_HATE_SPEECH probability: NEGLIGIBLE...
繼續閱讀
July
12th,
2024
前提 將 Python Firebase 的套件改成官方的 FirebaseAdmin ,以下有兩種認證方式。 透過 GOOGLE_CREDENTIALS 將 services_account.json 放在環境變數 GOOGLE_CREDENTIALS 透過以下程式碼啟動 這個方式可以在本地端,遠端連線去 firebase 測試。 # 从环境变量中读取服务账户密钥 JSON 内容 service_account_info = json.loads(os.environ['GOOGLE_CREDENTIALS']) # 使用服务账户密钥 JSON 内容初始化 Firebase Admin SDK cred = credentials.Certificate(service_account_info) # 啟動 firebase realtime database (透過 firebase_url ) firebase_admin.initialize_app(cred, {'databaseURL': firebase_url}) 透過 GCP 系統啟動 如果服務是部署在 Cloud Function 或是 Cloud Run 其實可以透過預設的 Services Account 來取得相關權限 My Project 可以取得 My Project 在 firebase 的權限。 這個設定方式如法在本地端連接到 Firebase 測試 # 直接取得 Google Cloud 的參數 cred = credentials.ApplicationDefault() # 啟動 firebase realtime database (透過 firebase_url ) firebase_admin.initialize_app(cred, {'databaseURL': firebase_url}) 增加 Firebase 相關安全性設定 (Firebase Realtime Database Security Rules) { "rules": { ".read": "auth != null && auth.token.admin === true", ".write": "auth != null && auth.token.admin === true" } } 這樣就可以了。 相關程式碼 放一些基本常用到的 查詢全部 def get_all_cards(u_id): try: # 引用 "namecard" 路径 ref = db.reference(f'{namecard_path}/{u_id}') # 获取数据 namecard_data = ref.get() if namecard_data: for key, value in namecard_data.items(): print(f'{key}: {value}') return namecard_data except Exception as...
繼續閱讀
July
11th,
2024
Google AI Dev - Gemma2 && PaliGemma 這張圖稍微解釋了 Gemma 家族的兩個主要產品: Gemma 2:也就是第二代的 Gemma PaliGemma:是第一代的 VLM (視覺語言模型) PaliGemma 相關資源: 這邊有 paligemma 的 demo code (在 HuggingFace 上面) 可以看出來,由於是 Gemma 2B 加上 SigLIP 他對於語言的處理比較簡單。 可以做一些簡單的資訊處理,但是複雜問題就不行,比如說: 產生 JSON 回覆 (X) 一次回答兩個問題以上 (X) 但是可以達到: 用中文問問題(但是只會回答英文) 可以做簡單的 OCR ,或是 Object Detection 。 根據以下討論 PaliGemma 的影片, Google 團隊建議直接使用 Mix 版本的模型。他可以 Vision + Object Detection 。 以上是 PaliGemma model 的相關 Benchmark ,可以看出來。 對比的相關測試數據跟方法,都可以得到不錯的準確率。 在 GCP 上面直接部署 PaliGemma https://console.cloud.google.com/vertex-ai/publishers/google/model-garden/paligemma 另外一方面 Gemma 2 也可以: https://console.cloud.google.com/vertex-ai/publishers/google/model-garden/gemma2 Gemma 可以適用的相關內容 透過 Gemma 可以讓 token 數字有大幅度的減少,有以下幾種方向可以考慮: 個人隱私的偵測 讓一些可能有個人隱私的部分可以獲得比較有效的篩選。 以前做法: 個人資料的偵測跟去除一直是一個很難的技術,需要有許多 regular expression 來做控管。即便是如此,還是有可能會有遺漏的地方。針對個人資料偵測這一段,其實在 LLM 是可以使用的。 但是在資安法規上,直接將用戶的個人資料傳到第三方,這樣是不符合規範的。所以這一段可以透過 Gemma 來施行。 如何用 Gemma (on-device LLM) 處理 查看以下內容是否包含個人資料,地址,身份字號,銀行帳號,回覆我 是 或是 否 ------ 我想找台北的房子 如何用 PaliGemma 處理? Check if the image content contains personal information, address, identity number, or bank account number, and reply with Yes or No. 實地測試 - Gemma2 / PaliGemma 文字測試 Gemma2-9B 改成 「某人」跟 「配偶」,並且可以有效地去除身份字號跟銀行帳號。 圖片測試 PaliGemma 判定是否需要 「大型」LLM 的介入 將聊天機器人放入群組之中,最害怕的就是怕「 Token」爆掉。因為每一句話都需要判斷是否需要 LLM 的介入。這時候就可以透過 Gemma...
繼續閱讀
July
8th,
2024
懶人包:
懶人包: Gemma2 目前還是屬於偏大的參數(27B) 小模型還在訓練中,可以先看看 Gemma 1.1 。
相關內容
概論
Gemma2 Model Card
Gemma Cookbook 資料分享
Gemma Cookbook Github
可以貢獻,但是不要重複。
可以看一下 wishlist
中文翻譯(by 保哥) https://github.com/doggy8088/gemma-cookbook
在 AI Studio 試試看 Gemma2
Model Card
Gemma1.1(2B, 7B)
Gemma2 (27B, 9B) ,小模型 2.7B 還在訓練中。
新增: Gemma2 on Groq (沒有很好顯卡,可以用這個範例)
Gemma2_on_Groq.ipynb
新增: Gemma2 相關中文模型
https://huggingface.co/cloudyu/google-gemma-7b-chinese-sft-v1 (大陸清華大學學生做的,非官方)
Q&A
Q: Gemma2 - Fine-Tunning 經驗?
HuggingFace 上面有註解,如果要 Fine-Tune 需要把 Attention 改成 Egar
Q: Gemma2 是否有 Embedding Model?
目前還沒有。
Q: 有方式透過雲端方式直接使用 Gemma 嗎?不需要本地端部署 GPU?
目前有 Vertex AI 對上 Gemma 的 cookbook
繼續閱讀