Meta正式发布并开源了Llama 3系列模型,本次发布了8B和70B的预训练及指令微调语言模型。这个模型发布后,国内大模型收费的念头基本可以断绝了;
Llama 3 的亮点
1、基于超过 15T token 训练,相当于 Llama 2 数据集的 7 倍还多;
2、支持 8K 长文本,改进的 tokenizer 具有 128K token 的词汇量,可实现更好的性能;
3、在大量重要基准中均具有最先进性能;
4、新能力范畴,包括增强的推理和代码能力;
5、训练效率比 Llama 2 高 3 倍;
6、带有 Llama Guard 2、Code Shield 和 CyberSec Eval 2 的新版信任和安全工具。
体验下来,最小的模型,都要比国内一众收费模型效果好;
下面来讲下如何实现本地部署,并完成视频上的功能;
第一步:安装ollama :
Ollama 是一个强大的框架,它帮助用户快速在本地运行大模型,通过简单的安装指令,可以让用户执行一条命令就在本地运行开源大型语言模型,例如 Llama 2。安装方式很简单,在这里下载安装包即可:
https://ollama.com/download 详细的安装方式,可以参考我这篇文章 谷歌大模型Gemma在家用电脑下的安装和测试
第二步:安装大模型 Llama3,安装方式:打开cmd命令行工具,敲如如下命令:
ollama run llama3
坐等下载安装即可,安装完成后,会有以下命令提示:
这样就安装好了,可以向大模型提问了,非常简单;
第三步:整合到聊天系统中; ollama提供了丰富的接口,细节可以参考:
ollama/docs/api.md at main · ollama/ollama · GitHub 本地接口调用格式如下:
curl http://localhost:11434/api/generate -d '{
"model": "llama3",
"prompt": "人生的意义是什么?",
"stream": true
}'
以上采用了流式输出,要让前端界面能否实时反馈出来,我们需要采用 websocket 来使用;
先看下前端核心代码:连接上websocket 接口
this.ws = new WebSocket(wsUrl);
this.ws.onopen = this.onOpen.bind(this);
this.ws.onerror = this.onError.bind(this);
this.ws.onmessage = this.onMessage.bind(this);
this.ws.onclose = this.onClose.bind(this);
// 发送消息监听函数
ws.$on(["reply", "chat"], data => {
let one_chat = document.getElementById(data.ai_id);
if (one_chat) {
one_chat.innerHTML += data.msn;
this.goPageBottom(); // 滑动到页面底部
return;
}
});
当websocket接收到请求的时候,将推送的内容,拼接到div元素的后面
后端的请求:输出流式数据:核心函数如下:
function ai_send($data, $content, $fd, &$server)
{
$apiUrl = 'http://127.0.0.1:11434/api/generate';
$id = md5($fd . '//' . $content.'//'.time());
//返回数据
$response = '';
$all_response = '';
//不完整的数据
$imperfect = '';
$callback = function ($ch, $call_data) use (&$data, &$server, &$fd,
&$response, &$imperfect, &$all_response, &$id) {
$dataLength = strlen($call_data);
Log::ERROR('ai:' . $call_data);
//有可能会返回不完整的数据
if (substr($call_data, -1) !== "\n") {
$imperfect .= $call_data;
return $dataLength;
}
if ($imperfect != '') {
$call_data = $imperfect . $call_data;
$imperfect = '';
}
$msg = explode("\n", $call_data);
foreach ($msg as $msg_str) {
if (empty ($msg_str)) {
continue;
}
$msg_obj = @json_decode($msg_str);
if (isset ($msg_obj->response)) {
$response .= $msg_obj->response;
}
if ($msg_obj->done) {
break;
}
}
if (!empty ($response)) {
$response = htmlspecialchars($response);
$response = str_replace(' ', ' ', $response);
$response = str_replace("\n", '<br/>', $response);
$data['data']['msn'] = $response;
$data['data']['msn_type'] = 100; //ai
$data['data']['ai_id'] = $id;
$all_response .= $response;
$response = '';
// Log::ERROR('ai:' . json_encode($data));
// 将数据发送给前端
$server->push((int) $fd, json_encode($data));
}
return $dataLength;
};
$postData = [
'model' => 'llama3',
'prompt' => '用中文回答:' . $content,
'stream' => true
];
$ch = curl_init();
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, FALSE);
curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, FALSE);
curl_setopt($ch, CURLOPT_URL, $apiUrl);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_POST, 1);
curl_setopt($ch, CURLOPT_POSTFIELDS, json_encode($postData));
curl_setopt($ch, CURLOPT_WRITEFUNCTION, $callback);
curl_exec($ch);
curl_close($ch);
return $all_response;
}
以上就是llama3 部署及应用于客服系统的核心步骤,欢迎各位加我粉丝,大家一起学习ai相关的技术实现;
如何学习大模型 AI ?
由于新岗位的生产效率,要优于被取代岗位的生产效率,所以实际上整个社会的生产效率是提升的。
但是具体到个人,只能说是:
“最先掌握AI的人,将会比较晚掌握AI的人有竞争优势”。
这句话,放在计算机、互联网、移动互联网的开局时期,都是一样的道理。
我在一线互联网企业工作十余年里,指导过不少同行后辈。帮助很多人得到了学习和成长。
我意识到有很多经验和知识值得分享给大家,也可以通过我们的能力和经验解答大家在人工智能学习中的很多困惑,所以在工作繁忙的情况下还是坚持各种整理和分享。但苦于知识传播途径有限,很多互联网行业朋友无法获得正确的资料得到学习提升,故此将并将重要的AI大模型资料包括AI大模型入门学习思维导图、精品AI大模型学习书籍手册、视频教程、实战学习等录播视频免费分享出来。
第一阶段(10天):初阶应用
该阶段让大家对大模型 AI有一个最前沿的认识,对大模型 AI 的理解超过 95% 的人,可以在相关讨论时发表高级、不跟风、又接地气的见解,别人只会和 AI 聊天,而你能调教 AI,并能用代码将大模型和业务衔接。
- 大模型 AI 能干什么?
- 大模型是怎样获得「智能」的?
- 用好 AI 的核心心法
- 大模型应用业务架构
- 大模型应用技术架构
- 代码示例:向 GPT-3.5 灌入新知识
- 提示工程的意义和核心思想
- Prompt 典型构成
- 指令调优方法论
- 思维链和思维树
- Prompt 攻击和防范
- …
第二阶段(30天):高阶应用
该阶段我们正式进入大模型 AI 进阶实战学习,学会构造私有知识库,扩展 AI 的能力。快速开发一个完整的基于 agent 对话机器人。掌握功能最强的大模型开发框架,抓住最新的技术进展,适合 Python 和 JavaScript 程序员。
- 为什么要做 RAG
- 搭建一个简单的 ChatPDF
- 检索的基础概念
- 什么是向量表示(Embeddings)
- 向量数据库与向量检索
- 基于向量检索的 RAG
- 搭建 RAG 系统的扩展知识
- 混合检索与 RAG-Fusion 简介
- 向量模型本地部署
- …
第三阶段(30天):模型训练
恭喜你,如果学到这里,你基本可以找到一份大模型 AI相关的工作,自己也能训练 GPT 了!通过微调,训练自己的垂直大模型,能独立训练开源多模态大模型,掌握更多技术方案。
到此为止,大概2个月的时间。你已经成为了一名“AI小子”。那么你还想往下探索吗?
- 为什么要做 RAG
- 什么是模型
- 什么是模型训练
- 求解器 & 损失函数简介
- 小实验2:手写一个简单的神经网络并训练它
- 什么是训练/预训练/微调/轻量化微调
- Transformer结构简介
- 轻量化微调
- 实验数据集的构建
- …
第四阶段(20天):商业闭环
对全球大模型从性能、吞吐量、成本等方面有一定的认知,可以在云端和本地等多种环境下部署大模型,找到适合自己的项目/创业方向,做一名被 AI 武装的产品经理。
- 硬件选型
- 带你了解全球大模型
- 使用国产大模型服务
- 搭建 OpenAI 代理
- 热身:基于阿里云 PAI 部署 Stable Diffusion
- 在本地计算机运行大模型
- 大模型的私有化部署
- 基于 vLLM 部署大模型
- 案例:如何优雅地在阿里云私有部署开源大模型
- 部署一套开源 LLM 项目
- 内容安全
- 互联网信息服务算法备案
- …
学习是一个过程,只要学习就会有挑战。天道酬勤,你越努力,就会成为越优秀的自己。
如果你能在15天内完成所有的任务,那你堪称天才。然而,如果你能完成 60-70% 的内容,你就已经开始具备成为一名大模型 AI 的正确特征了。