intel-analytics / ipex-llm

Accelerate local LLM inference and finetuning (LLaMA, Mistral, ChatGLM, Qwen, Mixtral, Gemma, Phi, MiniCPM, Qwen-VL, MiniCPM-V, etc.) on Intel XPU (e.g., local PC with iGPU and NPU, discrete GPU such as Arc, Flex and Max); seamlessly integrate with llama.cpp, Ollama, HuggingFace, LangChain, LlamaIndex, vLLM, GraphRAG, DeepSpeed, Axolotl, etc
Apache License 2.0
6.75k stars 1.27k forks source link

Qwen issues with >2K input token size on MTL #10073

Open juan-OY opened 10 months ago

juan-OY commented 10 months ago

Qwen model FP32-INT4 precsion inference, input token size 2500 there are 2 issues found 1) Output tokens repeats 2) Reports Native API failed when running the same command in 2nd round

Platform: MTL Core Ultra U7, windows OS, bigdl 20240124

$llmsd_env\python.exe benchmark.py -m ./models/Qwen-7B-Chat-int4 --input-prompt ./models/prompt/4096xft.txt -i 2500 -o 512 C:\Program Files\AIGC Assistant\resources\audiollm\llmsd_env\lib\site-packages\torchvision\io\image.py:13: UserWarning: Failed to load image Python extension: ''If you don't plan on using image functionality from torchvision.io, you can ignore this warning. Otherwise, there might be something wrong with your environment. Did you have libjpeg or libpng installed before building torchvision from source? warn( Origin input prompt is: 上古时,女娲娘娘炼石补天,采来三万六千五百零一块顽石,只剩下一块未用,扔在了大荒山青埂峰下。这块顽石经过娘娘锻炼,有了灵性,能变大变小,会自来自去。这天,一个和尚与一个道士来到青埂峰下,见这块石头洁净晶莹,只 有折扇的扇坠般大小。和尚把他托在手上,说:“在你身上刻上几个字,让人们见了就知道你是个宝贝,把你带到繁荣昌盛的国家、读书识礼的豪门望族、花柳繁华富贵温柔的地方走一趟。”石头高兴万分,问:“不知刻什么字?带到哪儿?”和尚笑着说:“你先别问。将来自然明白。”说完,他把石头放在袖中,与道士飘然离去。又不知过了多少万年,有个空空道人路过大荒山无稽崖青埂峰下,见到一块巨石,上面刻着许多字,就从头到尾看了一遍。原来石上刻的是他被茫茫大士携入红尘,投胎人世间的一番经历。上面什么事情都有,只是没有朝代年月,后面还有一首诗:\n无才可去补苍天,枉入红尘若许年。\n此系身前身后事,倩谁记去作奇传?\n空空道人就把石中文字抄下来,定名为《石头记》。他因受了石上故事的影响,就改名为情僧,把《石头记》改为《情僧录》。山东的孔梅溪题为《*》。后来,曹雪芹于悼红轩中,披阅十载,增删五次,编纂成目录,分出章回,又题名为《金陵十二钗》,并题一首绝句:\n满纸荒唐言,一把辛酸泪!\n都云作者痴,谁解其中味?\n那块石头上记录的文字是这样的:\n苏州城的阊门,是人间最繁华风流的地方。阊门外有个十里街,街上有条仁清巷,巷里有座葫芦庙,庙旁住着一家官人,姓甄名费字士隐,娶妻封氏,性情贤淑。家中虽不是多富,在这一带也是第一家。他生性恬淡,不求功名,每天观花种竹、饮酒作诗,倒也神仙般快乐。美中不足的是,老夫妻年近半 百,没有儿子,只一个女儿,名叫英莲,年方三岁。\n盛夏的一天,士隐在书房读书读累了,伏到几案上,矇矇眬眬地来到一个地方,就见来了一个和尚、一个道人。道人问:“你要把这蠢物带到哪里?”和尚说:“如今有一段风流公案还没了结,这些风流冤家还没投 胎。趁此机会,把这石头夹带在里面,让他去经历一番。”道人问:“这些风流冤家不知起于何处?落于何方?”和尚说:“这块石头因女娲娘娘没用他,到各处游玩。这天他来到警幻仙子处,警幻仙子就命他为赤霞宫神瑛侍者。他见西方灵河岸三生石畔有绛珠仙草一株 ,非常可爱,就每天用甘露浇灌,使仙草脱了草木之胎,修成女儿体。仙草为报石头的浇灌之恩,在五脏中结成缠绵不尽的情意,常说:‘我若下世为人,要用一生的眼泪来报答他。’就因为这事,勾引出许多风流冤家都要下凡。我们可把这石头带到警幻仙子那里, 给他挂了号,同这些情鬼下凡,了结此案。”道士说:“果然好笑,我还从未听说还泪报恩的事。你我何不趁此机会也下世度脱几个,岂不是一场功德?”\n甄士隐听到这种稀罕事,忙上前施礼,想打听明白。二仙却笑着说:“这是天机,不可泄露。”士隐一再追问,“蠢物”是什么。和尚递过一块晶莹的美玉,他接过一看,正面刻着“通灵宝玉”四个字,背面还刻着几行小字,正想细看,和尚说:“已到幻境。”就把玉夺回,与道人进入一个石牌坊。牌坊上刻“太虚幻境”,两旁是一副对联:\n假作真时真亦假,无为有处有还无。\n甄士隐想跟进去,刚一抬脚,忽听山崩地裂般一声响,忽然惊醒,原来是梦,梦中的事已忘了一半。他见乳母抱着英莲走来,伸手接过来,抱到门口看热闹。突然,街上过来一个和尚、一个道士,蓬着头,赤着脚,疯疯癫癫地说笑着走过来。和尚见他抱着女儿,就大哭 起来,说:“施主,你抱着这个有命无运的东西干什么?”道士说:“舍给我吧。”士隐不耐烦,转身进门,和尚大笑着念了四句诗:\n惯养娇生笑你痴,菱花空对雪澌澌。\n好防佳节元宵后,便是烟消火灭时。\n士隐心中一动,正想问他们来历,二人已不见了踪影。这时,葫芦庙里寄住的一个穷儒走过来。他姓贾名化,字时飞,别号雨村,湖州人士,出身诗书官宦人家。到他父亲时,家中已经衰败,只剩孤身一人,往京城求取功名,滞留苏州,寄住庙中,靠卖字为生。他施礼笑问:“老先生莫非见了什么新闻?”士隐说:“不是。 刚才小女啼哭,抱她出来玩耍。贾兄来得正好,请到小斋中闲聊,消磨时光。”说着,让家人送女儿进去,与贾雨村来到书房,刚喝口茶,没谈几句话,家人来报:“严老爷来访。”士隐向雨村道了歉,忙去前厅。\n雨村独自无聊,信手翻看了几页书,打听到士隐留客人吃饭,就向小童打个招呼,从后门走了。\n转眼到了中秋节,雨村想到客居他乡,不能施展平生抱负,仰天长叹,高声吟出一联:\n玉在匮中求善价,钗于奁内待时飞。\n士隐在书房备了一席酒,来请雨村,恰巧听到,笑着说:“雨村兄的抱负不凡!”雨村忙说:“ 不敢!不过偶吟前人诗句,承蒙过奖。”士隐说:“今夜是团圆节,尊兄寄宿庙中,难免寂寞,请兄到敝斋小酌。”雨村也不推辞,与士隐同到甄家书房。二人落座,先是细斟慢饮,渐渐谈至兴浓,就换上大杯喝起来。雨村乘着酒兴,说出远大抱负,哀叹只因无钱,不 能进京求功名。士隐当即命小童封五十两银子,取两套棉衣,资助他进京赴试。雨村谢了,二人直饮到三更方散。士隐直睡到日上三竿才醒,想起该给雨村写封书信,到京城也好投个官宦人家权且安身,便让小童去请雨村。小童回来说:“和尚说,贾爷五更已进京去了,留下话让和尚转达对甄爷的敬意。”士隐也就作罢。\n光阴迅速,转眼又是元宵节。晚上,士隐让家人霍启抱英莲去看花灯。霍启要解小便,把英莲放在一家门槛上坐着,回来时不见了小姐,急得寻了半夜,不见影踪,吓得逃往外乡。士隐夫妇忙差人四下寻找,没有一点儿音讯。老夫妻几乎哭死,相继患病,卧床不起。三月十五日,葫芦庙的和尚炸祭神的供品,不小心泼了油锅,引起大火,把一条街烧得火焰山一般。甄家首当其冲,烧成一堆碎砖烂瓦,万幸老夫妇和家人都逃得性命,士隐夫妇就住到乡下田庄上。偏偏这 年闹灾荒,盗贼蜂起,田庄也难安身,士隐只得把田地变卖了,带上两个丫鬟,投奔岳父家去。\n\n他岳父名叫封肃。士隐把银子交给他,托他代买些房产土地。这老儿竟从中克扣许多,只给女婿些薄地破屋。士隐是读书人,不懂庄稼生理,过不上一二年,越来越 穷。封肃就人前人后说他好吃懒做,不会过日子。士隐贫病交加,渐渐不想活了。这天,他拄着拐杖到街上散心,忽见一个跛道人,脚蹬烂草鞋,身穿破道袍,如疯如狂地唱着:\n\n世人都晓神仙好,惟有功名忘不了!\n\n古今将相今何在?荒冢一堆草没了。\n\n世 人都晓神仙好,只有金银忘不了!\n\n终朝只恨聚无多,及到多时眼闭了。\n\n世人都晓神仙好,只有娇妻忘不了!\n\n君生日日说恩情,君死又随人去了。\n\n世人都晓神仙好,只有儿孙忘不了!\n\n痴心父母古来多,孝顺子孙谁见了?\n\n士隐迎上去问:“你说些什么,只听见‘好了,好了’?”道人笑着说:“你能听到‘好了’二字,还算你明白。世上万般事,好就是了,了就是好。要不了,就不好;想要好,就是了。我这歌儿就叫《好了歌》。”士隐已大彻大悟,说:“我把你这《好了歌》注解出来怎样?”道人笑着说:“你就解解 看。”士隐说:\n\n陋室空堂,当年笏满床。衰草枯杨,曾为歌舞场。蛛丝儿结满雕梁,绿纱今又在蓬窗上。说什么脂正浓,粉正香,如何两鬓又成霜?昨日黄土陇头埋白骨,今宵红绡帐底卧鸳鸯。金满箱,银满箱,转眼乞丐人皆谤。正叹他人命不长,哪知自己归来 丧?训有方,保不定日后作强梁。挥膏粱,谁承望流落在烟花巷!因嫌纱帽小,致使锁枷扛。昨怜破袄寒,今嫌紫蟒长。乱哄哄,你方唱罢我登场,反认他乡是故乡。甚荒唐,到头来都是为他人做嫁衣裳。\n\n道人拍掌大笑,说:“解得贴切!”士隐说声“走吧”,也不回家,与道人飘然而去。众街坊把这事当成新闻传说。封氏得知,哭得死去活来,让她父亲派人寻找,却没有音讯。到了这一步,封肃也只好让女儿跟他度日。\n\n这天,甄家的丫鬟在门前买线,只见新任的县官路过。她抬头看去,大轿内的太爷有些面熟,却又想不 起在哪儿见过,就转身进门,也没放在心上。待到晚上睡下,忽听一片打门声响,许多人乱嚷:“本县太爷的差人来传人问话。”封肃吃了一惊,忙开门出来,赔笑问有什么事。那些人只说:“快请甄爷来!”封肃说:“小人姓封,只是小婿姓甄,已出家一二年了。”公差说:“我们也不知什么‘真’‘假’,既是你女婿,你去跟太爷说。”封肃跟公差去了,直到二更才回来,说:“原来新任太爷姓贾名化,跟女婿是旧交。他从门前路过,见娇杏丫头买线,以为女婿也在这里,所以派人来传。我把缘故说明,那太爷叹息一阵,要派人去找英莲,临走还送我二两银子。”\n\n次日一早,雨村派人送来两封银子、四匹锦缎,答谢甄家娘子;又送封肃一封书信,托他向甄家娘子讨娇杏当二房。封肃正想讨好太爷,乐得眉开眼笑,一力撺掇女儿,当夜就用一乘小轿把娇杏送到县衙门。雨村欢喜万分,封了百两银子赏给封肃,又送甄家娘子许多礼物,让她自己过日子。\n\n原来,那年雨村得士隐赠银相助,次日就赶往京城,三篇文章,十分得意,中了进士,当了县太爷。他虽有才干,但依仗才能,怠慢上司,不久被参了一本,革去职务。他把家眷与积蓄送回故乡安顿好 ,就独自出来,游览天下名胜。这天他来到扬州,病倒在客店里,病愈后断了盘缠。幸遇两个旧友,把他荐给盐政林如海,当了林家小姐的老师。\n\n林如海名叫林海,字如海,本是前科的探花,苏州人氏。他祖上也曾为侯,世袭到他父亲,他便由科举出身。他年 已四十,仅正妻贾氏生有一女,乳名黛玉,年方五岁,夫妻俩爱如掌上明珠,所以尽管是女儿,也当成儿子养,请来先生教她读书。黛玉年幼,身体又弱,功课不限多少,所以雨村教起来格外省力。过了一年多,贾氏夫人忽然患病身亡。黛玉侍奉母亲,守礼尽孝, 大病一场。雨村无事,每当天气晴朗,就到外面游玩。这天他来到郊外,见一山环水绕处,有座破落的庙宇,匾额上题“智通寺”,门两旁的对联为:\n\n身后有余忘缩手,眼前无路想回头。\n\n雨村暗想,从这对联上看,庙里的和尚也曾在官场中栽过筋斗。他来到 一家村酒店,想喝上几杯,却有一位酒客站起来,大笑着迎他进来。他认出那人是京城里古董行的贸易冷子兴,在京城时二人非常投机。雨村与他见了礼,要上酒菜,互相说了些客气话,才问:“近来京中有什么新闻?”子兴说:“倒是老先生贵同宗家出了件小小的稀 罕事。”雨村说:“弟族中无人在京。”子兴说:“荣国府不也姓贾?”“原来是他家。若考证起来,我和荣国府还是一支。但他那么荣耀,我们不便去认亲,倒越来越疏远了。”\n\n子兴叹道:“当年宁国公是一母同胞弟兄两个,宁公是老大,生了四个儿子。宁公死后,长子贾代化继承了官爵,他也生了两个儿子,长子贾敷,八九岁上死了,次子贾敬继承了官爵。贾敬一心想成仙,幸亏早年生有一子名贾珍,把官爵让贾珍袭了,只是跟道士们鬼混。贾珍也生有一子,名叫贾蓉,今年才十六岁。因为敬老爷什么事都不管,这贾珍父子 只知玩乐,把宁国府闹得翻了过来。那奇事出在荣府里。荣公死后,长子贾代善袭了官爵,娶的是金陵世家史侯爷小姐为妻,生了两个儿子,长名贾赦,次名贾政。代善早已去世,老太君还健在。贾赦承袭了官爵,也不管家事。贾政自幼酷爱读书,为人端方正直。 皇上因体谅先臣,额外赐政老爷工部主事之职,如今升了员外郎。这政老爷的夫人王氏,头胎生的公子名叫贾珠,十四岁考上秀才,不到二十岁娶了妻,生了一子,一病死了。第二胎生了位小姐,就生在大年初一。不料后来又生了一位公子,说来更奇,一生下来, 嘴里就衔着一块五彩晶莹的玉来,上面还刻下了许多字,你说奇异不奇异?”\n\n雨村笑着说:“果然奇异。只怕是他来历不小。”子兴冷笑着说:“大家都这样说,因此他祖母爱如珍宝。他周岁时, 2024-02-01 19:28:04,717 - bigdl.llm.transformers.utils - INFO - Converting the current model to sym_int4 format...... finish to load finish to xpu Using pad_token, but it is not set yet. Round 1 output: 道人一同离了苏州,不知所往。甄士隐回到乡下,不久就病死了。甄家从此一蹶不振,家道中落。甄英莲被拐卖到冯渊家,冯渊爱她如宝,收她为妾。冯渊被薛蟠打死,英莲落入薛蟠手中。薛蟠把她送给薛姨妈做丫鬟,取名香菱。香菱聪明伶俐, 学诗学画,深得薛姨妈喜爱。甄士隐的女儿英莲,就是香菱。甄士隐的夫人封氏,就是薛姨妈。甄士隐的岳父封肃,就是薛蟠的父亲。甄士隐的仆人霍启,就是霍启。甄士隐的邻居和尚和道士,就是和尚和道士。甄士隐的邻居和尚和道士,就是和尚和道士。甄士隐 的邻居和尚和道士,就是和尚和道士。甄士隐的邻居和尚和道士,就是和尚和道士。甄士隐的邻居和尚和道士,就是和尚和道士。甄士隐的邻居和尚和道士,就是和尚和道士。甄士隐的邻居和尚和道士,就是和尚和道士。甄士隐的邻居和尚和道士,就是和尚和道士 。甄士隐的邻居和尚和道士,就是和尚和道士。甄士隐的邻居和尚和道士,就是和尚和道士。甄士隐的邻居和尚和道士,就是和尚和道士。甄士隐的邻居和尚和道士,就是和尚和道士。甄士隐的邻居和尚和道士,就是和尚和道士。甄士隐的邻居和尚和道士,就是和 尚和道士。甄士隐的邻居和尚和道士,就是和尚和道士。甄士隐的邻居和尚和道士,就是和尚和道士。甄士隐的邻居和尚和道士,就是和尚和道士。甄士隐的邻居和尚和道士,就是和尚和道士。甄士隐的邻居和尚和道士,就是和尚和道士。甄士隐的邻居和尚和道士 ,就是和尚和道士。甄士隐的邻居和尚和道士,就是和尚和道士。甄士隐的邻居和尚和道士,就是和尚和道士。甄士隐的邻居和尚和道士,就是和尚和道士。甄士隐的邻居和尚和道士,就是和尚和道士。甄士隐的邻居和尚和道士,就是和尚和道士。甄士隐的 Round 1 token count input: 2500 Round 1 token count output: 512 Round 1 time cost(s): 80.25508856773376 Round 1 First token latency(ms): 19303.25746536255 Round 1 After token latency(ms/token): 119.27951291815738 GPU 12314.0 Using pad_token, but it is not set yet. Exception in thread Thread-2 (generate): Traceback (most recent call last): File "C:\Program Files\AIGC Assistant\resources\audiollm\llmsd_env\lib\threading.py", line 1016, in _bootstrap_inner self.run() File "C:\Program Files\AIGC Assistant\resources\audiollm\llmsd_env\lib\threading.py", line 953, in run self._target(*self._args, *self._kwargs) File "C:\Users\SEAVO/.cache\huggingface\modules\transformers_modules\Qwen-7B-Chat-int4\modeling_qwen.py", line 1263, in generate return super().generate( File "C:\Program Files\AIGC Assistant\resources\audiollm\llmsd_env\lib\site-packages\torch\utils_contextlib.py", line 115, in decorate_context return func(args, **kwargs) File "C:\Program Files\AIGC Assistant\resources\audiollm\llmsd_env\lib\site-packages\transformers\generation\utils.py", line 1538, in generate return self.greedy_search( File "C:\Program Files\AIGC Assistant\resources\audiollm\llmsd_env\lib\site-packages\transformers\generation\utils.py", line 2405, in greedy_search input_ids = torch.cat([input_ids, next_tokens[:, None]], dim=-1) RuntimeError: Native API failed. Native API returns: -999 (Unknown PI error) -999 (Unknown PI error)

MeouSker77 commented 9 months ago

I have tried origin fp16 model without quantization or other optimization with this input, it also repeats outputs, so I think it's probably an issue with the model itself.

AmberXu98 commented 9 months ago

I encountered the same Native API failed problem when input token size > 2000.

hkvision commented 9 months ago

Hi @AmberXu98

Do you encounter this error Native API returns: -5 (PI_ERROR_OUT_OF_RESOURCES) meaning out of memory?

Also could you provide more information of your settings so that we can better help you detect the issue?

MeouSker77 commented 9 months ago

tried latest qwen 1.5 7b: https://huggingface.co/Qwen/Qwen1.5-7B

# -- coding:utf-8 --

import torch
import intel_extension_for_pytorch as ipex
from bigdl.llm.transformers import AutoModelForCausalLM, AutoModel
from transformers import AutoTokenizer

model_path = "<model path>"

model = AutoModelForCausalLM.from_pretrained(model_path, trust_remote_code=True, optimize_model=True,
                                             load_in_4bit=True, cpu_embedding=True).eval()
print("finish to load")

model = model.to('xpu')
print("finish to xpu")

tokenizer = AutoTokenizer.from_pretrained(model_path, trust_remote_code=True)

prompt = """上古时,女娲娘娘炼石补天,采来三万六千五百零一块顽石,只剩下一块未用,扔在了大荒山青埂峰下。这块顽石经过娘娘锻炼,有了灵性,能变大变小,会自来自去。这天,一个和尚与一个道士来到青埂峰下,见这块石头洁净晶莹,只 有折扇的扇坠般大小。和尚把他托在手上,说:“在你身上刻上几个字,让人们见了就知道你是个宝贝,把你带到繁荣昌盛的国家、读书识礼的豪门望族、花柳繁华富贵温柔的地方走一趟。”石头高兴万分,问:“不知刻什么字?带到哪儿?”和尚笑着说:“你先别问。将来自然明白。”说完,他把石头放在袖中,与道士飘然离去。又不知过了多少万年,有个空空道人路过大荒山无稽崖青埂峰下,见到一块巨石,上面刻着许多字,就从头到尾看了一遍。原来石上刻的是他被茫茫大士携入红尘,投胎人世间的一番经历。上面什么事情都有,只是没有朝代年月,后面还有一首诗:\n无才可去补苍天,枉入红尘若许年。\n此系身前身后事,倩谁记去作奇传?\n空空道人就把石中文字抄下来,定名为《石头记》。他因受了石上故事的影响,就改名为情僧,把《石头记》改为《情僧录》。山东的孔梅溪题为《*》。后来,曹雪芹于悼红轩中,披阅十载,增删五次,编纂成目录,分出章回,又题名为《金陵十二钗》,并题一首绝句:\n满纸荒唐言,一把辛酸泪!\n都云作者痴,谁解其中味?\n那块石头上记录的文字是这样的:\n苏州城的阊门,是人间最繁华风流的地方。阊门外有个十里街,街上有条仁清巷,巷里有座葫芦庙,庙旁住着一家官人,姓甄名费字士隐,娶妻封氏,性情贤淑。家中虽不是多富,在这一带也是第一家。他生性恬淡,不求功名,每天观花种竹、饮酒作诗,倒也神仙般快乐。美中不足的是,老夫妻年近半 百,没有儿子,只一个女儿,名叫英莲,年方三岁。\n盛夏的一天,士隐在书房读书读累了,伏到几案上,矇矇眬眬地来到一个地方,就见来了一个和尚、一个道人。道人问:“你要把这蠢物带到哪里?”和尚说:“如今有一段风流公案还没了结,这些风流冤家还没投 胎。趁此机会,把这石头夹带在里面,让他去经历一番。”道人问:“这些风流冤家不知起于何处?落于何方?”和尚说:“这块石头因女娲娘娘没用他,到各处游玩。这天他来到警幻仙子处,警幻仙子就命他为赤霞宫神瑛侍者。他见西方灵河岸三生石畔有绛珠仙草一株 ,非常可爱,就每天用甘露浇灌,使仙草脱了草木之胎,修成女儿体。仙草为报石头的浇灌之恩,在五脏中结成缠绵不尽的情意,常说:‘我若下世为人,要用一生的眼泪来报答他。’就因为这事,勾引出许多风流冤家都要下凡。我们可把这石头带到警幻仙子那里, 给他挂了号,同这些情鬼下凡,了结此案。”道士说:“果然好笑,我还从未听说还泪报恩的事。你我何不趁此机会也下世度脱几个,岂不是一场功德?”\n甄士隐听到这种稀罕事,忙上前施礼,想打听明白。二仙却笑着说:“这是天机,不可泄露。”士隐一再追问,“蠢物”是什么。和尚递过一块晶莹的美玉,他接过一看,正面刻着“通灵宝玉”四个字,背面还刻着几行小字,正想细看,和尚说:“已到幻境。”就把玉夺回,与道人进入一个石牌坊。牌坊上刻“太虚幻境”,两旁是一副对联:\n假作真时真亦假,无为有处有还无。\n甄士隐想跟进去,刚一抬脚,忽听山崩地裂般一声响,忽然惊醒,原来是梦,梦中的事已忘了一半。他见乳母抱着英莲走来,伸手接过来,抱到门口看热闹。突然,街上过来一个和尚、一个道士,蓬着头,赤着脚,疯疯癫癫地说笑着走过来。和尚见他抱着女儿,就大哭 起来,说:“施主,你抱着这个有命无运的东西干什么?”道士说:“舍给我吧。”士隐不耐烦,转身进门,和尚大笑着念了四句诗:\n惯养娇生笑你痴,菱花空对雪澌澌。\n好防佳节元宵后,便是烟消火灭时。\n士隐心中一动,正想问他们来历,二人已不见了踪影。这时,葫芦庙里寄住的一个穷儒走过来。他姓贾名化,字时飞,别号雨村,湖州人士,出身诗书官宦人家。到他父亲时,家中已经衰败,只剩孤身一人,往京城求取功名,滞留苏州,寄住庙中,靠卖字为生。他施礼笑问:“老先生莫非见了什么新闻?”士隐说:“不是。 刚才小女啼哭,抱她出来玩耍。贾兄来得正好,请到小斋中闲聊,消磨时光。”说着,让家人送女儿进去,与贾雨村来到书房,刚喝口茶,没谈几句话,家人来报:“严老爷来访。”士隐向雨村道了歉,忙去前厅。\n雨村独自无聊,信手翻看了几页书,打听到士隐留客人吃饭,就向小童打个招呼,从后门走了。\n转眼到了中秋节,雨村想到客居他乡,不能施展平生抱负,仰天长叹,高声吟出一联:\n玉在匮中求善价,钗于奁内待时飞。\n士隐在书房备了一席酒,来请雨村,恰巧听到,笑着说:“雨村兄的抱负不凡!”雨村忙说:“ 不敢!不过偶吟前人诗句,承蒙过奖。”士隐说:“今夜是团圆节,尊兄寄宿庙中,难免寂寞,请兄到敝斋小酌。”雨村也不推辞,与士隐同到甄家书房。二人落座,先是细斟慢饮,渐渐谈至兴浓,就换上大杯喝起来。雨村乘着酒兴,说出远大抱负,哀叹只因无钱,不 能进京求功名。士隐当即命小童封五十两银子,取两套棉衣,资助他进京赴试。雨村谢了,二人直饮到三更方散。士隐直睡到日上三竿才醒,想起该给雨村写封书信,到京城也好投个官宦人家权且安身,便让小童去请雨村。小童回来说:“和尚说,贾爷五更已进京去了,留下话让和尚转达对甄爷的敬意。”士隐也就作罢。\n光阴迅速,转眼又是元宵节。晚上,士隐让家人霍启抱英莲去看花灯。霍启要解小便,把英莲放在一家门槛上坐着,回来时不见了小姐,急得寻了半夜,不见影踪,吓得逃往外乡。士隐夫妇忙差人四下寻找,没有一点儿音讯。老夫妻几乎哭死,相继患病,卧床不起。三月十五日,葫芦庙的和尚炸祭神的供品,不小心泼了油锅,引起大火,把一条街烧得火焰山一般。甄家首当其冲,烧成一堆碎砖烂瓦,万幸老夫妇和家人都逃得性命,士隐夫妇就住到乡下田庄上。偏偏这 年闹灾荒,盗贼蜂起,田庄也难安身,士隐只得把田地变卖了,带上两个丫鬟,投奔岳父家去。\n\n他岳父名叫封肃。士隐把银子交给他,托他代买些房产土地。这老儿竟从中克扣许多,只给女婿些薄地破屋。士隐是读书人,不懂庄稼生理,过不上一二年,越来越 穷。封肃就人前人后说他好吃懒做,不会过日子。士隐贫病交加,渐渐不想活了。这天,他拄着拐杖到街上散心,忽见一个跛道人,脚蹬烂草鞋,身穿破道袍,如疯如狂地唱着:\n\n世人都晓神仙好,惟有功名忘不了!\n\n古今将相今何在?荒冢一堆草没了。\n\n世 人都晓神仙好,只有金银忘不了!\n\n终朝只恨聚无多,及到多时眼闭了。\n\n世人都晓神仙好,只有娇妻忘不了!\n\n君生日日说恩情,君死又随人去了。\n\n世人都晓神仙好,只有儿孙忘不了!\n\n痴心父母古来多,孝顺子孙谁见了?\n\n士隐迎上去问:“你说些什么,只听见‘好了,好了’?”道人笑着说:“你能听到‘好了’二字,还算你明白。世上万般事,好就是了,了就是好。要不了,就不好;想要好,就是了。我这歌儿就叫《好了歌》。”士隐已大彻大悟,说:“我把你这《好了歌》注解出来怎样?”道人笑着说:“你就解解 看。”士隐说:\n\n陋室空堂,当年笏满床。衰草枯杨,曾为歌舞场。蛛丝儿结满雕梁,绿纱今又在蓬窗上。说什么脂正浓,粉正香,如何两鬓又成霜?昨日黄土陇头埋白骨,今宵红绡帐底卧鸳鸯。金满箱,银满箱,转眼乞丐人皆谤。正叹他人命不长,哪知自己归来 丧?训有方,保不定日后作强梁。挥膏粱,谁承望流落在烟花巷!因嫌纱帽小,致使锁枷扛。昨怜破袄寒,今嫌紫蟒长。乱哄哄,你方唱罢我登场,反认他乡是故乡。甚荒唐,到头来都是为他人做嫁衣裳。\n\n道人拍掌大笑,说:“解得贴切!”士隐说声“走吧”,也不回家,与道人飘然而去。众街坊把这事当成新闻传说。封氏得知,哭得死去活来,让她父亲派人寻找,却没有音讯。到了这一步,封肃也只好让女儿跟他度日。\n\n这天,甄家的丫鬟在门前买线,只见新任的县官路过。她抬头看去,大轿内的太爷有些面熟,却又想不 起在哪儿见过,就转身进门,也没放在心上。待到晚上睡下,忽听一片打门声响,许多人乱嚷:“本县太爷的差人来传人问话。”封肃吃了一惊,忙开门出来,赔笑问有什么事。那些人只说:“快请甄爷来!”封肃说:“小人姓封,只是小婿姓甄,已出家一二年了。”公差说:“我们也不知什么‘真’‘假’,既是你女婿,你去跟太爷说。”封肃跟公差去了,直到二更才回来,说:“原来新任太爷姓贾名化,跟女婿是旧交。他从门前路过,见娇杏丫头买线,以为女婿也在这里,所以派人来传。我把缘故说明,那太爷叹息一阵,要派人去找英莲,临走还送我二两银子。”\n\n次日一早,雨村派人送来两封银子、四匹锦缎,答谢甄家娘子;又送封肃一封书信,托他向甄家娘子讨娇杏当二房。封肃正想讨好太爷,乐得眉开眼笑,一力撺掇女儿,当夜就用一乘小轿把娇杏送到县衙门。雨村欢喜万分,封了百两银子赏给封肃,又送甄家娘子许多礼物,让她自己过日子。\n\n原来,那年雨村得士隐赠银相助,次日就赶往京城,三篇文章,十分得意,中了进士,当了县太爷。他虽有才干,但依仗才能,怠慢上司,不久被参了一本,革去职务。他把家眷与积蓄送回故乡安顿好 ,就独自出来,游览天下名胜。这天他来到扬州,病倒在客店里,病愈后断了盘缠。幸遇两个旧友,把他荐给盐政林如海,当了林家小姐的老师。\n\n林如海名叫林海,字如海,本是前科的探花,苏州人氏。他祖上也曾为侯,世袭到他父亲,他便由科举出身。他年 已四十,仅正妻贾氏生有一女,乳名黛玉,年方五岁,夫妻俩爱如掌上明珠,所以尽管是女儿,也当成儿子养,请来先生教她读书。黛玉年幼,身体又弱,功课不限多少,所以雨村教起来格外省力。过了一年多,贾氏夫人忽然患病身亡。黛玉侍奉母亲,守礼尽孝, 大病一场。雨村无事,每当天气晴朗,就到外面游玩。这天他来到郊外,见一山环水绕处,有座破落的庙宇,匾额上题“智通寺”,门两旁的对联为:\n\n身后有余忘缩手,眼前无路想回头。\n\n雨村暗想,从这对联上看,庙里的和尚也曾在官场中栽过筋斗。他来到 一家村酒店,想喝上几杯,却有一位酒客站起来,大笑着迎他进来。他认出那人是京城里古董行的贸易冷子兴,在京城时二人非常投机。雨村与他见了礼,要上酒菜,互相说了些客气话,才问:“近来京中有什么新闻?”子兴说:“倒是老先生贵同宗家出了件小小的稀 罕事。”雨村说:“弟族中无人在京。”子兴说:“荣国府不也姓贾?”“原来是他家。若考证起来,我和荣国府还是一支。但他那么荣耀,我们不便去认亲,倒越来越疏远了。”\n\n子兴叹道:“当年宁国公是一母同胞弟兄两个,宁公是老大,生了四个儿子。宁公死后,长子贾代化继承了官爵,他也生了两个儿子,长子贾敷,八九岁上死了,次子贾敬继承了官爵。贾敬一心想成仙,幸亏早年生有一子名贾珍,把官爵让贾珍袭了,只是跟道士们鬼混。贾珍也生有一子,名叫贾蓉,今年才十六岁。因为敬老爷什么事都不管,这贾珍父子 只知玩乐,把宁国府闹得翻了过来。那奇事出在荣府里。荣公死后,长子贾代善袭了官爵,娶的是金陵世家史侯爷小姐为妻,生了两个儿子,长名贾赦,次名贾政。代善早已去世,老太君还健在。贾赦承袭了官爵,也不管家事。贾政自幼酷爱读书,为人端方正直。 皇上因体谅先臣,额外赐政老爷工部主事之职,如今升了员外郎。这政老爷的夫人王氏,头胎生的公子名叫贾珠,十四岁考上秀才,不到二十岁娶了妻,生了一子,一病死了。第二胎生了位小姐,就生在大年初一。不料后来又生了一位公子,说来更奇,一生下来, 嘴里就衔着一块五彩晶莹的玉来,上面还刻下了许多字,你说奇异不奇异?”\n\n雨村笑着说:“果然奇异。只怕是他来历不小。”子兴冷笑着说:“大家都这样说,因此他祖母爱如珍宝。他周岁时,"""

input_ids = tokenizer.encode(prompt, return_tensors="pt").to('xpu')

print(f'input length: {len(input_ids[0])}')

with torch.inference_mode():
    for i in range(3):
        output = model.generate(input_ids, do_sample=False, num_beams=1, max_new_tokens=512)
        output_str = tokenizer.decode(output[0], skip_special_tokens=True)
        torch.xpu.synchronize()
        print(output_str)

it won't generate repeated content, and it won't crash in 2nd round, output may be: image

to use qwen 1.5, you must update to latest bigdl-llm and transformers 4.37

pip install --pre --upgrade bigdl-llm[xpu] -f https://developer.intel.com/ipex-whl-stable-xpu
pip install transformers==4.37.2

for more details about running qwen 1.5, see this example

MeouSker77 commented 9 months ago

I encountered the same Native API failed problem when input token size > 2000.

Native API failed -999 or -5 means out of memory in most cases, we are still optimizing memory usage.

The prompt in above code has 3770 tokens, it can run successfully on an Ultra 5 125H machine with 32GB DRAM, its igpu will use half total memory as gpu memory, which is 16GB. So if you are using an igpu with 32GB total memory or an Arc dgpu with 16GB gpu memory, then you should also be able to run 3770 input tokens successfully.

AmberXu98 commented 9 months ago

Hi @AmberXu98

Do you encounter this error Native API returns: -5 (PI_ERROR_OUT_OF_RESOURCES) meaning out of memory?

Also could you provide more information of your settings so that we can better help you detect the issue?

  • What platform are you running on and what's its memory?
  • Are you running qwen-7b int4 for bigdl-llm?

Platform: Windows OS, MTL-U, Memory 32G, CPU: 14-core,Genuine Intel® 0000, iGPU: 16G,Intel® Arc™ Graphics Model: Qwen-7B int4

Prompt: 请为以下文字润色,期望辞藻更加华丽。 人工智能(Artificial Intelligence,AI)是一种模拟人类智能的技术和系统,旨在使计算机能够像人类一样思考、学习和解决问题。 人工智能的研究领域涵盖了机器人、自然语言处理、语音识别、图像识别、智能推荐等多个方面,是当今科技领域的重要发展方向之一。 一、人工智能的发展历程 人工智能的发展历程可以分为三个阶段:符号主义、连接主义和深度学习。符号主义以知识表示和推理为基础,连接主义以神经元之间的连接为基础,深度学习则以神经网络深度为基础。人工智能的研究经历了从符号主义到连接主义再到深度学习的转变,目前深度学习已经成为人工智能领域的主流方向。 二、人工智能的应用领域 人工智能的应用领域非常广泛,包括但不限于以下几个方面: 机器人:机器人是人工智能的重要应用领域之一,包括工业机器人、服务机器人和医疗机器人等。机器人可以代替人类完成危险、高强度、重复性的工作,提高生产效率和安全性。 自然语言处理:自然语言处理是人工智能中最为重要的应用领域之一,包括语音识别、自然语言理解和生成等。自然语言处理技术可以使得计算机能够理解和回答人类的问题,进而提高信息获取和交流的效率。 图像识别:图像识别是人工智能中最为重要的应用领域之一,包括人脸识别、物体识别等。图像识别技术可以使得计算机能够识别和理解图像中的内容,进而提高安全监控、智能交通和智能家居等领域的效率和质量。 智能推荐:智能推荐是人工智能中最为重要的应用领域之一,包括电子商务、电影推荐等。智能推荐技术可以根据用户的历史行为和偏好,推荐相关的产品和服务,提高用户体验和商业效益。 自动驾驶:自动驾驶是人工智能中最为热门的应用领域之一,包括汽车自动驾驶和无人机自动驾驶等。自动驾驶技术可以提高交通的安全性和效率,减少交通事故和堵车情况。 医疗诊断:医疗诊断是人工智能中最为重要的应用领域之一,包括疾病诊断和治疗方案制定等。医疗诊断技术可以提高医疗效率和准确性,减少误诊和治疗不当的情况。 金融风控:金融风控是人工智能中最为重要的应用领域之一,包括欺诈检测、信用评估等。金融风控技术可以提高金融安全性和效率,减少欺诈和不良贷款的情况。 一、引言 随着科技的快速发展,人工智能(AI)已经从科幻概念转变为现实生活的一部分。其在各个领域的应用,如医疗、金融、交通、教育等,都为我们的生活带来了前所未有的便利。然而,如同所有新兴技术一样,人工智能也面临着许多挑战。本文旨在探讨人工智能所面临的机遇和挑战。 二、人工智能的机遇 提升生产效率:AI的应用使得生产过程得以自动化,大幅提升了生产效率。例如,在制造业中,智能化的机器人可以代替人工完成危险或者高强度的工作,减少工伤的同时,也解决了人力短缺的问题。 促进个性化服务:AI能够根据个人的兴趣和需求进行学习和优化,提供个性化的服务。比如,推荐系统根据用户的观看历史和评价,为其推荐电影和书籍;AI教育平台则可以根据学生的学习进度和理解能力,提供定制化的教学方案。 推动医疗进步:AI在医疗领域的应用,如诊断疾病、预测疾病进展以及个性化治疗等,都为医疗服务提供了新的可能性。例如,AI可以通过分析大量的医疗数据,精确地预测疾病的发病趋势,为预防性医疗提供了依据。 增强安全性:AI在许多领域的应用也提高了安全性。例如,在金融领域,AI可以检测并预防欺诈行为;在交通领域,AI可以帮助我们更好地管理和疏导交通。 三、人工智能的挑战 数据隐私和安全:随着AI应用的普及,大量的个人数据被收集和分析。这不仅涉及到隐私问题,也涉及到数据安全问题。一旦这些数据被非法获取或滥用,将会对个人和社会造成极大的危害。 劳动力市场的影响:AI的发展可能会导致一些低技能的工作被机器人替代,进而导致失业率的上升。尽管新的工作机会会被创造出来,但是需要时间,而且可能需要高技能的工作者。 AI伦理问题:随着AI的发展和应用,我们面临着许多伦理问题。例如,如果AI做出了错误的决定,责任应该由谁承担?此外,如果AI系统被用于不道德的目的,如歧视或欺诈,我们应该如何处理? 技术依赖问题:随着我们对AI的依赖程度不断增加,如果AI系统突然出现故障或被黑客攻击,我们将面临严重的问题。此外,对AI的过度依赖也可能会导致我们的思考能力下降。 法律和政策缺失:目前,对于AI的监管还存在许多法律和政策的空白。这使得AI的发展和应用存在一定的不确定性和风险。 四、结论 尽管人工智能的发展带来了许多机遇,但同时也伴随着许多挑战。我们需要采取适当的措施来应对这些挑战,以确保AI的发展和应用能够造福于人类社会。首先,我们需要重视并解决数据隐私和安全问题。这需要政府、企业和消费者共同努力,通过立法、技术手段和市场机制等手段来保护个人数据隐私和安全。其次,我们需要重视并解决劳动力市场的影响问题。这需要政府和企业提供培训和教育机会,帮助工人提升技能以适应新的工作环境。同时,我们也需要思考并解决AI伦理问题。这需要我们制定明确的道德规范和行为准则来指导AI的开发和应用。此外,我们还需要解决技术依赖问题和技术安全问题。这需要我们加强技术监管和风险评估,以确保AI系统的安全性和稳定性。最后,我们需要解决法律和政策缺失问题。这需要政府制定和完善相关法律法规和政策措施来规范和管理AI的发展和应用。 大语言模型(Large Language Model)是一种基于深度学习技术的自然语言处理模型,其特点在于模型规模大、参数量多,能够更好地理解和生成自然语言文本。大语言模型的应用范围非常广泛,包括但不限于聊天机器人、智能客服、机器翻译等领域。 一、大语言模型的发展历程 大语言模型的发展经历了多个阶段。在早期,自然语言处理模型通常采用的是基于规则和统计方法的算法,如隐马尔可夫模型(Hidden Markov Model)和最大熵模型(Maximum Entropy Model)等。这些算法通常需要手动设计特征和规则,因此难以处理复杂的自然语言现象。 随着深度学习技术的不断发展,基于神经网络的自然语言处理模型逐渐成为主流。其中,循环神经网络(Recurrent Neural Network,RNN)和长短时记忆网络(Long Short-Term Memory,LSTM)是两个代表性的模型。这些神经网络模型能够自动学习文本中的特征和规律, 从而更好地理解和生成自然语言文本。 然而,传统的神经网络模型通常采用的是手工设计的特征和结构,因此难以处理复杂的自然语言现象。为了解决这个问题,研究人员开始探索基于预训练语言模型(Pretrained Language Model)的方法。预训练语言模型是在大规模语料库上进行预训练的模型,能够自动学 习文本中的特征和规律,从而更好地理解和生成自然语言文本。 二、大语言模型的架构和工作原理 大语言模型通常采用的是基于Transformer架构的模型,如GPT系列和BERT系列等。这些模型采用了自注意力机制(Self-Attention Mechanism)和预训练技术(Pretraining),能够更好地理解和生成自然语言文本。 架构 大语言模型的架构通常包括三个部分:编码器(Encoder)、解码器(Decoder)和自注意力机制。编码器负责将输入文本转化为向量表示,解码器负责将向量表示转化为输出文本,自注意力机制则负责将输入文本中的信息传递到解码器中。 工作原理 大语言模型的工作原理可以分为三个步骤:预训练、 fine-tuning 和推理。 (1)预训练:在大规模语料库上进行预训练,让模型学习文本中的特征和规律。这个步骤通常需要大量的计算资源和时间。 (2)fine-tuning:在特定任务上进行微调,让模型适应特定任务的需求。这个步骤通常需要较少的时间和计算资源。 (3)推理:使用训练好的模型对新的输入进行预测或生成文本。这个步骤通常需要较少的计算资源和时间。 三、大语言模型的应用领域 大语言模型的应用领域非常广泛,包括但不限于以下几个方面: 聊天机器人:大语言模型可以作为聊天机器人的核心组件,能够根据用户的问题或需求生成自然语言回复,从而提高客户服务的效率和质量。 智能客服:大语言模型也可以用于智能客服系统,能够自动回答用户的问题或解决用户的问题,从而提高客户服务的效率和质量。 机器翻译:大语言模型可以用于机器翻译系统,能够将一种语言的文本自动翻译成另一种语言的文本,从而提高翻译的准确性和效率。 文本生成:大语言模型还可以用于文本生成系统,能够根据用户的需求生成自然语言的文本,如新闻报道、小说、诗歌等。 其他应用:除了上述应用领域之外,大语言模型还可以用于语音识别、智能问答、情感分析等领域。 多模态大模型(Multimodal Large Model)是一种结合了多种模态数据(如文本、图像、音频等)进行训练和应用的深度学习模型。它旨在解决多模态数据处理和分析的问题,提高不同模态数据之间的融合和理解。 一、多模态数据处理的重要性 随着数字化时代的到来,我们面临着海量的多模态数据,如文本、图像、音频、视频等。这些数据来自不同的来源和领域,包括社交媒体、医疗影像、视觉搜索、语音助手等。多模态数据处理成为了一个重要的研究领域,旨在将这些不同模态的数据进行有效的融合和处理,以获得更全面和准确的信息。 二、多模态大模型的架构和特点 多模态大模型通常采用类似Transformer的架构,包括多个编码器和解码器,以及注意力机制和跨模态交互模块。它能够将不同模态的数 据进行编码和转换,以便在不同模态之间进行信息的交互和传递。 多模态大模型的特点包括: 模型规模大:多模态大模型的参数数量通常比单模态模型要大得多,以便处理不同模态之间的复杂关系和特征。 多模态输入和输出:多模态大模型可以接受文本、图像、音频等多种模态的输入和输出,实现不同模态之间的跨域理解和生成。 跨模态交互:多模态大模型通过引入跨模态交互模块,将不同模态的数据进行融合和交互,以获得更全面和准确的信息。 预训练和微调:多模态大模型通常采用预训练和微调相结合的方法,在大量无标签的多种模态数据上进行预训练,然后在具体的任务上进行微调,以适应不同的应用场景。 三、多模态大模型的应用领域

多模态大模型在各个领域都有广泛的应用,主要包括:

视觉问答(Visual Question Answering):给定一张图像和一个问题,多模态大模型可以生成一个答案,这个答案可以是关于图像中某 个对象的详细描述,也可以是对图像中某个事件的解释等。这种应用需要模型能够理解和生成自然语言文本,同时还需要能够从图像中提取有用的信息。 图像描述(Image Captioning):给定一张图像,多模态大模型可以生成一段描述这段图像的文本。这种应用需要模型能够理解和生成自然语言文本,同时还需要能够从图像中提取有用的信息。 语音识别和生成:给定一段语音或者一段文本,多模态大模型可以将其转化为一段音频信号或者将音频信号转化为文本。这种应用需要模型能够处理音频信号和文本数据之间的转换和对应关系。 跨域推荐:给定一个用户的历史行为数据和一段文本描述,多模态大模型可以推荐一个用户可能感兴趣的产品或服务。这种应用需要模型能够理解和生成自然语言文本,同时还需要能够从用户历史行为数据中提取有用的信息。 情感分析:给定一段文本或者一张图像,多模态大模型可以判断其表达的情感是积极还是消极。这种应用需要模型能够理解和生成自然语言文本,同时还需呀能够从图像中提取有用的情感信息。 视频理解:给定一个视频,多模态大模型可以理解视频中的内容并回答与视频相关的问题。这种应用需要模型能够处理视频数据中的时序信息和不同帧之间的关联性。 人机交互:多模态大模型可以用于实现更加自然和智能的人机交互。例如,用户可以通过语音、手势、眼神等多种方式与智能体进行交互,实现更加便捷和高效的人机交互体验。 智能客服:多模态大模型可以应用于智能客服领域,通过文本、图像、音频等多种方式与用户进行交互,解决用户的问题或提供服务。这种应用需要模型能够处理多种形式的用户输入和输出。 遥感图像分析:在遥感图像分析领域,多模态大模型可以用于识别和分析遥感图像中的目标、事件和场景等。这种应用需要模型能够处理高分辨率的遥感图像数据,同时还需要能够理解和生成自然语言文本。 生物医学信息学:在生物医学信息学领域,多模态大模型可以用于处理和分析大量的生物医学数据,如基因序列、蛋白质结构、医学影像等。这种应用需要模型能够处理多种形式的数据输入和输出,同时还需要能够理解和生成自然语言文本。 四、总结与展望 多模态大模型作为自然语言处理领域的一个重要研究方向,旨在将不同模态的数据进行有效的融合和处理,以获得更全面和准确的信息。 向量数据库(Vector Database)是一种专门用于存储和管理向量数据的数据库系统。向量数据通常用于表示高维空间中的对象,如文本 、图像、音频等。向量数据库广泛应用于机器学习、人工智能、推荐系统、自然语言处理等领域。下面将对向量数据库的概念、应用场景、性能优化等方面进行详细介绍。向量数据库作为一种专门用于存储和管理向量数据的数据库系统,具有广泛的应用前景和市场潜力。通过对概念、应用场景、性能优化等方面的介绍,可以了解到向量数据库在机器学习、人工智能、推荐系统、自然语言处理等领域的重要作用。随着技术的不断发展和应用需求的增长,向量数据库将会在未来发挥更加重要的作用。

Traceback (most recent call last): ...... File "C:\Users\zhang.conda\envs\bigDL\lib\site-packages\torch\utils_contextlib.py", line 35, in generator_context response = gen.send(None) File "C:\Users\zhang.conda\envs\bigDL\lib\site-packages\transformers_stream_generator\main.py", line 944, in sample_stream next_token_scores = logits_processor(input_ids, next_token_logits) File "C:\Users\zhang.conda\envs\bigDL\lib\site-packages\transformers\generation\logits_process.py", line 97, in call scores = processor(input_ids, scores) File "C:\Users\zhang/.cache\huggingface\modules\transformers_modules\qwen_generation_utils.py", line 351, in call stopped_samples = self._calc_stopped_samples(input_ids) File "C:\Users\zhang/.cache\huggingface\modules\transformers_modules\qwen_generation_utils.py", line 375, in _calc_stopped_samples if self._tokens_match(prev_input_ids_slice, stop_token_seq): File "C:\Users\zhang/.cache\huggingface\modules\transformers_modules\qwen_generation_utils.py", line 364, in _tokens_match elif prev_tokens[-len(tokens) :].tolist() == tokens: RuntimeError: Native API failed. Native API returns: -999 (Unknown PI error) -999 (Unknown PI error)

hkvision commented 9 months ago

Hi @AmberXu98

We are reproducing with your prompt again to double confirm it in our environment.

By the way, want to confirm is it the case that if you input shorter sequences it works, but it fails on the prompt above right?

AmberXu98 commented 9 months ago

Hi @AmberXu98

We are reproducing with your prompt again to double confirm it in our environment.

By the way, want to confirm is it the case that if you input shorter sequences it works, but it fails on the prompt above right?

Yes, shorter inputs works, but longer inputs like the above one fails.

hkvision commented 9 months ago

Hi @AmberXu98 We are reproducing with your prompt again to double confirm it in our environment. By the way, want to confirm is it the case that if you input shorter sequences it works, but it fails on the prompt above right?

Yes, shorter inputs works, but longer inputs like the above one fails.

Have you set cpu_embedding=True when you load the model?

AmberXu98 commented 9 months ago

Hi @AmberXu98 We are reproducing with your prompt again to double confirm it in our environment. By the way, want to confirm is it the case that if you input shorter sequences it works, but it fails on the prompt above right?

Yes, shorter inputs works, but longer inputs like the above one fails.

Have you set cpu_embedding=True when you load the model?

Yes, here is the code I used:

model = AutoModelForCausalLM.from_pretrained(model_path,load_in_4bit=True,optimize_model=True,trust_remote_code=True,use_cache=True,cpu_embedding=True).eval()
model = model.to('xpu')
tokenizer = AutoTokenizer.from_pretrained(model_path, trust_remote_code=True)
config = GenerationConfig.from_pretrained(model_path, trust_remote_code=True, resume_download=True)
with torch.inference_mode():
    for response in model.chat_stream(tokenizer, prompt, history=[], generation_config=config):
        print(response)
chtanch commented 9 months ago

I can run Qwen-7B-Chat for a few consecutive times without crashes. Slightly modified AmberXu98's code to print query and response.

Platform: MTL Core Ultra 5 125H, 32GB RAM, bigdl-llm==20240124 Code

import torch, os
import intel_extension_for_pytorch as ipex
from bigdl.llm.transformers import AutoModelForCausalLM, AutoModel
from transformers import AutoTokenizer, GenerationConfig

model_path = "D:\llm-models\Qwen-7B-Chat"

prompt = """请为以下文字润色,期望辞藻更加华丽。
人工智能(Artificial Intelligence,AI)是一种模拟人类智能的技术和系统,旨在使计算机能够像人类一样思考、学习和解决问题。 人工智能的研究领域涵盖了机器人、自然语言处理、语音识别、图像识别、智能推荐等多个方面,是当今科技领域的重要发展方向之一。
一、人工智能的发展历程
人工智能的发展历程可以分为三个阶段:符号主义、连接主义和深度学习。符号主义以知识表示和推理为基础,连接主义以神经元之间的连接为基础,深度学习则以神经网络深度为基础。人工智能的研究经历了从符号主义到连接主义再到深度学习的转变,目前深度学习已经成为人工智能领域的主流方向。
二、人工智能的应用领域
人工智能的应用领域非常广泛,包括但不限于以下几个方面:
机器人:机器人是人工智能的重要应用领域之一,包括工业机器人、服务机器人和医疗机器人等。机器人可以代替人类完成危险、高强度、重复性的工作,提高生产效率和安全性。
自然语言处理:自然语言处理是人工智能中最为重要的应用领域之一,包括语音识别、自然语言理解和生成等。自然语言处理技术可以使得计算机能够理解和回答人类的问题,进而提高信息获取和交流的效率。
图像识别:图像识别是人工智能中最为重要的应用领域之一,包括人脸识别、物体识别等。图像识别技术可以使得计算机能够识别和理解图像中的内容,进而提高安全监控、智能交通和智能家居等领域的效率和质量。
智能推荐:智能推荐是人工智能中最为重要的应用领域之一,包括电子商务、电影推荐等。智能推荐技术可以根据用户的历史行为和偏好,推荐相关的产品和服务,提高用户体验和商业效益。
自动驾驶:自动驾驶是人工智能中最为热门的应用领域之一,包括汽车自动驾驶和无人机自动驾驶等。自动驾驶技术可以提高交通的安全性和效率,减少交通事故和堵车情况。
医疗诊断:医疗诊断是人工智能中最为重要的应用领域之一,包括疾病诊断和治疗方案制定等。医疗诊断技术可以提高医疗效率和准确性,减少误诊和治疗不当的情况。
金融风控:金融风控是人工智能中最为重要的应用领域之一,包括欺诈检测、信用评估等。金融风控技术可以提高金融安全性和效率,减少欺诈和不良贷款的情况。
一、引言
随着科技的快速发展,人工智能(AI)已经从科幻概念转变为现实生活的一部分。其在各个领域的应用,如医疗、金融、交通、教育等,都为我们的生活带来了前所未有的便利。然而,如同所有新兴技术一样,人工智能也面临着许多挑战。本文旨在探讨人工智能所面临的机遇和挑战。
二、人工智能的机遇
提升生产效率:AI的应用使得生产过程得以自动化,大幅提升了生产效率。例如,在制造业中,智能化的机器人可以代替人工完成危险或者高强度的工作,减少工伤的同时,也解决了人力短缺的问题。
促进个性化服务:AI能够根据个人的兴趣和需求进行学习和优化,提供个性化的服务。比如,推荐系统根据用户的观看历史和评价,为其推荐电影和书籍;AI教育平台则可以根据学生的学习进度和理解能力,提供定制化的教学方案。
推动医疗进步:AI在医疗领域的应用,如诊断疾病、预测疾病进展以及个性化治疗等,都为医疗服务提供了新的可能性。例如,AI可以通过分析大量的医疗数据,精确地预测疾病的发病趋势,为预防性医疗提供了依据。
增强安全性:AI在许多领域的应用也提高了安全性。例如,在金融领域,AI可以检测并预防欺诈行为;在交通领域,AI可以帮助我们更好地管理和疏导交通。
三、人工智能的挑战
数据隐私和安全:随着AI应用的普及,大量的个人数据被收集和分析。这不仅涉及到隐私问题,也涉及到数据安全问题。一旦这些数据被非法获取或滥用,将会对个人和社会造成极大的危害。
劳动力市场的影响:AI的发展可能会导致一些低技能的工作被机器人替代,进而导致失业率的上升。尽管新的工作机会会被创造出来,但是需要时间,而且可能需要高技能的工作者。
AI伦理问题:随着AI的发展和应用,我们面临着许多伦理问题。例如,如果AI做出了错误的决定,责任应该由谁承担?此外,如果AI系统被用于不道德的目的,如歧视或欺诈,我们应该如何处理?
技术依赖问题:随着我们对AI的依赖程度不断增加,如果AI系统突然出现故障或被黑客攻击,我们将面临严重的问题。此外,对AI的过度依赖也可能会导致我们的思考能力下降。
法律和政策缺失:目前,对于AI的监管还存在许多法律和政策的空白。这使得AI的发展和应用存在一定的不确定性和风险。
四、结论
尽管人工智能的发展带来了许多机遇,但同时也伴随着许多挑战。我们需要采取适当的措施来应对这些挑战,以确保AI的发展和应用能够造福于人类社会。首先,我们需要重视并解决数据隐私和安全问题。这需要政府、企业和消费者共同努力,通过立法、技术手段和市场机制等手段来保护个人数据隐私和安全。其次,我们需要重视并解决劳动力市场的影响问题。这需要政府和企业提供培训和教育机会,帮助工人提升技能以适应新的工作环境。同时,我们也需要思考并解决AI伦理问题。这需要我们制定明确的道德规范和行为准则来指导AI的开发和应用。此外,我们还需要解决技术依赖问题和技术安全问题。这需要我们加强技术监管和风险评估,以确保AI系统的安全性和稳定性。最后,我们需要解决法律和政策缺失问题。这需要政府制定和完善相关法律法规和政策措施来规范和管理AI的发展和应用。
大语言模型(Large Language Model)是一种基于深度学习技术的自然语言处理模型,其特点在于模型规模大、参数量多,能够更好地理解和生成自然语言文本。大语言模型的应用范围非常广泛,包括但不限于聊天机器人、智能客服、机器翻译等领域。
一、大语言模型的发展历程
大语言模型的发展经历了多个阶段。在早期,自然语言处理模型通常采用的是基于规则和统计方法的算法,如隐马尔可夫模型(Hidden Markov Model)和最大熵模型(Maximum Entropy Model)等。这些算法通常需要手动设计特征和规则,因此难以处理复杂的自然语言现象。
随着深度学习技术的不断发展,基于神经网络的自然语言处理模型逐渐成为主流。其中,循环神经网络(Recurrent Neural Network,RNN)和长短时记忆网络(Long Short-Term Memory,LSTM)是两个代表性的模型。这些神经网络模型能够自动学习文本中的特征和规律, 从而更好地理解和生成自然语言文本。
然而,传统的神经网络模型通常采用的是手工设计的特征和结构,因此难以处理复杂的自然语言现象。为了解决这个问题,研究人员开始探索基于预训练语言模型(Pretrained Language Model)的方法。预训练语言模型是在大规模语料库上进行预训练的模型,能够自动学 习文本中的特征和规律,从而更好地理解和生成自然语言文本。
二、大语言模型的架构和工作原理
大语言模型通常采用的是基于Transformer架构的模型,如GPT系列和BERT系列等。这些模型采用了自注意力机制(Self-Attention Mechanism)和预训练技术(Pretraining),能够更好地理解和生成自然语言文本。
架构
大语言模型的架构通常包括三个部分:编码器(Encoder)、解码器(Decoder)和自注意力机制。编码器负责将输入文本转化为向量表示,解码器负责将向量表示转化为输出文本,自注意力机制则负责将输入文本中的信息传递到解码器中。
工作原理
大语言模型的工作原理可以分为三个步骤:预训练、 fine-tuning 和推理。
(1)预训练:在大规模语料库上进行预训练,让模型学习文本中的特征和规律。这个步骤通常需要大量的计算资源和时间。
(2)fine-tuning:在特定任务上进行微调,让模型适应特定任务的需求。这个步骤通常需要较少的时间和计算资源。
(3)推理:使用训练好的模型对新的输入进行预测或生成文本。这个步骤通常需要较少的计算资源和时间。
三、大语言模型的应用领域
大语言模型的应用领域非常广泛,包括但不限于以下几个方面:
聊天机器人:大语言模型可以作为聊天机器人的核心组件,能够根据用户的问题或需求生成自然语言回复,从而提高客户服务的效率和质量。
智能客服:大语言模型也可以用于智能客服系统,能够自动回答用户的问题或解决用户的问题,从而提高客户服务的效率和质量。
机器翻译:大语言模型可以用于机器翻译系统,能够将一种语言的文本自动翻译成另一种语言的文本,从而提高翻译的准确性和效率。
文本生成:大语言模型还可以用于文本生成系统,能够根据用户的需求生成自然语言的文本,如新闻报道、小说、诗歌等。
其他应用:除了上述应用领域之外,大语言模型还可以用于语音识别、智能问答、情感分析等领域。
多模态大模型(Multimodal Large Model)是一种结合了多种模态数据(如文本、图像、音频等)进行训练和应用的深度学习模型。它旨在解决多模态数据处理和分析的问题,提高不同模态数据之间的融合和理解。
一、多模态数据处理的重要性
随着数字化时代的到来,我们面临着海量的多模态数据,如文本、图像、音频、视频等。这些数据来自不同的来源和领域,包括社交媒体、医疗影像、视觉搜索、语音助手等。多模态数据处理成为了一个重要的研究领域,旨在将这些不同模态的数据进行有效的融合和处理,以获得更全面和准确的信息。
二、多模态大模型的架构和特点
多模态大模型通常采用类似Transformer的架构,包括多个编码器和解码器,以及注意力机制和跨模态交互模块。它能够将不同模态的数 据进行编码和转换,以便在不同模态之间进行信息的交互和传递。
多模态大模型的特点包括:
模型规模大:多模态大模型的参数数量通常比单模态模型要大得多,以便处理不同模态之间的复杂关系和特征。
多模态输入和输出:多模态大模型可以接受文本、图像、音频等多种模态的输入和输出,实现不同模态之间的跨域理解和生成。
跨模态交互:多模态大模型通过引入跨模态交互模块,将不同模态的数据进行融合和交互,以获得更全面和准确的信息。
预训练和微调:多模态大模型通常采用预训练和微调相结合的方法,在大量无标签的多种模态数据上进行预训练,然后在具体的任务上进行微调,以适应不同的应用场景。
三、多模态大模型的应用领域

多模态大模型在各个领域都有广泛的应用,主要包括:

视觉问答(Visual Question Answering):给定一张图像和一个问题,多模态大模型可以生成一个答案,这个答案可以是关于图像中某 个对象的详细描述,也可以是对图像中某个事件的解释等。这种应用需要模型能够理解和生成自然语言文本,同时还需要能够从图像中提取有用的信息。
图像描述(Image Captioning):给定一张图像,多模态大模型可以生成一段描述这段图像的文本。这种应用需要模型能够理解和生成自然语言文本,同时还需要能够从图像中提取有用的信息。
语音识别和生成:给定一段语音或者一段文本,多模态大模型可以将其转化为一段音频信号或者将音频信号转化为文本。这种应用需要模型能够处理音频信号和文本数据之间的转换和对应关系。
跨域推荐:给定一个用户的历史行为数据和一段文本描述,多模态大模型可以推荐一个用户可能感兴趣的产品或服务。这种应用需要模型能够理解和生成自然语言文本,同时还需要能够从用户历史行为数据中提取有用的信息。
情感分析:给定一段文本或者一张图像,多模态大模型可以判断其表达的情感是积极还是消极。这种应用需要模型能够理解和生成自然语言文本,同时还需呀能够从图像中提取有用的情感信息。
视频理解:给定一个视频,多模态大模型可以理解视频中的内容并回答与视频相关的问题。这种应用需要模型能够处理视频数据中的时序信息和不同帧之间的关联性。
人机交互:多模态大模型可以用于实现更加自然和智能的人机交互。例如,用户可以通过语音、手势、眼神等多种方式与智能体进行交互,实现更加便捷和高效的人机交互体验。
智能客服:多模态大模型可以应用于智能客服领域,通过文本、图像、音频等多种方式与用户进行交互,解决用户的问题或提供服务。这种应用需要模型能够处理多种形式的用户输入和输出。
遥感图像分析:在遥感图像分析领域,多模态大模型可以用于识别和分析遥感图像中的目标、事件和场景等。这种应用需要模型能够处理高分辨率的遥感图像数据,同时还需要能够理解和生成自然语言文本。
生物医学信息学:在生物医学信息学领域,多模态大模型可以用于处理和分析大量的生物医学数据,如基因序列、蛋白质结构、医学影像等。这种应用需要模型能够处理多种形式的数据输入和输出,同时还需要能够理解和生成自然语言文本。
四、总结与展望
多模态大模型作为自然语言处理领域的一个重要研究方向,旨在将不同模态的数据进行有效的融合和处理,以获得更全面和准确的信息。
向量数据库(Vector Database)是一种专门用于存储和管理向量数据的数据库系统。向量数据通常用于表示高维空间中的对象,如文本 、图像、音频等。向量数据库广泛应用于机器学习、人工智能、推荐系统、自然语言处理等领域。下面将对向量数据库的概念、应用场景、性能优化等方面进行详细介绍。向量数据库作为一种专门用于存储和管理向量数据的数据库系统,具有广泛的应用前景和市场潜力。通过对概念、应用场景、性能优化等方面的介绍,可以了解到向量数据库在机器学习、人工智能、推荐系统、自然语言处理等领域的重要作用。随着技术的不断发展和应用需求的增长,向量数据库将会在未来发挥更加重要的作用。"""

model = AutoModelForCausalLM.from_pretrained(model_path,load_in_4bit=True,optimize_model=True,trust_remote_code=True,use_cache=True,cpu_embedding=True).eval()
model = model.to('xpu')
tokenizer = AutoTokenizer.from_pretrained(model_path, trust_remote_code=True)
model_config = GenerationConfig.from_pretrained(model_path, trust_remote_code=True, resume_download=True)
with torch.inference_mode():
    for response in model.chat_stream(tokenizer, prompt, history=[], generation_config=model_config):
        os.system("cls")
        print(f"\nPrompt: {prompt}")
        print(f"\nResponse: {response}")

Output:

Prompt: 请为以下文字润色,期望辞藻更加华丽。
人工智能(Artificial Intelligence,AI)是一种模拟人类智能的技术和系统,旨在使计算机能够像人类一样思考、学习和解决问题。 人工智能的研究领域涵盖了机器人、自然语言处理、语音识别、图像识别、智能推荐等多个方面,是 当今科技领域的重要发展方向之一。
一、人工智能的发展历程
人工智能的发展历程可以分为三个阶段:符号主义、连接主义和深度学习。符号主义以知识表示和推理为基础,连接主义以神经元之间的连接为基础,深度学习则以神经网络深度为基础。人工智能的研究经历了从符号主义到连接主义再到 深度学习的转变,目前深度学习已经成为人工智能领域的主流方向。
二、人工智能的应用领域
人工智能的应用领域非常广泛,包括但不限于以下几个方面:
机器人:机器人是人工智能的重要应用领域之一,包括工业机器人、服务机器人和医疗机器人等。机器人可以代替人类完成危险、高强度、重复性的工作,提高生产效率和安全性。
自然语言处理:自然语言处理是人工智能中最为重要的应用领域之一,包括语音识别、自然语言理解和生成等。自然语言处理技术可以使得计算机能够理解和回答人类的问题,进而提高信息获取和交流的效率。
图像识别:图像识别是人工智能中最为重要的应用领域之一,包括人脸识别、物体识别等。图像识别技术可以使得计算机能够识别和理解图像中的内容,进而提高安全监控、智能交通和智能家居等领域的效率和质量。
智能推荐:智能推荐是人工智能中最为重要的应用领域之一,包括电子商务、电影推荐等。智能推荐技术可以根据用户的历史行为和偏好,推荐相关的产品和服务,提高用户体验和商业效益。
自动驾驶:自动驾驶是人工智能中最为热门的应用领域之一,包括汽车自动驾驶和无人机自动驾驶等。自动驾驶技术可以提高交通的安全性和效率,减少交通事故和堵车情况。
医疗诊断:医疗诊断是人工智能中最为重要的应用领域之一,包括疾病诊断和治疗方案制定等。医疗诊断技术可以提高医疗效率和准确性,减少误诊和治疗不当的情况。
金融风控:金融风控是人工智能中最为重要的应用领域之一,包括欺诈检测、信用评估等。金融风控技术可以提高金融安全性和效率,减少欺诈和不良贷款的情况。
一、引言
随着科技的快速发展,人工智能(AI)已经从科幻概念转变为现实生活的一部分。其在各个领域的应用,如医疗、金融、交通、教育等,都为我们的生活带来了前所未有的便利。然而,如同所有新兴技术一样,人工智能也面临着许多挑战 。本文旨在探讨人工智能所面临的机遇和挑战。
二、人工智能的机遇
提升生产效率:AI的应用使得生产过程得以自动化,大幅提升了生产效率。例如,在制造业中,智能化的机器人可以代替人工完成危险或者高强度的工作,减少工伤的同时,也解决了人力短缺的问题。
促进个性化服务:AI能够根据个人的兴趣和需求进行学习和优化,提供个性化的服务。比如,推荐系统根据用户的观看历史和评价,为其推荐电影和书籍;AI教育平台则可以根据学生的学习进度和理解能力,提供定制化的教学方案。
推动医疗进步:AI在医疗领域的应用,如诊断疾病、预测疾病进展以及个性化治疗等,都为医疗服务提供了新的可能性。例如,AI可以通过分析大量的医疗数据,精确地预测疾病的发病趋势,为预防性医疗提供了依据。
增强安全性:AI在许多领域的应用也提高了安全性。例如,在金融领域,AI可以检测并预防欺诈行为;在交通领域,AI可以帮助我们更好地管理和疏导交通。
三、人工智能的挑战
数据隐私和安全:随着AI应用的普及,大量的个人数据被收集和分析。这不仅涉及到隐私问题,也涉及到数据安全问题。一旦这些数据被非法获取或滥用,将会对个人和社会造成极大的危害。
劳动力市场的影响:AI的发展可能会导致一些低技能的工作被机器人替代,进而导致失业率的上升。尽管新的工作机会会被创造出来,但是需要时间,而且可能需要高技能的工作者。
AI伦理问题:随着AI的发展和应用,我们面临着许多伦理问题。例如,如果AI做出了错误的决定,责任应该由谁承担?此外,如果AI系统被用于不道德的目的,如歧视或欺诈,我们应该如何处理?
技术依赖问题:随着我们对AI的依赖程度不断增加,如果AI系统突然出现故障或被黑客攻击,我们将面临严重的问题。此外,对AI的过度依赖也可能会导致我们的思考能力下降。
法律和政策缺失:目前,对于AI的监管还存在许多法律和政策的空白。这使得AI的发展和应用存在一定的不确定性和风险。
四、结论
尽管人工智能的发展带来了许多机遇,但同时也伴随着许多挑战。我们需要采取适当的措施来应对这些挑战,以确保AI的发展和应用能够造福于人类社会。首先,我们需要重视并解决数据隐私和安全问题。这需要政府、企业和消费者共同 努力,通过立法、技术手段和市场机制等手段来保护个人数据隐私和安全。其次,我们需要重视并解决劳动力市场的影响问题。这需要政府和企业提供培训和教育机会,帮助工人提升技能以适应新的工作环境。同时,我们也需要思考并解 决AI伦理问题。这需要我们制定明确的道德规范和行为准则来指导AI的开发和应用。此外,我们还需要解决技术依赖问题和技术安全问题。这需要我们加强技术监管和风险评估,以确保AI系统的安全性和稳定性。最后,我们需要解决法律 和政策缺失问题。这需要政府制定和完善相关法律法规和政策措施来规范和管理AI的发展和应用。
大语言模型(Large Language Model)是一种基于深度学习技术的自然语言处理模型,其特点在于模型规模大、参数量多,能够更好地理解和生成自然语言文本。大语言模型的应用范围非常广泛,包括但不限于聊天机器人、智能客服、机 器翻译等领域。
一、大语言模型的发展历程
大语言模型的发展经历了多个阶段。在早期,自然语言处理模型通常采用的是基于规则和统计方法的算法,如隐马尔可夫模型(Hidden Markov Model)和最大熵模型(Maximum Entropy Model)等。这些算法通常需要手动设计特征和规则 ,因此难以处理复杂的自然语言现象。
随着深度学习技术的不断发展,基于神经网络的自然语言处理模型逐渐成为主流。其中,循环神经网络(Recurrent Neural Network,RNN)和长短时记忆网络(Long Short-Term Memory,LSTM)是两个代表性的模型。这些神经网络模型能够自动学习文本中的特征和规律, 从而更好地理解和生成自然语言文本。
然而,传统的神经网络模型通常采用的是手工设计的特征和结构,因此难以处理复杂的自然语言现象。为了解决这个问题,研究人员开始探索基于预训练语言模型(Pretrained Language Model)的方法。预训练语言模型是在大规模语料库上进行预训练的模型,能够自动学 习文本中的特征和规律,从而更好地理解和生成自然语言文本。
二、大语言模型的架构和工作原理
大语言模型通常采用的是基于Transformer架构的模型,如GPT系列和BERT系列等。这些模型采用了自注意力机制(Self-Attention Mechanism)和预训练技术(Pretraining),能够更好地理解和生成自然语言文本。
架构
大语言模型的架构通常包括三个部分:编码器(Encoder)、解码器(Decoder)和自注意力机制。编码器负责将输入文本转化为向量表示,解码器负责将向量表示转化为输出文本,自注意力机制则负责将输入文本中的信息传递到解码器中 。
工作原理
大语言模型的工作原理可以分为三个步骤:预训练、 fine-tuning 和推理。
(1)预训练:在大规模语料库上进行预训练,让模型学习文本中的特征和规律。这个步骤通常需要大量的计算资源和时间。
(2)fine-tuning:在特定任务上进行微调,让模型适应特定任务的需求。这个步骤通常需要较少的时间和计算资源。
(3)推理:使用训练好的模型对新的输入进行预测或生成文本。这个步骤通常需要较少的计算资源和时间。
三、大语言模型的应用领域
大语言模型的应用领域非常广泛,包括但不限于以下几个方面:
聊天机器人:大语言模型可以作为聊天机器人的核心组件,能够根据用户的问题或需求生成自然语言回复,从而提高客户服务的效率和质量。
智能客服:大语言模型也可以用于智能客服系统,能够自动回答用户的问题或解决用户的问题,从而提高客户服务的效率和质量。
机器翻译:大语言模型可以用于机器翻译系统,能够将一种语言的文本自动翻译成另一种语言的文本,从而提高翻译的准确性和效率。
文本生成:大语言模型还可以用于文本生成系统,能够根据用户的需求生成自然语言的文本,如新闻报道、小说、诗歌等。
其他应用:除了上述应用领域之外,大语言模型还可以用于语音识别、智能问答、情感分析等领域。
多模态大模型(Multimodal Large Model)是一种结合了多种模态数据(如文本、图像、音频等)进行训练和应用的深度学习模型。它旨在解决多模态数据处理和分析的问题,提高不同模态数据之间的融合和理解。
一、多模态数据处理的重要性
随着数字化时代的到来,我们面临着海量的多模态数据,如文本、图像、音频、视频等。这些数据来自不同的来源和领域,包括社交媒体、医疗影像、视觉搜索、语音助手等。多模态数据处理成为了一个重要的研究领域,旨在将这些不同 模态的数据进行有效的融合和处理,以获得更全面和准确的信息。
二、多模态大模型的架构和特点
多模态大模型通常采用类似Transformer的架构,包括多个编码器和解码器,以及注意力机制和跨模态交互模块。它能够将不同模态的数 据进行编码和转换,以便在不同模态之间进行信息的交互和传递。
多模态大模型的特点包括:
模型规模大:多模态大模型的参数数量通常比单模态模型要大得多,以便处理不同模态之间的复杂关系和特征。
多模态输入和输出:多模态大模型可以接受文本、图像、音频等多种模态的输入和输出,实现不同模态之间的跨域理解和生成。
跨模态交互:多模态大模型通过引入跨模态交互模块,将不同模态的数据进行融合和交互,以获得更全面和准确的信息。
预训练和微调:多模态大模型通常采用预训练和微调相结合的方法,在大量无标签的多种模态数据上进行预训练,然后在具体的任务上进行微调,以适应不同的应用场景。
三、多模态大模型的应用领域

多模态大模型在各个领域都有广泛的应用,主要包括:

视觉问答(Visual Question Answering):给定一张图像和一个问题,多模态大模型可以生成一个答案,这个答案可以是关于图像中某 个对象的详细描述,也可以是对图像中某个事件的解释等。这种应用需要模型能够理解和生成自然语 言文本,同时还需要能够从图像中提取有用的信息。
图像描述(Image Captioning):给定一张图像,多模态大模型可以生成一段描述这段图像的文本。这种应用需要模型能够理解和生成自然语言文本,同时还需要能够从图像中提取有用的信息。
语音识别和生成:给定一段语音或者一段文本,多模态大模型可以将其转化为一段音频信号或者将音频信号转化为文本。这种应用需要模型能够处理音频信号和文本数据之间的转换和对应关系。
跨域推荐:给定一个用户的历史行为数据和一段文本描述,多模态大模型可以推荐一个用户可能感兴趣的产品或服务。这种应用需要模型能够理解和生成自然语言文本,同时还需要能够从用户历史行为数据中提取有用的信息。
情感分析:给定一段文本或者一张图像,多模态大模型可以判断其表达的情感是积极还是消极。这种应用需要模型能够理解和生成自然语言文本,同时还需呀能够从图像中提取有用的情感信息。
视频理解:给定一个视频,多模态大模型可以理解视频中的内容并回答与视频相关的问题。这种应用需要模型能够处理视频数据中的时序信息和不同帧之间的关联性。
人机交互:多模态大模型可以用于实现更加自然和智能的人机交互。例如,用户可以通过语音、手势、眼神等多种方式与智能体进行交互,实现更加便捷和高效的人机交互体验。
智能客服:多模态大模型可以应用于智能客服领域,通过文本、图像、音频等多种方式与用户进行交互,解决用户的问题或提供服务。这种应用需要模型能够处理多种形式的用户输入和输出。
遥感图像分析:在遥感图像分析领域,多模态大模型可以用于识别和分析遥感图像中的目标、事件和场景等。这种应用需要模型能够处理高分辨率的遥感图像数据,同时还需要能够理解和生成自然语言文本。
生物医学信息学:在生物医学信息学领域,多模态大模型可以用于处理和分析大量的生物医学数据,如基因序列、蛋白质结构、医学影像等。这种应用需要模型能够处理多种形式的数据输入和输出,同时还需要能够理解和生成自然语言文 本。
四、总结与展望
多模态大模型作为自然语言处理领域的一个重要研究方向,旨在将不同模态的数据进行有效的融合和处理,以获得更全面和准确的信息。
向量数据库(Vector Database)是一种专门用于存储和管理向量数据的数据库系统。向量数据通常用于表示高维空间中的对象,如文本 、图像、音频等。向量数据库广泛应用于机器学习、人工智能、推荐系统、自然语言处理等领域。下 面将对向量数据库的概念、应用场景、性能优化等方面进行详细介绍。向量数据库作为一种专门用于存储和管理向量数据的数据库系统,具有广泛的应用前景和市场潜力。通过对概念、应用场景、性能优化等方面的介绍,可以了解到向量 数据库在机器学习、人工智能、推荐系统、自然语言处理等领域的重要作用。随着技术的不断发展和应用需求的增长,向量数据库将会在未来发挥更加重要的作用。

Response: 向量数据库是一种专门为存储和管理向量数据而设计的数据库系统,向量数据主要用于表示高维空间中的对象,如文本、图像、音频等。

向量数据库的主要功能是提供高效、可靠、灵活的数据存储和查询功能,以便有效地支持各种应用程序的运行。它能够对各种类型的向量数据进行索引和查询,并且支持各种复杂的查询操作。

向量数据库的应用场景十分广泛,包括但不限于以下几个方面:

1. 机器学习和数据分析:向量数据库能够处理各种类型的数据,包括文本、图像、音频、视频等。它可以用于数据挖掘、聚类分析、回归分析等各种机器学习和数据分析任务。

2. 推荐系统:向量数据库能够支持对用户行为和兴趣的建模,从而为用户提供个性化的推荐服务。

3. 自然语言处理:向量数据库可以用来处理文本数据,支持文本分类、语义分析、情感分析等各种自然语言处理任务。

4. 图像和视频处理:向量数据库可以用来处理图像和视频数据,支持图像检索、视频理解、图像分割等各种图像和视频处理任务。

5. 虚拟现实和增强现实:向量数据库可以用来处理虚拟现实和增强现实数据,支持虚拟世界的设计和交互。

向量数据库的性能优化是保证其高效运行的关键。为了实现高性能,向量数据库通常会采用一些技术和策略,包括但不限于以下几个方面:

1. 数据压缩:通过使用高效的编码和解码算法,可以有效地减小数据存储的空间占用。

2. 数据分块:通过将大数据分割成多个小块,可以提高数据读取和写入的速度。

3. 索引优化:通过创建和维护索引,可以加速数据的查询和检索速度。

4. 并行化处理:通过利用多核处理器和分布式计算系统,可以提高数据处理和分析的速度。

5. 数据流处理:通过实时处理数据流,可以支持实时分析和决策。

总的来说,向量数据库是现代数据处理和分析的重要工具,它能够支持各种复杂的任务,具有广阔的应用前景和巨大的发展潜力。
AmberXu98 commented 9 months ago

@hkvision @chtanch I encounter Native API returns: -999 (Unknown PI error), how can I solve it? The bigdl-llm version on my machine is 2.5.0b20240219. Shorter inputs works, only longer inputs will fails.

My platform: Windows OS, MTL-U, Memory 32G, CPU: 14-core,Genuine Intel® 0000, iGPU: 16G,Intel® Arc™ Graphics What is the longest input that qwen-7b-chat(int4) can support on this machine?

chtanch commented 9 months ago

@AmberXu98 to clarify, are you using Qwen-7b-chat-int4? Or the non-quantized models? Eg, Qwen-7b or Qwen-7b-chat?

AmberXu98 commented 9 months ago

@AmberXu98 to clarify, are you using Qwen-7b-chat-int4? Or the non-quantized models? Eg, Qwen-7b or Qwen-7b-chat?

@chtanch non-quantized model Qwen-7B-Chat and load_in_4bit like this: model = AutoModelForCausalLM.from_pretrained('Qwen/Qwen-7B-Chat',load_in_4bit=True,optimize_model=True,trust_remote_code=True,use_cache=True,cpu_embedding=True).eval()

chtanch commented 9 months ago

@AmberXu98 to clarify, are you using Qwen-7b-chat-int4? Or the non-quantized models? Eg, Qwen-7b or Qwen-7b-chat?

@chtanch non-quantized model Qwen-7B-Chat and load_in_4bit like this: model = AutoModelForCausalLM.from_pretrained('Qwen/Qwen-7B-Chat',load_in_4bit=True,optimize_model=True,trust_remote_code=True,use_cache=True,cpu_embedding=True).eval()

I can sucessfully run the code you shared, with prompt lengths up up to 4160 tokens on 32GB RAM MTL machine.

Yes, here is the code I used:

model = AutoModelForCausalLM.from_pretrained(model_path,load_in_4bit=True,optimize_model=True,trust_remote_code=True,use_cache=True,cpu_embedding=True).eval()
model = model.to('xpu')
tokenizer = AutoTokenizer.from_pretrained(model_path, trust_remote_code=True)
config = GenerationConfig.from_pretrained(model_path, trust_remote_code=True, resume_download=True)
with torch.inference_mode():
    for response in model.chat_stream(tokenizer, prompt, history=[], generation_config=config):
        print(response)

Is your test successful the first time and only fails when the command is run the second time?