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

news2024/9/24 9:22:43

文章目录

  • 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 textwrap

import google.generativeai as genai

from IPython.display import display
from IPython.display import Markdown

def 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 textwrap

import google.generativeai as genai

from IPython.display import display
from IPython.display import Markdown

def 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 textwrap

import google.generativeai as genai

from IPython.display import display
from IPython.display import Markdown

def 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 textwrap

import google.generativeai as genai

from IPython.display import display
from IPython.display import Markdown

def 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 textwrap

import google.generativeai as genai

from IPython.display import display
from IPython.display import Markdown

def 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.coloradmin.cn/o/1534260.html

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

相关文章

(vue)新闻列表与图片对应显示,体现选中、移入状态

(vue)新闻列表与图片对应显示&#xff0c;体现选中、移入状态 项目背景&#xff1a;郑州院XX项目首页-新闻展示模块&#xff0c;鼠标移入显示对应图片&#xff0c;且体现选中和移入状态 首次加载&#xff1a; 切换列表后&#xff1a; html: <el-row :gutter"20"…

k8s系列之十五 Istio 部署Bookinfo 应用

Bookinfo 应用中的几个微服务是由不同的语言编写的。 这些服务对 Istio 并无依赖&#xff0c;但是构成了一个有代表性的服务网格的例子&#xff1a;它由多个服务、多个语言构成&#xff0c;并且 reviews 服务具有多个版本。 该应用由四个单独的微服务构成。 这个应用模仿在线书…

javaSwing日记管理系统

一、简介 使用 Java Swing 开发日记管理系统 在今天的博客中&#xff0c;我将向您介绍如何使用 Java Swing 开发一个简单而功能强大的日记管理系统。这个系统将具有登录、注册、找回密码、写日志以及切换主题等功能。我们将使用 MySQL 数据库来存储用户信息和日记内容。 二、…

Springboot集成shiro框架

前言 以前的项目代码&#xff0c;整理记录一下。 一、什么是shiro 官方&#xff1a;Shiro是一个功能强大且易于使用的Java安全框架&#xff0c;可以运行在JavaSE和JavaEE项目中&#xff0c;可执行身份验证、授权、加密和会话管理。 二、Shiro核心组件 1、UsernamePasswordT…

面试真经(运维工程师)

1.熟悉的排序算法有哪些&#xff0c;它们的时间空间复杂度如何? 排序算法主要分为内部排序和外部排序。内部排序指的是数据记录在内存中进行排序&#xff0c;而外部排序则适用于排序的数据量很大&#xff0c;一次不能容纳全部排序记录的情况&#xff0c;需要在排序过程中访问…

【爬虫】专栏文章索引

为了方便 快速定位 和 便于文章间的相互引用等 作为一个快速准确的导航工具 爬虫 目录&#xff1a; &#xff08;一&#xff09;web自动化和接口自动化 &#xff08;二&#xff09;实战-爬取Boss直聘信息数据

为什么物联网网关需要边缘计算能力?边缘计算应用场景有哪些?

【前言】本篇为物联网硬件系列学习笔记&#xff0c;分享学习&#xff0c;欢迎评论区交流~ 什么是边缘计算&#xff1f; 边缘计算&#xff08;Edge Computing&#xff09;是一种分布式计算范式&#xff0c;旨在将计算和数据存储功能放置在接近数据源或终端设备的边缘位置&#…

一代大神跌落神坛——Java炸了!

曾经它是只手遮天的一大计算机语言.......可现如今&#xff0c;腹背受敌、大势已去&#xff0c;一代神话跌落神坛&#xff01; Java薪水20k降至15k难掩颓势&#xff0c;事业编3k升至3500尽显嫡道风范&#xff01;嫡嫡道道、嫡嫡道道~ 没错&#xff0c;就是它&#xff01;Java…

【C语言】模拟实现 atoi

文章目录 atoi()函数模拟实现思路分析代码呈现 atoi()函数 通过上述cplusplus和MSDN对atoi函数的介绍我们可以得出以下几个关键点 库函数&#xff1a; <stdlib.h>形参&#xff1a;const char * str返回值&#xff1a; int作用&#xff1a;atoi函数是将一个字符串转化成一…

运维篇SHELL脚本实战案例

统计出每个IP的访问量有多少&#xff1f; 检查是否提供了日志文件的路径作为参数。使用awk从日志文件的每行中提取第一个字段&#xff08;假设这是IP地址&#xff09;。使用sort对提取的IP地址进行排序。使用uniq -c统计每个唯一IP地址的出现次数。最后&#xff0c;使用sort -…

Python模块-基础知识

Python模块-基础知识 1.模块分类&#xff1a; &#xff08;1&#xff09;自定义模块&#xff1a; 如果你自己写一个py文件&#xff0c;在文件内写入一堆函数&#xff0c;则它被称为自定义模块&#xff0c;即使用python编写的.py文件 &#xff08;2&#xff09;第三方模块&…

从0到1:Java构建高并发、高可用分布式系统的实战经验分享

文章目录 引言基础架构选择与设计微服务架构分布式储存与计算 高并发处理策略异步处理与消息队列并发控制与资源隔离 高可用性设计与故障恢复冗余与集群化容错与自我修复监控与运维自动化 引言 随着互联网业务的快速发展和技术迭代升级&#xff0c;作为Java架构师&#xff0c;…

springboot企业级抽奖项目业务一(登录模块)

开发流程 该业务基于rouyi生成好了mapper和service的代码&#xff0c;现在需要在controller层写接口 实际操作流程&#xff1a; 看接口文档一>controller里定义函数一>看给出的工具类一>补全controller里的函数一>运行测试 接口文档 在登录模块有登录和登出方…

虚拟内存页表和内存保护

前言 大家好我是jiantaoyab&#xff0c;这是我所总结作为学习的笔记第21篇&#xff0c;在这里分享给大家&#xff0c;这篇文章讲虚拟内存和内存之间的页表和内存安全问题。 虚拟内存 前面的文章提到过&#xff0c;程序装载到内存的过程。可以知道&#xff0c;程序并不直接访…

爬虫实战-Python爬取百度当天热搜内容

爬虫实战-Python爬取百度当天热搜内容 学习建议学习目标预期内容目标分解热搜地址热搜标题热搜简介热搜指数小总结 代码实现总结 学习建议 本文仅用于学习使用&#xff0c;不做他用&#xff1b;本文仅获取页面的内容&#xff0c;作为学习和对Python知识的了解&#xff0c;不会…

如何使用Net2FTP+cpolar搭建专属文件共享站点并实现无公网IP远程访问——“cpolar内网穿透”

文章目录 1.前言2. Net2FTP网站搭建2.1. Net2FTP下载和安装2.2. Net2FTP网页测试 3. cpolar内网穿透3.1.Cpolar云端设置3.2.Cpolar本地设置 4.公网访问测试5.结语 1.前言 文件传输可以说是互联网最主要的应用之一&#xff0c;特别是智能设备的大面积使用&#xff0c;无论是个人…

MySQL高级学习笔记

1、MySQL架构组成 1.1 高级MySQL介绍 什么是DBA&#xff1f; 数据库管理员&#xff0c;英文是Database Administrator&#xff0c;简称DBA&#xff1b; 百度百科介绍 数据库管理员&#xff08;简称DBA&#xff09;&#xff0c;是从事管理和维护数据库管理系统&#xff08;D…

ISIS骨干网连续性简述

默认情况下&#xff0c; 一、L1路由器是ISIS 普通区域内部路由器&#xff0c;只能与L1和L1-2路由器建立邻接关系&#xff0c;不能与L2路由器建立邻接关系。 二、L2路由器是骨干区域的路由器&#xff0c;L2路由器只能与其他 L2路由器同处一个区域&#xff0c;可与本区域的L2路由…

分布式系统的基本特性

一般&#xff0c;分布式系统需要支持以下特性&#xff1a; 资源共享 开放性 并发性 可伸缩性 容错性 透明性 下面分别讨论。 容易理解的 资源共享 一旦授权&#xff0c;可以访问环境中的任何资源。 资源&#xff1a;包括硬件(e.g. printer, scanner, camera)、软件&a…

MYSQL 同步到ES 如何设计架构保持一致性

简单使用某个组件很容易&#xff0c;但是一旦要搬到生产上就要考虑各种各样的异常&#xff0c;保证你方案的可靠性&#xff0c;可恢复性就是我们需要思考的问题。今天来聊聊我们部门在 MYSQL 同步到ES的方案设计。 在面对复杂条件查询时&#xff0c;MYSQL往往显得力不从心&…