本系列第3期文章,在Jetson Orin Nano上使用text-generation-webui项目搭建智能助手,十分轻松。但是大部分入门者都会在“选择模型”、“下载模型”以及选择“加载器”这三部分,遭遇比较大的障碍,毕竟要在几万个开源模型中找到合适的,犹如大海捞针一般地困难,再加上Orin Nano只有8GB显存的限制,能执行的大语言模型相当有限。
面对这样的问题,使用Ollama这个模型管理器会是更有效率的方法,因为它单纯使用llama.cpp这个效率较好的加载器,并且这个开发团队为我们筛选了100个左右大语言模型,下载与执行模型的指令都非常简单,将模型管理的问题交给Ollama处理,可以让事情变得单纯许多,对新手来说也是最容易上手的方法。
由于Ollama虽然提供支持ARM平台的docker版本文件,但这个文件并不支持CUDA GPU,因此性能上会大打折扣,并且有出错的现象。我们要在Jetson Orin Nano上执行的最好方法,就是用Jetson AI Lab为大家创建好的镜像文件来执行,会非常顺利并且高效。只要执行以下指令即可:
$ jetson-containers run $(autotag ollama)
下面是执行的结果。
现在已经进入Ollam容器内,接下去可以用“ollama run <模型>”来执行。我们可以在https://ollama.com/library里找到Ollama团队挑选的大语言模型列表,我们可以根据“Featured(特色)”、“Most Popular(普及度)”、“Newest(最新的)”去进行排序。
每种模型可能还有不同的版本,例如Llama3是目前的主流版本,这里收录了8B、70B兩种参数规模的优化版本。
现在,请在容器内命令终端里输入以下指令:
$ ollama run llama3
模型后面没有跟随版本号(如“:70B”)的话,默认执行“latest”版本。如果在模型库中没有找到对应的版本时,就会从Ollama服务器上下载到本地来执行。如下图:
这对新手来说是最简便的方法,完全不用去HuggingFace上面翻找,除非你清楚要用的模型在Ollama支持列表中找不到,那就得通过Ollama提供的方法将指定模型导入进来也可以,并不是太难。
現在已經進入“交互式指令”模式,我們可以開輸入提示詞,例如“Please instroduce yourself”,與Llama3模型進行對話
接着可以再試試用中文提示詞提問,如下圖:
這時Llama3用我們所要求的語言種類進系迴應,下面還附帶着英語的原文,前後還各帶一個笑臉符號,可以感受到一點人性的氣息。
接着我再問一個所有華人都很清楚的“12生肖”問題,得到的答覆如下:
這裏的答案雖然並不完全正確,但是12個生肖裏面也中了11個(英文部分),除了重複兩次monkey與缺少rabbit之外,其餘10個都能完全對上,這對於一個國外訓練的大語言模型來說,還是很厲害的。
其餘語言類的模型,請參考https://ollama.com/library/裏所列的模型,自行進行體驗即可,沒有什麼難度。
在Ollama支持列表中,可以看到有5個支持“視覺(visio)”的模型,是否表示我們可以用Ollama來讀取圖片,並且分析圖片的內容呢?
答案是可以的!我們直接嘗試一個支持多模態的llava模型,並使用下面指令,用它來分析一張與水果相關的圖篇,請llava用中文描述以下圖片的內容:
$ ollama run llava '請用繁體中文描述一下 fruit.jpg 的內容'
這裏的 fruit.jpg 是我們先複製到容器裏的一張圖片,其內容如下。我們看看llava模型的回答,雖然很簡單,但是也很正確,挑不出什麼毛病,因爲我們給的提示詞也很簡單。
大語言模型所回覆的答案,與我們所提供的問題有很大關聯。例如我們想問大模型“在圖片中有多少個蘋果?”
下面是不同提示詞所得到不同答案的範例。
Ollama還提供Python、JavaScript等語言的接口,我們可以很輕鬆地使用這些語言撰寫調用Ollama執行的大語言模型,請參考https://ollama.com/blog/vision-models裏面所提供的一些範例代碼。
最新活动: