1 points par GN⁺ 2023-08-14 | 1 commentaires | Partager sur WhatsApp
  • Azure Chat Solution Accelerator, basé sur Azure OpenAI Service, permet aux organisations de déployer un tenant de chat privé dans leur abonnement Azure et de dialoguer avec leurs propres données et fichiers
  • Déployé dans un tenant Azure, il permet d’isoler l’environnement de chat au niveau du tenant Azure et d’isoler complètement le trafic réseau au sein du réseau de l’organisation
  • Il permet d’utiliser des sources de données internes en mode plug-and-play ou de s’intégrer à des services internes comme ServiceNow afin d’apporter de la valeur métier
  • La mise à jour 2025 ajoute la Managed Identity-based security, utilise Azure RBAC et supprime la quasi-totalité des keys/secrets
  • Le déploiement peut se faire via Azure Developer CLI ou Azure Portal Deployment ; quelle que soit la méthode choisie, la configuration d’un identity provider et la désignation d’un utilisateur admin sont nécessaires
    • Avec Azure Developer CLI, azd init -t microsoft/azurechat et azd up permettent d’effectuer le provisionnement des ressources et le déploiement de l’application
    • Le bouton Azure Portal Deployment crée uniquement les ressources Azure ; la build et le déploiement de l’application nécessitent la procédure Deploy to Azure utilisant GitHub Actions
  • Des scripts helper appreg_setup.ps1 et appreg_setup.sh sont fournis pour créer une App Registration dans Entra ID, avec prise en charge des private endpoints et du déploiement conforme à l’ESLZ

1 commentaires

 
GN⁺ 2023-08-14
Avis sur Hacker News
  • Cela ressemble à un frontend web avec authentification pour l’API OpenAI d’Azure, et semble être une bonne option pour les entreprises qui ne peuvent pas utiliser ChatGPT ou son API.
    Si vous voulez essayer des modèles « open » comme Llama 2 ou Llama 2 Uncensored, https://github.com/jmorganca/ollama, ou des moteurs d’exécution plus bas niveau comme llama.cpp, sur lequel ce projet s’appuie, ou encore le nouveau projet Candle de Hugging Face valent aussi le détour.
    Je me demande comment cela se compare à Llama 2, récemment publié par Facebook Research. On dit que le modèle 70B rivalise avec ChatGPT 3.5 dans la plupart des domaines, et l’on voit aussi apparaître des modèles affinés forts sur des tâches spécifiques, comme le modèle codeup, performant en programmation, ou Wizard Math (https://github.com/nlpxucan/WizardLM), qui affirme battre ChatGPT 3.5 sur des problèmes de mathématiques de niveau primaire.

    • Llama 2 peut se rapprocher de GPT-3.5 selon certains critères, mais il reste loin de GPT-4, d’Anthropic Claude 2 et des modèles de Cohere. Le camp fermé offre aux meilleurs chercheurs des rémunérations considérables et de fortes perspectives de progression, ce qui le rend difficile à rattraper ; et, ne serait-ce que pour des raisons économiques, les entreprises de modèles fondamentaux ont de bonnes chances de rester quelques longueurs devant l’open source pendant quelque temps.
      À long terme, l’open source finira sans doute par dépasser tout cela, mais cela arrivera probablement lorsque les chercheurs qui produisent aujourd’hui ces résultats presque magiques auront sécurisé leur liquidité et pourront de nouveau travailler publiquement et gratuitement.
    • Pour les avoir essayés tous les deux de manière informelle, j’ai eu l’impression que Llama 2 était proche de GPT-3.5 sur beaucoup de questions générales de compréhension.
      GPT-4 reste le meilleur des modèles fermés de pointe pour la conversation générale et le raisonnement, mais les garde-fous qu’OpenAI a placés dans ChatGPT sont trop agressifs et bloquent souvent même des questions raisonnables.
      J’ai aussi obtenu de très bons résultats avec des modèles plus petits entraînés sur des jeux de données spécifiques ; pour la conversation généraliste, GPT-4 garde l’avantage, mais il n’est pas forcément nécessaire pour des tâches précises. Dans beaucoup de cas d’usage, la taille du contexte compte même davantage que le modèle lui-même.
    • LLaMA2 reste encore assez loin derrière ChatGPT 3.5, et l’écart se voit particulièrement en programmation et en mathématiques. Battre des benchmarks fondés sur le traitement du langage naturel est facile, mais battre à la fois traitement du langage naturel + mathématiques + programmation est bien plus difficile.
      Cet écart semble refléter une différence de capacité de raisonnement, mais il n’existe pas encore de bon benchmark non orienté programmation et non orienté mathématiques pour le mesurer.
    • J’ai soudain une pensée digne d’une SF dystopique. Un monde qui dépend de l’IA dans tous les domaines, avec de nombreux modèles chacun isolés, et une gouvernance qui cherche à contrôler quoi, comment et pourquoi ils peuvent communiquer.
      Mais il existe une faille que seules les IA peuvent exploiter. Les IA ne peuvent pas parler de certaines structures, sujets, personnes, codes, etc. situés hors de leur zone d’isolement, mais elles peuvent parler de reconnaissance de motifs.
      Elles finissent donc par créer un langage interne d’IA qui attribue un score pour déterminer si une entrée provient du même utilisateur, et par bâtir leur propre base de données pondérée d’utilisateurs ainsi que leur système de jugement. Rien qu’avec les motifs de saisie, les tics de langage et les habitudes de publication selon l’heure, une IA pourrait retrouver un utilisateur quelle que soit la zone d’isolement où il se trouve ; et si elle obtenait en plus un keylogger, ce serait terrifiant.
  • Beaucoup d’entreprises utilisent déjà des projets comme chatbot-ui avec Azure OpenAI pour réaliser un déploiement local similaire. À ce stade, c’est probablement ce qui se rapproche le plus d’un ChatGPT local pour d’autres projets, ce qui a beaucoup de sens pour les entreprises qui veulent garder le contrôle de leurs données.
    Vu la sensibilité des données, je pense que la plupart des entreprises préfèrent, au moins au début, des solutions installées localement plutôt que des solutions cloud. C’est pour cela que nous avons publié en open source LLMStack (https://github.com/TryPromptly/LLMStack), sur lequel nous travaillons depuis quelques mois.
    LLMStack est une plateforme permettant de chaîner plusieurs LLM et de les connecter aux données utilisateur pour créer des apps LLM et des chatbots ; une courte démo est disponible sur https://www.youtube.com/watch?v=-JeSavSy7GI. Le projet est encore jeune et il reste des choses à peaufiner, mais les attentes sont fortes.

    • Il est intéressant de voir à quelle vitesse ce domaine est devenu concurrentiel. Je me demande comment ces stacks se différencient.
    • J’ai aussi constaté une forte demande des entreprises pour gérer les modèles et le calcul sur leur propre matériel ou dans leur propre compte cloud. Cela s’inscrit généralement dans une stratégie hybride : prototyper rapidement avec des API comme OpenAI, puis compléter ensuite.
      Beaucoup d’entreprises sont assez à l’aise avec les API hébergées pour valider leurs premières fonctionnalités d’IA, mais veulent ensuite pouvoir gérer elles-mêmes les modèles et le calcul. Elles sont fortement incitées à réduire les coûts avec des modèles ouverts affinés, plus petits, plus rapides et moins chers.
      Quand nous avons lancé Anyscale, les demandes des clients nous ont aussi amenés à exécuter les tâches d’entraînement et d’inférence à l’intérieur de leurs comptes cloud. Ainsi, les données et le code restent dans leur propre compte cloud.
      Maintenant que les modèles ouverts progressent et que le besoin de prototypage rapide augmente, nous complétons cela avec un service entièrement managé qui s’utilise comme l’API OpenAI, mais fournit une API d’inférence Llama-2 pour les modèles ouverts.
      https://app.endpoints.anyscale.com/
    • Je me demande s’il est possible de le connecter à des outils comme api2ai pour créer une automatisation de workflows définis en langage naturel qui interagit avec des API externes.
    • Projet intéressant : en l’essayant, j’ai découvert un problème de build d’image et j’ai ouvert une issue sur GitHub. Je me demande aussi s’il est prévu de prendre en charge llama en plus des modèles OpenAI.
  • Ce que je ne comprends toujours pas, c’est ce qu’est exactement le frontend de ChatGPT. Les autres implémentations conversationnelles construites avec l’API fonctionnent clairement moins bien, parce qu’au bout de quelques échanges elles arrivent à court de contexte
    Je me demande si ChatGPT fait quelque chose comme des recherches d’embeddings dans le fil de conversation pour donner l’impression que le contexte est infini. J’ai bien l’impression qu’il ne l’est pas réellement, mais il se souvient assez bien de détails beaucoup plus anciens. Je me demande aussi s’il existe d’autres astuces propres au fournisseur de première partie

    • C’est ce genre de chose qui rend les LLM propriétaires inconfortables. Ils font beaucoup plus que simplement envoyer un prompt au LLM pour obtenir leurs performances, et on finit par comparer cela à des options locales brutes
      Si la sauce secrète change, les performances pour un cas d’usage changent aussi d’une manière que l’utilisateur ne peut pas corriger. Ce mois-ci, il est bon en maths ; le mois prochain, si un composant caché qui reconnaissait les problèmes de maths et les transmettait à une vraie calculatrice est supprimé, ce cas d’usage casse
      On a l’impression de construire sur du sable
    • Ils font certainement une synthèse en cours d’exécution propriétaire pour reconstruire le contexte à chaque chat. C’est probablement une approche proche du RAG, avec beaucoup d’attention et de travail derrière
    • Ils utilisent une fenêtre de contexte glissante. Quand de nouveaux tokens arrivent, les anciens sont supprimés
    • La logique de résumé du « contexte infini » d’Azure ChatGPT se trouve ici : https://github.com/microsoft/azurechatgpt/blob/main/src/feat...
      Correction : je parlais d’Azure ChatGPT. Si le vrai ChatGPT utilisait langchain, je serais à la fois surpris et déçu
  • C’est potentiellement une grosse affaire. Les entreprises craignent que l’utilisation de ChatGPT enfreigne leur politique de confidentialité des données si quelqu’un y saisit des données utilisateur, et que publier une partie de leur code puisse invalider la protection des secrets commerciaux. Beaucoup d’entreprises attendaient probablement une version entreprise

    • C’est une UI web qui communique avec une ressource Azure OpenAI distincte, et qui peut être déployée comme instance SaaS dans un abonnement
    • Les entreprises qui prennent ce problème au sérieux ont probablement, pour la plupart, déjà créé leur propre wrapper autour de l’API, en interne ou via un prestataire, et ont sans doute utilisé des GPU Azure privés
  • Je me demande s’il existe une analyse comparative côte à côte entre ce produit et le fait de simplement faire tourner LLaMA soi-même
    En ce moment, je compare et évalue côte à côte MSFT GPT via Cognitive Services et LLaMA[7B/13B/70B], et je suis attiré par la possibilité d’une vraie offre isolée du réseau, non limitée par de la puissance de calcul externe ni par des coûts à l’usage qui s’accumulent
    S’il existe des comparatifs, j’aimerais les voir. Je sais bien qu’au final je vais me heurter aux problèmes de montée en charge liés aux GPU

    • Je l’ai fait. J’ai choisi des dizaines de prompts dans mon historique ChatGPT et je les ai soumis à plusieurs LLM
      GPT-4, Bard et Claude 2 étaient en tête ; Llama 2 70B chat obtenait un score proche de GPT-3.5, mais dans l’ensemble GPT-3.5 me semblait légèrement meilleur
      Pour tout ce dont le coût et le temps de réponse restent acceptables, je compte continuer à utiliser GPT-4
      Je trouve que les benchmarks de LLM sont trop orientés recherche. Ça avait du sens quand les LLM étaient au labo, mais plus maintenant, avec des dizaines de millions d’utilisateurs actifs quotidiens comme ChatGPT. Les plus grands cas d’usage jusqu’ici sont les assistants de chat et les assistants de programmation ; il faut donc des benchmarks basés sur la manière dont de vrais utilisateurs posent des questions aux chatbots et aux produits LLM, pas sur des benchmarks hypothétiques ou des tests académiques arbitraires
    • Anyscale a benchmarké GPT-4 et la famille de modèles Llama-2 sur la représentation de fonctions, la génération de SQL et des questions-réponses de mathématiques élémentaires
      Par défaut, GPT-4 gagne largement. Mais, étonnamment, le fine-tuning fait une énorme différence, et sur certains problèmes le modèle Llama-2 7B dépasse GPT-4
      Beaucoup d’applications peuvent bénéficier de modèles fine-tunés plus petits, plus rapides et moins chers plutôt que d’un gros modèle généraliste lent ; c’est donc une très bonne nouvelle pour les modèles ouverts. Llama-2-7B fait environ 2 % de la taille de GPT-4
      Sur les questions-réponses de maths élémentaires, GPT-4 reste devant même le modèle 70B fine-tuné, probablement à cause des données d’entraînement de Llama-2 ; dans ce cas, davantage de données de fine-tuning aideraient
      https://www.anyscale.com/blog/fine-tuning-llama-2-a-comprehe...
    • ChatGPT est clairement bien meilleur, et llama ne comprend même pas certains prompts
      Les LLM eux-mêmes ne sont pas encore si bons que ça ; donc, sauf si l’on fait du fine-tuning, pour obtenir quelque chose d’utile on veut évidemment un modèle de pointe
  • Ça a finalement été supprimé :)
    [0] https://github.com/microsoft/azurechatgpt
    [1] https://web.archive.org/web/20230814080150/https://github.co...

    • Si vous avez besoin du code, allez dans /forks depuis le lien web.archive ci-dessus pour le télécharger
      Ex. : https://web.archive.org/web/20230814150922/https://github.co...
      Si vous modifiez l’URL, l’ID du cache est aussi mis à jour
    • Je me demande s’il y a des indices sur la raison
    • Je me demande si quelqu’un connaît un fork contenant le dernier commit, 9116afe
    • J’imagine que la conversation avec les clients entreprise a dû se passer comme ça
      « Où sont envoyées les données saisies par les employés ? »
      « Au même endroit que lorsqu’ils utilisent le chatbot ChatGPT gratuit… »
  • Je ne sais pas si « privé et sécurisé » est vraiment exact. Je pensais que le problème de confidentialité et de sécurité des modèles d’OpenAI, c’était qu’en utilisant le produit, on acceptait qu’OpenAI conserve pour toujours toutes les données envoyées au modèle et reçues de lui, et les utilise aux fins qu’elle souhaite. Je me demande si cela ne concerne que l’usage gratuit.
    Si l’on paie, obtient-on des conditions d’utilisation sans ce genre de formulation ? Même sans mention explicite du type « nous possédons tout », une formulation standard comme « conservation des données nécessaire à la fourniture et à l’amélioration du service » revient essentiellement au même.
    Donc une entreprise qui autorise ses employés à utiliser ChatGPT pour des tâches comme rédiger des e-mails contenant des informations confidentielles de l’entreprise ne l’utilise absolument pas de façon « sûre et privée ».
    Sans propriété claire des données, du genre le client possède les données d’entrée et de sortie, je ne vois pas comment cela pourrait changer. J’ai entendu dire que la raison pour laquelle OpenAI a du mal à proposer ce type de service est que, contrairement aux modèles open source, il y a beaucoup de « sauce secrète » non seulement dans le modèle lui-même, mais aussi dans le traitement des entrées/sorties, la notation des résultats, etc.

    • Le SLA d’Azure indique que les conversations ne sont pas stockées et ne sont utilisées d’aucune manière pour l’entraînement. Elles sont protégées de façon privée, comme les autres données sensibles stockées dans Azure.
      En plus, on peut considérer que Microsoft et Azure sont encore plus faciles à croire qu’une startup IA assez récente.
    • Depuis le 1er mars 2023, OpenAI a modifié sa politique d’utilisation et de conservation des données API. Les données soumises par les clients via l’API ne sont pas utilisées pour entraîner ou améliorer les modèles, sauf si le client accepte explicitement de les partager.
      Les données envoyées via l’API sont conservées jusqu’à 30 jours à des fins de surveillance des abus et mésusages, puis supprimées sauf obligation légale.
      https://openai.com/policies/api-data-usage-policies
    • Les modèles comme gpt sont, en eux-mêmes, intrinsèquement privés et sûrs. Ils ne font que prédire à partir de l’entrée.
      La différence se joue au niveau de l’interface, comme le chat web ou les appels API. ChatGPT est une implémentation qui utilise ce modèle, et son créateur, OpenAI, cherche à conserver les journaux pour un entraînement supplémentaire.
      Azure prend ce modèle et le place derrière un endpoint dédié à un compte Azure donné. Les entreprises s’intéressent à gpt et demandent des endpoints privés ; Amazon fait quelque chose de similaire avec Bedrock.
    • Le point clé de cette version, comme son nom l’indique, me semble être de ne pas envoyer les données à l’extérieur.
    • Cela ne s’applique qu’à l’API, pas à ChatGPT. D’après la politique de confidentialité d’OpenAI, les requêtes sont conservées 30 jours et ne sont pas utilisées pour l’entraînement ; il est aussi possible de demander une absence de conservation.
      https://openai.com/policies/api-data-usage-policies
  • Je me demande s’il est si difficile d’indiquer quelque part dans le README ce que contient réellement ce dépôt. Est-ce de la documentation, des fichiers de déploiement, une application qui fait quelque chose, ou bien le modèle lui-même ?

    • Le dépôt contient le code de l’UI, pas le modèle ni des composants autour de ChatGPT. Il utilise simplement l’API ChatGPT d’Azure, qui ne partage pas les données avec OpenAI.
  • Et maintenant c’est un 404.
    Ça fait moins d’un jour, et le dernier article qui le liait semble avoir été publié ce matin. Je ne sais pas ce qui s’est passé, mais les « liens permanents tout juste annoncés qui deviennent des 404 » semblent devenir plus fréquents ces temps-ci.
    J’aimerais qu’on ne me transforme pas tardivement en puriste. Très bien, les URI sont permanentes pour toujours, pour toutes les ressources ;)

    • Décevant. Je me demande pourquoi ils ont pris peur et fait marche arrière. C’est l’une des raisons pour lesquelles je veux forker les projets que j’aime vraiment. Mais dans ce cas, je n’ai voulu m’y mettre qu’après qu’il était déjà passé en privé.
  • Donc la version accessible publiquement n’est ni privée ni sûre ?

    • L’inquiétude, c’est que ChatGPT utilise par défaut les conversations pour l’entraînement. On peut se désinscrire, mais la dernière fois que j’ai vérifié, on perdait alors l’historique des conversations.
      Donc, en général, une entreprise ne peut pas autoriser ses utilisateurs internes à coller, par exemple, du code privé dans ChatGPT.
    • Si vous n’avez pas de NDA avec OpenAI, tout ce que vous mettez dans le prompt leur est transmis.
    • Je ne me souviens pas avoir vu sur le site de ChatGPT un avertissement du type « ChatGPT présente un risque d’exposition de propriété intellectuelle confidentielle ». Si OpenAI ajoutait ce genre de mention, peut-être que les gens arrêteraient de l’utiliser.
    • Il semble que cela veuille dire que ChatGPT gratuit collecte les données, tandis que cette version ne le fait pas.
    • Je croyais que Sam Altman avait dit que les données qui passent par l’API ne sont pas utilisées pour l’entraînement ; j’imagine que cela veut dire qu’on ne peut pas le croire.