大家好,我是 Jack。
AI 寫代碼想必很多人都體驗過了,使用 AI 編程工具是一個大趨勢,越早學會使用 AI 輔助你寫代碼,你的效率也會越高。
甚至有些公司已經要求員工具備 AI 編程能力。
對于學生黨,AI 編程可以幫助我們學習,做課后作業、做畢設;對于上班族,AI 編程可以幫助我們提高工作效率,甚至是翻譯別人的“屎山”代碼。
之前跟大家聊過各種 AI 工具,其中 CodeGeeX 的呼聲很高,這個 Copilot 的國產免費平替版到底有著怎樣的魅力?
我體驗了一番后發現,它有著三個明顯的優勢。
-
對個人開發者完全免費;
-
不用使用科學上網非常方便;
-
對中文支持非常友好。
一、CodeGeeX
GitHub Copilot 剛發不出來的時候,很多用戶表示編程效率有了較大的提高。隨后,就涌現了各種代碼生成的大模型,包括:DeepMind 的 AlphaCode、Salesforce 的 CodeGen、Meta 的 InCoder 和 Google 的 PaLM-Coder-540B。
而國內較為出名的就是 CodeGeeX,它是清華和智譜 AI 聯合打造的多語言代碼生成模型。
可以看到,整體也是 Transformer 的結構,采用 KQV 這種經典的多頭注意力機制。
除了詞嵌入,也用到了位置嵌入,從而幫助模型學到位置之間的依賴關系和自然語言的時序特性。
CodeGeeX 的預訓練預料也很豐富:
-
開源代碼數據集:Pile 和 CodeParrot;
- 從 GitHub 爬取代碼,選擇的代碼倉庫至少有一個 star 且小于10MB,然后過濾文件:
-
每行超過 100 個字符;
-
自動生成的;
-
字母比例小于 40% 的;
-
大于 100KB 或者小于 1KB 的。
-
通過這些規則,清洗出高質量數據。
上圖展示了訓練數據中 23 種編程語言的占比。訓練數據會被劃分為等長的片段。為了幫助模型區分多種語言,在每個片段前添加了語言相關的標簽,例如:language: Python。
如今,CodeGeeX 的訓練集應該更大了,畢竟它們也在一直持續優化更新。
接下來,講解下怎樣玩轉 CodeGeex。
二、CodeGeex 體驗
1、安裝
CodeGeex 支持很多主流的 IDE:
我平時習慣用 VSCode,今天就以它為例進行演示。
CodeGeex 官網:
https://codegeex.cn/zh-CN?article=1113
VSCode 插件安裝地址:
https://marketplace.visualstudio.com/items?itemName=aminer.codegeex
打開 VSCode 找到應用擴展。
搜索 codegeex,然后點擊安裝。
安裝后選擇登陸,然后就會彈出一個頁面,用手機賬號注冊一下就搞定了。
CodeGeex 有三個模塊:Ask、工具箱、代碼翻譯。
1、Ask 問答模式
我們先來個簡單的熱身菜,在 Ask 模塊中輸入:用 python 寫一個貪吃蛇游戲。
將生成的代碼拷貝過來。
python test.py 運行代碼。
代碼順利運行。怎么樣,有了 CodeGeeX 寫個小需求還不是手到擒來?
不過代碼呢,不是寫完就完事了,如果你用它來做課后作業,作業是 1 秒就寫完了,但也沒學到知識啊。
這時候,CodeGeeX 就是你最好的老師。選中不懂的代碼,左側的對話框會自動填充這段代碼到提示框中。
找到不懂的代碼,然后提問:什么意思?
CodeGeeX 會詳細給你解釋,這段代碼是什么含義,為什么這么寫。
除了學習,這個功能對于上班族來說,還可以翻譯同事寫的“屎山”代碼,讓 AI 幫你一起縷清頭緒。
咱們接著加大一點難度,我想處理一批圖片數據,把這些圖片中的人臉裁剪出來,保存到 res 目錄下。
人臉檢測是我們經常會用到的算法,比如裁剪人臉后,訓練一個 LoRA 模型之類的。
在 Ask 中輸入:使用python和opencv檢測圖像中的人臉,遍歷images目錄下的圖片,裁剪后的圖片請保存res目錄下。
將代碼拷貝過來,然后再運行。
瞧,這樣就大功告成了。
2、翻譯代碼
CodeGeeX 除了這種問答功能,還能翻譯代碼。
比如一段 js 代碼,這是一段冒泡排序算法,我想將代碼翻譯成 python 的,點擊翻譯,這樣就搞定了。
3、工具箱
最后,咱們再看看 CodeGeeX 的工具箱,這個是最新上線的功能。
我們在瀏覽網頁的時候,經常會碰到 HEX 格式的顏色數值,我們想用到這個顏色。
但是代碼卻需要用到 RBG 格式的數值,這個時候就可以用到這個工具了,運行一下,可以能得到對應的 RGB 值了。
我們再考驗一下它 Excel 轉 JSON 的能力,我們新建一個 Excel 。
我隨便輸入了一些信息,2 米大個 Jack Cui 和 3 米的花季少女李四。
好,然后選擇這個插件,上傳這個 excel,回車。
可以看到工具箱還貼心地提供了轉換代碼。JSON 格式的數據也提供了。
怎么樣,CodeGeex 很強大了吧,無論對于學生黨還是打工族,CodeGeex 絕對都是開發利器。
三、最后
文章對應的視頻版,我也發布到了 B 站,想要看更直觀的體驗視頻,可以去瞧瞧:
https://www.bilibili.com/video/BV1hg4y1Q715
好了,今天就聊這么多吧。
我是 Jack,我們下期見!