AI人人必修-提示词工程+大模型多场景实战[15章]

kuanmdboss · · 1092 次点击 · 开始浏览    置顶
这是一个创建于 的主题,其中的信息可能已经有所发展或是发生改变。

![1.png](https://static.golangjob.cn/231116/21805250b9c1f07f1eba677dd50e5baa.png) 今天给大家讲讲关于提示词工程,还有大模型多场景实战方面的知识,大家都知道,当下,只要掌握提示词工程技能就能驾驭AI,同时实现大幅提升工作效能和质量,从而拓宽职业发展,接下来我就帮助大家逐步深入并融合大模型提升商业化思维,打通职场、副业的求职、创作、教学、绘图、编程等多场景应用实战。 目前,人工智能正在颠覆许多行业,包括新闻行业、医疗卫生行业和教育行业。你可能很快看到人工智能在你工作或教学中出现,即使现在还没有。但是,尽管人工智能非常有用,但它们需要人类来指导它们做什么。通常情况下,人工智能就像非常聪明的五岁小孩。它们可以做很多事情,但它们需要仔细的指导才能做得好。 能够正确指导人工智能是一项非常强大的技能。那么该如何跟它们沟通呢?本课程讨论的人工智能能够理解英语(和其他语言)。所以我们通常只需描述我们想要完成的任务。 推断(Inferring) 所谓推断是指能够从一段文本中推断出作者的情绪,比如:高兴,快乐,正面,负面等。。。 首先我们需要设置通过API来访问的主要代码: type scase struct { c *hchan // chan的结构体类型指针 elem unsafe.Pointer // //读或者写的缓冲区地址 } type hchan struct { qcount uint // total data in the queue dataqsiz uint // size of the circular queue buf unsafe.Pointer // points to an array of dataqsiz elements elemsize uint16 closed uint32 elemtype *_type // element type sendx uint // send index recvx uint // receive index recvq waitq // list of recv waiters sendq waitq // list of send waiters // lock protects all fields in hchan, as well as several // fields in sudogs blocked on this channel. // // Do not change another G's status while holding this lock // (in particular, do not ready a G), as this can deadlock // with stack shrinking. lock mutex } 商品评论文本 下面我们给提供一段消费者对某电商网站商品的评论,我们希望能够从这段评论中推断出消费者的情绪,由于原始评论是英文的,我将其翻译的中文也罗列出来,这样可以便于大家理解: fatal error: concurrent map writes goroutine 19 [running]: main.main.func1() G:/code/go/go-interview/demo/8-21/map-concurrency/main.go:12 +0x36 created by main.main G:/code/go/go-interview/demo/8-21/map-concurrency/main.go:11 +0x3d goroutine 1 [semacquire]: sync.runtime_Semacquire(0xc00008e120?) D:/Program Files/Go/src/runtime/sema.go:62 +0x27 sync.(*WaitGroup).Wait(0x0?) D:/Program Files/Go/src/sync/waitgroup.go:116 +0x4b main.main() G:/code/go/go-interview/demo/8-21/map-concurrency/main.go:16 +0xe5 exit status 2 关于LLM设置的说明 在使用提示时,您将通过API或直接与LLM进行交互。您可以配置一些参数以获得不同提示的结果。 温度 - 简而言之,温度越低,结果就越确定,因为始终选择最有可能的下一个标记。增加温度可能会导致更多的随机性,从而鼓励更多元化或创造性的输出。实际应用中,我们可能希望对基于事实的QA使用较低的温度来鼓励更加客观和简洁的回答。 对于像诗歌生成或其他创意任务,增加温度可能是有益的。 Top_p - 类似地,通过称为nucleus采样的带有温度的采样技术,可以控制模型在生成响应时的确定性。如果您正在寻找准确和事实的答案,请将其保持在低值。如果你正在寻找更多元化的回答,请将其增加到较高的值。 通常的建议是只更改其中一个。 在开始一些基本的示例之前,请记住,您的结果可能取决于您使用的LLM版本。 package main import ( "fmt" "log" "time" ) var cache = make(map[int]int) func init() { Ticker(refreshCache, time.Second) } func main() { for i := 0; i < 100000000; i++ { //模拟非并发写入 cache[i] = i } time.Sleep(time.Second) fmt.Println(cache) } //全量更新缓存 func refreshCache() { log.Println("开始更新缓存") data := GetDataFromDB() if len(data) == 0 { return } tmp := make(map[int]int, len(data)) for i, d := range data { tmp[i] = d } //全量更新cache cache = tmp tmp = nil } func GetDataFromDB() []int { return []int{1, 2, 3} } // 启动一个定时器 func Ticker(f func(), d time.Duration) { go func() { ticker := time.NewTicker(d) for { select { case <-ticker.C: go f() } } }() } 指令 您可以使用命令来指示模型您想要实现的内容,例如“写入”、“分类”、“总结”、“翻译”、“排序”等,从而为各种简单任务设计有效的提示。 请记住,您还需要进行大量实验以了解最佳的方法。尝试不同的指令与不同的关键字、上下文和数据,并观察哪种方法最适合您特定的用例和任务。通常,上下文与您要执行的任务相关性越强,越具体和相关,结果越好。我们将在即将推出的指南中讨论采样和添加更多上下文的重要性。 其他人建议指令放在提示的开头。还建议使用一些清晰的分隔符,如“###”来分隔指令和上下文。 例如: package main import ( "log" ) import "time" type Request interface{} func handle(r Request) { log.Println("发起请求", r) } const RateLimitPeriod = time.Second const RateLimit = 1 // 任何一秒钟内最多处理1个请求 func handleRequests(requests <-chan Request) { quotas := make(chan struct{}, RateLimit) //相当于以恒定的速率放入令牌 go func() { tick := time.NewTicker(RateLimitPeriod / RateLimit) defer tick.Stop() for _ = range tick.C { select { case quotas <- struct{}{}: default: } } }() for r := range requests { <-quotas go handle(r) } } func main() { requests := make(chan Request) go handleRequests(requests) for i := 0; i < 100; i++ { requests <- i } } 今天就给大家写到这里,希望我的文章对大家有所帮助!!

有疑问加站长微信联系(非本文作者)

入群交流(和以上内容无关):加入Go大咖交流群,或添加微信:liuxiaoyan-s 备注:入群;或加QQ群:692541889

1092 次点击  
加入收藏 微博
暂无回复
添加一条新回复 (您需要 登录 后才能回复 没有账号 ?)
  • 请尽量让自己的回复能够对别人有帮助
  • 支持 Markdown 格式, **粗体**、~~删除线~~、`单行代码`
  • 支持 @ 本站用户;支持表情(输入 : 提示),见 Emoji cheat sheet
  • 图片支持拖拽、截图粘贴等方式上传