范文健康探索娱乐情感热点
投稿投诉
热点动态
科技财经
情感日志
励志美文
娱乐时尚
游戏搞笑
探索旅游
历史星座
健康养生
美丽育儿
范文作文
教案论文
国学影视

LeCun转赞苹果M1M2芯片上跑LLaMA!130亿参数模型仅需4GB内存

  #科技之巅#
  编辑:好困
  【新智元导读】现在,Meta最新的大语言模型LLaMA,可以在搭载苹果芯片的Mac上跑了!
  前不久,Meta前脚发布完开源大语言模型LLaMA,后脚就被网友放出了无门槛下载链接,「惨遭」开放。
  消息一出,圈内瞬间就热闹了起来,大家纷纷开始下载测试。
  但那些手头没有顶级显卡的朋友们,就只能望模型兴叹了。
  不过,问题不大。Georgi Gerganov在最近做了一个名为「llama.cpp」的项目——没有GPU也能跑LLaMA。
  项目地址:https://github.com/ggerganov/llama.cpp
  是的,这也包括搭载了苹果芯片的Mac。并且还获得了LeCun的转发支持。
  在M1/M2的Mac上跑LLaMA
  目前来说,比较全面的教程有两个,分别基于苹果的M1和M2处理器。
  第一篇:https://dev.l1x.be/posts/2023/03/12/using-llama-with-m1-mac/
  第二篇:https://til.simonwillison.net/llms/llama-7b-m2
  话不多说,先看效果。
  比如在最小的7B模型上提问:「第一个登上月球的人是」。
  很快,几秒之后,结果就出来了。
  -p "第一个登上月球的人是"
  第一个登上月球的人是38岁的宇航员Neil A. Armstrong。
  1969年7月20日,阿波罗11号在月球上着陆。
  阿波罗11号是第一个登陆月球的载人任务,也是太空竞赛的高潮。1969年7月,Neil Armstrong和Edwin "Buzz" Aldrin成为第一批在月球上登陆的人类。
  阿波罗11号于7月16日从肯尼迪航天中心发射。
  从阿姆斯特朗登月的年龄、中间名和日期来看,并没有出现明显的事实性错误。这对于如此体量的小模型来说,实属不易。
  如果用下面这个提示,则可以生成了一些实用的Python代码。 -p "def open_and_return_content(filename):"def open_and_return_content(filename):     """    Opens file (returning the content) and performs basic sanity checks    """if os.path.isfile(filename):         with open(filename) as f:             content = f.read()             return contentelse:         print("WARNING: file "{}" does not exist".format(filename), file=sys.stderr)         return ""def get_file_info(filename, fullpath):     """    Get file information (i.e., permission, owner, group, size)    """ 接下来,我们就来看看具体是如何实现的。
  第一步:下载模型
  首先要做的就是下载LLaMA模型。
  你可以通过官方的表格向Meta提交申请,或者从网友分享的链接里直接获取。
  总之,完成后你会看到下面这堆东西:
  正如你所看到的,不同的模型都在不同的文件夹里。每个模型都有一个params.json,包含关于该模型的细节。比如:
  第二步:安装依赖项
  首先,你需要安装Xcode来编译C++项目。 xcode-select --install
  接下来,是构建C++项目的依赖项(pkgconfig和cmake)。 brew install pkgconfig cmake
  在环境的配置上,假如你用的是Python 3.11,则可以创建一个虚拟环境: /opt/homebrew/bin/python3.11 -m venv venv
  然后激活venv。(如果是fish以外的shell,只要去掉.fish后缀即可) . venv/bin/activate.fish
  最后,安装Torch。 pip3 install --pre torch torchvision --extra-index-url https://download.pytorch.org/whl/nightly/cpu
  如果你对利用新的Metal性能着色器(MPS)后端进行GPU训练加速感兴趣,可以通过运行以下程序来进行验证。但这不是在M1上运行LLaMA的必要条件。 python  Python 3.11.2 (main, Feb 16 2023, 02:55:59) [Clang 14.0.0 (clang-1400.0.29.202)] on darwin  Type "help", "copyright", "credits" or "license" for more information.  >>> import torch; torch.backends.mps.is_available()True
  第三步:编译LLaMA CPP
  git clone git@github.com:ggerganov/llama.cpp.git
  在安装完所有的依赖项后,你可以运行make: make I llama.cpp build info: I UNAME_S:  Darwin I UNAME_P:  arm I UNAME_M:  arm64 I CFLAGS:   -I.              -O3 -DNDEBUG -std=c11   -fPIC -pthread -DGGML_USE_ACCELERATE I CXXFLAGS: -I. -I./examples -O3 -DNDEBUG -std=c++11 -fPIC -pthread I LDFLAGS:   -framework Accelerate I CC:       Apple clang version 14.0.0 (clang-1400.0.29.202)I CXX:      Apple clang version 14.0.0 (clang-1400.0.29.202) cc  -I.              -O3 -DNDEBUG -std=c11   -fPIC -pthread -DGGML_USE_ACCELERATE   -c ggml.c -o ggml.o c++ -I. -I./examples -O3 -DNDEBUG -std=c++11 -fPIC -pthread -c utils.cpp -o utils.o c++ -I. -I./examples -O3 -DNDEBUG -std=c++11 -fPIC -pthread main.cpp ggml.o utils.o -o main  -framework Accelerate ./main -h usage: ./main [options] options:   -h, --help            show this help message and exit   -s SEED, --seed SEED  RNG seed (default: -1)     -t N, --threads N     number of threads to use during computation (default: 4)     -p PROMPT, --prompt PROMPT                         prompt to start generation with (default: random)     -n N, --n_predict N   number of tokens to predict (default: 128)     --top_k N             top-k sampling (default: 40)     --top_p N             top-p sampling (default: 0.9)     --temp N              temperature (default: 0.8)     -b N, --batch_size N  batch size for prompt processing (default: 8)     -m FNAME, --model FNAME                         model path (default: models/llama-7B/ggml-model.bin) c++ -I. -I./examples -O3 -DNDEBUG -std=c++11 -fPIC -pthread quantize.cpp ggml.o utils.o -o quantize  -framework Accelerate
  第四步:转换模型
  假设你已经把模型放在llama.cpp repo中的models/下。 python convert-pth-to-ggml.py models/7B 1
  那么,应该会看到像这样的输出: {"dim": 4096, "multiple_of": 256, "n_heads": 32, "n_layers": 32, "norm_eps": 1e-06, "vocab_size": 32000}n_parts =  1Processing part  0Processing variable: tok_embeddings.weight with shape:  torch.Size([32000, 4096])  and type:  torch.float16 Processing variable: norm.weight with shape:  torch.Size([4096])  and type:  torch.float16   Converting to float32 Processing variable: output.weight with shape:  torch.Size([32000, 4096])  and type:  torch.float16 Processing variable: layers.0.attention.wq.weight with shape:  torch.Size([4096, 4096])  and type:  torch.f loat16 Processing variable: layers.0.attention.wk.weight with shape:  torch.Size([4096, 4096])  and type:  torch.f loat16 Processing variable: layers.0.attention.wv.weight with shape:  torch.Size([4096, 4096])  and type:  torch.f loat16 Processing variable: layers.0.attention.wo.weight with shape:  torch.Size([4096, 4096])  and type:  torch.f loat16 Processing variable: layers.0.feed_forward.w1.weight with shape:  torch.Size([11008, 4096])  and type:  tor ch.float16 Processing variable: layers.0.feed_forward.w2.weight with shape:  torch.Size([4096, 11008])  and type:  tor ch.float16 Processing variable: layers.0.feed_forward.w3.weight with shape:  torch.Size([11008, 4096])  and type:  tor ch.float16 Processing variable: layers.0.attention_norm.weight with shape:  torch.Size([4096])  and type:  torch.float 16... Done. Output file: models/7B/ggml-model-f16.bin, (part  0 )
  下一步将是进行量化处理: ./quantize ./models/7B/ggml-model-f16.bin ./models/7B/ggml-model-q4_0.bin 2
  输出如下: llama_model_quantize: loading model from "./models/7B/ggml-model-f16.bin"llama_model_quantize: n_vocab = 32000llama_model_quantize: n_ctx   = 512llama_model_quantize: n_embd  = 4096llama_model_quantize: n_mult  = 256llama_model_quantize: n_head  = 32llama_model_quantize: n_layer = 32llama_model_quantize: f16     = 1...  layers.31.attention_norm.weight - [ 4096,     1], type =    f32 size =    0.016 MB  layers.31.ffn_norm.weight - [ 4096,     1], type =    f32 size =    0.016 MB  llama_model_quantize: model size  = 25705.02 MB  llama_model_quantize: quant size  =  4017.27 MB  llama_model_quantize: hist: 0.000 0.022 0.019 0.033 0.053 0.078 0.104 0.125 0.134 0.125 0.104 0.078 0.053 0.033 0.019 0.022     main: quantize time = 29389.45 ms  main:    total time = 29389.45 ms
  第五步:运行模型
  ./main -m ./models/7B/ggml-model-q4_0.bin           -t 8           -n 128           -p "The first president of the USA was "main: seed = 1678615879llama_model_load: loading model from "./models/7B/ggml-model-q4_0.bin" - please wait ...  llama_model_load: n_vocab = 32000llama_model_load: n_ctx   = 512llama_model_load: n_embd  = 4096llama_model_load: n_mult  = 256llama_model_load: n_head  = 32llama_model_load: n_layer = 32llama_model_load: n_rot   = 128llama_model_load: f16     = 2llama_model_load: n_ff    = 11008llama_model_load: n_parts = 1llama_model_load: ggml ctx size = 4529.34 MB  llama_model_load: memory_size =   512.00 MB, n_mem = 16384llama_model_load: loading model part 1/1 from "./models/7B/ggml-model-q4_0.bin"llama_model_load: .................................... donellama_model_load: model size =  4017.27 MB / num tensors = 291  main: prompt: "The first president of the USA was "main: number of tokens in prompt = 9     1 -> ""  1576 -> "The"   937 -> " first"  6673 -> " president"   310 -> " of"   278 -> " the"  8278 -> " USA"   471 -> " was" 29871 -> " "  sampling parameters: temp = 0.800000, top_k = 40, top_p = 0.950000     The first president of the USA was 57 years old when he assumed office (George Washington). Nowadays, the US electorate expects the new president to be more young at heart. President Donald Trump was 70 years old when he was inaugurated. In contrast to his predecessors, he is physically fit, healthy and active. And his fitness has been a prominent theme of his presidency. During the presidential campaign, he famously said he   would be the "most active president ever" — a statement Trump has not yet achieved, but one that fits his approach to the office. His tweets demonstrate his physical activity.     main: mem per token = 14434244 bytes  main:     load time =  1311.74 ms  main:   sample time =   278.96 ms  main:  predict time =  7375.89 ms / 54.23 ms per token  main:    total time =  9216.61 ms
  资源使用情况
  第二位博主表示,在运行时,13B模型使用了大约4GB的内存,以及748%的CPU。(设定的就是让模型使用8个CPU核心)
  没有指令微调
  GPT-3和ChatGPT效果如此之好的关键原因之一是,它们都经过了指令微调,
  这种额外的训练使它们有能力对人类的指令做出有效的反应。比如「总结一下这个」或「写一首关于水獭的诗」或「从这篇文章中提取要点」。
  撰写教程的博主表示,据他观察,LLaMA并没有这样的能力。
  也就是说,给LLaMA的提示需要采用经典的形式:「一些将由......完成的文本」。这也让提示工程变得更加困难。
  举个例子,博主至今都还没有想出一个正确的提示,从而让LLaMA实现文本的总结。
  参考资料:
  https://github.com/ggerganov/llama.cpp
  https://dev.l1x.be/posts/2023/03/12/using-llama-with-m1-mac/
  https://til.simonwillison.net/llms/llama-7b-m2

你最心疼哪位历史人物李鸿章,大清的墙倒了,只有一个老人去扶,然而,墙终究倒了,人们却觉得他无能。李商隐,何当共剪西窗烛,却话巴山夜雨时。寄托丈夫对远在远方妻子的思念,但丈夫不知道的是自己的妻子已于数日吉利太魅真来了!魅族官宣FlymeAuto本周五重磅来袭虽然在手机市场的份额上,魅族可能无法和华米OV等主流手机厂商相比,但它确实是国产智能手机行业中,资历最老的玩家之一。不过,在如今这个竞争激烈的手机市场里,魅族所收获的结局也只是被吉乘联会公布10月乘用车销量数据燃油车与新能源车呈一降一升态势中国质量新闻网讯(张阳)11月8日,乘联会公布最新一期销量数据。2022年10月乘用车市场零售达到184。0万辆,同比增长7。3,环比下降4。3,这也是自2013年以来首次出现金九讲讲NakedampampampFamous品牌发展史和经典原色牛仔裤NakedFamous(中文称之为裸女)是一个加拿大牛仔品牌,以创造市场上一些最具创新性和非传统的原色牛仔产品而闻名。从世界上最重的牛仔裤到轻磅微弹牛仔布,裸女家一直致力于突破原始单芯片光源创下数据传输新纪录来源科技日报来自丹麦瑞典和日本的科学家在最新一期自然光子学杂志上撰文指出,他们通过将数据分成一系列色彩包,使单个计算机芯片能通过光纤电缆,在7。9公里范围内,每秒传输1。84千万亿谁吃掉了我们手机的内存?作为消费者,我们凭什么要为此买单在消费者选购一部手机时,通过对品牌像素外观处理器等因素的筛选,选定了心仪的手机型号。之后,还要进一步选择手机内存。不同内存对应不同的价格,内存越大,价格越高。从第一部智能手机的出现A股数字货币风波再起,万亿赛道起航,谁是下一只竞业达?A股数字货币风波再起,万亿赛道起航,谁是下一只竞业达?随着互联网发展的时间越长生活形态越来越数字化,两种经济趋势正彼此冲击与融合一是实体经济交易正在虚拟化,我们越频繁使用电子钱包线韩国严查防脱发虚假广告!皮肤科专家5种方法真正防脱受访专家中国医学科学院整形外科医院皮肤科主任医师王宝玺环球时报健康客户端记者卞磊近日,韩国食品医药品安全处表示,发现172个网站的洗发水广告存在虚假夸大宣传,宣称产品具有预防和治疗教你煎出软蓬蓬的鸡蛋饼,比棉花还要柔软,看着就流口水了关注大胖友图图,每天都能看到新奇,简单,美味又实用的食谱哦今天分享的是街头欧姆蛋教程。你有吃过软蓬蓬的煎鸡蛋吗?这个食谱将告诉你做法。给你带来不一样的味蕾体验,别再只会做水煮鸡蛋啦先进制造,跨境出海!2022东莞跨境电商采购峰会即将开展2022年是跨境电商行业风起云涌的一年,在千变万化的市场环境下,我们该如何思考渠道布局和掌握选品策略,把握最新行业动向和平台政策,真正实现中国品牌出海的乘风破浪?www。sunra云顶之弈S8黑客,源计划,决斗简介对部分灵魂莲华皮肤的评价一部分羁绊1黑客妖姬2左伊3劫4HackerssummonaH4ckerr!mthattakesaunitintotheenemybacklineandmakesthemuntar
轻轻松松过每一天,快乐又自在的秘诀都在这里了朋友们总是说,为什么你总是那么开心?我说,因为我简单呀。l简单则不累。你是不是做一件事情,总是会想很多很多,这一件事情还没有做,就已经在你的脑海里面跑了100圈,你说能不累吗?一直石家庄标志正太饭店重新迎客正太饭店建成于1907年,是石家庄古一代历史的见证,与当时的正太铁路大石桥见证了石家庄的发展,同时正太饭店也是当时最繁华的饭店之一,中华民国时期曾接待过孙中山蒋介石等军政大员。19金秋周末游,入手风行游艇的好时机,你必须知道这些!国庆长假刚走,假期综合症还没缓过来,相信大家已经在期待着下一个小长假了。何必再等下一个国庆?金秋周末,来一次说走就走的户外出行吧!避开人潮拥挤的高铁火车,躲开任性晚点的飞机,更拒绝如果可以,我们一起回梦开始的地方故乡林州红旗渠如果可以,我们一起回林州不要拿那些所谓的理想不要为那些所谓的快节奏打乱生活就一起回在我熟悉的家乡,带你领略山清水秀大峡谷认识每一条街道都能叫出名字每一个邻居都很和蔼可亲想打个麻将,国庆节最想去哪里?缅怀先烈,致敬英雄你们国庆节去了哪里?我去了烈士陵园。我相信很多人国庆节第一时间想要去的地方,可能是某个城市某个旅游景点或者是回家。我呢去了离我最近烈士陵园去看了离我最近的革命遗址。其实我很早以前就新华全媒新疆罗布淖尔湿地百鸟翔集美景如画这几天,在新疆巴音郭楞蒙古自治州尉犁县罗布淖尔国家湿地公园,成群的白鹭鸬鹚天鹅在湿地公园湖泊中游弋,塔里木河水胡杨沙漠蓝天与候鸟相互映衬,形成一幅美轮美奂的生态画卷。随着连年生态输做人靠人品,相处靠真诚活着,为人一场,没什么,没有性格是不可能的,缺少什么,不能缺少真诚。只有靠性格做人,才能留好名,只有真诚待人,才能得到真情。什么是性格?性格是做人的基础,性格是做人的修养。性格体现漂亮又治愈的福建小岛,不起眼的角落都好美,路人住下养老幸福秋日生活打卡季慢下来的时光中,有着惬意的生活,幸福感也会提升。多少人梦寐以求的,不过是在一处安静的小地方,度过晚年生活,周围是美景和家人相伴,养老的日子,会变得十分快乐。福建有个漂与雪牡丹江有关的一些情绪与雪牡丹江有关的一些情绪黄东风雪一定落下来了,初场就这样肆意暴雪为这个冬天开路,定又漫天银白完达山寂静无声,牡丹江还没有封冻雪夜里江水缓慢而坚定地流动着把疫病缠身的虎年推向极冷我江我来说句公道话鲁先生有错,男童家庭有罪南京掌掴男童事件事出有因,如果我们一味地指责,那是我们的不对,我们需要了解事情的真相以及来龙去脉,那么你的观点也许会有所改变。一事情的起因事情的起因并不复杂,两个幼儿园的小朋友抢夺一定要去爱那个给你情绪价值的人最好的爱情关系是什么?就如同一千个人眼中就有一千个哈姆雷特。爱情的种种定义,只有当事人才知道其中的辛酸苦辣。可不管最好的爱情是什么模样。我们都应该学会在一段爱情里保持自我。去爱一个