顯示具有 人工智慧/機器學習 標籤的文章。 顯示所有文章
顯示具有 人工智慧/機器學習 標籤的文章。 顯示所有文章

2026年8月24日 星期一

Python修仙之路:VS Code + GitHub Copilot──從AI輔助學習到專案開發,全方位提升你的「程式閱讀力」

 


自上次研究 Claude Code 後,開始接觸到 AI 代理人程式開發,想當然耳也會想評估一下另一個鼎鼎有名的 GitHub Copilot,試著找出兩者的差異,而這本由陳會安撰寫的《Python 修仙之路:VS Code + GitHub Copilot》就成了我開箱 GitHub Copilot 的入門書。談起陳會安這位作者,真的算是位奇人。我 20 多年前初出社會、謀職時買的第一本電腦書,是講 ASP 網頁程式設計,作者就是他!除了是長青的資訊技術作者外,看到他掛名的著作能從 C 語言跨到 AI 工具,真心覺得這就是十八般武藝都略懂略懂的人吧。

就我來看,這本書的定位不太討喜。對於真正的程式開發者來說,介紹的內容都是日常工作中必備的基礎知識。從程式語言的基礎、程式碼的重構與優化、程式除錯以及版本控制,到最後的容器化部署,這些作業即使不使用 GitHub Copilot,對於工程師來說也不費吹灰之力。反過來說,如果書籍的目標讀者是完全不懂程式的門外漢,那這些內容又顯得節奏過於快速,造成知其然而不知其所以然的隱憂。不過,或許這正是 AI 代理人開發時代的特色,讓每個人都能在不了解細節的情況下,做出可以動起來的軟體,一切都像魔法般神奇。

在完讀這本介紹 GitHub Copilot 的作品後,大略體驗了這個工具的基本功能和能耐。感覺它是從原本程式開發 AI 助理的定位逐步調整,慢慢朝向 Claude Code 的AI 代理人模式前進。換言之,它本身具有能加速程式人員撰寫程式碼的傳統功能,再疊加上現在最熱門的下指令讓 AI 寫程式的技術,變成魚與熊掌都要的 AI 產品。可惜的是,畢竟 AI 代理的思維,感覺是 GitHub Copilot 後來才添加進去的,所以在整體的使用細節和功能完整性上,是落後 Claude Code 的解決方案。如果用汽車來比喻,它就像是油電混合車,既不像傳統方式要求工程師純手動、一行行刻出程式碼,又不完全讓 AI 代理人從無到有產製出近乎成品的專案。對於 IT 部門管理者和第一線的開發者來說,拿捏在什麼情境下要使用自動完成、什麼時候又該尋求 AI 代理,以及在工程師與這類 AI 工具協同工作的情況下,未來程式碼的質、量管理要如何調整、考核,這些都是要額外討論、思考的議題。

After researching Claude Code, I started getting into AI agent-based software development. Naturally, I also wanted to take a look at another famous tool, GitHub Copilot, and see what the differences are between the two. This book, *Python Cultivation: VS Code + GitHub Copilot*, written by Chen Hui-An, became my beginner's guide to trying out GitHub Copilot. Speaking of Chen Hui-An, I really think he is quite an interesting author. More than 20 years ago, when I first entered the workforce and was looking for my first job, the first computer book I bought was about ASP web programming. And guess what? He was the author! Besides being a long-time writer of IT books, I was also surprised to see that his books cover such a wide range of topics, from C language to AI tools. Honestly, I feel that he is the kind of person who knows a little about almost everything.

In my opinion, the positioning of this book is not very appealing. For real software developers, most of the topics covered in the book are basic knowledge that we need in our daily work. From programming language basics, code refactoring and optimization, debugging, and version control, all the way to container deployment, none of these tasks are very difficult for engineers, even without GitHub Copilot. On the other hand, if the target readers are complete beginners who know nothing about programming, the book moves too quickly. There is a risk that readers may learn how to do things without really understanding why they work. However, perhaps this is exactly what makes the age of AI agent-based development special. It allows almost anyone to build software that actually works without understanding all the details. Everything feels almost like magic.

After finishing this book about GitHub Copilot, I got a basic idea of what this tool can do and experienced some of its main features. I feel that it is gradually moving away from its original role as an "AI assistant for software development" and moving toward the AI agent approach of Claude Code. In other words, it still has its traditional features for helping programmers write code faster, while also adding the increasingly popular approach of simply giving AI instructions and letting it write the code. It is trying to have the best of both worlds. The problem is that, since the AI agent approach seems to have been added to GitHub Copilot later, it still falls behind Claude Code in terms of overall usability and completeness. If I use a car as an example, GitHub Copilot is like a hybrid car. It is neither like the traditional approach, where engineers manually write every line of code, nor does it completely let an AI agent build an almost finished project from scratch. For IT managers and frontline developers, deciding when to use traditional code completion and when to turn to an AI agent is now another issue to think about. At the same time, when engineers work together with these AI tools, we also need to rethink how the quality and quantity of future code should be managed and evaluated. These are all issues that require further discussion and thought.


2026年7月28日 星期二

Claude Code Vibe Coding 開發手冊 第 2 版

 


即使不像對岸因高失業率引發的各行各業「內捲」那般慘烈,在台灣,近年來資訊科技相關工作的日子,也越來越不輕鬆自在了。除了像 Claude Code 這類強大的 Vibe Coding 工具緊追在後之外,IT 技術本身的突破與迭代速度也快得令人措手不及。以前可能學個 COBOL,就能安穩地寫二十年的銀行系統;學個 SQL,也能在中小企業的 MIS 部門一路做到退休,這種好日子已經一去不復返。現在資訊技術的保鮮期,多則不到兩年;像 AI 領域更誇張,新東西可能不到半年就過時,又得重新學起。

以這本《Claude Code Vibe Coding 開發手冊 第 2 版》為例,上市日期是 2026/06,離今天大概也才一個月。書中提到建立 subagent 的 /agents 指令,就已經被原廠停用、廢棄了。雖然就學習、使用的角度來說,這並不會造成太大的困擾,依舊能改用口語式指令操作,但對出版社、作者等教學方而言,撰寫、出版 AI 技術書籍的性價比肯定不高。畢竟,相較於討論底層核心觀念、歷久彌新的電腦書,這類 AI 熱門主題書如果不能在出版當年賣掉,大概也只能被秤重回收了。所以看電腦書,尤其是主題偏向 AI 實作時,近來得出的心得是:有需要再買,買了就馬上看,千萬不要積書!

由於我才剛看過這本書的第一版,因此能很明確地比對出新增加的章節內容。整體而言,基本概念與操作方式變化不大,實作練習則略有增加,翻閱時本質上比較像是在看別人做習題。因此,本書真正有價值的地方,在於 Claude Code 新功能的介紹,像是將特定執行流程 SOP 化的 Skills,以及跨平台的遠端操控功能。另外,內建 MCP 的 Claude in Chrome,也讓我眼睛一亮,更確切地體認到,在 AI 工具的協助下,未來的網路環境中,爬蟲機器人將會是再也無法阻擋的必然存在。還是那句老話,程式開發人員已經不能不懂 Vibe Coding。來一本吧!

Even though Taiwan is not facing the same serious "involution" as China, where high unemployment has made competition much tougher, working in the IT industry here has also become more stressful in recent years. Powerful Vibe Coding tools like Claude Code are moving forward very quickly. At the same time, new IT technologies are changing faster than ever. In the past, you could learn COBOL and spend twenty years writing banking systems. If you learned SQL, you could also work in the MIS department of a small or medium-sized company until retirement. Those days are gone. Today, many IT skills stay useful for less than two years. The AI field changes even faster. A new technology may become old in less than six months, and then you have to learn something new again.

Take this book, *Claude Code Vibe Coding Developer's Guide, 2nd Edition*, as an example. It was published in June 2026, only about one month ago. However, one command for creating a subagent has already been removed by the official developer. Luckily, this does not cause much trouble for readers. We can still do the same thing by using natural language commands instead. Still, for publishers and authors, writing AI books is probably not a very good business. Unlike classic computer books that teach basic ideas and stay useful for many years, AI books can become outdated very quickly. If they do not sell soon after publication, they may end up being recycled. Because of this, I have learned one important lesson about computer books, especially AI books: buy them only when you really need them, and read them right away. Don't let them sit on your bookshelf for too long.

I finished the first edition not long ago, so it was easy for me to see what had changed in this new edition. Overall, the basic ideas and operations are almost the same. There are a few more hands-on exercises, but reading them feels a little like watching someone else solve homework problems. The most valuable part of this book is its introduction to Claude Code's new features. For example, it explains Skills, which can turn common workflows into standard operating procedures (SOPs). It also introduces remote control across different platforms. Another feature that impressed me was Claude in Chrome, which comes with a built-in MCP. It helped me realize that, with the help of AI, web-crawling bots will become an unavoidable part of the future Internet. As I always say, software developers can no longer ignore Vibe Coding. Go get a copy of this book!


2026年7月16日 星期四

LangChain 奇幻旅程:OpenAI x Gemini x 多模態應用開發指南

 


AI 浪潮席捲而來的當下,軟體工程師若想不被大浪滅頂,勢必得將它視為助力而非阻力。唯有動心起念、善加運用,才能立於不敗之地。而對第一線的程式開發者來說,面對 AI 可以學習的方向,大致可分成兩個主題:一是人工智慧的 Vibe Coding 開發工具,增益自身的開發能量;二是探索與實作 AI 應用程式,將 LLM(大語言模型)的大腦融入不同的應用情境,開發出新世代的智慧程式。

在軟體開發的過程中,程式框架(Framework)具有將重複性需求規格化、模組化的優點,框架優先的觀念早已在 Web 應用開發中根深蒂固。在 LLM 應用的領域裡,LangChain 則是最具知名度的程式框架,其核心理念是透過它所提供的抽象層,達成不受制於單一 LLM 平台或業者的設計。這本《LangChain 奇幻旅程》不僅讓讀者學到 LangChain 框架的基礎,更進一步介紹 AI 應用開發會觸及的相關技術,像是本地端模型的 Hugging Face、Ollama、RAG 的觀念與實作、LINE Bot 對話機器人,以及極具價值的 Qdrant 向量資料庫基礎運用。

書中不偏袒地將 OpenAI 與 Gemini 這兩個 LLM 領頭羊的實作一併收錄,不論讀者原本採用的是哪一家的方案,都可以直接從書中學到具備即戰力的開發技能。可惜的是,AI 技術一日千里,即便這本書出版至今才約一年半(2024 年 10 月出版),LangChain 的版本已經歷多次更新,書中的程式碼也大多已經過時,得自行花時間查找新版的寫法。幸好身處 AI 時代,在 ChatGPT 這類工具的協助下,相信都能迎刃而解。

不過,對於 AI 應用的開發是否非得採用 LangChain 這樣的框架,目前我還是有點遲疑。以我比較熟悉的 GCP Vertex AI 為例,有一些平台專屬的功能,像是格式化輸出(Structured Output)、Grounding 等,都不包含在 LangChain 基本類別的設定值裡。換言之,如果想使用這些強大的 LLM 功能,就得客製化框架的程式碼;然而,一旦這麼做,就很難再切換到其他 LLM 平台,如此一來,採用框架所追求的平台無關性(Platform Agnostic)也就不復存在了。

With the AI wave sweeping across the software industry, developers who don't want to be left behind need to see AI as an opportunity rather than an obstacle. The key is to embrace it and learn how to use it effectively. For software developers, there are two main directions for learning AI. The first is using AI-powered development tools, such as Vibe Coding, to boost productivity. The second is exploring and building AI applications by integrating the "brain" of LLMs (Large Language Models) into different use cases to create the next generation of intelligent software.

In software development, frameworks help standardize and modularize common requirements, making development more efficient. As a result, the "framework-first" mindset has become deeply rooted in modern web development. In the world of LLM applications, LangChain is probably the best-known framework. Its core idea is to provide an abstraction layer so developers are not tied to a single LLM platform or vendor. This book, LangChain 奇幻旅程 (The Fantastic Journey of LangChain), not only teaches the fundamentals of the LangChain framework, but also introduces many important technologies used in AI application development. These include local models with Hugging Face and Ollama, the concepts and implementation of RAG, LINE Bot development, and the basics of using the Qdrant vector database.

The book presents examples for both OpenAI and Gemini without favoring either one. No matter which LLM platform you are currently using, you can learn practical development skills that are immediately useful. The downside is that AI technology evolves incredibly fast. Although the book was published only about a year and a half ago (October 2024), LangChain has already gone through multiple major updates. Much of the sample code is now outdated, so readers will need to spend some time figuring out the new APIs and coding style. Fortunately, with AI assistants like ChatGPT, updating the code is much easier than it used to be.

That said, I'm still not completely convinced that AI applications must be built on a framework like LangChain. Take GCP Vertex AI as an example. It provides several platform-specific features, such as Structured Output and Grounding, that are not covered by LangChain's standard abstractions. In other words, if you want to take advantage of these advanced LLM features, you'll need to customize the framework. Once you do that, however, switching to another LLM platform becomes much more difficult. As a result, the platform-agnostic design that frameworks like LangChain aim to provide starts to lose its value.


2026年7月6日 星期一

Claude Code Vibe Coding 開發手冊

 

ISBN:9789863128533

對於從事軟體開發工作的從業人員來說,看到新聞媒體不間斷地報導 AI(人工智慧)如何在資訊領域中高速成長、進化,間接讓矽谷網路、資通訊巨頭們有底氣大幅裁員、縮編,除了心裡不是滋味外,也總是抱持著懷疑:AI 真的能整合各種繁雜、混亂的系統知識,從無到有地生成零失誤的程式碼嗎?畢竟,以我使用 ChatGPT 的經驗,它在回答程式問題時,也時常答非所問,或充滿 AI 幻覺。這一切的疑惑,在看完這本《Claude Code Vibe Coding 開發手冊》後,就豁然開朗了。

Claude Code 是一個針對程式開發情境打造的 AI 大語言模型,而它的表現也讓我大為驚艷,更讓我直接體驗了什麼是 Vibe Coding(隨想編程)。藉由書中 Step by step 的引導,不論是哪個程度的程式開發者,都可以輕而易舉地踏入 LLM 協助開發的旅程。幾乎可以肯定,在 AI 模型進展到這個水準的情況下,未來軟體業的組織規劃、職務權責和工作形態,都將發生巨大的改變。

也因此,不論是上至 CTO(技術長)、IT 單位負責人,還是第一線實作的 PM(專案經理)、SA/SD(系統分析/系統設計)和 PG(工程師),都值得花點時間,親自淺嘗即止地使用 Vibe Coding 工具,絕對會讓自己開闊視野,並從另一個角度思考軟體產業未來的走向。Claude Code 這樣的 AI 開發工具,就像是運動場上的類固醇,能快速且無差別地強化使用者的程式開發能力。但「能力越強,責任越大」,沒有恰當的規範與管理,AI 工具所能造成的破壞也會等比例放大。工程師的誠信與敬業精神,在未來的軟體開發產業中,將會是無可取代的必要條件。畢竟,誰也不想把大規模殺傷性武器的按鈕,交到自己不信任的人手上吧?AI 程式開發工具,就有這樣的威力。

For people who work in software development, it is hard to ignore the news about how AI (Artificial Intelligence) is growing and improving at an amazing speed. Many reports also say that this gives big technology companies in Silicon Valley more confidence to cut jobs and reduce their workforce. Besides feeling uneasy about these changes, I always had one question in mind: Can AI really bring together all kinds of complex and messy system knowledge and create perfect code from nothing? From my own experience with ChatGPT, it often gives answers that miss the point or are affected by AI hallucinations when I ask programming questions. After reading Claude Code Vibe Coding Development Guide, however, all of my doubts disappeared.

Claude Code is a large language model designed especially for software development. Its performance truly surprised me and gave me a firsthand experience of what Vibe Coding is. With the book's step-by-step guidance, programmers of any skill level can easily begin their journey of developing software with the help of LLMs (Large Language Models). It is almost certain that, as AI models continue to improve, the software industry will go through major changes in its organization, job responsibilities, and ways of working.

For this reason, everyone—from CTOs and IT managers to PMs (Project Managers), SAs/SDs (System Analysts/System Designers), and programmers on the front line—should spend some time trying Vibe Coding tools for themselves. Even a short hands-on experience can broaden your perspective and help you think about the future of the software industry from a different point of view. AI development tools like Claude Code are much like steroids in sports. They can quickly and dramatically improve a programmer's development ability. But as the saying goes, "With greater power comes greater responsibility." Without proper rules and management, the damage caused by AI tools can also grow just as quickly. In the future, honesty and professionalism will become more important than ever for software engineers. After all, no one wants to put the button for a weapon of mass destruction into the hands of someone they cannot trust. AI programming tools have that kind of power.


2025年10月10日 星期五

AI應用程式開發 第二版|活用ChatGPT與LLM技術開發實作

 

時至今日,沒人會否認人工智慧(簡稱 AI)是一門顯學,更有不少專家學者宣稱,程式設計是 AI 可以取而代之的職務。先不論未來的事,在這個當下,對從事軟體開發的工程師來說,AI 至少在兩個層面造成業務上的改變,或用更正面的態度來說,是改善。

首先,以大語言模型(LLM)為核心製作出來的程式開發工具,無論是在 POC 開發、程式碼除錯、撰寫測試程式碼等各個開發環節,都能利用 AI 來加速作業。另一個層面,則是運用 AI 在自然語言處理上的超能力,打造出以往令開發人員卻步的各種人性化應用。而後者,就是這本《AI 應用程式開發》關注的重點。

它採用目前 AI 產業領頭羊 OpenAI 的解決方案,向讀者介紹如何整合 LLM 到自行開發的應用軟體中。首先免不了要進行一些技術觀念的鋪陳,介紹大語言模型的演進以及其背後的原理。雖然 LLM 表現得很像有智慧,但它終究只是運用統計數據來預測下一個字元的文字產生器,因此在現階段,仍不可避免地有兩個問題無法克服:一是垃圾進、垃圾出:餵給 LLM 的資料如果本身包含錯誤資訊,那模型本身也只會提供錯誤結果。另一個是幻覺問題:LLM 只是依據機率最高的規則來不斷產生文字內容,無法保證內容的正確性。

接著進入實戰部分,書中很快帶過 OpenAI API 的使用方法。受惠於 ChatGPT 將一切複雜性包裝在 Web API 後,讀者會發現只要按部就班地照著書中內容練習一遍,就馬上學會如何利用程式碼呼叫 ChatGPT 家族的 LLM 模型,包含聊天補全模型、視覺辨識、內嵌模型、文字轉語音、語音轉文字和圖片生成等,一瞬間能將世界最強大的 AI 整合到自己的專案裡。

書中也點出 LLM 能具體增強專案的對話能力、語言處理能力、人機互動能力,並以範例展現各種可能發展的 AI 應用,包括新聞撰寫、看影片寫結論、特定領域的專家問答和語音個人助理等等。書中也貼心地提醒,這些功能看似強大又美好,但呼叫 OpenAI API 是以 token 計價,開發者必須有控管成本的警覺性。

接下來是更有技術含量的章節,介紹用於增進 LLM 模型效果的各種技巧。從最簡單的提示工程開始,只要透過角色、前後文和任務的三段式文字,就能設計出有效的提示語;要求 LLM 進行一步步去思考,是另一種減少 AI 給出錯誤答案的小技巧。少量樣本學習以及根據使用者回饋來改進則需要花費更多心力在提示語撰寫。對於後者,書中更是提供用 AI 來優化提示語的範例程式。

再來是需要大量成本的微調模型。在 OpenAI 的工具中,微調 LLM 相當容易,但前提是使用者必須擁有能用來訓練模型的大量資料,以及充足的預算來進行這項作業。另外要注意,微調後的模型也只能在 OpenAI 平台中使用,無法帶走。最後則是現在的當紅炸子雞——RAG(檢索增強生成)以及連帶的內嵌模型。其實 RAG 是為了彌補 LLM 有著輸入 token 限制的問題,但因為實作簡單、效果顯著,所以目前已經變成 AI 應用的標準配備。

最後的章節則介紹 AI 應用程式在開發時的延伸議題,像是程式框架 LangChain 和 LlamaIndex。這部分也讓我看到 AI Agent(代理)在整合不同工具後,能展現出多強大的功能,像極了電影《鋼鐵人》裡的 AI 管家賈維斯。而透過OpenAI 規格的實作,讀者也可以自行開發提供給 LLM 呼叫的外掛工具,讓它更無所不能。可惜的是,AI 程式框架進展一日千里,書中的程式碼已經過舊,無法正常運作;不過也不用擔心,ChatGPT 神通廣大,可以輕鬆改寫出新版的程式碼。

在大數據時代,工程師已學會用數據寫出程式;相信在 AI 時代,工程師也會開始用 LLM 寫出程式。這本《AI 應用程式開發》,就是最棒的起點。


2025年7月26日 星期六

文科生也能輕鬆實現!自建自用大語言模型(LLM):無痛操作Ollama本機端模型管理器

 

自從 OpenAI 的 ChatGPT 走入大眾視野、給知識工作者帶來意想不到的巨大震撼後,人工智慧(或簡稱 AI)就再也沒從媒體的熱門關鍵字排行榜中下滑。的確,先前深度學習也曾帶來一波 AI 熱潮,但那時頂多是在圖片、影像辨識上達成弱人工智慧,加速影像監控和自駕車等技術的發展。相較之下,LLM 可是開創了一個名為生成式 AI 的新資訊運用領域,並且在各種文字、圖像任務上,達成不遜於真人處理的成果。也難怪三不五時總會出現一些憂心之士,誤會並宣稱 LLM 已經產生自我意識,足以對人類造成威脅。

身處在這個 AI 浪潮中,從事知識工作的白領也不得不有危機意識,得加緊腳步接觸、瞭解 AI,進而能和 AI 協同作業,確保自己在職場中的競爭力。除了直接使用各大 LLM 平台的網站服務以外,自己從零開始裝設私有的 LLM 也是一種可行的做法,而這本《文科生也能輕鬆實現!自建自用大語言模型(LLM)》便是能讓你快速達成此目標的寶典。在開源程式碼和 LLM 開源模型的幫助下,只要手上有一台裝有 GPU 顯示卡的電腦,隨著本書的引領,你就會輕易地擁有一套屬於自己的 LLM 平台,不用付費就能隨意使用。當然,這個自產自銷的大語言模型肯定無法和市面上的商用方案比肩,但在處理一些小問題上,也足以分勞解憂。

市面上可以用來建置本機 LLM 的軟體方法很多,這也是讓許多想自行嘗試的人打退堂鼓的原因之一。本書聚焦在 Ollama 加上 Page Assist 這個簡易又可靠的配套方案,看到第二章就能讓讀者感受到打造本機 LLM 的感動與驚喜。雖然美中不足的是,書中並沒有介紹如何安裝可提供 REST API 的本機 LLM 環境,但已經能替讀者省下相當多試誤與爬文的心力,讓你我直接邁向構思應用的實作階段。如果剛好你是被主管或老闆指派來研究 LLM 技術的 IT 工作者,那《文科生也能輕鬆實現!自建自用大語言模型(LLM)》更是你千萬別錯過的好書,絕對能幫你增進對 LLM 的實作經驗與技術體悟。

2024年11月6日 星期三

科技巨頭的演算法大揭祕:資料科學家必讀的資料科學與機器學習實戰筆記

 



這本科技巨頭的演算法大揭祕基本上是幫讀者整理Netflix、Spotify、Facebook、Airbnb、Uber等知名企業,揭露它們在研發自家搜尋與推薦系統的過程中,有採用的設計與資訊技術。這也是本向大眾展示大數據與機器學習如何落地應用,產生實質商業價值的科普書。對於這些走在資通科技最前沿的大型企業,只要零點幾%的優化,對公司營運帶來的報酬可能就是數十萬美金起跳。因此天馬行空地翻轉手上的巨量資料,不停嘗試導入各種ML模型用來最佳化企業營運的各個層面,已變成它們工程團隊的DNA。他們不吝嗇透過網路文章、研究報告和論文,將九牛一毛的成果,挑選可公開於眾的技術片段,傳播到大眾面前,也藉此宣傳自家企業的技術優勢。多虧此書作者徐歆閔的消化吸收,替讀者將晦澀難懂的原文資料書寫成白話簡潔的科普文章,讓我們可以輕易地一窺各大山頭在數據應用的進展與巧思。

對於從事大數據與推薦系統開發的我而言,這本書是絕對值得收藏精讀的寶典。不過如果以實用角度來看,打個比方,它就像跟你介紹少林寺有七十二絕技、華山派有獨孤九劍、武當派有太極拳。而這些技藝都是知易行難,要花苦功練才能有所成,因此看完書懂些皮毛,讀者依舊學不會/做不出來。所以本書和多數教導實作的電腦書定位截然不同,科技巨頭的演算法大揭祕像是一本點到為止的武林秘笈。它開擴讀者的視野,點出在數據工程與推薦系統開發上,還有那些技能樹上的技術點,可以用心突破或加強的。像是向量運算、分類模型算是數據處理的入門招式,但在雜複的應用情境中依舊是不可或缺的核心項目。

個人認為企業的大數據應用發展過程可約略分成三階段。初步是開始收集、運用巨量資料,懂得利用大數據運算結果來優化資訊系統,擁有數據導向思維。接著是擁抱機器學習,打造以數據養模型的組織文化。充分將迴歸、分群、分類等各種AI模型導入到資訊系統的各個層面,達成無處不學習無處不優化的境地。最終的階段是以機器學習帶動大數據,靈活運用ML技術,甚至用來產生不存在的假資料,來泯除大數據應用的痛點(沒資料),此時會是見山不是山,大數據與機器學習再也分不清彼此。想當然而,這些科技巨頭早已達第三階段。

在電商平台開發推薦系統,某種程度上不如Netflix、Spotify這些訂閱制影音內容平台般單純。因為對於內容平台而言,只要推薦的內容是使用者真正感興趣的,一定能產生正向回饋,因為在月費制的前題下,消費任一內容對使用者來說是固定成本。電商平台則不然,商品售價、活動優惠、庫存滿足度甚至是競業的動態,都足以影響使用者對推薦內容的觀感與反應。這也是為何在推薦系統的發展大事件中,近來話語權最高的是影音內容平台Netflix(舉辨公開競賽),而不是電商龍頭Amazon,因為花費鉅資投入打造/購買一套推薦系統,對兩家公司在未來營收的影響上,不會是同一個數量級。對電商來說,一個完善的供應鏈數據平台,其重要性會遠大於擁有許多推薦模型的推薦系統。不論是數據工程、推薦系統甚至是機器學習,這些都是大數據工程師有機會施展拳腳的應用領域。它山之石可以攻錯,科技巨頭的演算法大揭祕便是扮演這樣的角色。

2020年1月7日 星期二

Deep Learning for Computer Vision: Image Classification, Object Detection, and Face Recognition in Python


2019年資通產業最熱門的「Buzzword」肯定是「深度學習」吧。毋庸置疑地藉由深度學習強大的演算能力,讓資訊科技得以提供更令人驚豔的服務,「自駕車」、「人臉辨識」、「智能客服」以及數不清的各項運用正在改變產業生態,也在改變這個世界。

從資料中找出特定模式的「機器學習」(更早之前稱為「資料探勘」或最早的「迴歸分析」),其實由來已久,相信很多老IT人會丈二金剛摸不著頭緒,懷疑是否是「舊瓶裝新酒」的行銷炒作風潮。炒作成份當然有,但「深度學習」確實有著不可忽視的「含金量」。

建基在「類神經網路模型」之上的各種「深度學習」演算法,有別於傳統「機器學習」的建模手法,將「特徵擷取」的過程大幅度地(幾乎是全部)假手由算法決定。此舉雖然造成「最終模型」有無法被事後描述解釋的負作用,卻能達成有效解決許多「人工智慧」的精典課題。這些課題都是無法用人力完整條列出處理邏輯(以及分辨那個特徵最重要),包含了「文字辨識」、「圖像辨識」和「語音辨識」。大部份強調AI的新創公司,也多半以這三項應用為核心訴求。

2019年開始接觸「深度學習」以來,讀過「Deep learning 深度學習必讀:Keras 大神帶你用 Python 實作」一書後,已經掌握初步的實作基礎。但針對「圖像辨識」的應用,尚只懂些「圖像分類」的皮毛,缺少更進階的知識、技術。無獨有偶,公司恰好計劃進行「圖像辨識」的研究,在一連串請教「谷哥大神」的資料探索後,讓我找到了「Deep Learning for Computer Vision」這本電子書。其用簡單、明快的範例與程式碼,帶領讀者們進入「圖像分類」、「物件辨識」和「人臉辨識」等電腦視覺應用領域。經由500頁內容的「潛修」,出關之後對於 「深度學習」在圖像處理的範型已經了然於胸,稱上個「略懂」。

個人在閱讀習慣上一直偏好紙本實體書籍,即便電子書有著輕簿不佔空間的優點,也難以撼動紙本書在我心中的地位。然而面對這本「Deep Learning for Computer Vision」,我也不得不放下我(無謂地?)的堅持。因為它只出純電子書!完全就是「內容是王(Content is King)」的典範,讀者們只能乖乖地拿出信用卡付款,下載後好好地吸收這500頁精髓。

2019年6月30日 星期日

TensorFlow+Keras深度學習人工智慧實務應用


如同我同事說的「看書的時間點不分早晚,當你閱讀的當下就是最好的Timing」。這本2017年出版的「TensorFlow+Keras深度學習人工智慧實務應用」對我而言,眼下就是最好的相逢。

面對以深度學習為主所掀起的第三次人工智慧熱潮,想當然耳是身處大數據應用第一線工程師必修的資訊技能。早先經由林大貴的姐妹作「Python+Spark 2.0+Hadoop機器學習與大數據分析實戰」學習到了傳統機器學習的功夫,在此基礎上再更一步研讀「TensorFlow+Keras深度學習人工智慧實務應用」一書,循序漸進地朝深度學習的領域探索,在學習進程上的安排是恰如其份。

就如封面所言,TensorFlow是實踐深度學習的低階語言,不適合初學者入門。而建基在TensorFlow之上的Keras函式庫,相當巧妙地將重複性的程式碼包裝起來,提供了便利、直觀的建模函式,讓使用者可以快速地運用類神經網路模型來實作實務問題,不用卡在枝微末節的代碼中。本書就是先從Keras範例開始介紹,等讀者對深度學習模型有一定經驗後,再用TensorFlow解說一次。林大貴的這種安排相當貼心,藉由同一範例執行兩種不同語法來重複練習,也真的能讓書中想傳播的知識確切地印在讀者們腦海中。

章節的範例包含了:手寫數字辨識、照片物體辨識(圖像分類問題),鐵達尼號旅客生存機率(資料分類問題)以及IMDB影評情緒分析(自然語言處理分類問題)。都是常見但精典的機器學習課題,也都有轉化為實務的專案雛形的價值。利用深度學習的MLP(多層感知器)、CNN(卷積神經網路)、RNN(遞歸神經網路)與LSTM(長短期記憶)等深度學習模型,讓人工智慧在資訊科技運用上突破了先前傳統演算法(單純貝氏、決策樹...等)無法跨越的瓶頸,也勢必成為資訊科技從業人員口袋中應配備的應用工具。

書中最後一章是介紹如何安裝Nvidia的GPU顯示卡來加快TensorFlow的運算速度,可惜我沒想為了練習書中範例就去買張顯卡來實踐內容,就只能望文興嘆就字面上體驗GPU的強大威力。

2019年6月29日 星期六

日本情感研究權威的人工智慧秒懂攻略


面對自己不理解的新事物時,不是出自恐懼而提前全盤否定,就是過於樂觀一味照單全收。在人工智慧崛起的時代,知識工作者如何理解、接納AI,更甚者能與AI攜手合作開創新局,一切都得源自於從正確地學習AI的優劣勢與相關的基礎觀念。而「日本情感研究權威的人工智慧秒懂攻略」就是讓讀者開始接近AI的一本佳作。

作者「坂本真樹」(女生)是日本人工智慧研究的專家,本書是她獲日本出版社之邀,為一般大眾專文撰寫的科普內容。內容從歷史上的三次AI熱潮談起(由深度學習帶起的今日,是第三次),又將人工智慧確切地定義分級:
第一級:相當於程式自動化的控制系統(搭載AI的家電產品、簡單邏輯推論)
第二級:可處理多重輸入對應複雜輸出的電腦系統(掃地機器人、資料庫比對、知識推論演算法)
第三級:以資料為基礎,為各種輸入與輸出建立關聯性(搜尋引擎、機器學習)
第四級:能在特定領域中發揮甚至能勝過人類(自動駕駛、特化型人工智慧)
第五級:不限定領域在各方法都能勝過人類(天網、強人工智慧)
如此將AI分級的見解,在其它書籍中很少見,卻是非常直觀、清楚的AI辨識標準。

後續重點在解說人工智慧擅長和不擅長的項目是什麼,解述的內容都非常淺顯易懂,即使不是擁有資訊背景的讀者們也能輕易地閱讀。第三章有關傳統的「機器學習」以及最近熱門的「深度學習」介紹,就需要更用心理解的論述內文,特別是針對深度學習的「感知器」、「誤差反向傳播法」等術語,對第一次接觸的人來說可能會有點消化不良,但中間穿插深度學習如何讓圖像識別系統自動尋找特徵量的描述,以及最後章節介紹的各項AI應用,都清楚地讓讀者體會Deep Learning帶來的第三次AI熱潮,是貨真價實地改變了全世界。

隨著雲端平台和開源工具的蓬勃發展,可預期的是AI技術門檻會不斷地下降。不論在企業或個人層面,能掌握人工智慧而取其所長、避其所害的關鍵,相信就是抱持著積極進取的態度與求知若渴的初心,才能成事。