-
Notifications
You must be signed in to change notification settings - Fork 0
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Integrating Continuous Learning Approach to the A.I ecosystem. #187
Comments
There are 2 changes that need to be done from @etherlabsio/platform
+ Managing Mind Artifacts. As explained above, the Mind Artifacts gets updated after every call with respect to their group (
This check needs to happen for every call (or, for every new mind selected in an existing group. ) + Triggering the The new Artifacts_updater Lambda needs to be called with the following
Where The response from the |
@reaganrewop Just to clarify: New Context Created (New Group Created)
Question on this approach:
eg: we'd have to create a new mind_id in
|
Few clarifications:
S3 artefacts (located in
@reaganrewop can you confirm this. Per our discussion, contextid/mind_id is the unique path and we need not create new mind_ids unless we have a new domain?
New entities are specific to the context and shouldn't be populated back to the parent domain. For example, New entity
Regarding new entity, nothing changes in the current dgraph population approach. @shashankpr can confirm
We can name it
Is this about the feature extractor lambda? @reaganrewop @shashankpr please add if I have missed any. |
This is a useful information but as @vdpappu mentioned the new entity is specific to the domain mind and may/may not be a lingo in the parent mind. In either cases, for now, no changes are required from the dgraph side. |
Also, this entire process for CL sounds as a good case for step functions. Maybe using it will give us a better control/view of the workflow. Just a thought... |
With two lambdas, Summary generator and mind_updater in sequence? We should be able to route the output from the first lambda to the platform and invoke the mind_updater in parallel. |
We can do all of that using step functions. We can specify run-state as "ParallelExecution" or "Sequential" as required |
It's sequential but the output from the first one should be redirected to API along with the second lambda. It should be possible. |
The meeting can still go on @karthikmuralidharan , Ideally, we expect the mind artifacts to be present before the end of the call, more specifically, before the A.P.I service issues a request to the segment_analyser service for computing groups.
There are 2 files which vary around 30-50 Mb each, other than that, all of them are in Kbs'. Therefore, the total size might be around 100 Mb.
For every meeting, we would upload and update the artifacts, once or twice at the maximum after the end of the call.
No, @karthikmuralidharan . As @vdpappu mentioned, Initially, We aren't diverging from the parent mind and we don't have any pipeline right now that takes the decision to automatically train the model based on the data. Therefore the Model artifacts won't be copied, hence no need to create a new mindId. For ex: If there is a new group created and have selected S.E mind, The following would be things we would do.
The artifacts, in this case, are the mind files. The task of
Can you explain a bit more on this @karthikmuralidharan . The back-end service would create (or update) a lambda for every request or for every new meeting call? Because we have to consider the warm-up time of these and also the model loading time. A warmed-up lambda can re-use the model without downloading it. |
In that case,
For the platform, the definition of mind is different. It's supposed to be a unique set of parameters (model_id + memory_id). So when we detect that the domain mind has diverged, we'll create a new mind_id internally, adding a connection to its parent domain mind_id and marking it as derived. Having a unique identifier per combination allows for certain optimizations I'll mention below.
A lambda config much like mind is immutable. We cannot per request change the same lambda identifier's configuration as they are designed to be stateless. say, domain_mind Lambda A is associated with the SE model, SE memory files and other artifacts. If there are two meetings for different contexts but SE mind happening simultaneously, we cannot alter the lambda configuration per request level. It's the same analogy as the same class instance being called by two different threads without using a shared mutex. Instead, if we created a new So meeting 1 with ctx1 will call a lambda1 while mtg2 with ctx 2 will call lambda2. |
@karthikmuralidharan The files that need to be copied to the new S3 location are:-
Also, the new S3 location which we agreed on is |
@etherlabsio/ml we have started work on this. @reaganrewop could you work with @trishanth on setting up the |
sure, @karthikmuralidharan . |
The objective of the CL is to continuously learn and improve the experience of the summaries based on the set of meetings that goes through a channel/group.
The Enrichment process happens for 2 components.
Channel model contains files that are GPT related (helps to represent information based on the channel context) and Channel mind contains a set of files that keeps track of the importance of discussions that are discussed in the channel.
Each Channel has its own customized mind, whereas the mind can be common to more than one channel.
The Channel Mind contains the below artifacts
The Algorithm involves the below:
To Do:
The text was updated successfully, but these errors were encountered: