【小沐学AI】Google AI大模型的一点点学习(Python)

文章目录

  • 1、Google AI简介
    • 1.1 Google AI Studio
    • 1.2 Bard
    • 1.3 PaLM
    • 1.4 Gemini
    • 1.5 Gemini API
    • 1.6 Vertex AI
    • 1.7 Gemma
  • 2、Google AI开发
    • 2.1 快速入门
      • 2.1.1 配置开发环境
      • 2.1.2 列出所有模型
      • 2.1.3 从文本输入生成文本
      • 2.1.4 从图像和文本输入生成文本
      • 2.1.5 聊天对话
  • 结语

1、Google AI简介

Gemini 是 Google 最大、功能最强大的 AI 模型。

在这里插入图片描述
语言模型技术发展图鉴,出自最新的一篇文章:
Harnessing the Power of LLMs in Practice: A Survey on ChatGPT and Beyond
https://arxiv.org/pdf/2304.13712.pdf
在这里插入图片描述

1.1 Google AI Studio

最快速开始使用 Gemini 的方法是使用 Google AI Studio,这是一款基于网络的工具,可让您直接在浏览器中对提示进行原型设计和运行。
https://aistudio.google.com/app/prompts/new_chat

在这里插入图片描述
借助 Google AI Studio,开发人员可以将 Gemini 模型与简单安全的 API 无缝集成,快速开发提示,并将想法转化为代码以构建生成式 AI 应用。

1.2 Bard

2023年5月,谷歌推出了由 PaLM2 驱动的全新对话式 AI 引擎 Bard,简单地说就是谷歌版的 New Bing Chat。
在这里插入图片描述

现在Bard 更名 Gemini。2024年2月8日,Bard完成了全面升级。Google也宣布进入Gemini新纪元。从今天开始,Bard将会更名为Gemini。
https://gemini.google.com/app

1.3 PaLM

https://ai.google/discover/palm2

PaLM 2 是一系列语言模型,针对关键开发者使用场景进行了优化。PaLM 系列模型包括针对文本和聊天生成以及文本嵌入训练的变体。

在这里插入图片描述

在这里插入图片描述

模型名称更新时间型号代码
Bison Text2023 年 5 月text-bison-001
Bison Chat2023 年 5 月chat-bison-001
Gecko Embedding2023 年 5 月embedding-gecko-001

1.4 Gemini

https://deepmind.google/technologies/gemini/#introduction

Gemini 是 Google 最大、功能最强大的 AI 模型。
Gemini 是 Google 的最新一代生成模型,超越了 PaLM 模型系列的功能。
Gemini 和 PaLM 模型之间的主要区别在于 Gemini 视觉模型能够处理图像输入。您可以使用文本和/或图片向 Gemini 模型提示。PaLM 模型仅处理文本输入和输出。这两个模型系列都可以执行文本提示、聊天互动和结构化提示。
在这里插入图片描述
Gemini 是 Google最大、能力最强的人工智能模型,Gemini分为三种规模:Ultra、Pro和Nano,适用于从大型数据中心到移动设备的各种场景。目前,Bard已经集成了Gemini Pro,提升了其在高级推理、规划、理解等方面的能力。
在这里插入图片描述

  • Gemini Ultra:最强大的模型,设计用于复杂任务,在TPU加速器上可高效服务。
  • Gemini Pro:在成本和延迟方面进行了优化,该模型在广泛的任务中提供显著性能,展示出强大的推理和多模态能力。
  • Gemini Nano:最高效的设备上模型,有两个版本(1.8B和3.25B参数),适用于低内存和高内存设备。它通过从更大的模型中提取精华训练,并以4位量化部署。

1.5 Gemini API

Gemini API 为 Gemini 和 PaLM 生成式 AI 模型提供了编程接口。

  • 适用于 Gemini API 的 AI 模型:
    在这里插入图片描述
  • Vertex AI Gemini API 支持以下 SDK:
model = genai.GenerativeModel(model_name="gemini-1.0-pro-vision")
response = model.generate_content(["What is this?", img])

1.6 Vertex AI

https://cloud.google.com/vertex-ai
Vertex AI 提供构建和使用生成式 AI 所需的一切,包括 AI 解决方案、Search and Conversation、130 多种基础模型,以及统一的 AI 平台。

Vertex AI 是一个机器学习 (ML) 平台,可让您训练和部署机器学习模型和人工智能应用。Vertex AI 结合了数据工程、数据科学和机器学习工程工作流,使团队能够使用通用工具集进行协作。

在这里插入图片描述

1.7 Gemma

https://ai.google.dev/gemma?hl=zh-cn
Gemma 是一个轻量级、最先进的开放式模型系列,采用与创建 Gemini 模型相同的研究和技术构建。Gemma 由 Google DeepMind 和 Google 的其他团队开发,灵感来自双子座,这个名字反映了拉丁语 gemma,意思是“宝石”。
在这里插入图片描述
Gemma 模型非常适合各种文本生成任务,包括问答、总结和推理。它们相对较小的尺寸使其可以部署在资源有限的环境中,例如笔记本电脑、台式机或您自己的云基础设施,从而实现对最先进 AI 模型的访问民主化,并帮助促进每个人的创新。

Gemma 是 Google DeepMind 推出的全新系列轻量级、先进的开放模型。此型号卡包括 2B 和 7B 型号变体。

2、Google AI开发

https://ai.google.dev/tutorials?hl=zh-cn

借助 Gemini API,您可以使用 Google 最新的生成式 AI 模型。

2.1 快速入门

Gemini 快速入门可帮助您使用自己偏好的编程语言开始使用 Gemini。

  • Python
  • Go
  • Node.js
  • Web
  • Dart (Flutter)
  • Swift
  • Android
  • REST API

2.1.1 配置开发环境

开始配置开发环境:

  • (1)安装Python3.11
    https://www.python.org/downloads/windows/

在这里插入图片描述
在这里插入图片描述

  • (2)安装google-generativeai
# pip install -q -U google-generativeai
pip install google-generativeai

在这里插入图片描述

  • (3)安装jupyter notebook
pip install jupyter notebook

在这里插入图片描述

  • (4)命令行执行命令:
jupyter notebook

在这里插入图片描述
自动打开浏览器,显示如下网址,
在这里插入图片描述
然后按照如下步骤新建notebook。
在这里插入图片描述

显示如下:
在这里插入图片描述

2.1.2 列出所有模型

  • (5)输入Python代码如下:
import pathlib
import textwrapimport google.generativeai as genaifrom IPython.display import display
from IPython.display import Markdowndef to_markdown(text):text = text.replace('•', '  *')return Markdown(textwrap.indent(text, '> ', predicate=lambda _: True))# 将密钥传递给genai.configure
# pip install -U python-dotenv
from dotenv import load_dotenv, find_dotenv
load_dotenv(find_dotenv('.env'))
# genai.configure(api_key=GOOGLE_API_KEY)
genai.configure(api_key=os.environ.get("GOOGLE_API_KEY"))# 用于查看可用的 Gemini 型号
for m in genai.list_models():if 'generateContent' in m.supported_generation_methods:print(m.name)

在这里插入图片描述
执行Python代码:
在这里插入图片描述
结果如下:
在这里插入图片描述

2.1.3 从文本输入生成文本

  • (6)输入Python代码如下:
import pathlib
import textwrapimport google.generativeai as genaifrom IPython.display import display
from IPython.display import Markdowndef to_markdown(text):text = text.replace('•', '  *')return Markdown(textwrap.indent(text, '> ', predicate=lambda _: True))# 将密钥传递给genai.configure
# pip install -U python-dotenv
import os
from dotenv import load_dotenv, find_dotenv
load_dotenv(find_dotenv('.env'))
# genai.configure(api_key=GOOGLE_API_KEY)
genai.configure(api_key=os.environ.get("GOOGLE_API_KEY"))# 对于纯文本提示,请使用以下模型:gemini-pro
model = genai.GenerativeModel('gemini-pro')# 从文本输入生成文本
response = model.generate_content("写一段关于flask的Python代码,并向爱看书的小沐解释")# 打印结果
print(response.text)

界面如下:
在这里插入图片描述

执行Python代码的结果如下:
在这里插入图片描述

2.1.4 从图像和文本输入生成文本

这里有一张图:
在这里插入图片描述

使用模型并将图像传递给模型,让它输出文字描述。

  • (6)输入Python代码如下:
import pathlib
import textwrapimport google.generativeai as genaifrom IPython.display import display
from IPython.display import Markdowndef to_markdown(text):text = text.replace('•', '  *')return Markdown(textwrap.indent(text, '> ', predicate=lambda _: True))# 将密钥传递给genai.configure
# pip install -U python-dotenv
import os
from dotenv import load_dotenv, find_dotenv
load_dotenv(find_dotenv('.env'))
# genai.configure(api_key=GOOGLE_API_KEY)
genai.configure(api_key=os.environ.get("GOOGLE_API_KEY"))# 对于纯文本提示,请使用以下模型:gemini-pro
model = genai.GenerativeModel('gemini-pro-vision')# 图片转文字
import PIL.Image
img = PIL.Image.open('flower.jpg')response = model.generate_content(img)
to_markdown(response.text)

界面如下:
在这里插入图片描述

执行Python代码的结果如下:
在这里插入图片描述
若要在提示中同时提供文本和图像,请传递包含字符串和图像的列表:

import pathlib
import textwrapimport google.generativeai as genaifrom IPython.display import display
from IPython.display import Markdowndef to_markdown(text):text = text.replace('•', '  *')return Markdown(textwrap.indent(text, '> ', predicate=lambda _: True))# 将密钥传递给genai.configure
# pip install -U python-dotenv
import os
from dotenv import load_dotenv, find_dotenv
load_dotenv(find_dotenv('.env'))
# genai.configure(api_key=GOOGLE_API_KEY)
genai.configure(api_key=os.environ.get("GOOGLE_API_KEY"))# 对于纯文本提示,请使用以下模型:gemini-pro
model = genai.GenerativeModel('gemini-pro-vision')import PIL.Image
img = PIL.Image.open('flower.jpg')response = model.generate_content(["基于这张图片,给名字叫'爱看书的小沐'的小伙伴写一小段短文,字数100字左右", img])
response.resolve()
to_markdown(response.text)

界面如下:
在这里插入图片描述

执行Python代码的结果如下:
在这里插入图片描述

2.1.5 聊天对话

Gemini 使您能够在多个回合中进行自由形式的对话。

import pathlib
import textwrapimport google.generativeai as genaifrom IPython.display import display
from IPython.display import Markdowndef to_markdown(text):text = text.replace('•', '  *')return Markdown(textwrap.indent(text, '> ', predicate=lambda _: True))# 将密钥传递给genai.configure
# pip install -U python-dotenv
import os
from dotenv import load_dotenv, find_dotenv
load_dotenv(find_dotenv('.env'))
# genai.configure(api_key=GOOGLE_API_KEY)
genai.configure(api_key=os.environ.get("GOOGLE_API_KEY"))# 对于纯文本提示,请使用以下模型:gemini-pro
model = genai.GenerativeModel('gemini-pro')
chat = model.start_chat(history=[])response = chat.send_message("生命诚可贵,爱情价更高。若为自由故,二者皆可抛。")
to_markdown(response.text)# print(chat.history)
for message in chat.history:display(to_markdown(f'**{message.role}**: {message.parts[0].text}'))

界面如下:
在这里插入图片描述

执行Python代码的结果如下:
在这里插入图片描述

结语

如果您觉得该方法或代码有一点点用处,可以给作者点个赞,或打赏杯咖啡;╮( ̄▽ ̄)╭
如果您感觉方法或代码不咋地//(ㄒoㄒ)//,就在评论处留言,作者继续改进;o_O???
如果您需要相关功能的代码定制化开发,可以留言私信作者;(✿◡‿◡)
感谢各位童鞋们的支持!( ´ ▽´ )ノ ( ´ ▽´)っ!!!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/761509.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

LeetCode 0310.最小高度树:拓扑排序秒了

【LetMeFly】310.最小高度树:拓扑排序秒了 力扣题目链接:https://leetcode.cn/problems/minimum-height-trees/ 树是一个无向图,其中任何两个顶点只通过一条路径连接。 换句话说,一个任何没有简单环路的连通图都是一棵树。 给你…

代码随想录算法训练营 DAY 16 | 104.二叉树最大深度 111.二叉树最小深度 222.完全二叉树的节点个数

104.二叉树最大深度 深度和高度 二叉树节点的深度:指从根节点到该节点的最长简单路径边的条数或者节点数(取决于深度从0开始还是从1开始)二叉树节点的高度:指从该节点到叶子节点的最长简单路径边的条数或者节点数(取…

Linux学习:git补充与调试工具gdb

目录 1. git版本控制器(续)1.1 git本地仓库结构1.2 git实现版本控制与多人协作的方式1.3 git相关指令,多分支模型与.gitignore文件 2. gdb调试工具2.1 企业项目开发流程简述与调试的必要性2.2 bug的调试思路方法与调式工具的使用 1. git版本控…

软考高级:特定领域软件架构(DSSA)概念和例题

作者:明明如月学长, CSDN 博客专家,大厂高级 Java 工程师,《性能优化方法论》作者、《解锁大厂思维:剖析《阿里巴巴Java开发手册》》、《再学经典:《Effective Java》独家解析》专栏作者。 热门文章推荐&am…

linux网络固定ip的方式

1. 注意 默认情况下,我们linux操作系统 ip 获取的方式是自动获取的方式(DHCP),自动获取在我们需要进行集群配置的时候,IP会经常变化,需要将IP固定下来。 2. 第一步 编辑我们 linux 的网卡文件 这个网卡文件…

环境变量配置

举一个小例子来演示一下环境变量配置。 在CMD中打开QQ界面,首先需要知道QQ.exe文件的完整路径。一旦有了这个路径,可以按照以下步骤操作: 打开CMD窗口。可以通过按下Windows键R,输入“cmd”并回车来打开它。在CMD窗口中&#xf…

【LINUX笔记】驱动开发框架

应用程序调动驱动程序 驱动模块运行模式 模块加载-卸载 加载卸载注册函数 加载 驱动编译完成以后扩展名为.ko,有两种命令可以加载驱动模块: insmod和modprobe 驱动卸载 驱动注册注销 //查看当前已经被使用掉的设备号 cat /proc/devices 实现设备的具…

按键模拟精灵

按键模拟精灵功能简单: 1.添加模拟按键 2.删除模拟按键 3.开始模拟 4.停止模拟 适合简单的按键操作,有需要的可以点赞收藏关注我!

Axure RP 9 for mac中文版密钥激活版下载

Axure RP 9是一款专业的快速原型设计工具,它可以帮助产品设计师、交互设计师和用户体验设计师等创建高保真度、交互性强的原型,以便在产品开发之前进行测试和用户验证。 软件下载:Axure RP 9 for mac中文版密钥激活版下载 该工具具有丰富的功…

javaSwing俄罗斯方块

目录 1 绪论 1.1程序开发背景及意义 1.2开发技术概述 1.3俄罗斯方块游戏的研究现状 1.3.1 国内外研究现状 1.3.2 文献综述 2相关技术 2.4.1 硬件平台: 2.4.2 软件平台: 3 系统分析 3.1可行性分析 3.1.1经济可行性分析 3.1.2技术可行性分析 3.1.3社会可行…

Linux 文件系统:重定向、缓冲区

目录 一、重定向 1、输出重定向 2、输入重定向 3、追加重定向 4、dup2 系统调用 二、理性理解Linux系统下“一切皆文件” 了解硬件接口 三、缓冲区 1、为什么要有缓冲区? 2、刷新策略 3、缓冲模式改变导致发生写时拷贝 未创建子进程时 创建子进程时 使用fflush…

ubuntu將en01變成eth0的形式

文章目录 前言一、操作步驟1、打開grub文件2、輸入更新指令3、查看結果 二、使用步骤总结 前言 一、操作步驟 1、打開grub文件 使用管理員權限打開,添加新內容 sudo gedit grub2、輸入更新指令 sudo update-grub3、查看結果 使用ifconfig查看是否修改成功&…

安达发|印刷包装APS生产计划排产系统的商业价值

在当今快速消费和竞争激烈的市场环境中,印刷包装行业面临着前所未有的挑战。随着客户需求的多样化、交付期限的缩短以及原材料价格的波动,传统的生产管理方法已无法满足现代印刷包装企业的复杂需求。为了保持竞争力,企业必须采用先进的生产计…

接口测试面试题整理

HTTP, HTTPS协议 什么是DNSHTTP协议怎么抓取HTTPS协议说出请求接口中常见的返回状态码http协议请求方式HTTP和HTTPS协议区别HTTP和HTTPS实现机有什么不同POST和GET的区别HTTP请求报文与响应报文格式什么是Http协议无状态协议?怎么解决HTTP协议无状态协议常见的POST提交数据方…

C++进阶02 多态性

听课笔记简单整理,供小伙伴们参考~🥝🥝 第1版:听课的记录代码~🧩🧩 编辑:梅头脑🌸 审核:文心一言 目录 🐳课程来源 🐳前言 🐋运…

JAVA安全(偏基础)

SQL注入 SQLI(SQL Injection), SQL注入是因为程序未能正确对用户的输入进行检查,将用户的输入以拼接的方式带入SQL语句,导致了SQL注入的产生。攻击者可通过SQL注入直接获取数据库信息,造成信息泄漏。 JDBC JDBC有两个方法获取s…

数据挖掘之关联规则

“啤酒和尿布的荣誉” 概念 项 item:单个的事物个体 ,I{i1,i2…im}是所有项的集合,|I|m是项的总数项集(item set)/模式(pattern):项的集合,包含k个项的项集称为k-项集数据集(data set)/数据库…

Linux快速入门,上手开发 02.VMware的安装部署

倘若穷途末路,那便势如破竹 —— 24.3.21 一、VMware的作用 在Windows或IOS系统下,给本地电脑安装VMware虚拟机,用来在虚拟机上安装Linux系统,避免重复资源的浪费,可以在虚拟机上搭建Linux系统进行学习 二、VMware的安…

树莓派夜视摄像头拍摄红外LED灯

NoIR相机是一种特殊类型的红外摄像头,其名称来源于"No Infrared"的缩写。与普通的彩色摄像头不同,NoIR相机具备红外摄影和低光条件下摄影的能力。 一般摄像头能够感知可见光,并用于普通摄影和视频拍摄。而NoIR相机则在设计上去除了…

C语言疑难题:杨辉三角形、辗转相除求最大公约数、求π的近似值、兔子问题、打印菱形

杨辉三角形&#xff1a;打印杨辉三角形的前10行 /* 杨辉三角形&#xff1a;打印杨辉三角形的前10行 */ #include<stdio.h> int main(){ int i,j; int a[10][10]; printf("\n"); for(i0;i<10;i){ a[i][0]1; a[i][i]1; …