前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >在Jetson上玩转大模型Day7:執行RAG功能的Jetson Copilot

在Jetson上玩转大模型Day7:執行RAG功能的Jetson Copilot

原创
作者头像
GPUS Lady
发布2024-10-29 21:56:33
890
发布2024-10-29 21:56:33
举报
文章被收录于专栏:AIOT

在前面的大語言模型測試過程,一定會發現這些智能助手都存在一些“胡言亂語”、“答非所問”之類的狀況,其實可以將它視爲“不瞭解邊界”的小孩童一樣,因爲所有人工智能模型,都是再它的知識庫中,尋找“機率最高”的答案,很有可能這個答案的正確率還不到5%,但它不能回答“不知道”,必須找到一組以上的回覆(response),即便其正確率並不高。

爲了要協助處理這種現象,目前最流行的方法就是使用俗稱“檢索增強生成”的RAG(Retrieval-Augmented Generation)技術,爲手上的大語言模型助手提供補強或微調的功能。

NVIDIA在https://github.com/NVIDIA-AI-IOT/jetson-copilot/ 開源一個的Jetson Copilot項目,還是在Ollam大模型管理器之上,結合以下兩個應用功能所組成:

  • LlamaIndex:是一个用于快速搭建大型语言模型项目的CLI工具,旨在为LlamaIndex项目提供脚手架支持,支持多种后端存储解决方案,包括本地文件系统、‌AWS S3。在這各項目中是用來实现RAG流水线。
  • Streamlit:是一个基于Python的开源框架,用于快速构建和共享漂亮的机器学习和数据科学Web应用程序。在這個項目中用來搭建交互式的Web應用。

Jetson Copilt項目的安裝十分容易,只要執行以下代碼即可:

$ git clone https://github.com/NVIDIA-AI-IOT/jetson-copilot/

$ cd jetson-copilot && ./setup_environment.sh

這裏的 setup_environment.sh 主要調試 docker 的一些環境,我們在前面的項目中已經執行過,其實可以忽略不執行。

如果想使用先前已經透過ollama管理器下載的模型資源,那麼在執行./launch_jetson_copilot.sh 腳本啓動整個 Jetson Copilot項目之前,最好先執行前面教過的啓動ollama容器的指令,如下:

$ jetson-containers run $(autotag ollama)

等到 ollama 管理器啓動之後,再開啓新的命令終端,執行以下指令:

$ cd jetson-copilot && ./launch_jetson_copilot.sh

這個腳本會爲我們配置相關的環境變量,並且下載我們所需要的 dustynv/jetson-copilot:<版本> 鏡像文件。現在我們在 JetPack 6.0版本的Jetson Orin上執行時,這個<版本>就應該是 r36.3.0。

腳本中要求jetson-copilot所創建的容器中,首先就是檢查Ollama服務是否存在?如果不存在,就會下載獨立的dustynv/ollama容器,並且重新創建一個Ollama服務,如此一來,前面透過ollama pull所下載過的模型,就全部都用不上了,需要重新再下載一次,非常耗時費力。因此我們在前面提過,最好先啓動ollama服務器,這樣就能節省很多不必要的浪費,並且體現出兩種功能的結合。

這個腳本的最後會啓動 streamlit_app/app.py程序,裏面預設使用llama3大語言模型與mxbai-embed-large嵌入模型,啓動過程中如果發現缺少這些模型,就會直接啓動模型下載程序(如下圖)去下載缺少的元件,自動化程度相當高。

一切就緒之後,就會自動啓動瀏覽器,並跳出下面的操作畫面:

這時在命令框中會看到以下的信息:

表示我們在其他機器上,也能輸入<IP_OF_JETSON_COPILOT>:8501來使用這項應用。這裏可以非常輕易地切換Ollama已下載的模型,也可以點擊“Download a new LLM”選項去下載新的模型,請大家自行嘗試。

這裏的重點在於創建RAG應用,因此基礎的大模型對話就不多做嘗試。我們打開左邊“Use RAG”選項,就會看到其下方出現如下圖左邊的內容:

右圖是在jetson-copilot下的兩個對應文件目錄位置:

  • Documents(右邊):需要添加原始文件的地方;
  • Index(左邊):生成RAG Index的地方。

當我們點選“+Build a new index”時,就會進入下面畫面:

此時我們在“Local documents”那邊怎麼點擊也都沒有反應,因爲我們還沒有在Documents裏添加新的文件。現在我們在Documents裏新建langchain目錄,並且在下面添加7個pdf文件,然後按F5刷新頁面,就會看到如下內容:

這時再點擊“Local Documents”就有反應了。在這下面還有個可以輸入URL的框,每個URL用一行:

然後選擇左邊要使用的模型,這裏預設用mxbai-embed-large,在最上面給一個Index名稱,最後點擊最下面的“Build Index”,系統就會爲langchain建立RAG Index文件。

現在回到主畫面中,現在看看Index下面所出現的選項,與jetson-copilot下面的Index與Documents目錄中的內容比對一下,這樣就能掌握添加Index的方法。

選擇一個Index之後,再與智能助手進行互動,相信會有所不同的。至於使用RAG功能前後的差異,在這裏就不多贅述,由自己親手去體驗會更加有感覺。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
相关产品与服务
容器服务
腾讯云容器服务(Tencent Kubernetes Engine, TKE)基于原生 kubernetes 提供以容器为核心的、高度可扩展的高性能容器管理服务,覆盖 Serverless、边缘计算、分布式云等多种业务部署场景,业内首创单个集群兼容多种计算节点的容器资源管理模式。同时产品作为云原生 Finops 领先布道者,主导开源项目Crane,全面助力客户实现资源优化、成本控制。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档