色哟哟视频在线观看-色哟哟视频在线-色哟哟欧美15最新在线-色哟哟免费在线观看-国产l精品国产亚洲区在线观看-国产l精品国产亚洲区久久

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評(píng)論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

兩億多用戶,六大業(yè)務(wù)場(chǎng)景,知乎AI用戶模型服務(wù)性能如何優(yōu)化?

電子工程師 ? 來源:工程師李察 ? 2019-01-05 11:06 ? 次閱讀

用戶模型簡介

知乎 AI 用戶模型服務(wù)于知乎兩億多用戶,主要為首頁、推薦、廣告、知識(shí)服務(wù)、想法、關(guān)注頁等業(yè)務(wù)場(chǎng)景提供數(shù)據(jù)和服務(wù),例如首頁個(gè)性化 Feed 的召回和排序、相關(guān)回答等用到的用戶長期興趣特征,問題路由、回答排序中用到的 TPR「作者創(chuàng)作權(quán)威度」,廣告定向投放用到的基礎(chǔ)屬性等。

主要功能

提供的數(shù)據(jù)和功能主要有:

用戶興趣:長期興趣、實(shí)時(shí)興趣、分類興趣、話題興趣、keyword 興趣、作者創(chuàng)作權(quán)威度等,

用戶 Embedding 表示:最近鄰用戶、人群劃分、特定用戶圈定等,

用戶社交屬性:用戶親密度、二度好友、共同好友、相似優(yōu)秀回答者等,

用戶實(shí)時(shí)屬性: LastN 行為、LastLogin 等,

用戶基礎(chǔ)屬性:用戶性別預(yù)測(cè)、年齡段計(jì)算、職業(yè)預(yù)估等。

服務(wù)架構(gòu)

整體主要分為 Streaming / 離線計(jì)算、在線服務(wù)和 HBase 多集群同步三部分組成,下面將依次進(jìn)行介紹。

用戶模型服務(wù)架構(gòu)圖

Streaming / 離線計(jì)算

Streaming 計(jì)算主要涉及功能 LastRead、LastSearch、LastDisplay,實(shí)時(shí)話題/ Keyword 興趣、最后登錄時(shí)間、最后活躍的省市等。

用戶模型實(shí)時(shí)興趣計(jì)算邏輯圖

實(shí)時(shí)興趣的計(jì)算流程

相應(yīng)日志獲取。從 CardshowLog、PageshowLog、QueryLog 中抽取<用戶,contentToken,actionType >等內(nèi)容。

映射到對(duì)應(yīng)的內(nèi)容維度。對(duì)于問題、回答、文章、搜索分別獲取對(duì)應(yīng)的 Topic 和 Keyword,搜索內(nèi)容對(duì)應(yīng)的 Topic。在 Redis 中用 contentToken 置換 contentId 后,請(qǐng)求 ContentProfile 獲取其對(duì)應(yīng)話題和關(guān)鍵詞;對(duì)于 Query,調(diào)用 TopicMatch 服務(wù),傳遞搜索內(nèi)容給服務(wù),服務(wù)返回其對(duì)應(yīng)的 Topic;調(diào)用 Znlp 的 KeywordExtractorJar 包,傳遞搜索內(nèi)容并獲得其對(duì)應(yīng)的 Keyword 。

用戶-內(nèi)容維度匯總。根據(jù)用戶的行為,在<用戶,topic,actionType>和<用戶,keyword,actionType>層面進(jìn)行 groupBy 聚合匯總后,并以 hashmap 的格式存儲(chǔ)到 Redis,作為計(jì)算用戶實(shí)時(shí)興趣的基礎(chǔ)數(shù)據(jù),按時(shí)間衰減系數(shù) timeDecay 進(jìn)行新舊興趣的 merge 后存儲(chǔ)。

計(jì)算興趣。在用戶的歷史基礎(chǔ)數(shù)據(jù)上,按一定的 decay 速度進(jìn)行衰減,按威爾遜置信區(qū)間計(jì)算用戶興趣 score,并以 Sortedset 的格式存儲(chǔ)到 Redis。

關(guān)于興趣計(jì)算,已經(jīng)優(yōu)化的地方主要是:如何快速的計(jì)算平滑參數(shù) alpha 和 beta,如何 daily_update 平滑參數(shù),以及用卡方計(jì)算置信度時(shí),是否加入平滑參數(shù)等都會(huì)對(duì)最終的興趣分值有很大的影響,當(dāng) display 為 1 曝光數(shù)量不足的情況下,興趣 score 和 confidence 計(jì)算出現(xiàn) 的 bias 問題等。

在線服務(wù)

隨之知乎日益增加的用戶量,以及不斷豐富的業(yè)務(wù)場(chǎng)景和與之相對(duì)應(yīng)出現(xiàn)的調(diào)用量上升等,對(duì)線上服務(wù)的穩(wěn)定性和請(qǐng)求時(shí)延要求也越來越高。 舊服務(wù)本身也存在一些問題,比如:

在線服務(wù)直連 HBase,當(dāng)數(shù)據(jù)熱點(diǎn)的時(shí)候,造成某些 Region Server 的負(fù)載很高,P95 上升,輕者造成服務(wù)抖動(dòng),監(jiān)控圖偶發(fā)有「毛刺」現(xiàn)象,重者造成服務(wù)幾分鐘的不可用,需要平臺(tái)技術(shù)人員將 Region 從負(fù)載較高的 RegionServer 上移走。

離線任務(wù)每次計(jì)算完成后一次大批量同時(shí)寫入離線和在線集群,會(huì)加重 HBase 在線集群Region Server 的負(fù)載,增大 HBase get 請(qǐng)求的時(shí)延,從而影響線上服務(wù)穩(wěn)定性和 P95。

針對(duì)問題一,我們?cè)谠瓉淼姆?wù)架構(gòu)中增加緩存機(jī)制,以此來增強(qiáng)服務(wù)的穩(wěn)定型、減小 Region Server 的負(fù)載。

針對(duì)問題二,修改了離線計(jì)算和多集群數(shù)據(jù)同步的方式,詳見「HBase多集群存儲(chǔ)機(jī)制」部分。

Cache機(jī)制具體實(shí)現(xiàn)

沒有 Cache 機(jī)制時(shí),所有的 get 和 batchGet 方法直接請(qǐng)求到 HBase,具體如下圖:

用戶模型服務(wù)請(qǐng)求序列圖

UserProfileServiceApp 啟動(dòng)服務(wù),將收到的請(qǐng)求交由 UserProfileServiceImpl 具體處理

UserProfileServiceImp 根據(jù)請(qǐng)求參數(shù),調(diào)用 GetTranslator 將 UserProfileRequest.GetRequest 轉(zhuǎn)化成 HBase 中的 Get Object(在 Map 中維護(hù)每個(gè) requestField 對(duì)應(yīng) HBase 中的 tablename,cf,column,prefix 等信息),以格式Map[String, util.List[(AvailField, Get)]]返回。

UserProfileServiceImp 用 Future 異步向 HBase 發(fā)送 get 請(qǐng)求,獲取到結(jié)果返回。

增加 Cache 機(jī)制的具體方法,在上面的第二步中,增加一個(gè) CacheMap,用來維護(hù) get 中 AvailField 對(duì)應(yīng) Cache 中的 key,key 的組成格式為:「 tablename 縮寫| columnfamily 縮寫| columnname 縮寫| rowkey 全寫」。這里使用的 Redis 數(shù)據(jù)結(jié)構(gòu)主要有兩種,SortedSet 和 Key-Value對(duì)。服務(wù)端收到請(qǐng)求后先去轉(zhuǎn)化 requestField 為 Cache 中的 key,從 Cache 中獲取數(shù)據(jù)。對(duì)于沒有獲取到 requestField 的轉(zhuǎn)化成 GetObject,請(qǐng)求 HBase 獲取,將結(jié)果保存到 Cache 中并返回。

最終效果

用戶模型的訪問量大概為 100K QPS,每個(gè)請(qǐng)求轉(zhuǎn)化為多個(gè) get 請(qǐng)求。 增加 Cache 前 get 請(qǐng)求的 P95 為30ms,增加 Cache 后降低到小于 15ms,Cache 命中率 90% 以上。

HBase 多集群存儲(chǔ)機(jī)制

離線任務(wù)和 Streaming 計(jì)算主要采用 Spark 計(jì)算實(shí)現(xiàn), 結(jié)果保存到 HBase 的幾種方式:

方法一:每次一條

1. 每次寫進(jìn)一條,調(diào)用 API 進(jìn)行存儲(chǔ)的代碼如下:

valhbaseConn=ConnectionFactory.createConnection(hbaseConf)valtable=hbaseConn.getTable(TableName.valueOf("word"))x.foreach(value=>{varput=newPut(Bytes.toBytes(value.toString))put.addColumn(Bytes.toBytes("f1"),Bytes.toBytes("c1"),Bytes.toBytes(value.toString))table.put(put)})

方法二:批量寫入

2. 批量寫入 HBase,使用的 API:

/***{@inheritDoc}*@throwsIOException*/@Overridepublicvoidput(finalListputs)throwsIOException{getBufferedMutator().mutate(puts);if(autoFlush){flushCommits();}}

方法三:MapReduce 的 saveAsNewAPIHadoopDataset 方式寫入

3. saveAsNewAPIHadoopDataset 是通用的保存到 Hadoop 存儲(chǔ)系統(tǒng)的方法,調(diào)用 org.apache.hadoop.mapreduce.RecordWriter 實(shí)現(xiàn)。org.apache.hadoop.hbase.mapreduce.TableOutputFormat.TableRecordWriter 是其在 HBase 中的實(shí)現(xiàn)類。底層通過調(diào)用 hbase.client.BufferedMutator.mutate() 方式保存。

valrdd=sc.makeRDD(Array(1)).flatMap(_=>0to1000000)rdd.map(x=>{varput=newPut(Bytes.toBytes(x.toString))put.addColumn(Bytes.toBytes("f1"),Bytes.toBytes("c1"),Bytes.toBytes(x.toString))(newImmutableBytesWritable,put)}).saveAsHadoopDataset(jobConf)/***Writesakey/valuepairintothetable.*@throwsIOExceptionWhenwritingfails.*/@Overridepublicvoidwrite(KEYkey,Mutationvalue)throwsIOException{if(!(valueinstanceofPut)&&!(valueinstanceofDelete)){thrownewIOException("PassaDeleteoraPut");}mutator.mutate(value);}

方法四:BulkLoad 方式

4. BulkLoad 方式,創(chuàng)建 HFiles,調(diào)用 LoadIncrementalHFiles 作業(yè)將它們移到 HBase 表中。

首先需要根據(jù)表名 getRegionLocator 得到 RegionLocator,根據(jù) RegionLocator 得到 partition,因?yàn)樵?HFile 中是有序的所以,需要調(diào)用 rdd.repartitionAndSortWithinPartitions(partitioner) 將 rdd 重新排序。

HFileOutputFormat2.configureIncrementalLoad(job,table, regionLocator) 進(jìn)行任務(wù)增量Load 到具體表的配置 實(shí)現(xiàn)并執(zhí)行映射( 并減少) 作業(yè),使用 HFileOutputFormat2 輸出格式將有序的放置或者 KeyValue 對(duì)象寫入HFile文件。Reduce階段通過調(diào)用 HFileOutputFormat2.configureIncrementalLoad 配置在場(chǎng)景后面。執(zhí)行LoadIncrementalHFiles 作業(yè)將 HFile 文件移動(dòng)到系統(tǒng)文件。

staticvoidconfigureIncrementalLoad(Jobjob,Tabletable,RegionLocatorregionLocator,Class>cls)throwsIOException{Configurationconf=job.getConfiguration();job.setOutputKeyClass(ImmutableBytesWritable.class);job.setOutputValueClass(KeyValue.class);job.setOutputFormatClass(cls);//Basedontheconfiguredmapoutputclass,setthecorrectreducertoproperly//sorttheincomingvalues.if(KeyValue.class.equals(job.getMapOutputValueClass())){job.setReducerClass(KeyValueSortReducer.class);}elseif(Put.class.equals(job.getMapOutputValueClass())){job.setReducerClass(PutSortReducer.class);}elseif(Text.class.equals(job.getMapOutputValueClass())){job.setReducerClass(TextSortReducer.class);}else{LOG.warn("Unknownmapoutputvaluetype:"+job.getMapOutputValueClass());}conf.setStrings("io.serializations",conf.get("io.serializations"),MutationSerialization.class.getName(),ResultSerialization.class.getName(),KeyValueSerialization.class.getName());configurePartitioner(job,startKeys);//SetcompressionalgorithmsbasedoncolumnfamiliesconfigureCompression(table,conf);configureBloomType(table,conf);configureBlockSize(table,conf);configureDataBlockEncoding(table,conf);TableMapReduceUtil.addDependencyJars(job);TableMapReduceUtil.initCredentials(job);LOG.info("Incrementaltable"+table.getName()+"outputconfigured.");}publicstaticvoidconfigureIncrementalLoad(Jobjob,Tabletable,RegionLocatorregionLocator)throwsIOException{configureIncrementalLoad(job,table,regionLocator,HFileOutputFormat2.class);}valhFileLoader=newLoadIncrementalHFiles(conf)hFileLoader.doBulkLoad(hFilePath,newHTable(conf,table.getName))

將 HFile 文件 Bulk Load 到已存在的表中。 由于 HBase 的 BulkLoad 方式是繞過了 Write to WAL,Write to MemStore 及 Flush to disk 的過程,所以并不能通過 WAL 來進(jìn)行一些復(fù)制數(shù)據(jù)的操作。 由于 Bulkload 方式還是對(duì)集群 RegionServer 造成很高的負(fù)載,最終采用方案三,下面是兩個(gè)集群進(jìn)行數(shù)據(jù)同步。

存儲(chǔ)同步機(jī)制

技術(shù)選型 HBase 常見的 Replication 方法有 SnapShot、CopyTable/Export、BulkLoad、Replication、應(yīng)用層并發(fā)讀寫等。 應(yīng)用層并發(fā)讀寫 優(yōu)點(diǎn):應(yīng)用層可以自由靈活控制對(duì) HBase寫入速度,打開或關(guān)閉兩個(gè)集群間的同步,打開或關(guān)閉兩個(gè)集群間具體到表或者具體到列簇的同步,對(duì) HBase 集群性能的影響最小,缺點(diǎn)是增加了應(yīng)用層的維護(hù)成本。 初期沒有更好的集群數(shù)據(jù)同步方式的時(shí)候,用戶模型和內(nèi)容模型自己負(fù)責(zé)兩集群間的數(shù)據(jù)同步工作。

用戶模型存儲(chǔ)多機(jī)房同步架構(gòu)圖

具體實(shí)現(xiàn)細(xì)節(jié)

第一步:定義用于在 Kafka 的 Producer 和 Consumer 中流轉(zhuǎn)的統(tǒng)一數(shù)據(jù) Protobuf 格式

messageColumnValue{requiredbytesqualifier=1;......}messagePutMessage{requiredstringtablename=1;......}

第二步:發(fā)送需要同步的數(shù)據(jù)到 Kafka,(如果有必要,需要對(duì)數(shù)據(jù)做相應(yīng)的格式處理),這里對(duì)數(shù)據(jù)的處理,有兩種方式。 第一種:如果程序中有統(tǒng)一的存儲(chǔ)到 HBase 的工具(另一個(gè)項(xiàng)目是使用自定義的 HBaseHandler,業(yè)務(wù)層面只生成 tableName,rowKey,columnFamily,column 等值,由 HBaseHandler 統(tǒng)一構(gòu)建成 Put 對(duì)象,并保存 HBase 中),這種方式在業(yè)務(wù)層面改動(dòng)較小,理論上可以直接用原來的格式發(fā)給 Kafka,但是如果 HBaseHandler 處理的格式和 PutMessage 格式有不符的地方,做下適配即可。

/***tableName:hbasetablename*rdd:RDD[(rowkey,family,column,value)]*/defconvert(tableName:String,rdd:RDD):RDD={rdd.map{case(rowKey:String,family:String,column:String,value:Array[Byte])=>valmessage=KafkaMessages.newBuilder()valcolumnValue=ColumnValue.newBuilder()columnValue.set......(rowKey,message.build().toByteArray)}}

第二種:程序在 RDD 中直接構(gòu)建 HBase 的 Put 對(duì)象,調(diào)用 PairRDD 的 saveAsNewAPIHadoopDataset 方法保存到 HBase 中。此種情況,為了兼容已有的代碼,做到代碼和業(yè)務(wù)邏輯的改動(dòng)最小,發(fā)送到 Kafka 時(shí),需要將 Put 對(duì)象轉(zhuǎn)換為上面定義的 PutMessage Protobuf 格式,然后發(fā)送給 Kafka。

/***tableName:hbasetablenamne*rdd:RDD[(rowKey,put)]*/defconvert(tableName:String,familyNames:Array[String],rdd:RDD):RDD={rdd.map{case(_,put:Put)=>valmessage=PutMessage.newBuilder()for(familyName<-?familyNames){??????if(put.getFamilyMap().get(Bytes.toBytes(familyName))!=null){??????val?keyValueList?=?put.getFamilyMap()????????.asInstanceOf[java.util.ArrayList[KeyValue]].asScala????????for(?keyvalue?<-?keyValueList){??????????message.setRowkey(ByteString.copyFrom(keyvalue.getRow))????????......????????}????????message.setTablename(tableName)??????}????}????(null,?message.build().toByteArray)?}}

第三步:發(fā)送到 Kafka,不同的表發(fā)送到不同的 Topic,對(duì)每個(gè) Topic 的消費(fèi)做監(jiān)控。

/***發(fā)送rdd中的內(nèi)容到brokers的指定topic中*tableName:hbasetablenamne*rdd:RDD[(rowKey,put)]*/defsend[T](brokers:String,rdd:RDD[(String,T)],topic:String)(implicitcTag:ClassTag[T]):Unit={rdd.foreachPartition(partitionOfRecords=>{valproducer=getProducer[T](brokers)partitionOfRecords.map(r=>newProducerRecord[String,T](topic,r._1,r._2)).foreach(m=>producer.send(m))producer.close()})}

第四步:另啟動(dòng) Streaming Consumer 或者服務(wù)消費(fèi) Kafka 中內(nèi)容,將 putMessage 的 Protobuf 格式轉(zhuǎn)成 HBase 的 put 對(duì)象,同時(shí)寫入到在線 HBase 集群中。 Streaming 消費(fèi)Kafka ,不同的表發(fā)送到不同的 Topic,對(duì)每個(gè) Topic 的消費(fèi)做監(jiān)控。

valtoHBaseTagsTopic=validKafkaStreamTagsTopic.map{record=>valtableName_r=record.getTablename()valput=newPut(record.getRowkey.toByteArray)for(cv<-?record.getColumnsList)?{??????????put.addColumn(record.getFamily.toByteArray)??????????......????????}????????if(put.isEmpty){??????????(new?ImmutableBytesWritable(),?null)????????}else{??????????(new?ImmutableBytesWritable(),?put)????????}????}.filter(_._2!=null)????if(!isClean)?{??????toHbaseTagsTopic.foreachRDD?{?rdd?=>rdd.saveAsNewAPIHadoopDataset(AccessUtils.createOutputTableConfiguration(constants.Constants.NAMESPACE+":"+constants.Constants.TAGS_TOPIC_TABLE_NAME))}}

如下為另一種啟動(dòng)服務(wù)消費(fèi) Kafka 的方式。

valconsumer=newKafkaConsumer[String,Array[Byte]](probs)consumer.subscribe(topics)valrecords=consumer.poll(100)for(p<-?records.partitions)?{???val?recordsOfPartition?=?records.records(p)???recordsOfPartition.foreach?{?r?=>Try(KafkaMessages.parseFrom(r.value()))match{caseSuccess(record)=>valtableName=record.getTableNameif(validateTables.contains(tableName)){valmessageType=record.getType......try{valcolumns=record.getColumnsList.map(c=>(c.getColumn,c.getValue.toByteArray)).toArrayHBaseHandler.write(tableName)......}catch{caseex:Throwable=>LOG.error("writehbasefail")HaloClient.increment(s"content_write_hbase_fail")}}else{LOG.error(s"table$tableNameisvalid")}}}//updateoffsetvallastOffset=recordsOfPartition.get(recordsOfPartition.size-1).offset()consumer.commitSync(java.util.Collections.singletonMap(p,newOffsetAndMetadata(lastOffset+1)))}

結(jié)語

最后,目前采用的由應(yīng)用控制和管理在線離線集群的同步機(jī)制,在隨著平臺(tái)多機(jī)房項(xiàng)目的推動(dòng)下,平臺(tái)將推出 HBase 的統(tǒng)一同步機(jī)制 HRP (HBase Replication Proxy),屆時(shí)業(yè)務(wù)部門可以將更多的時(shí)間和精力集中在模型優(yōu)化層面。

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場(chǎng)。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請(qǐng)聯(lián)系本站處理。 舉報(bào)投訴
  • API
    API
    +關(guān)注

    關(guān)注

    2

    文章

    1499

    瀏覽量

    61970
  • AI
    AI
    +關(guān)注

    關(guān)注

    87

    文章

    30763

    瀏覽量

    268906
  • 模型
    +關(guān)注

    關(guān)注

    1

    文章

    3229

    瀏覽量

    48813

原文標(biāo)題:兩億多用戶,六大業(yè)務(wù)場(chǎng)景,知乎AI用戶模型服務(wù)性能如何優(yōu)化?

文章出處:【微信號(hào):rgznai100,微信公眾號(hào):rgznai100】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。

收藏 人收藏

    評(píng)論

    相關(guān)推薦

    HarmonyOS Web開發(fā)性能優(yōu)化指導(dǎo)

    體驗(yàn),實(shí)現(xiàn)商業(yè)目標(biāo)。通過文章介紹的幾種優(yōu)化方法,開發(fā)者可以改善頁面加載速度,提升用戶體驗(yàn),增加頁面瀏覽量,提高應(yīng)用的活躍度和用戶粘性。只有不斷優(yōu)化頁面加載速度,才能更好地滿足
    發(fā)表于 12-06 08:41

    中國生成式AI用戶突破2.3

    近日,根據(jù)最新發(fā)布的《生成式人工智能應(yīng)用發(fā)展報(bào)告〔2024〕》數(shù)據(jù)顯示,我國生成式人工智能產(chǎn)品的用戶群體規(guī)模已經(jīng)顯著擴(kuò)大。截至今年月底,使用生成式人工智能產(chǎn)品的用戶數(shù)量已超過兩億三千
    的頭像 發(fā)表于 12-02 10:05 ?278次閱讀

    正式公布三季度財(cái)報(bào):月活躍用戶數(shù)穩(wěn)步增長

    近日,公司正式公布了其2024年第三季度的業(yè)績報(bào)告,展示了公司在該季度的經(jīng)營成果。 據(jù)報(bào)告顯示,盡管在第三季度的營收出現(xiàn)了同比下降,具體數(shù)字為下降17.32%至8.45
    的頭像 發(fā)表于 11-27 10:44 ?331次閱讀

    釘釘重磅升級(jí):六大場(chǎng)景AI助理正式上線

    上線的“精選AI助理”涵蓋了六大關(guān)鍵場(chǎng)景,包括工單助理、Excel助理、法務(wù)助理等。這些AI助理通過智能化的手段,能夠幫助企業(yè)解決在日常運(yùn)營中遇到的各種問題,例如快速處理工單、
    的頭像 發(fā)表于 11-14 13:50 ?197次閱讀

    HarmonyOS NEXT應(yīng)用元服務(wù)開發(fā)Intents Kit(意圖框架服務(wù))技能調(diào)用方案概述

    一、概述 技能調(diào)用是意圖框架依托系統(tǒng)AI多模態(tài)大模型能力做深度用戶輸入理解,并通過解析的用戶意圖對(duì)接應(yīng)用或元服務(wù)內(nèi)的功能和內(nèi)容。 二、
    發(fā)表于 11-08 15:38

    AI模型性能優(yōu)化方法

    AI模型性能優(yōu)化是一個(gè)復(fù)雜而關(guān)鍵的任務(wù),涉及多個(gè)方面和策略。以下是一些主要的性能優(yōu)化方法:
    的頭像 發(fā)表于 10-23 15:01 ?645次閱讀

    全新AI產(chǎn)品&quot;直答&quot;亮相第十屆鹽Club新知青年大會(huì)

    在知識(shí)的海洋中,每一次探索都是一次對(duì)未知的旅程。6月29日,第十屆鹽Club新知青年大會(huì)上,以其敏銳的科技洞察力,正式推出了全新AI產(chǎn)品——“
    的頭像 發(fā)表于 07-01 16:55 ?482次閱讀

    EyeEm平臺(tái)默認(rèn)使用用戶照片訓(xùn)練AI模型用戶可自行刪除作品

    據(jù)報(bào)道,攝影分享平臺(tái)EyeEm近期更新服務(wù)協(xié)議,宣稱將默認(rèn)使用用戶上傳的圖片進(jìn)行AI模型訓(xùn)練,若用戶對(duì)此提出異議,則需自行刪除所有作品。
    的頭像 發(fā)表于 04-29 16:51 ?646次閱讀

    安科瑞ADF400L-安科瑞單相電能表ADF400L多用戶 一表抵多表

    安科瑞 程瑜 1.電能計(jì)量 多用戶電能表可計(jì)量每一用戶總用電量(正向+反向)、正向用電量和反向用電量。 2.繼電器控制(僅限預(yù)付費(fèi)型) (1)無費(fèi)關(guān)斷(預(yù)付費(fèi)控制) 多用戶電能表可設(shè)置報(bào)警電量 1
    的頭像 發(fā)表于 04-01 15:20 ?464次閱讀
    安科瑞ADF400L-安科瑞單相電能表ADF400L<b class='flag-5'>多用戶</b> 一表抵多表

    安科瑞ADF300L-II-30D-Y 30路單相或10三相出線預(yù)付費(fèi)型多用戶計(jì)量箱 反竊電 遠(yuǎn)程抄表功能

    安科瑞ADF300L-II-24D-Y預(yù)付費(fèi)型多用戶計(jì)量箱是一款功能強(qiáng)大的先進(jìn)設(shè)備,為用戶提供了便捷、準(zhǔn)確的電能計(jì)量和管理服務(wù)。本文將從多個(gè)維度對(duì)該計(jì)量箱進(jìn)行全面解析,包括其特點(diǎn)、優(yōu)勢(shì)以及應(yīng)用
    的頭像 發(fā)表于 03-18 15:29 ?290次閱讀
    安科瑞ADF300L-II-30D-Y 30路單相或10三相出線預(yù)付費(fèi)型<b class='flag-5'>多用戶</b>計(jì)量箱 反竊電 遠(yuǎn)程抄表功能

    NanoEdge AI的技術(shù)原理、應(yīng)用場(chǎng)景及優(yōu)勢(shì)

    ,可以實(shí)現(xiàn)對(duì)交通狀況的實(shí)時(shí)分析和優(yōu)化,提高道路通行效率。 4.醫(yī)療健康:在醫(yī)療設(shè)備和可穿戴設(shè)備中應(yīng)用 NanoEdge AI,可以實(shí)現(xiàn)對(duì)患者健康狀況的實(shí)時(shí)監(jiān)測(cè)和預(yù)警,提高醫(yī)療服務(wù)質(zhì)量。 3
    發(fā)表于 03-12 08:09

    蘋果Vision Pro頭顯僅供個(gè)人使用,不設(shè)多用戶賬戶

    蘋果公司最新推出的Vision Pro頭顯備受關(guān)注,它內(nèi)置有獨(dú)特的訪客模式,這使得設(shè)備可以邀請(qǐng)他人共享視覺盛宴,然而大多數(shù)消費(fèi)者更為關(guān)心的是其多用戶賬戶的操作性。
    的頭像 發(fā)表于 02-01 10:48 ?893次閱讀

    多用戶同時(shí)上網(wǎng)無需擔(dān)憂!4G家用路由器暢享高效網(wǎng)絡(luò)體驗(yàn)

    4G家用路由器具有更穩(wěn)定的網(wǎng)絡(luò)信號(hào)、支持多用戶同時(shí)連接、安裝和使用方便、良好的網(wǎng)絡(luò)覆蓋范圍和較高的網(wǎng)絡(luò)速率等特點(diǎn),可讓您告別網(wǎng)絡(luò)困擾,暢享高速網(wǎng)絡(luò)服務(wù)
    的頭像 發(fā)表于 01-23 16:52 ?600次閱讀

    分布式無紙化交互系統(tǒng)如何支持多用戶同時(shí)在線編輯和協(xié)作?

    分布式無紙化交互系統(tǒng)通過以下方式支持多用戶同時(shí)在線編輯和協(xié)作: 實(shí)時(shí)同步技術(shù) :系統(tǒng)使用實(shí)時(shí)同步技術(shù),確保多個(gè)用戶在同時(shí)編輯同一份文檔時(shí),每個(gè)人都能看到其他人的操作,并能夠?qū)崟r(shí)互動(dòng)和協(xié)作。 版本控制
    的頭像 發(fā)表于 01-15 15:33 ?409次閱讀

    鴻蒙千帆起】《開心消消樂》完成鴻蒙原生應(yīng)用開發(fā),創(chuàng)新多端聯(lián)動(dòng)用戶體驗(yàn)

    更優(yōu)質(zhì)的用戶體驗(yàn),基于強(qiáng)大的 AI 能力還可以實(shí)現(xiàn)精準(zhǔn)識(shí)別、精確投放,為伙伴提供新流量,并共享全場(chǎng)景服務(wù)分發(fā),助力生態(tài)共贏。數(shù)據(jù)顯示,截至今年 8 月份,鴻蒙生態(tài)的設(shè)備數(shù)已超過 7
    發(fā)表于 01-03 10:22
    主站蜘蛛池模板: 乱码午夜-极品国产内射| 99久久伊人一区二区yy5099| 精品国产乱码久久久久久上海公司| 性色爽爱性色爽爱网站| 国产三级精品三级男人的天堂| 小色哥影院| 国产午夜精品理论片影院| 亚洲 天堂 国产在线播放| 国内精品久久久久影院老司| 亚洲精品婷婷无码成人A片在线| 精品日韩二区三区精品视频| 伊人影院综合网| 久久水蜜桃亚洲AV无码精品偷窥| 中国bdsmchinesehd| 男女交性视频无遮挡全过程| adc影院在线| 日本一本2017国产| 国产精品成人A蜜柚在线观看 | 先锋资源av| 狠很橹快播| 中文字幕精品AV内射夜夜夜| 免费欧美大片| 成3d漫二区三区四区| 天天爽夜夜爽| 韩国成人理伦片免费播放| 欲香欲色天天综合和网| 免费99精品国产人妻自在线| www.三级| 偷上邻居熟睡少妇| 寂寞夜晚看免费视频| 91国内精品久久久久免费影院| 欧洲最大无人区免费高清完整版| 国产a级午夜毛片| 亚洲男人片片在线观看| 快播官方网站| xx在线观看| 午夜免费福利片| 久久精品一区二区影院| pkf女尸studiosxnxx| 婷婷精品国产亚洲AV在线观看 | 欧美最新色p图|