• 先知EE
    安裝部署
    • 問題
    • 答案
    • 新建工程的時候 報錯: file-storage error: can't upload file for /users/admin-1/workspace/projects/model/first-blood/.ph-ide/meta.json: ? hadoop user can't be null
    • 一般為沒有配置hadoop用戶導致的,需要在控制臺界面添加下hadoop的用戶
    • 如何給kubernetes添加自定義dns解析
    • 答:

      第一步:修改./config/custom.sh 配置文件的,下面是example(紅色部分是需要按需添加的內容)

      custom_domain='

      a.nihao.com=1.1.1.1

      '

      第二步:然后./bin/deploy.sh base ,讓添加的自定義解析生效

      第三步:然后刪除kube-system 里面的kube dns 的pod 即可(刪除后會產生的新pod,新pod 會使用上新的配置文件)

    資源中心
    • 先知平臺對上傳的數據大小有限制嗎?
    • 答:目前對用戶單次上傳數據的大小是沒有限制的,但是管理員可以在后臺管理中分配存儲資源的大小,若用戶上傳的數據大于這個限制,那么將會上傳失敗。
    • 哪些數據適合通過本地上傳?
    • 答:數據文件相對較小,小于1GB的數據比較適合通過本地文件來上傳,大于1GB的數據建議應用HDFS數據源引入。
    • 通過本地上傳的數據一定要有列名稱嗎?
    • 答:沒有要求必須包含字段名,但如果首行存放了字段名,必須要聲明。
    • 數據引入的分隔符問題

      hive中的^A \t怎么處理

    • ^A對應先知的soh

      \t對應先知的tab,水平制表符

    • parquet和文本文件的區別,在模型訓練過程中這兩類格式有什么區別嗎
    • parquet是以列進行存儲的文件類型,會將文件縮小(X倍以上),在運算時性能提升。
    模型調研
    • 為什么特征重要性出來系數全是0.5
    • 答:

      原因一:高級參數中默認mini-batch大小是block_size(塊大小)乘以block_count(塊數量),當樣本數小于mini-batch大小時不會更新權重,導致模型沒有經過訓練,auc=0.5。減小參數后結果正確。

      原因二:學習率“alpha”(默認為1)過大、訓練輪數“training_pass_num”(默認為1)過小。

    • 所有算子不能執行一直處于等待執行狀態
    • 檢查license,大多由于license配置錯誤
    • hadoop集群有大量剩余資源,但是任務排隊情況嚴重
    • 檢查算子請求的driver資源是否超過集群maximum-am-resource-percent限制的driver能用的資源
    • DAG圖中算子之間的鏈接標準是什么?

      算子之間是否可以連接,是由上游算子的輸出文件類型和下游算子的輸入文件類型來共同決定的。比如特征抽取算子的輸出文件類型為樣本表,那么特征抽取算子下游可連接的算子就會是特征重要性分析以及其它各種算法。

    • 算子狀態長時間為0%

      檢查hadoop集群計算資源,當前是否已經開始任務排隊。或本次任務設置資源不合理超過集群已有的資源

    • 算子執行失敗,報錯 running beyond physical memory limits
    • 檢查當前算子資源配置,一般為算子計算需要內存資源大于當前設置內存資源,比如把executor memory增加50%,或者增加spark.yarn.executor.memoryOverhead(默認是exec memory*10%,可以適當翻倍到20%), num數是否下調要考慮預期的運行速度和集群資源配置
    • 算子執行失敗,報錯 Java Heap Space
    • 檢查當前算子資源配置,一般為算子計算需要內存資源大于當前設置內存資源,比如把executor memory增加50%,或者增加spark.yarn.executor.memoryOverhead(默認是exec memory*10%,可以適當翻倍到20%), num數是否下調要考慮預期的運行速度和集群資源配置
    • 算子執行失敗,報錯org.apache.spark.SparkException:?Kryo serialization failed: Buffer overflow.
    • 在算子擴展參數中增加一行spark.kryoserializer.buffer.max=512m
    • 運行算子報錯SIMPLE authentication is not enabled. Available:[TOKEN, KERBEROS]
    • 檢查kerberos配置,一般為客戶端沒有開kerberos但是集群開了
    • 算子實際運行幾分鐘,右上角一直顯示0秒
    • 檢查服務器與客戶端時間/時區是否為匹配
    應用中心/應用上線
    • 應用上線部署時pod一直crash
    • 先查看自學習dag是否正確,例如是否接入了數據組;

      查看其他的form.ui的配置是否正確,或者是否有沒有填的參數;

      確認數據庫配置是否正確(默認是使用和先知一起搭建的數據,要是數據庫在外面就需要更換數據庫地址);

      最后查看日志,進入到容器里面去查日志;一般日志都寫得很清楚;

    • 應用服務定時任務執行失敗
    • 查看dag數據組的數據是否存在或異常;

      查看運行步驟節點check狀態,一般都有具體報錯信息

      如果是pws上有算子失敗導致的異常,可以查pws的運行日志

    中間件
    • 如何查看先知當前系統健康情況
    • 登錄先知PMS模塊,可以查看當前系統CPU/內存/磁盤/網絡消耗情況,也可以深入了解每個業務的資源消耗
    • 如何查看先知服務日志
    • 登錄先知PMS模塊,可以查看所有業務的系統服務日志
    • 先知是否能查看日志告警信息
    • 可以通過PMS模塊的告警接口配置對應的告警策略,實現實時告警
    管理平臺
    • 系統監控和日志查看都不能正常使用,如何排查
    • 登錄服務器檢查es相關pod是否正常,如果不正常/bin/kc describe pod $pod -n elastic 可以看到這個容器上一次掛掉的原因
    AutoML
    • 問題
    • 答案
    • AutoML支持哪幾種數據的數據引入?
    • AutoML目前本地引入僅支持CSV文件, HDFS引入僅支持CSV和Parquet文件格式.
    • 什么是行為數據, 什么是反饋數據?
    • 行為數據是與業務預測目標有關的每一條歷史記錄的所有特征數據, AutoML要求行為數據必須包含一個主鍵字段(用于區分每一條行為記錄)

      反饋數據是與業務預測目標相關的每一條歷史記錄的對應的實際反饋數據, AutoML要求反饋數據必須包含一個主鍵字段(用于把一條反饋數據關聯對應的行為數據),還需要一個Label字段,用于表明一條行為記錄最終的實際反饋.

    • 行為數據組和反饋數據組中的數據切片是個什么含義?
    • 數據切片是一次數據引入后的一個數據表, 一次數據引入生成一個數據切片.
    • 行為數據組和反饋數據組中的數據切片是個什么含義?
    • 是的, 數據切片選取是按照導入時間的倒序來選取的, 比如切片范圍從1到1, 那么選取的切片就是最近一次導入的切片, 從1到2, 選取的是最近導入的兩個數據切片, 從2到2選取的是最近導入的倒數第二個數據切片.
    • 模型探索使用手動停止策略, 如果不手動停止會一直探索下去嗎?
    • 不會的, 如果選擇了手動停止策略, 在探索35輪左右會探索完成, 結束探索.
    • 模型工廠是什么?
    • 模型工廠是根據模型探索得出的最優探索方案, 可以選擇新的數據, 設置循環策略(包括單次運行, 循環運行, crontab表達式)來訓練模型, 訓練出來的模型可以部署批量預估服務和在線預估服務.
    • 部署批量預估可以根據哪幾種策略來選擇模型?
    • 部署批量預估的時候, 可以根據最優模型, 最新模型和指定模型來選擇模型的.
    • 部署在線預估時的數據回流是什么?
    • 數據回流, 是說將在線預估的請求數據回流到行為數據組, 那么在將實際的反饋數據導入之后, 就可以再次進行模型探索和訓練, 形成一個數據的閉環.
    AutoCV
    數據
    • 問題
    • 答案
    • 數據引入失敗怎么辦?
    • 數據類型上傳后顯示"不可用",請先對照文檔自查標注信息的格式是否正確,如果是本地上傳數據,請先檢查已上傳的壓縮包是否包含圖片文件和標注信息的meta文件,其次,請檢查meta文件指定的路徑是否為相對路徑。

      如果自查沒有發現問題可以公眾號留言,我們會盡快聯系解決。

    訓練過程
    • 為什么會訓練失敗?
    • 訓練失敗有很多原因,最有可能的是內存太小,請嘗試增加內存配置,或者調小訓練參數中的迭代次數。
    • 為什么訓練進度一直是0?
    • 因為現有集群的資源小于您所申請的資源,實驗會進行排隊狀態,建議釋放掉其他占用資源的實驗。
    • 如何加速算法訓練?
    • 訓練模型的復雜度跟當前用戶可用的環境,數據量,和算法網絡結構都有關系。可以通過在訓練好的模型基礎上進行繼續訓練,這樣可以大大縮短達到同樣效果所需要的訓練時間,目前每個模型都提供了一個較為通用的預訓練模型做遷移訓練,在實驗配置的時候選擇專家模式,勾選上預訓練模型,即可加速訓練過程。
    • 為什么要上線多實例?
    • 實例代表著在一個應用中,同時運行的服務數量為實例數,用戶可以通過實例數的配置進行流量的切分。多實例可以實現應用高可用,并且可以增加應用的吞吐量,請求壓力會在不同實例間負載均衡。
    • 為什么應用關聯不到指定實驗?
    • 上線時只展示訓練成功的模型,找不到的實驗應該是運行失敗或者正在運行中,可以在項目中心-->實驗列表中查看模型是否訓練成功。
    水中色