記一次關于人工智能應用方向的面試以及帶來的思考 原創
“ 大模型的應用方向有多種,每種都有不同的技術 ”
昨天在招聘網站上預約了一個人工智能應用開發的面試,在面試的過程中對大模型應用產生了一些討論,以及帶來了一些思考,在此做個記錄。
關于大模型應用及問題的討論
以下所有內容,在不特殊說明的情況下,問——指的是面試官,答——指的是我自己。
問:關于大模型訓練與微調,即怎么訓練或微調一個大模型?
答:從技術的角度來說,模型的訓練和微調沒有本質的區別,目的都是對模型參數進行調整;只不過模型訓練是從一個隨機初始化的模型開始,而微調是基于一個經過預訓練的模型,對部分或全部參數進行凍結,只調整部分參數的過程。微調方法也有多種,如全量微調和高效微調,如lora等。
訓練和微調的過程也基本相似,都需要進行數據收集,清洗;然后通過正向傳播,損失計算和反向傳播的方式對模型參數進行調整;只不過微調有一個參數凍結的過程。
不論是訓練還是微調,目的都是為了讓大模型表現的更好。
問:百度的文心一言和阿里的通義千問有什么區別?
答:這個問題還真不清楚,只是在網上看到說文心一言和通義千問在不同的任務表現上有所不同。
問:你說你熟悉RAG,那你知道RAG是解決什么問題的嗎?其過程是什么樣的?會有哪些問題?
答:回答基本上和昨天發布的大模型知識庫搭建相同,RAG——檢索增強生成,是通過外掛知識庫的方式,每次用戶提問時先從向量數據庫中根據語義查詢相似文檔,然后通過提示詞的方式一起提交給大模型,主要用來解決三個問題,大模型的知識限制,一是時間限制,二是垂直領域限制,以及大模型的幻覺問題。
然后,打造知識庫需要經過文檔加載(包括多種類型的文檔),文檔拆分,向量化,存儲等。
問:你說RAG能解決大模型的幻覺問題,那么大模型產生幻覺的根本原因是什么?
答:大模型產生幻覺的主要原因是因為知識不足,或者說大模型以上三個問題都是因為知識不足的問題。
問:如果大模型的幻覺問題是因為知識不足,那么為什么提供很高質量的知識庫依然無法完全避免幻覺問題?
答:知識庫只能在某種程度上解決幻覺問題,并不能完全解決幻覺問題,幻覺問題并不全是由知識不足引起的。
問:你知道大模型的實現原理嗎?什么是多層神經網絡?
答:多層神經網絡是指除了輸入層和輸出層之外,中間還有n層網絡的模型,不同層之間使用全連接或半連接的方向進行通訊。(事實上神經網絡有四種連接方式,全連接神經網絡,前饋神經網絡,卷積網絡和循環網絡)
問:你是因為什么原因學習人工智能的?為什么平常不花時間學習大模型的技術原理? 大模型的推理過程是基于預測實現的,而預測是根據概率去生成內容。因此,大模型產生幻覺的根本原因是其實現機制,建立于概率統計之上的預測模型。所以,大模型的幻覺問題是概率問題。
答:(內心一驚,對呀大模型是基于概率統計的,怎么把這個給忘了) 概率問題只是大模型產生幻覺的原因之一,而知識庫能大大減少大模型產生幻覺。(事實上,大模型產生幻覺的原因有多種比如訓練和微調數據的質量,欠擬合,過擬合,大模型的結構設計問題,知識不足問題等都可能引發大模型幻覺)
引發的問題和思考:如果說大模型幻覺產生的本質原因是其自身的天生缺陷(概率),那么大模型的幻覺問題是否就無法完全解決?畢竟概率從來沒有百分之百。是否只能通過其它手段,無限逼近零幻覺?
因此,要想解決大模型的幻覺問題,是否需要從根本上推翻基于概率統計的大模型?使用其它新的方式來構建大模型?
目前業界對大模型幻覺問題的主要態度好像是盡量減少大模型發生幻覺的可能性,雖然openAI的CEO奧特曼說要解決幻覺問題,但具體結果目前還不曉得。
問:你說你java和python都做是吧?那你是擅長java,還是python? 我們這里缺的主要是java
答:現在搞人工智能不都是用python嗎?怎么還用java?
問:誰跟你說的搞人工智能都是用python,很多搞大模型的用的都是java還有go
答:現在人工智能的主流開發語言就是python啊,并不是說其它語言不能搞,但主要都是用python搞。
問:你還有什么問題嗎?
答:你們這個項目是做什么的?需要用agent嗎?
問:我們這個項目主要是調用第三方模型來生成一些內容,比如輸入一些文字,根據文字給你生成圖片或視頻,甚至是同時生成圖片和視頻等。agent也會用,但不是很多。
答:(內心os 原來是做AIGC內容生成方向的),agent不是現在的主流應用方向嗎?
問:誰跟你說的,agent是主流方向?我們搞的是調用第三方模型生成內容,文字,圖片和視頻;知道Copilot嗎?
答:網上都是這么說的啊,agent是實現通用人工智能的方向。Copilot是微軟推出的一款人工智能助手。
問:你是因為在研究agent才會覺得agent是主流方向,python也是,你是因為主要學習python所以才覺得搞人工智能都是用的python。
這里兩個人已經聊的有點叉劈了,當時自己還沒反應過來,總覺得兩個人的觀念有沖突。
其實,AIGC和Agent是兩個不同的角度,AIGC是純粹的基于人工智能技術構建的應用,其主要偏向應用,使用的是大模型天生的生成能力;而Agent雖然也是一個應用方向,但其更偏向于一個技術,其功能就是擴展大模型的能力,讓它能夠調用外部工具。兩者的維度不同,兩者并不沖突,甚至是相輔相成。
答:你們的產品是2B還是2C的,是面向pc端,還是移動端?業務方向是什么?比如2B領域的網絡營銷推廣(用他們的平臺生成推廣文案,視頻等),還是針對個人的文案生成,視頻處理等?
問:我們先做2C,后續會平臺化,拓展2B的業務;支持多端平臺,如app,小程序,h5等;2C主要面向個人創作者,泛C端用戶,后續會根據運營情況,挖掘垂直場景。
答:針對某些領域內容生成質量問題怎么解決?
問:這個問題太空了,那個領域會有什么問題,再談解決
答:比如我是做漢服的,然后想使用你們平臺做一個宣傳推廣的視頻,根據文字描述,比如生成一個古裝俠客,在竹林中打斗的片段,重點突出穿的衣服。
問:文生視頻只是其中一種,diffusion可以使用lora控制風格化輸出
答:對的,我就是說這種場景,不論是生成視頻,圖片,文字;三方模型并沒有在這些領域做過優化,就會導致生成的內容不僅人意,產生問題。而且微調成本也挺高的。
問:微調成本其實不高,主語看場景復雜度,以及用戶預期
答:但是每一種場景都需要進行微調才行,這樣場景多了成本就高了。
因為在此之前一直沒怎么關注AIGC ,問這個問題的主要目的是為了弄明白,在AIGC領域多種復雜場景問題是怎么解決的。怎么控制成本問題。
內心OS: 原來AIGC還可以這樣玩,之前太膚淺了。
經過這次面試,對大模型又有了更加深刻的認識,對知識庫,大模型幻覺,AIGC,以及大模型的產品化都有了更進一步的認識和體會。
本文轉載自公眾號AI探索時代 作者:DFires
原文鏈接:????https://mp.weixin.qq.com/s/nDz849j261JSiGsEffTsiQ???
