在樹莓派中跑迷你Llama2中文模型

  OpenAI的Karpathy利用週末搞了一個迷你Llama2項目llama2.c用500行C語言實現無任何依賴項的推理程序,此項目在github發佈以來衍生出了基於各種語言的迷你Llama推理實現llama2.go、llama2.java、llama2.py等等;
  但該項目原本的模型並不支持中文,最近正好看到一個基於llama2的中文訓練模型;想着把它跑在樹莓派上速度會怎樣;
  使用Go實現進行模型推理,該在樹莓派中的Llama2 迷你中文模型,模型大小爲15M使用的數據集爲TinyStories 英文翻譯後的數據但僅翻譯了TinyStories 的部分數據目前爲1M,中文詞表使用UTF-8編碼所以每個漢字爲3個字節;

在樹莓派中推理:

 ./llama2.go -checkpoint=stories15M-llama2-enzh.bin -tokenizer=tokenizer.bin -prompt="有個小姑娘" 
2023/08/20 15:43:55 config: llama2.Config{Dim:288, HiddenDim:768, NumLayers:6, NumHeads:6, NumKVHeads:6,VocabSize:55296, SeqLen:256}
 有個小姑娘。她正忙着在公園裏玩耍。突然,她摔倒了,膝蓋受傷了。她需要舉起膝蓋。
 她的父母提醒她保持冷靜,然後喬把她救回她的安全位置。他們給了她一些創可貼,並告訴她會幫助她感覺好一點。
 小喬緊緊地抱住膝蓋,微笑着。她相信她的父母會幫助她感覺更好。
 最終,收拾好竭,她的膝蓋感覺好多了。她很高興能能夠再次感到安全。

  可以看到在樹莓派中跑這個150萬參數的llama2模型Tokens/s速度只有每秒不到10;
  由於TinyStories只是短篇故事數據集,加上中文翻譯數據集也不完全,模型參數也只有百萬規模所以講故事的效果並不好;

llama2.png

Go推理fork於:https://github.com/nikolaydubina/llama2.go
模型、詞表來源:https://github.com/chenyangMl/llama2.c-zh
文章首發地址:https://mp.weixin.qq.com/s/3jHg6kYFnd45JUZq9WK3sw

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章